in reply to Impending Friardom

First, Congratulations!

Second, can you add some neeps to the carrots, please?

A CS degree may be helpful, but I suspect that any rigorus training in critical thinking is a good foundation for computer programming. Programming is more a way of looking at Problems and decomposing them into handle-able chunks than it is compiler design or theoretical algorithmic analysis.

A Programmer (Hacker, Systems Analyst, what's in the name) sees the World differently, not as a monolithic Thing, but as a set (albeit a very large set) of inter-related and inter-dependent parts. The trick is to understand the information flow between the various parts so you can modify its path and make something new out of it. Understanding how to understand the relationships between things inside (and outside) The Machine is often more important that the pure book-learnin'.

Knowing that the theory exists is useful, but application is everything. (I once told a manager "No, I don't know what the multi-threaded Poly-Redundant sort algorithm does. I do now _how_ it does it, and that's enough." It was one of the more interesting performance reviews I ever had. We were still exploring the implications of my statement at my next quarterly review.)

Keep reading, keep exploring, keep coding. We are all Beginners here.

----
I Go Back to Sleep, Now.

OGB