September 4, 2009

How to Become a Computer Scientist


1.Being a Computer Scientist is all about learning to be a student. Technology changes, new languages develop, new algorithms are devised: you need to be able to learn new things to stay current.

2.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 ...

3.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 and then finish." This is understandable by you, has an end condition (a finite number of steps), and is very explicit.

4.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!

5.After you've learned how to write algorithms, programming should come naturally to you. Buy a book, or better yet, find an online tutorial, and learn the syntax of a language. Object-oriented languages like Java and C++ are "in" right now, but Procedural languages like C and Python are easier to start with because they deal solely in algorithms.

6.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.

A whiteboard is a great place to write algorithms.
After learning one programming language, learning another is easy because you're still only translating the pseudocode into an actual language.

No comments:

Post a Comment


Design in CSS by TemplateWorld and sponsored by SmashingMagazine
Blogger Template created by Deluxe Templates