3 answers
Asked
578 views
What kind of in-depth description could I get for the daily schedule, requirements, and work environment of a Computer Scientist?
I am in eighth grade, and I want to get a better understanding of Computer scientists.
#computer-science
Login to comment
3 answers
Updated
Mickael’s Answer
Hi Jonathan,
Computer Science is a very broad field. There are many different jobs in this domain. I have a master degree in computer science, and became a software developer. As my experience grows with time, I get to do more and more things in my day:
- Checks for other team members' work that work remotely.
- Check my e-mails (and yes we get many)
- Start doing my actual work:
-- Design solutions for new features
-- Develop the solution
-- Analyze issues detected during test automation or reported by a tester
-- Fix an issue
-- Test team members' fixes (sometimes)
- Mentor younger team members
- Reply to question when my expertise is needed
- Be part of meetings when my expertise is needed.
- Look for new technology that may be helpful in my work
- Attend trainings to get familiar with new technologies
Usually, to get into computer science, you need a bachelor degree (in the USA). Higher degrees are welcome but at least a bachelor degree in computer science. Then, depending on the job you are looking for within the domain, we expect you follow some relevant courses. Even if employers agree that most just grade employees know almost nothing, you are supposed to know at least the theory.
For example, if you want to get into computer science to develop applications, employers will expect you know algorithms, data structures commonly used in computer science and one programming language (at least).
Computer Science is a very broad field. There are many different jobs in this domain. I have a master degree in computer science, and became a software developer. As my experience grows with time, I get to do more and more things in my day:
- Checks for other team members' work that work remotely.
- Check my e-mails (and yes we get many)
- Start doing my actual work:
-- Design solutions for new features
-- Develop the solution
-- Analyze issues detected during test automation or reported by a tester
-- Fix an issue
-- Test team members' fixes (sometimes)
- Mentor younger team members
- Reply to question when my expertise is needed
- Be part of meetings when my expertise is needed.
- Look for new technology that may be helpful in my work
- Attend trainings to get familiar with new technologies
Usually, to get into computer science, you need a bachelor degree (in the USA). Higher degrees are welcome but at least a bachelor degree in computer science. Then, depending on the job you are looking for within the domain, we expect you follow some relevant courses. Even if employers agree that most just grade employees know almost nothing, you are supposed to know at least the theory.
For example, if you want to get into computer science to develop applications, employers will expect you know algorithms, data structures commonly used in computer science and one programming language (at least).
Updated
Melissa’s Answer
I'm a software developer with many years of experience and my days currently look like this:
* Most days I have several meetings, starting with a short "standup" meeting, to discuss what you're working on and any problems you've encountered, at the beginning of the day. I work remotely for a company without an office in my area, so all meetings are over Zoom. Meetings vary a lot in how useful they are; in a good company, you will have mostly useful meetings!
* A good chunk of the day is spent on software development work. Some of this is programming, either on my own or "pair" or "mob" programming with other members of my team; this can include new development as well as maintenance of existing software. Some of it is planning for future projects, which can include brainstorming, research, small proof-of-concept programming projects, etc. Some of it is analyzing past projects and current systems to determine what's going well and what needs fixing.
* I spend a portion of most days advancing my skills, though reading & researching, experimenting with new languages and tools, discussing CS topics with other engineers, etc.
* There is also social time, and time devoted to the company culture. Because many members of my team are not co-located, and everyone's been mostly remote for the last couple of years due to Covid, we have social events over Zoom, including lunches, happy hours, games, charity events, etc.
Back in the '90s and early '00s, I usually had an office shared with another developer. Individual offices are rarer now and it's more common to have a large office shared with many team members. The nature and quality of office space depends on the employer, so take note when you interview. As a remote developer, my work environment is my home. I've set up my work area in a way that's comfortable for me, with the crucial equipment (laptop & peripherals) provided by my employer.
* Most days I have several meetings, starting with a short "standup" meeting, to discuss what you're working on and any problems you've encountered, at the beginning of the day. I work remotely for a company without an office in my area, so all meetings are over Zoom. Meetings vary a lot in how useful they are; in a good company, you will have mostly useful meetings!
* A good chunk of the day is spent on software development work. Some of this is programming, either on my own or "pair" or "mob" programming with other members of my team; this can include new development as well as maintenance of existing software. Some of it is planning for future projects, which can include brainstorming, research, small proof-of-concept programming projects, etc. Some of it is analyzing past projects and current systems to determine what's going well and what needs fixing.
* I spend a portion of most days advancing my skills, though reading & researching, experimenting with new languages and tools, discussing CS topics with other engineers, etc.
* There is also social time, and time devoted to the company culture. Because many members of my team are not co-located, and everyone's been mostly remote for the last couple of years due to Covid, we have social events over Zoom, including lunches, happy hours, games, charity events, etc.
Back in the '90s and early '00s, I usually had an office shared with another developer. Individual offices are rarer now and it's more common to have a large office shared with many team members. The nature and quality of office space depends on the employer, so take note when you interview. As a remote developer, my work environment is my home. I've set up my work area in a way that's comfortable for me, with the crucial equipment (laptop & peripherals) provided by my employer.
Updated
Ramesh’s Answer
Is your question about what one does after getting a Bachelor's degree in Computer Science (CS) ? if so, a fresh graduate in CS starts off as a Software Developer. An entry level Software Developer designs, codes, and tests components of a Software system with guidance from experience Software Architects / Computer Scientists.
Computer Scientist title typically applies to mid level and above Software Developers who architect and build Systems. (As Mickael Rosenberg posts pointed out).
https://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm gives a formal definition of the role and responsibilities.
Depending on the phase of a project a Computer Scientist will focus on different aspects of the role:
a) Concept phase: Design, Evaluate, Prototype solutions; Define/Iterate Software Architecture for the solution
b) Implementation phase: Mentor team members on implementation of components, Design and Code Reviews, Implement/test a component
Phases a) & b) may take 2-4 weeks cycles in some projects; many such iterations make up the overall project.
Phase a) may take 2-3 months and phase b) 2-3 months in some projects.
Computer Scientist title typically applies to mid level and above Software Developers who architect and build Systems. (As Mickael Rosenberg posts pointed out).
https://www.bls.gov/ooh/computer-and-information-technology/computer-and-information-research-scientists.htm gives a formal definition of the role and responsibilities.
Depending on the phase of a project a Computer Scientist will focus on different aspects of the role:
a) Concept phase: Design, Evaluate, Prototype solutions; Define/Iterate Software Architecture for the solution
b) Implementation phase: Mentor team members on implementation of components, Design and Code Reviews, Implement/test a component
Phases a) & b) may take 2-4 weeks cycles in some projects; many such iterations make up the overall project.
Phase a) may take 2-3 months and phase b) 2-3 months in some projects.