At work, computer scientists build and deploy programs, algorithms, and systems to solve real-world problems. In most tech jobs, they spend the majority of their time working in teams on new software products. Some computer scientists are more research-oriented however, and may spend time developing new algorithms or pushing the boundaries of what academia knows about certain CS questions.
It’s important to understand that most students with a computer science degree become developers or software engineers. Instead of their career being research-focused as you might expect of someone with the “scientist” title, they likely do more implementation (engineering) than theoretical (science) work. This isn’t always that case of course, but it does represent the majority of graduates.
Wait, what is a computer scientist? π
By definition, a computer scientist is a person trained in computer science. They use programming principles, data science, and robotics to create or improve computer systems, software, and computer algorithms.
Computer Science vs. Computer Programming π
You may be thinking, but wait, aren’t they the same thing? Put simply, no, they’re not.
- Computer science focuses on computer theory
- Computer programming covers practical application.
It’s not that the two paths don’t ever intersect. Computer scientists will often have to cover areas of practical application and vice versa. And if that isn’t the case, computer programmers and computer scientists will often work in tandem on different projects. In fact, many students who study computer science in school go on to become programmers.
What a computer scientist do? π
It depends a lot on where the computer scientist in question. They specialize in researching how to compute the answers to problems. Computer scientists need to know the theoretical foundation upon which the hardware and software is built that enables computers operate properly to solve problems.
This requires a person to develop essential skills such as mathematics, proficiency in computer languages, critical thinking, and even creative thinking.
What can a computer scientist do? π
This is quite a different question: a computer scientist is almost an umbrella term. A computer scientist can manage projects, become backend developers, become front-end developers, develop coding languages, build-open source projects, or work with data systems or artificial intelligence.
In reality, the field of software engineering is very open, and depending on what you’ve learned you can do almost anything. An understanding of key computer science principles like data structures and algorithms opens many career opportunities.
A day in the life of a computer scientist turned software engineer π
I can’t speak for every computer scientist, but I’m a back-end software engineer with a degree in computer science. I usually do some version of the following on a daily basis.
1. Drink a black coffee, plop down at my computer and open Hacker News π
I usually spend ~20 minutes reading coding news/articles while I sip my coffee. It keeps me up-to-dateish on what’s going on in the industry and stops me from writing really bad code before I’ve had a chance to wake up.
2. Open Slack, respond to missed questions from my team and make sure no emergencies are ensuing π
I work as a backend Go developer, so every few months I wake up to a service having issues and needing to be fixed immediately. I typically start my workday by just making sure that the infrastructure is having a good morning.
3. Write code until my team is online/in the office π
I’m an early bird, so my workday usually starts about 7AM. I also usually work from an office but during the pandemic we’ve all been at home. As a result, I have a couple hours to myself before the rest of my team of 4 hop online.
4. Standup meeting π
Once everyone’s online we have a quick ~10 minute standup meeting to review what we’re doing through the rest of the day and make sure everyone can get the help they need if they’re having particular issues with a project.
5. Write some more code π
When I say “write code” during this schedule, it doesn’t literally just mean writing new code. It also means reviewing others’ code and providing feedback, looking for and fixing bugs, cleaning up existing code, or working on a plan for how we will architect a new system or service.
6. Lunch and Smash Bros π
My team really likes Super Smash Bros on the Nintendo Switch. We usually eat lunch then spend about ~45 minutes kicking each other’s asses in SSB. About once a week the company will cater lunch and one of us will present on a technical topic they found interesting to the rest of the team. We call it “Lunch n Learn”.
7. Write more code π
The rest of my afternoon is usually just writing more code, with the occasional meeting to discuss product direction or high-level plans. I’m currently in a team lead position, and I do my best to keep meetings to a minimum. The only meetings I have on a regular basis are:
| Meeting | Frequency | Avg. Duration | | ———————————————* | ——–* | ————* | | Standup | weekly | 10 minutes | | Company-wide zoom (small company) | weekly | 20 minutes | | One-on-one with team members | monthly | 15 minutes | | One-on-one with CTO | monthly | 30 minutes | | Architecture planning (as needed, not planned) | monthly | 60 minutes | | Product roadmap planning | weekly | 30 minutes |
Some key takeaways π
So much about your life as a computer scientist will depend on where you go to work. Here are some of the most common benefits.
- Flexible hours. I typically work from 7AM to 4PM. My brother (a developer as well) usually works from 9:30AM to 6:30 PM.
- Work from home. Increasingly more and more companies are open to fully-remote work.
- Good work environment. Many tech companies are able to raise quite frankly insane amounts of capital. Because they’re interested in retaining top talent, they often have cool amenities. For example, I’ve had office ping pong tables, massage chairs, catered meals, gyms, etc.
- Good pay. Companies are still having a hard time finding good talent.
What kinds of jobs can I get as a computer scientist? π
As computer science breaks down into smaller categories, so do the jobs. This is just a smattering of different coding jobs out there (and if you want to see a more in-depth look at jobs, feel free to check out some articles on coding jobs. If you remember our prior discussion on computer programming vs. computer science, you’ll know that these jobs will lean toward one or the other (or occasionally overlap). Just know that the definition of job titles and tasks associated may shift depending on the company that is writing the job description.
- .NET Developer - A programmer who creates online software, applications, and interfaces specific to the .NET framework
- Application Developer - Creates and tests applications for electronic computing devices, i.e. mobile development
- Database Administrator - Ensure that databases run efficiently and stay secure
- Database Developer - Design, program, and implement new databases, along with upgrading and revamping old ones
- Data Scientist - Uses data to develop hypotheses based on current customer and market trends
- Frontend Developer - Develops the graphic interfaces that a client or web user will see
- Fullstack Developer - Does both front and back-end development
- Hardware Engineer - Research, design, develop and test new computer systems and components, such as circuit boards and processors
- Information Security Analyst - Monitor an organization’s network for breaches in security, often investigating when breaches do occur
- IT Auditor - They make sure that an organization’s systems and infrastructure run as efficiently as possible
- IT Project Manager - Plan and allocate resources to meet an organization’s needs
- Java Developer - Develops applications and software with the Java programming language
- Network Administrator - They organize, install and support computer systems for companies
- Network Architect - Plans, designs, and implements data communication networks for a specific organization or company
- Network Security Engineer - Designs and updates security systems for organizational networks
- Programmer Analyst - Tests and troubleshoots different computer applications and programs
- Software Architect - Frames technical standards and makes high-level design choices
- Software Developer - Designs, programs, and builds computer software
- Systems Analyst - Analyzes computer processes and operations to increase efficiency
- UX Designer - Does research and data analysis to improve user experience
- Web Developer - Creates websites; making them not only visually appealing and user-friendly but maintaining their performance as well
How much do computer scientists make? π
Computer scientists can rake in as much as $142,650 annually, making that a hefty $68.58
per hour (circa 2021). On top of a monetary salary, most computer scientist jobs include common benefits such as insurance plans, retirement savings, and tuition reimbursement. Check out our article on the highest paying CS jobs if you want a better breakdown of the salary data.
On top of making a pretty penny, job growth in this sector is predicted to climb 22% for computer and information research scientists, meaning the need for computer science jobs will increaseβand in an ever-changing world, that means job security.
Do you need a degree to work in computer science? π
You do not need a degree to work in computer science or programming! There are some jobs that will require a degree, but those employers are in the minority. You can learn to program online, and you can even learn the academic side of computer science without going back to school. You might be interested in a CS certificate, but even that isn’t strictly necessary. The most important thing is to gain the requisite coding skills.
Do computer scientists work at home or in the office? π
Where a computer scientist works is entirely up to you (and your employer). Remote computer science jobs will save you time and that sweet, sweet gas money. Office jobs often provide varying perks to retain talent, and oftentimes have tighter-knit work groups. If you have a super distracting home environmentβscreaming baby, barking dogβyou may want to take advantage of an away-from-home environment. If hearing your gum-chewing and pen-clicking coworker who always plays his music too damn loudβnot to mention a long commute through snails-paced traffic β you may want to consider a work-from-home environment.
Tools I’ve used as a computer scientist π
The tools a developer uses will vary quite wildly depending on where they work. That said, I can provide a list of some of the most common tools I’ve used at several different companies.
Communication π
- Slack
- Microsoft teams
- Gmail/email
- Zoom
Project Planning π
- Jira
- GitHub Projects
- Trello
Source control π
- GitHub
- Gitlab
- Bitbucket
Continuous Integration / Continuous Deployment π
- GitHub actions
- Gitlab runners
- Circle CI
- Travis CI
Infrastructure π
- Kubernetes / Helm
- Docker Swarm
- Docker
- AWS / GCP / Azure / Digital Ocean
Databases π
- Postgres
- ElasticSearch
- BigTable
- Spanner
- Mongo
- Redis
Writing code π
- VS Code
- Jet Brains
- Atom
- Vim
Programming Languages π
- Golang
- JavaScript (NodeJS, Express, React.js, Vue.js)
- Python (Django, Tensorflow)
- C++
- Ruby (Rails)
How do I get started learning computer science? π
Computer scientists are logical thinking, computer-savvy folk that know how to dig deep to solve problems. If you want to pursue an interest in computer science, consider starting with our computer science for back-end developers track at boot.dev. We would love to help you on your way. Good luck.