5 ms·
Learning the Programmer's Craft
- kaens 18y ago"Finding a mentor" is good advice. So is the other advice, but most of it has been stated many times by many people (read code, write code, think about code you have written, etc). I personally have had two people that I would call "mentors" in the time that I've spent learning about programming. One was my high school comp-sci teacher - we learned using C++, but he did not teach the language, he taught general concepts - and did a very good job at it. The other is a friend of mines older brother. He's one of the smartest people I know, and a brilliant coder although he doesn't really code much anymore. I have a printout of code he wrote for a TI graphing calculator that is a 2d rpg engine, including NPCs that have semi-generative text dependent on "important" plot points, and smooth-scrolling. A lot of the code is code-writing code and memory management - it's incredibly impressive given the limitations of the platform that it's written in. This guy is one of the only people I'm around on a semi-regular basis that I can really "nerd out" with, and he's always got good advice on improving system designs and performance - mainly because the vast majority of his experience is building non-trivial systems really close to the metal. A mentor can come from anywhere, I suppose that people on newsgroups or forums would work as well if you work well with that sort of communication / exposure. There is something to be said for face-to-face conversation with someone who is a lot more experienced than you are though. I remember one time I was playing around with a sort of image transformation algorithm, and this guy took a look at what I was doing, picked up a pad of paper and scribbled out about 20 lines of psuedo-C which did the same thing, did it faster, and did it with constant memory use. I probably would have arrived at the same solution after a while of thinking, but seeing someone identify something that they've seen before and spit out the optimal solution can be a very enlightening (and humbling) thing.