I graduated from a USA university with a combined major in math and computer science. The degree got me an interview and job with IBM. At that time IBM would hire only college graduates.
I was programming before college. In college a single course taught about linked lists, recursion, data structures, not to use GOTO's, etc. And we had to write programs that produced the results the instructor wanted, on a DEC PDP-10.
All the rest of the computer courses were mathmatical theory. How to prove search algorithms were order nlogn, induction proofs, number theory, autotoma theory, proofs, proofs and more proofs! Many of the graduate level computer courses were also graduate level mathmatics courses.
Besides knowing that an nLogn search algorithm was a good thing, non of the other theory helped me as a programmer.
As many others have posted, no amount of learning can guarantee or create a great programmer. You either have it or you don't. And many very bright people don't. If you don't, you may, through hard work and learning become an average, or better than average programmer.
Can a high school hacker be a better programmer than a college graduate? Absolutely! (Bill Gates never finished college.) Will he get the job interview?
I don't know if I would agree with you. At the time that I started getting paid to program, a university degree didn't necessarily get you the interview. Like a lot of people of my vintage, I left university after two years because the job offer was just too compelling (and income versus starvation as a student was also attractive).
"My vintage" means early-70s. I actually learned to program in 1969 while still a high school student (FORTRAN IV on an IBM 360). I did some pick up work during university, but got the interview (and the job) in 1973.
My university courses were better than those you cite -- we got real programming (although a fair amount of math was thrown in). However, we got machine theory, Boolean algebra, Assembler, FORTRAN, COBOL, and at least a fast view of other languages (i.e. this is what it looks like so you'll recognize it on sight).
I didn't actually get into C/C++ until this past decade. I took a couple of evening courses to get object-oriented programming in C++ down pat, but all of my Windows programming knowledge was self-taught. Fortunately, programmers of my ilk were taught to read other people's code and to use documentation, so slogging through it wasn't impossible by any stretch.
Getting to the level I am today - 'code monkey' has been a right old spaghetti route
I started with basic on a Sinclair Spectrum and after a few silly programs and the usual maze games found basic limiting.
Moved on to an Amstrad 6128 which basiclly got me through 1st year of University doing Electronics.
Was taught Fortran77 at university (which was the first taught course and never used again)
Had to learn Forth (eek primitive) for a summer project (and again never used again)
Started on a postgrad course where I was taught Occam (now that was a parallel programming language - but was very basic)
Went on to do post grad research where I used Occam (this time in earnest) and Pascal.
I ditched Pascal after 3 months in favour of C (went upstairs to do the com-sci courses and regretted it (took me back 3 months as they wanted us to learn Prolog first so by the time we got to C I already knew it and more).
Self taught C++ while I started using OWL for the GUIs for my Occam driven hardware, and also moved onto parallel C. (When designing multthreaded apps I still use Occam constructs in the design phase as it makes things so much easier)
Started 'real' work and moved onto MFC (their quote was 'it's by Microsoft and therefore must be good' - sigh) - discovered CodeGuru (my saviours at the time)
Self taught myself COM+ATL, COM was so much easier to start once it was wrapped semi-sensibly.
And then onto WTL.
along the way I've dabbled in Visual Basic and all the browse scripting langauages and well as installer scripting languages
and now I'll probably have to learn C# and all the new stuff - If I ever find a company who gives training pro -actively - the only courses I have been on are those which are booked after I have done the hard work - I'll sing a merry song
There is only one way: Trial and error (and the help files). I started programming by literally opening VC++ 6 and starting typing (using the hello-world app wizard). I typed what I thought was correct, and then dealt with the errors.
An 'average' programming session for me is still about 20% dev studio, 80% MSDN.
I glad to learn that there are actually people out there who have been at this insanity for as long as I have. I started peeking and poking on a Commodore 64. Still, I will have to admit that the all around best programmers I know are the ones who went to college and paid attention. Most guys I know who are self taught are great programmers but are very bad when it comes to managing the full life cycle process.
I started out on a TI994A when I was about 7, but only
could do the book copying and basic word game type stuff.
Then went to the Commodore 64... And figured out more stuff,
like graphics and stuff as well as writing stuff on my buddies PC Jr. when I hung out over there.
I did the old Apple II stuff at school and when I visited my cousin. And finally, I took the pascal programming classes in our rather small high school. By the end of the class I knew way more than the teacher..
I then went to a fairly small engineering school and
graduated with a bachelor's in CS. I did have more luck
than some of the other guys, since a couple of the professors actually knew a lot, and could convey it... But
there were still quite a few of the boneheads their that didnt know squat after they graduated...
So yeah, I saw some of the college problems mentioned earlier, but then I have seen people now at work,
that are completely self-taught, and show it.. Lacking some
fundamental organizational and structural ideas, I've seen
some pretty twisted spaghetti code, that really wouldnt have to be....
I voted for college, because that's where I learned about 8 languages, OOP, and design. Adding a lil structure to my programming, I see now is very important...
Since then, I have learned a heck of a lot more on the job, and on my own... Most of the stuff we actually use on a daily basis!! So... this could have gotten the nod!!
Im thinking I could have probably checked at least 4 of
the answers.. As Im sure a lot of us could...
Last Visit: 31-Dec-99 19:00 Last Update: 29-Mar-15 5:48