Norvig gives some good advice on those who want to become programmers. Most of it, like just get out there and program, is great advice but is also common. A few though, are less commonly stated and deserve repeating. Among these are:
- Work on other people's programs. Learn a program written by someone else. This will teach you how other people have solved problems and will teach you how to write maintainable software.
- Learn a half dozen languages. Learn languages that have different approaches to programming. Each new sort of language will open your horizons and help you see problems in different ways. Solving a problem in C will lead you in different directions than solving the same problem in Smalltalk. Unless you know both languages, you'll likely fail to see one of the solutions.
- Understand what's going on below your language. Modern programming languages are so high level that it's easy to forget that there is a real machine running the code. However, as Joel Spolsky says, all abstractions leak. That is, there will always come a time when you have to understand the layer below the abstraction to solve a bug. If you understand how memory works, how drives work, what makes a processor stall, etc. you'll be better off. I see this often in those we interview. They understand a programming language but they don't understand the operating system. If you don't know the difference between a thread and a process or if you cannot describe how virtual memory works, you'll be at a loss when things go wrong.
Here's a piece of advice that the essay doesn't mention: rewrite your programs. Each time you'll have a better understanding of the problem domain and thus you should be able to solve the problem in a more efficient way. You'll learn how much you've improved when you see your old code and you'll learn to approach the problem in a new way.
http://blogs.msdn.com/b/steverowe/archive/2007/09/04/learning-to-program-takes-time.aspx
No hay comentarios.:
Publicar un comentario