Become a Computer Scientist

Being a Computer Scientist is not about programming; it is about the study of algorithms (a series of steps, understood by someone or something, in order to complete a task in a given number of steps). Many Computer Scientists don't program at all. Indeed, Edsger Dijkstra once said “Computer science is no more about computers than astronomy is about telescopes.”

Steps

Starting out

  1. Become a lifelong learner. Being a computer scientist is all about learning to be a student, not just during training, but for all time throughout your career. Technology changes, new languages develop, new algorithms are devised: you need to be able to learn new things to stay current.
  2. Understand your future role. As a computer scientist, it is your job to solve problems. It is also about solving problems in a way which can leave everyone happy in the end. This means learning good communication skills as well as coding skills because you are more likely to match the needs of your client with the apt solution if you listen well and relay back your understandings clearly, as well as keep the client informed during the project.
Image: Internet

Writing pseudocode

  1. Start with pseudocode. Pseudocode isn't really a programming language, but it is a way to represent a program in a very English-like way. The most familiar algorithm to you is probably on your shampoo bottle: Lather, rinse, repeat. This is an algorithm. It is understandable by you (the "Computing Agent") and has a finite number of steps. Or does it ...
  2. Tweak the pseudocode. The shampoo example isn't a very good algorithm for two reasons: it doesn't have a condition to end on, and it doesn't really tell you what to repeat. Repeat lathering? Or just the rinsing. A better example would be "Step 1 - Lather. Step 2 - Rinse. Step 3 - Repeat steps 1 and 2(2 or 3 times for better results) and then finish(exit)." This is understandable by you, has an end condition (a finite number of steps), and is very explicit.

Writing algorithms

  1. Try writing algorithms for all sorts of things. For example, how to get from one building to another on campus, or how to make a casserole. Soon, you'll be seeing algorithms all over the place!
  2. After you've learned how to write algorithms, programming should come naturally to you. Buy a book, and read it entirely to learn the language. Avoid online tutorials as they're often written by hobbyists, not professionals.
    • However, feel free to look for help on the internet. Object-oriented languages like Java and C++ are "in" right now, but Procedural languages like C are easier to start with because they deal solely in algorithms.
  3. Programming is only the translation of pseudocode into a programming language. The more time before programming you spend planning in pseudocode, the less time you'll spend typing and scratching your head.

Algorithm analysis

  1. Read up on RAM (the random access machine). One of the best places to start is by reading Steven Skiena's book The algorithm design manual.
  2. Learn about the limiting behavior of functions. Read up on Big O notation.
  3. Read about how worst case inputs can break your algorithm or cost you heavily in CPU processing time. It is important to learn what ways can efficiently counteract them.

Tips

  • The field of computer science branches out to many different fields such as computer design and development, databases, computer security, or computer languages just to name a few. Therefore it would wise to focus on a one or maybe a few more if they interest you.
  • After learning one programming language, learning another within the same paradigm is easy because you're still only translating the pseudocode into an actual language.
  • A whiteboard is a great place to write algorithms.
  • If you are a student in secondary education and below the age of 20 consider entering your area's Olympiad in Informatics.

Related Articles