Skip to main content
16 answers
17
Asked 889 views

Those who work with computers: what does your typical day look like?

I am interested in CS but don't know a lot about the work environment.
If you could also mention your specific field, that would be great

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

17

16 answers


3
Updated
Share a link to this answer
Share a link to this answer

Lirio’s Answer

A typical day in computer science varies by role. For a software developer, the day starts with checking emails and a quick team meeting to discuss progress and goals. Most of the day involves coding, fixing bugs, and collaborating with designers and product managers to ensure the software meets user needs. For a data scientist, mornings are spent analyzing data and cleaning data sets. This might be followed by meetings with stakeholders to share insights and then working on algorithms in the afternoon. A cybersecurity analyst begins by reviewing security alerts and prioritizing any urgent issues. They then work on projects to strengthen security and may conduct training sessions for employees on best practices. In IT support, the day starts with reviewing support tickets and prioritizing urgent problems. Most of the day involves troubleshooting technical issues, documenting solutions, and following up with users to ensure everything is resolved. Across all roles, teamwork and communication are important, and continuous learning is a key part of staying updated in the fast-changing tech field. Each role also involves a lot of problem-solving, whether it’s debugging code, analyzing data, or securing systems.
3
1
Updated
Share a link to this answer
Share a link to this answer

Itisha’s Answer

Hello !! I have been a software engineer for about 8 years now. From last 5 years, I have been working solely as a data engineer, which in layman terms, involves data refining, making it structured so that it can be easily used for analysis and analytics.

Note: To know the difference about analysis and analytics. Read my article here: https://medium.com/@kothiyalitisha/what-does-your-data-need-analysis-or-analytics-e80f3f989b5f

I will answer your question for the following job roles in the CS field: Software engineer, Data Engineer, Data Analysts, AI/ML engineer.

In these roles, you will be assigned to a project in which you will have daily tasks/stories appearing on your Jira board (if Agile methodology is followed). If your project is not based on Agile, there may be other ways your tasks get documented and you need to provide daily status/updates on the completion of these tasks. The tasks are ranked different priorities and if not, it is your job to ask for the priority of the different tasks because you need to know what needs to be handled first in case of multiple tasks, especially if all of them are time-consuming.

Then there are daily status calls, in which all team members update the status of the work, what is pending and why. Sometimes, these calls also extend to resolve an issue which has been pending for long and needs to be addressed soon.

You coordinate with your team members on pushing/merging your code in github and resolving merge issues if any. This is all to ensure a successfully working code exists in the master branch.

Before and while working on a project module, developers work on technical design documentation (TDDs), which is like a backbone if anyone wants to understand the module. These documents contain the blue print of the code.

Once your code is completed, it gets reviewed as part of peer-reviews and lead-reviews which is done by a senior developer. It is only after these reviews that your code is passed and sent for testing.

There are cases when your team faces a critical issue which has never occurred before and hence you document such scenarios along with their solutions and maintain it as your knowledge base along with the coding standards documents followed by your team.

Typically when someone new joins your team, these documents come in handy as they are used in the knowledge transfer process (KT). Every tea, maintains such documents which contain the basic understanding of the project along with its different modules running.

Apart from this, the work load typically increases at the time of testing (SIT, UAT). This is the time when every part of your application is tested by the testing team and you are assigned defects whenever a code piece is not working as per the expectation of the business or the functional document. This phase goes quite back and forth since the defects roll between development team, testing team or third party vendor (if involved) quite a lot.

Then there are client demo and RFP(Request for proposal) sessions, in these sessions the team lead and the core team members work together to deliver a presentation of the application/product to the client about what have been developed and achieved so far. In RFP sessions, its more about the layout and plan of action which is presented to the client based on the work that has been already achieved as part of another project (so its more like bidding for a project proposal).

These are some of the activities/tasks in the daily life of a developer working in the above-mentioned roles.

I hope it helped you gain some insight.
Thanks!!
Thank you comment icon Thank you so much! Joel
Pending review We will review this content before it's visible to others to make sure it follows our guidelines. Learn more.
1
1
Updated
Share a link to this answer
Share a link to this answer

Sean’s Answer

This is a great question. Many people want to get into technology or computers, but a lot of people don't realize how many different disciplines and job categories there are in technology. There are obviously programmers - people who write code. There are several sub-disciplines in this category depending on what software languages you want to program in and what types of software and systems. There are web developers, front-end developers, mobile, cloud, gaming, etc. There is also hardware. Jobs in this category can range from people that do set up and installations or perform repairs and maintenance, e.g. A+ technicians. There are also engineers that design and build hardware and components, e.g. boards, CPUs, chips, etc. Another category is data. This can include data scientists and analysts - these are people who try to understand and optimize what is stored, how it's stored, how is data used, shared, etc. Hottest roles in this space are big data analysts, AI, and large language modeling, etc. Database administration is an important role. This involves understanding relational database theory and being able to build table structures and ability to query databases to extract data. There are a variety of support and execution roles too. There are systems architects who figure out how multiple processes and technologies work together to produce desired outcomes. There are project managers that manage teams and/or develop plans and layout steps to achieving results. There are business analysts that identify and map out processes and assess how best technologies can support those processes or make them more efficient. There are help desk jobs that help users navigate problems with their software or hardware. And don't forget about sales and support. These jobs help companies take their products to market and ensure their customers are satisfied with the products. As you can see, there are many different opportunities for a great career in technology. You can start identifying which ones you like based on your current skill sets and preferences on what you would like to see yourself doing or how much money you want to make. Begin to look at job posting boards and examine the job descriptions, education and credentials/certifications required, salaries, etc. This should help you narrow down which direction you'd like to go in. Good luck in your career.
1
1
Updated
Share a link to this answer
Share a link to this answer

David’s Answer

Many people envision a typical day as eight silent hours, tirelessly tapping away at a keyboard. But in truth, it's a highly interactive daily journey. It involves dedicating one day each week to strategize and delegate work tasks. We usually have a quick 15-minute meeting to discuss everyone's current status and set the day's agenda, commonly known as the Daily Stand-up meeting. Throughout the week, there's a great deal of dialogue focused on problem-solving. However, the ultimate aim is to create a functional product, which will likely require around six hours of dedicated effort each day. This could involve coding, writing unit tests, documenting your work, reviewing a colleague's code, and more. If the team spirit is high, the workspace is filled with laughter and enjoyment.

David recommends the following next steps:

Find someone who is a working programmer and ask to spend a day at work with them
Thank you comment icon thank you! Joel
Pending review We will review this content before it's visible to others to make sure it follows our guidelines. Learn more.
1
1
Updated
Share a link to this answer
Share a link to this answer

Robert’s Answer

I work with a computer all day...but these days, everyone is using computers for various jobs. I would guestimate that at least 80% of jobs are using computers. For myself, I am using a computer to manage my company, so my typical tasks on the computer include: email management, building websites, SEO, digital marketing, and soooo much more.

But I've always had a deep passion for computers, so I know my way around them pretty well. I used to build my own computers when I was in high school. I also used them for gaming and so many other things.

In regards to developing your computer skills, I would recommend a job where you're using a variety of programs/applications so you can expand your skillset and make yourself more attractive to companies hiring. They usually want to hire someone that has experience with particular applications that they already use. Customer Service jobs can be a great starting point, but I would highly suggest you try messing around with various applications on your own time. It will pay off...it did for me. :)
1
1
Updated
Share a link to this answer
Share a link to this answer

Kajal’s Answer

Hi there,

At times, conducting research in the right direction and completing your work can bring about a sense of satisfaction. However, there are also instances where you might feel drained after investing a great deal of effort and not seeing much in return. In this line of work, it's essential to continually learn and stay current.
Thank you comment icon How adaptable do you have to be? I know that the current tech is always changing; how much harder does that make these kinds of jobs? Joel
1
1
Updated
Share a link to this answer
Share a link to this answer

Maggie’s Answer

Hi Joel! I'll answer your question with a different perspective, as there are a lot of different ways to work with computers! I work at a software company called Okta as a Technical Content Strategy Manager -- where I create technical enablement content for the Technical Account Management team. I was a Technical Account Manager for 3 years before this role, which is a post-sales role that helps new customers onboard and go live with Okta software. It's a really fun role that combines technical skills with customer and account management. All that to say, there are a lot of different ways to work with computers, so I would recommend taking a look at SaaS companies like Salesforce, Okta, Crowdstrike and see what job openings they have. Maybe you would prefer a role that has a technical focus but also works with customers? Or maybe a role within the Product organization? The sky's the limit! Good luck!
1
1
Updated
Share a link to this answer
Share a link to this answer

Jason’s Answer

It depends on role..but you should pick a role that fits your personality. For example, if you are really outgoing and like working with people and socializing then you may find a software development career boring. If you are more of an introvert and can heavily focus on tasks, you are analytical and self-managing, then a software development/programming role would be a good fit. A software, hardware or networking support role can often times involve working with customers which requires a high EQ and customer service skills.
1
1
Updated
Share a link to this answer
Share a link to this answer

Stacy’s Answer

Your day will differ between the company and the type of Customer Success role you are in. You could have several accounts, one large one, or a pool of customers that you manage via a queue or digital touch method.

My typical day is checking my calendar to get ready for my day. I then skim my emails and Slack for any urgent matters that might have come up during my off hours. After that I usually facilitate and or attend customer meetings, internal sessions related to clients, team sessions, or trainings. There are administrative tasks that are part of your daily grind - meeting notes, success plans, follow-up email communications to the customer. You would need to prioritize these items, so nothing falls through the cracks. My best practice is to block time on my calendar to complete those tasks.

It's important to be flexible and adaptable to change. There are many times where you may be supporting a customer whom you've established a strong relationship with and then they leave. You then have to start over and build a relationship with the new person. They may be on the same page or a detractor. The goal is to help them see the value in the product and how the company can solve their needs.

There are a lot of cross-department partnerships, so it's important to have skills in building and nurturing relationships. Being a team player and knowing that it takes everyone to ensure that the customer is happy is key. Be patience and don't give up. Always be eager to learn new things. It's a marathon, not a sprint. Make sure you take small breaks throughout the day and be aware of signs of burnout.
1
0
Updated
Share a link to this answer
Share a link to this answer

Erik’s Answer

As a senior software engineer there's a lot less active coding than you might think - as others have noted, it's much more about thinking and collaborating to figure out what the right solutions are to the problems you're faced with.

The goal of a software engineer's job is generally to solve a problem *somehow* in a way that results in a system that is easier to maintain, enhance, etc. If you can do that without writing extra code, or even better by removing code then that's a win. So the goal isn't just cranking out lines of code.

So my typical day involves mostly: interacting with colleagues on Slack or in meetings, reading code, figuring out problems, writing/reading docs, planning what we should be working on, working with others parts of the organization to deal with many push-down initiatives.
0
0
Updated
Share a link to this answer
Share a link to this answer

Emily’s Answer

A typical day for me consists of a few meetings with my teammates (mostly other software engineers), coding, reviewing my teammates' code, reviewing software design documents, testing my code, and the biggest one: thinking about code. I would say thinking about code is just coding though, because coding isn't usually like the movies, but just a lot of thinking about what to code.
0
0
Updated
Share a link to this answer
Share a link to this answer

Adit’s Answer

Hi there! I’m Adit, a Senior Software Engineer at Microsoft, and I’ve been working in the software industry for over 8 years. Let me walk you through what a typical day looks like for me, although I should mention that not every day is the same—it really depends on the priorities and the project I’m working on!

1. Morning Routine and Team Sync
I usually start my day by checking emails, messages, and any updates on tasks that might have come in from teammates. We typically have a daily stand-up meeting, where everyone on the team shares their progress, plans, and any obstacles they might need help with. This helps us prioritize tasks for the day, ensuring we’re aligned as a team.

2. Coding Days
Some days are dedicated almost entirely to coding. This means I can spend hours writing new features, refactoring existing code, or working on performance improvements. During these days, I get deep into solving technical challenges, writing efficient algorithms, and building scalable systems. Coding sessions can be intense but super rewarding, especially when you finally crack a tricky problem!

3. Debugging Days
Not every day is smooth sailing. Sometimes a significant portion of the day goes into debugging—tracking down bugs and issues in the software that need fixing. These bugs can come from user feedback, testing results, or even unexpected scenarios that arise in production. It’s like being a detective, digging into logs, analyzing data, and figuring out why something is broken. Debugging can be challenging, but the feeling of finally fixing an issue is incredibly satisfying!

4. Testing and Reviewing
On other days, I might focus more on testing the code. Writing unit tests, integration tests, and even manually testing new features is crucial to ensure everything works smoothly. I also spend time reviewing code written by my teammates, providing feedback, and ensuring that what we’re building is high-quality and maintains best practices. Code reviews are not just about catching mistakes but also a great learning opportunity for both the reviewer and the author.

5. Meetings and Collaboration
Some days involve a lot of meetings and collaborative discussions. Whether it's with other developers, product managers, or designers, we often need to brainstorm new ideas, discuss features, and plan out future work. These days are more about strategy and planning than hands-on coding. Sometimes, we may be focused on understanding the requirements of a new project or gathering feedback from users to improve what we’ve built.

6. Prioritizing Tasks
As a senior engineer, I also spend time setting priorities, deciding what tasks need to be tackled first, and planning ahead. This includes breaking down large projects into manageable tasks, estimating timelines, and making sure we’re staying on track with our deadlines. Not every day is the same—some days are coding marathons, while others might involve more planning and collaboration.

7. End of Day Reflection
Before wrapping up, I usually take some time to review what I accomplished, what didn’t go as planned, and what the next steps are. This helps me stay organized and ready for the next day. I also touch base with teammates to ensure we’re aligned for upcoming tasks.

Encouragement for You!
The great thing about a career in computer science is that it’s incredibly dynamic. One day you might be deep in code, solving complex algorithms, while the next day you could be working with a team to brainstorm innovative solutions to real-world problems. This variety keeps things interesting and ensures that no two days are exactly the same.

If you’re interested in problem-solving, creativity, and continuous learning, then computer science might just be the perfect field for you! Whether it’s coding, debugging, or planning, every part of the process contributes to building something impactful.

Good luck with your journey into computer science! There’s so much you can do, and the opportunities are endless. Feel free to ask if you’d like more insights!
0
0
Updated
Share a link to this answer
Share a link to this answer

Murali’s Answer

It varies by role. For a software engineer, checking emails, chat messages and stand up or meeting. 60% is coding, Design & fixing issues. 20% meetings and 20% Emails & Chats.
0
0
Updated
Share a link to this answer
Share a link to this answer

Hamza’s Answer

In computer science (CS), the work environment can vary significantly depending on the role, industry, and company size, but there are some common elements across the field. Here’s an overview:

Work Environment in CS:

1. Collaboration:

Teams often work together on large projects, with each member contributing to different parts (e.g., backend, frontend, or data management).

You’ll likely use project management tools like Jira, Trello, or GitHub to track progress.



2. Remote/Hybrid Work:

Many CS jobs can be done remotely, and some companies are fully remote. This allows flexibility, but can also mean needing strong self-discipline and communication skills for virtual teamwork.



3. Problem-Solving Focus:

Much of the day involves tackling problems, whether through debugging code, optimizing systems, or creating algorithms. It’s often a mix of creativity and logical thinking.



4. Fast-Paced Learning:

Technologies evolve rapidly, so staying up-to-date with the latest programming languages, tools, and best practices is a key part of the job. You may have to learn new things continuously.



5. Variety of Fields:

You can specialize in areas like software development, data science, cybersecurity, artificial intelligence (AI), web development, or cloud computing, among others.



6. Flexible Hours:

Depending on the company, many CS roles offer flexibility in work hours, especially in startups or tech-focused companies. However, deadlines or problem-critical situations might require extra hours.



7. Office Culture:

At tech companies, you might find informal, open office layouts, frequent meetings, or spaces for collaboration. Some environments are highly structured, while others, especially in startups, can be more relaxed.
0
0
Updated
Share a link to this answer
Share a link to this answer

Parag’s Answer

The day typically involves attending meetings, collaborating with team members, executing various tasks, reviewing documents provided by others, and communicating with customers or colleagues who interact with customers.
0
0
Updated
Share a link to this answer
Share a link to this answer

Jonathan’s Answer

With a degree in Computer Science, I chose to venture into the realm of Product Management at a large software firm, rather than delving into coding myself. This educational background has given me the opportunity to be involved in some of the most technically complex projects.

No two days are the same, but there are a few key tasks that I consistently focus on:

1. Understanding our users - My role involves getting to know our users in depth, whether that's through direct conversations, studying user feedback, reading about them, or other means. My aim is to grasp what our users truly need, and utilize this knowledge to enhance our product.
2. Familiarizing myself with the product - As a Product Manager, it's crucial that I use our product myself. It's important for me to be our product's number one user, understanding its workings from the inside out, to effectively shape its development.
3. Collaborating with my team - It's my responsibility to provide clear guidance to my engineering team regarding our priorities, plans, and future steps, hence steering the direction our product takes. This also involves ensuring the company's leadership is in sync with, and supportive of, our plans.
4. Interacting with other teams and organizations - Rarely are complex products created in isolation by one team. Most involve numerous dependencies. As a Product Manager, I liaise with both internal and external partners across various teams to ensure our product is well-rounded. This could involve aspects such as documentation, support, business planning, and numerous other areas.
0