wyrd
Senior Contributor
"If you work for 10 years, do you get 10 years of experience or do you get 1 year of experience 10 times?"
Steve McConnell - Code Complete: A Practical Handbook of Software Construction, page 768.
I've been thinking about this quote ever since I first read it. Ultimately I came to the conclusion that I'm one of those who has been programming for several years (3 or 4) and have gained 1 year of experience over and over again. I've been through PHP, ASP, Perl, CGI, VB6, Java, C/C++, C#.NET, VB.NET, ASP.NET, and yet the only programming language I am remotely competent in programming in at the moment is C#.NET. This is because over my relearning experiences I have forgetting the languages in which I once knew. Not good.
I think, finally, that I've realized programming is not just learning trivial syntax of various languages (C, Java, C#, VB, etc.), which has helped me move a forward a bit. I'm finally starting to learn about design patterns and design issues in general.
However, I have a problem.
"Man is an emotional animal." - John Dewey.
Whenever I discover a programming area of excitement, I tend to over do it. Just recently I realized there was more to Transact SQL then simple little SELECT statements, Transact SQL is a full blown language. I almost over did it and bought tons of books to learn a ton of Transact SQL syntax so I could pretend to be some uber Transact SQL guru (obviously being far from it). I had delusions of working for the government and controlling "information" (you may laugh). Obviously buying books on trivial Transact SQL would of thrown me back, yet again, to ground zero. By the time I would of been done reading those books I would of forgotten 90% of what I currently know.
Now that my Transact SQL phase is over with (thankfully I didn't indulge and instead got books to further my general programming skills), I'm starting on yet another emotional trip. Game programming. Is anyone here a game fanatic as I am? I'm 22 and still play games. There is no greater high then losing yourself in a fantasy world which allows you to forget, if even for one moment, that the real world exists. When I eventually go for a job I honestly think I'd like programming games far more then programming software, unfortunately I know about programming software and don't have an ounce of know how in game programming. DirectX is foreign to me. Win32 API is foreign to me. These are gaps which must be filled, and I'm sure they will if I transfer to DigiPen. The problem is that I'm afraid I may not be able to hold out on my emotions in learning these areas. I may find myself indulging into the Win32 API and trying to learn everything about it, forgetting what I now know. I'm also afraid that going to DigiPen will result in going back to ground zero, yet again.
I need a way to apply the skills I have now to future languages and techniques in which I may learn. If I transfer to DigiPen I'll be programming strictly in C++, within months I will have forgotten everything that I've learned about Transact SQL and .NET. Unless I use good design techniques (including design patterns) in my school projects (which are rarely, if ever, needed) I will eventually forget everything about that as well. If I choose not to go to DigiPen and try to learn Win32 API or DirectX on my own, the same fate may eventually arrive. I'll indulge into these aspects of programming and slowly start forgetting what I currently know.
I need help. I'm open to just about anything. Also feel free to write up your own experiences based on the quotes above, it'll make for an interesting topic if anyone else is in the same boat as I am. Plus it'll make me feel a lot less stupid.
At the very least, thanks for reading. :-\