Many computer science jobs are available to those who earn associate and bachelor degrees, usually in computer science, software engineering or a related field. Coursework here includes higher math such as calculus and analytic geometry, physics, and computer science. Areas of specialized study within computer science include artificial intelligence, robotics and gaming. Those interested in pursuing a career as computer and information research scientists need a Ph.D. in computer science or a related subject, such as computer engineering. A doctorate typically requires four to five years of postgraduate study in a computer-related field such as computer science or information systems.
Jobs in Computer Science
Jobs in computer science range from computer research scientist and computer systems analyst to network analyst and software engineer. Similar occupations include computer and information systems managers, computer hardware engineers, software developers computer programmers, computer network architects and database administrators. Those who earn degrees in computer science are prepared to do research as theorists, designers and inventors and work to solve computer software and hardware problems either through research or development or both.
What Comprises Computer Science
Those in the field of computer science work with many layers of computer systems. These layers include information, computer hardware, low and high level programming languages, problem solving and algorithms, abstract data, computer operating systems, applications, computer communications through networks and the Internet, and computer security. Computer science requires an understanding of computer systems and their functions and operations.
Job Outlook in Computer Science
The employment outlook for those with careers in computer science is very good. The Bureau of Labor Statistics' May 2011 report on computer and information scientists projects that the number of jobs for computer research scientists will grow 19% from 2010 to 2020. The projected growth rate for software developers is 30%. Both figures are above the average expected growth rate for all jobs. Keeping skills relevant with the most current software and computer systems is important to be competitive in the computer science job market.
The answers above are great. Also, I think computer science has more multidisciplinary connections nowadays. So, a computer scientist should also be aware of general multidisciplinary developments that may be subject of computer science to improve.
I would start by asking yourself the question, "Why do I want to train myself to be a good computer scientist?" The answer to this question will give you a lot of help in deciding how to proceed. If the answer is that I am really interested in the area and want to further my own knowledge, then that is fine, and you will be able to proceed doing just that at your own pace.
However, if you are considering learning how to become a computer scientist with a view to working in the field at a later date, then you need to take a slightly different approach. For a start, very few companies will be willing to take on a "self-taught" computer scientist. They want their staff to have some form of recognised qualification. Also, there will be an expectation that you will have some kind of good work experience behind you. Which presents you with a bit of a chicken and egg situation. This means you will have to attain some form of recognised formal qualification. There are a wide range of possibilities here. You can simply attend low level practical courses where you learn some technical skills, and you are awarded a certificate on successful completion of the course. Many of these are offered by professional training firms, and others can be offered by technical colleges. You could do an undergraduate university degree, a master's degree or even a PhD in computing science, but this would involve a serious commitment of both time and money. Obviously, the recognition is greater the further up the learning tree you travel, as can be the rewards.
Computing Science is one of the youngest disciplines, yet also happens to be a very wide ranging discipline indeed. Of course, it has its foundations in the mists of time, since much of what is done in the field today is enabled by past discoveries in a diverse range of disciplines, without which there would be no computing science today. But equally, it is a fast moving discipline, and change can occur with lighning speed, leading to new problems arising. Computing services are now used across business, government, education, and every other conceivable area, as well as for personal use. Computers are now used by every imaginable discipline, which means there is now a much greater focus on cross discipline collaboration. And, of course, there is the question of security to take into account. The benefits of using computing within society are indeed great, but bad actors have discovered how easy it can be to turn this great benefit for society to their own nefarious ends. This has now become a massive problem for society.
So, for my advice, I am going to assume you would want to obtain some formal qualification, and I will start with your question, what are the characteristics of a good computer scientist? I would suggest a keen interest in the field would be a great starting point. If you are interested in, and excited by, any discipline, you will generally always go further and faster than someone who is just going through the motions. You will require self-discipline, attention to detail, the ability to remember complex formulae. You will need to have an enquiring mind, and the ability to think through complex problems. You will need to be tenacious, and not be discouraged easily in the face of adversity. You will want to be able to think for yourself, and not be someone who must always be led by others. You will not be afraid to try new ideas, you will have self-belief in your own capabilities. You will need to be accurate in your work. You will need to learn to read a great deal of material, both efficiently and quickly. I would say these are core characteristics, attributes and capabilities which will put you in good stead on your journey to becoming a good computer scientist.
Even if you intend going down the formal training route through a university degree, you can start your journey off by first reading as much as you can about computing science. Try to find out about all the different branches of the discipline of computing science. Try to teach your self a computer language. Perhaps start with learing one of the oldest: the C programming language (still in use today) to see whether you have the aptitude for it. There are plenty of online tutorials, books and articles you can pick up for free to get you started. Learn how to use basic business office software tools. These are really useful things to do to get you prepared for undertaking a university degree. Try to produce something new every day, even if it is small. You will feel good about your progress and you will be learning regularly, which you will need to be able to do for a long time to come. Even if you end up with a PhD, you wil still need to keep on learing. In computing Science, nothing stays the same. Change is constant. If you start with the right attitude, you will enjoy your journey much more, you will be better prepared for learning, and you will be able to achieve the goal of becoming a good computer scientist.
Do bear in mind it won't be easy, it will take a lot of application and hard work over a considerable length of time, but it will be worth it in the end.
Good luck on your journey, and if you want any further advice, just ask.