> I am 39 years old and am anxious to change carreers and get<br>
> into the programming field. While I am anxious to do so I do<br>
> not want to waste any more time if I'm not being realistic.<br>
<br>
I also started late in life, after a career as a musician. I have had the same doubts, so I can totally relate. I'm a professional programmer now, but I never could have imagined this would happen. I still remember how cryptic and frightening C looked to me when I first saw it. When I go back and re-read programs I wrote 3 years ago, they read like children's books. These are programs that at the time I thought were large and complex.<br>
<br>
> I still have doubts about whether or not I have what it takes<br>
> to be a programmer. Is being able to pick up the above<br>
> concepts,(and not so easily at times) an indication of yes,<br>
> or not necessarily.<br>
<br>
What do you think it takes? Here's an excerpt from "Code Complete" by Steve McConnell.<br>
<br>
"Being a programmer is less a matter of native intelligence and more a matter of character. The characteristics that matter most are humility, curiosity, intellectual honesty, creativity and discipline, and enlightened laziness. The characteristics of a superior programmer have almost nothing to do with talent and everything to do with a commitment to personal developments. Surprisingly, raw intelligence, experiences, persistence, and guts hurt as much as they help."<br>
<br>
Humility is understanding that you are dumb. Nobody is smart enough to program computers, software is simply too complex. Learning to be a good programmer is not about exercising your brain to the point where you can do super-human things, it's about learning tools and techniques to help you overcome limitations of your brain - to break down the unmanageably complex into manageable chunks.<br>
<br>
> I especially have these doubts when I browse through books on<br>
> advanced topics. I recently have purchased some books on<br>
> computer science and algorithms thinking this would help my<br>
> overall programming education.<br>
<br>
> They were way above my head, especially the books on<br>
> algorithms, even though it was titled (Introduction To<br>
> Algorithms, Thomas Cormen). It was very heady. Im not sure I<br>
> can see myself ever comprehending this stuff.<br>
<br>
Looking at books that are over your head is always intimidating. To reassure yourself, go back an look at some older material - stuff that used to look really hard that is now well within your grasp.<br>
<br>
There will never be an end to the learning - you will always be able to find books that will look scary - just don't get ahead of yourself and you will be fine. Just try to really understand each concept at every step of the way, and enjoy the ride.<br>
<br>
If 4 years from now you still cannot make heads-or-tails of those books, try different books. You may find a book that better suits your learning style, your current knowledge and abilities.<br>
<br>
> Is knowing this stuff essential to being a good programmer or<br>
> is just learning the language sufficent.<br>
<br>
It's important. Learning a computer language is like learning English. Being able to write grammatically correct sentences is only a start - it does not automatically follow that you can then write business letters, poems or novels. Conversely, the same skills required to write a novel can be applied in English, Russian, or Chinese.<br>
<br>
If you work your way through an entry-level data structures/algorithms book, that may be all you ever need. The important thing to get out of such a book is not how to write a Quick Sort, but understanding that a Quick Sort is faster than a bubble sort, and having some idea why.<br>
<br>
Anyway, I've rambled enough,<br>
<br>
Cheers,<br>
Eric