10 answers
10 answers
Updated
Angelo’s Answer
Hi Bruce!
I think it's really fun! To be practical though, it will depend on different things like the company you work at, your interests, and the team you're working with. But when your interests align with your work, and you have good people to support you, I think this field can bring you a lot of joy. I especially love this field because each problem is something new, but you often have the tools to solve them.
This field also requires a lot of collaboration. There are people you'll work with to determine what needs to be done, and other people who review or depend on your work! I would definitely get some practice working in software teams by joining a coding club, starting a project with some friends or getting an internship. Most of our day-to-day work is individual, but when we learn to support each other, we can make really great software (and enjoy the company of our team). Don't underestimate this! It does take practice to balance individual work with the time of others (they have their own things to do too!)
Also, be ready to learn - every day! Software has become so complex that it's impossible to understand everything about some technology or remember everything, so you will often find yourself Googling how to do something - and that's okay, everyone's in the same boat! You're not a bad engineer just because you don't remember which Java Map to use - the sign of a good engineer is that they know how and when to look for the right tools for the job.
I think it's really fun! To be practical though, it will depend on different things like the company you work at, your interests, and the team you're working with. But when your interests align with your work, and you have good people to support you, I think this field can bring you a lot of joy. I especially love this field because each problem is something new, but you often have the tools to solve them.
This field also requires a lot of collaboration. There are people you'll work with to determine what needs to be done, and other people who review or depend on your work! I would definitely get some practice working in software teams by joining a coding club, starting a project with some friends or getting an internship. Most of our day-to-day work is individual, but when we learn to support each other, we can make really great software (and enjoy the company of our team). Don't underestimate this! It does take practice to balance individual work with the time of others (they have their own things to do too!)
Also, be ready to learn - every day! Software has become so complex that it's impossible to understand everything about some technology or remember everything, so you will often find yourself Googling how to do something - and that's okay, everyone's in the same boat! You're not a bad engineer just because you don't remember which Java Map to use - the sign of a good engineer is that they know how and when to look for the right tools for the job.
Updated
Jessica’s Answer
Change. Expect change. Application Analysis is also in the field of computer science. My recommendation is find out the current 'needs' and be creative in finding ways technology can meet them. Be aware that needs change and technology changes so you have to balance providing a quality product using the tools at your disposal. This sometimes means making a case for a new technology to better support the needs of the business.
Updated
Bruce’s Answer
From one Bruce to another!
I decided on CS when I was at school because I enjoyed the first introductory programming class very much and knew that there would always be many jobs in many locations with good pay to do something I enjoy.
That was decades ago and in my career I have:
Done full on coding translating one language to another
- Written fresh code
- Designed and implemented databases and applications
- Worked in IT maintaining large computer system and writing many scripts
- Designed and implemented web pages and sites
- Worked in Customer Support configurating database setup specializing in automation solutions (scripts, formulas)
There are lots & lots of other options at huge international corporations (lots of opportunity for job changes once you're in the door) and tiny companies with no other tech knowledge, and startups, school districts, manufacturing, shipping, public sector (government, etc), non-profits, and on and on.
I also love the diversity I've always worked with people from all parts of the world, races, religions, languages, ages, genders & associations. Everyone can contribute and be respected and appreciated. Really truly love that.
If you enjoy your CS program, you will find many job opportunities. Like other occupations, there will be lots of other qualified candidates each time you apply for a job. One person will get selected each time. It won't be you every time, but it will be eventually, so hang in there!
I decided on CS when I was at school because I enjoyed the first introductory programming class very much and knew that there would always be many jobs in many locations with good pay to do something I enjoy.
That was decades ago and in my career I have:
Done full on coding translating one language to another
- Written fresh code
- Designed and implemented databases and applications
- Worked in IT maintaining large computer system and writing many scripts
- Designed and implemented web pages and sites
- Worked in Customer Support configurating database setup specializing in automation solutions (scripts, formulas)
There are lots & lots of other options at huge international corporations (lots of opportunity for job changes once you're in the door) and tiny companies with no other tech knowledge, and startups, school districts, manufacturing, shipping, public sector (government, etc), non-profits, and on and on.
I also love the diversity I've always worked with people from all parts of the world, races, religions, languages, ages, genders & associations. Everyone can contribute and be respected and appreciated. Really truly love that.
If you enjoy your CS program, you will find many job opportunities. Like other occupations, there will be lots of other qualified candidates each time you apply for a job. One person will get selected each time. It won't be you every time, but it will be eventually, so hang in there!
Updated
Jorge’s Answer
Hi Bruce
In the area of computer science there is a great opportunity for personal and professional growth, since modern life is based on technology, much of which is made by people who studied or learned by themselves some of the aspects of this type of work.
I studied systems engineering and started very young to work as a programmer, but my career has led me to help solve problems in many industries: Finance, Agriculture, Telecommunications, Government, Military, etc. and I am always learning something new.
Here is an example of how I advanced in my career:
* Programmer - I was practically coding every day to create pieces of software.
* Business Analyst - I got bored of coding and now I participated in the analysis of the problems to be solved with code.
* Industry Consultant - I advanced in my career and became an expert in some industries and help companies solve problems using technology.
In the area of computer science there is a great opportunity for personal and professional growth, since modern life is based on technology, much of which is made by people who studied or learned by themselves some of the aspects of this type of work.
I studied systems engineering and started very young to work as a programmer, but my career has led me to help solve problems in many industries: Finance, Agriculture, Telecommunications, Government, Military, etc. and I am always learning something new.
Here is an example of how I advanced in my career:
* Programmer - I was practically coding every day to create pieces of software.
* Business Analyst - I got bored of coding and now I participated in the analysis of the problems to be solved with code.
* Industry Consultant - I advanced in my career and became an expert in some industries and help companies solve problems using technology.
Updated
Nathan’s Answer
My career started after I finished my Computer Science degree in the early 2000's. It was shortly after the dot.com bubble burst and it was difficult to break into the tech industry right out of college, especially if you hadn't gone to a school that was well known for Computer Science. I was able to find a job doing web development work for a small lead generation company.
That first job wasn't a great job. Financially I would have been better off working in a coffee shop. It wasn't meaningful work, lead generation is often a shady portion of the advertising industry. The office environment wasn't great, I worked in an open room with people whose job involved talking on the phone all day so it was very difficult to focus at times. Even though it wasn't a great job, I was getting paid to build software and improve my skills. That first job ended after management mistook seasonal changes in demand for growth and attempted to grow too quickly, the employees paid the price.
After that first job I went to work at a small web development firm building websites and applications for all kinds of different clients. At this point in my career it became very obvious that Computer Science can be applied in all sorts of industries and most of them have interesting problems to be solved.
I worked at a few more small companies building websites and applications to solve their needs and continuing to improve my software engineering skills. I started applying for positions at various tech companies with little success at first. After years of improving both my technical and interviewing skills I was able to get a job at a Silicon Valley headquartered technology startup that built a software monitoring product I had been using for several years.
It has been a great job. I have been able to work on a product that I valued which helps other software professionals like me in their jobs. The office environment and financial incentives have also been dramatically better than those of my early career. Working for a software company with an engineering organization which has people from diverse technical backgrounds and varying levels of experience accelerated the pace at which I was able to improve my software engineering skills. Working with experienced mentors and being able to mentor to less experienced engineers is tremendously valuable.
Even at my best jobs things aren't always easy or fun. There are always difficult times ranging from high pressure deadlines, issues that page you in the middle of the night, unclear requirements or expectations, and many others.
What I have learned over time:
- Expect change, learn to adapt to changes.
- Always keep learning and expanding your skills.
- Look for work that you find meaningful, it makes the difficult times worthwhile.
- There are interesting technical problems to solve in every industry and size of company.
- Entry level jobs can suck, keep learning and use them as a step to something better.
- No matter how good you are at your job it can end due to circumstances outside of your control.
- The job market fluctuates, there are times when opportunities are not as available or desirable.
That first job wasn't a great job. Financially I would have been better off working in a coffee shop. It wasn't meaningful work, lead generation is often a shady portion of the advertising industry. The office environment wasn't great, I worked in an open room with people whose job involved talking on the phone all day so it was very difficult to focus at times. Even though it wasn't a great job, I was getting paid to build software and improve my skills. That first job ended after management mistook seasonal changes in demand for growth and attempted to grow too quickly, the employees paid the price.
After that first job I went to work at a small web development firm building websites and applications for all kinds of different clients. At this point in my career it became very obvious that Computer Science can be applied in all sorts of industries and most of them have interesting problems to be solved.
I worked at a few more small companies building websites and applications to solve their needs and continuing to improve my software engineering skills. I started applying for positions at various tech companies with little success at first. After years of improving both my technical and interviewing skills I was able to get a job at a Silicon Valley headquartered technology startup that built a software monitoring product I had been using for several years.
It has been a great job. I have been able to work on a product that I valued which helps other software professionals like me in their jobs. The office environment and financial incentives have also been dramatically better than those of my early career. Working for a software company with an engineering organization which has people from diverse technical backgrounds and varying levels of experience accelerated the pace at which I was able to improve my software engineering skills. Working with experienced mentors and being able to mentor to less experienced engineers is tremendously valuable.
Even at my best jobs things aren't always easy or fun. There are always difficult times ranging from high pressure deadlines, issues that page you in the middle of the night, unclear requirements or expectations, and many others.
What I have learned over time:
- Expect change, learn to adapt to changes.
- Always keep learning and expanding your skills.
- Look for work that you find meaningful, it makes the difficult times worthwhile.
- There are interesting technical problems to solve in every industry and size of company.
- Entry level jobs can suck, keep learning and use them as a step to something better.
- No matter how good you are at your job it can end due to circumstances outside of your control.
- The job market fluctuates, there are times when opportunities are not as available or desirable.
Updated
Bindhu’s Answer
Great question, We could wear multiple hats for Computer Science Jobs. After obtaining the degree of computer science, the main question that would pop up in mind is how I could apply the theory/labs that I learnt over the previous years. We should assess our strengths and weaknesses.
For e.g. if you are having a great knowledge about data structures, then you could start building your software engineering career and could extend the role as a Lead Software Engineer/VP of Engineering in future.
If you have interest in building things from scratch, you could be a great architect and apply your skills to give life for lot of modules
You could spend your career in artificial intelligence/machine learning which is very hot in the market nowadays
If you do not like sit behind the desk whole day, you could build your career by being a business analyst or people/project manager. This would help to build relationships and meet people from different horizons.
If you are keenly looking for what went wrong, you could have a career in quality assurance workstream
I love to interact with people, hear out their needs, understand pain points and current processes, think through that and put the best judgement to help out them. My role as a program manager is helping me out to do this on a daily basis and I love what I am doing and I am very passionate about the same.
For e.g. if you are having a great knowledge about data structures, then you could start building your software engineering career and could extend the role as a Lead Software Engineer/VP of Engineering in future.
If you have interest in building things from scratch, you could be a great architect and apply your skills to give life for lot of modules
You could spend your career in artificial intelligence/machine learning which is very hot in the market nowadays
If you do not like sit behind the desk whole day, you could build your career by being a business analyst or people/project manager. This would help to build relationships and meet people from different horizons.
If you are keenly looking for what went wrong, you could have a career in quality assurance workstream
I love to interact with people, hear out their needs, understand pain points and current processes, think through that and put the best judgement to help out them. My role as a program manager is helping me out to do this on a daily basis and I love what I am doing and I am very passionate about the same.
Updated
Zahid’s Answer
It varies greatly on the type of job you have. Some companies have great on boarding process, they give you a nice set up, slowly ease you into the job, have a mentor in place for you to go to. Other companies, you are thrown in head first and have to learn fast and on the go, often putting out fires everyday and can be quite stressful. So lot of it depends on what kind of an employer you end up with. Your work load and type will also vary on the size of the company, at smaller companies you will wear many hats and doing many jobs where as at a larger company you will probably work on project or on aspect of the project.
When I was with a larger company, we had daily stand up meetings where we share 1. what we did yesterday, 2. what we are working on, 3. what hurdles we are facing, 4. where we could use some help. And then you go do all that for rest of the day. Sometimes you get a lot done in one day while other times you get nothing done as you have to research more on the problem, rewrite some aspect of the code, had to many other meetings to attend to or some other things.
Overall, it is a fun job but quite tasking on the mind as well. Some days you just sit and code away because you know what you need to do. Other days you sit pulling your hair out trying to either understand the issue/problem or how to solve it.
When I was with a larger company, we had daily stand up meetings where we share 1. what we did yesterday, 2. what we are working on, 3. what hurdles we are facing, 4. where we could use some help. And then you go do all that for rest of the day. Sometimes you get a lot done in one day while other times you get nothing done as you have to research more on the problem, rewrite some aspect of the code, had to many other meetings to attend to or some other things.
Overall, it is a fun job but quite tasking on the mind as well. Some days you just sit and code away because you know what you need to do. Other days you sit pulling your hair out trying to either understand the issue/problem or how to solve it.
Updated
Mickael’s Answer
Hi Ever,
What it is like to be in the Computer Science?
Fun, busy and interesting.
Let me expand.
Computer Science, especially in the coming decades, is growing. Do anything from anywhere ... Be smarter, save money ... All of these require computer and software. And cyber-security is now a must. So you'll be busy.
And needs from users is always growing, changing ... Users, nowadays, do not have the same expectations when dealing with applications than during the 1990's ...
Technology is ever growing so you need to keep learning to stay on top of things. Or at least able to learn to catch up when you need it. Problems are also becoming more interesting. When it used to be a single computer doing all, it is now a distributed environment, sometimes virtual and you need to adapt your solutions to this.
My days usually look like:
- check for new defects reported by the Continuous Improvement tools and triage them.
- discuss with team members about their problem.
- write fresh code.
- fix defects that are triaged.
- help support solving hot customer issues and then try to figure the best next step(s).
- write documentation.
- learn new topics that may be related to my day-to-day work or that may become based on my career goals.
- attend design meetings.
- and more ...
What it is like to be in the Computer Science?
Fun, busy and interesting.
Let me expand.
Computer Science, especially in the coming decades, is growing. Do anything from anywhere ... Be smarter, save money ... All of these require computer and software. And cyber-security is now a must. So you'll be busy.
And needs from users is always growing, changing ... Users, nowadays, do not have the same expectations when dealing with applications than during the 1990's ...
Technology is ever growing so you need to keep learning to stay on top of things. Or at least able to learn to catch up when you need it. Problems are also becoming more interesting. When it used to be a single computer doing all, it is now a distributed environment, sometimes virtual and you need to adapt your solutions to this.
My days usually look like:
- check for new defects reported by the Continuous Improvement tools and triage them.
- discuss with team members about their problem.
- write fresh code.
- fix defects that are triaged.
- help support solving hot customer issues and then try to figure the best next step(s).
- write documentation.
- learn new topics that may be related to my day-to-day work or that may become based on my career goals.
- attend design meetings.
- and more ...
Updated
Gerald’s Answer
The Computer Science field is amazing. There are many career paths to chose from. Once you start working and have some experience under your belt, you'll learn what you enjoy or don't enjoy doing and you'll know for sure what you really want to do on a day-to-day basis.
Updated
Chetan’s Answer
Main thing needed to work in this field is - knowledge of Computer Science fundamentals and hands on coding.
There are two main roles that require different set of expertise.
For example,
Software Developer/Programmer - hands on coding with deeper knowledge of data structure, algorithms, etc.
Software Testers - deeper knowledge of the product so that they can test the product for all the supported functionalities with experience in
automation (i.e. automating the testing with writing code)
Other than this there are again many other roles such as,
System Administrator - who do all the administration work for computer systems
Database Administrators - who manages all the administration activities related to databases
And many others new roles are emerging. So there are lot many different opportunities this field provides.
And as you progress in your role with many years of experience, you can move to management roles (Managers).
There are two main roles that require different set of expertise.
For example,
Software Developer/Programmer - hands on coding with deeper knowledge of data structure, algorithms, etc.
Software Testers - deeper knowledge of the product so that they can test the product for all the supported functionalities with experience in
automation (i.e. automating the testing with writing code)
Other than this there are again many other roles such as,
System Administrator - who do all the administration work for computer systems
Database Administrators - who manages all the administration activities related to databases
And many others new roles are emerging. So there are lot many different opportunities this field provides.
And as you progress in your role with many years of experience, you can move to management roles (Managers).
Delete Comment
Flag Comment