Share via


How Did You Learn to Program?

How did you learn to program? Especially if you’re not a professional developer and never had been (I already have the data that says that something like 70% of professional developers got degrees in computer science or engineering). I’m wondering how you learned to program if you aren’t a pro.

What programming language did you start with? C? BASIC? VB? C#? PHP? HTML? What was your next language?

This is a question that’s occupying a large amount of my time these days. Why? Because, as in any resource-constrained environment, I need to focus on doing things in order – preferably in the order of “biggest thing” to “smallest thing.” In this case, I’m confronted with a host of solutions to how people learn:

  • Books (and if through a book, what kind of book – intro book like this) or a book like K-R C?)
  • Online videos (like this)
  • Online “lab” (like this)
  • Online tutorial (like TryRuby)
  • Classroom

And if you use one of these, what did you find most useful? What was fun? What was boring? What got you sucked in in the first place?

Fundamentally, I’m asking where my team should invest its efforts in getting future developers from 0-10 MPH.

Comments

  • Anonymous
    May 03, 2006
    I began programming using BASIC that came with MS-DOS about 25 years ago.  Over time I continued to learn more programming from books and using "free" languages (C++, PERL, CGI, etc.) in my spare time.
    I started with Object-Oriented Programming with Visual Basic 3.0 and Visual Basic for Applications (in MSFT Office) as there were plenty of programming books available and the software wasn't too expensive.  I currently do three principle languages: VB.NET, C#, and PowerBuilder and a lot of DBA work.
    Of the programmers that I know personally it's probably 50-50 on whether someone has a Computer Science degree (although frequently they have some kind of degree - mine are in Chemistry and Biology).  IMHO, self-taught programmers are more well-rounded in I/T (started fooling with hardware and worked their way up) and CS majors are better at didactics and theory.  Of the CS majors I know they all stated that they didn't learn any "real-world" languages until after they graduated.
  • Anonymous
    May 03, 2006
    I'm a hobbyist studying to be a prof. developer at a university. My first language was c++, then c# and php. 1% class learned 99% book learned (oreilly series).
  • Anonymous
    May 03, 2006
    I never went to college.  I started doing Classic ASP/VBScript against Access and SQL.  When .NET came around I moved to VB.NET.  After about 2 weeks of getting over the .NET curve I moved over to C#.  

    I learned by working on projects and I had 2 really good Mentors that took time to show me the ropes and point me in the right direction.  

    I've read a few books.  I started by using the Teach yourself in 24 hours series.  The ASP, Beginning Programming and SQL books were helpful.  I got to about Chapter 8 in the ASP book and then went on to something else.

    Classroom instruction bores me to death.
  • Anonymous
    May 03, 2006
    The comment has been removed
  • Anonymous
    May 03, 2006
    I first learned using the embedded BASIC in the various home computers of the 1980's (Sinclair ZX81, TI994A, TRS-80, etc.).  In college I took a couple of CS classes but didn't major in it -- learned Pascal and some Prolog.  Picked up HTML on my own from a couple of online tutorials.

    Got a job doing helpdesk and some web development.  Learned ASP and Javascript (took a 4-day training class and then used books and online resources).

    At this point I decided to go back to school, took CS, learned Java and C++, and got my first job as a professional developer.  A couple jobs later I'm working mostly in C#, which I've picked up from online resources, a couple of O'Reilly books, and the fact that it's very close to Java.

    Trial and error works very well to get things working, but you only actually become a better programmer by understanding the errors and wrong choices -- what caused them, what could you have done differently to avoid them, what could you have done differently before that to avoid the risk?

    Now I'm trying to move to the next level -- as described in "The Pragmatic Programmer" and "Coder to Developer".  Completely de-coupled layers, exhaustive testing, every configuration detail removed from code, etc.  I'm not there yet.
  • Anonymous
    May 03, 2006
    As a teen, I learned reading magazines about the Atari 400/800 and later the Commodore 64. (84-86 or so)

    After I started doing some work to help someone out, I've learned a lot by just reading the manuals for C/C++ and Oracle.

    I tried school, but never really picked up much out of it I hadn't already figured out on my own.

    I read anything I can get my hands on, from online manuals, blogs, samples, hard copy books....

    So for me, Trial-by-fire, armed with a good manual or online resource has been the best learning experience.

    (And I would consider myself a pro, I've been doing professional programming for going on 14 years now)
  • Anonymous
    May 03, 2006
    The comment has been removed
  • Anonymous
    May 03, 2006
    The comment has been removed
  • Anonymous
    May 03, 2006
    I first learned by typing in programs from magazines (C=64 Basic) and then getting the manuals and trying to understand what I was copying. Then through a user forum I got in touch with an engineer who had the kindness to teach me 6502 assembler. I was making money from writing software before I got any formal training (after that I went to study Engineering and I have been doing professional programming for many years now)
  • Anonymous
    May 03, 2006
    I'm a professional developer, but I taught myself as a non-pro. I started learning BASIC when I was ten or eleven (1989-90), because it came with the machine. When I was twelve or so I started learning C and bits of C++. All of this was coming from books since there was no "online," my schools didn't offer anything, and I didn't know any programmers.
  • Anonymous
    May 03, 2006
    While I am a professional developer that went to school most of what I learned is school is way outdated and really not practical Windows was version 3.1 and most programming was on Unix or Vax systems you had to buy professor made books because there were really not a lot of good books out there, or there was no amazon and the local book store had maybe a shelf dedicated to computer books.

    I started on an old Apple 2 with basic and a book. My first real language was ADA and a really good book. My first real learning came from a peer using Visual basic believe it or not. This guy forced VB 4 to be an OO language and taught me really how to apreciate OO models. After he left I continued learning on my own studying books, learning from other ideas. Seeing if they were practical or not I continue to this day to read books and much prefer to sit down with a nice big core reference and go through each and every sample and read every page. Some of the developer centers are nice and produce some good articles. However coding4fun is an area I visit more than anything else. That and the msdn blogs. I learn a lot of more practical stuff from the blogs than anything. They are more real.
  • Anonymous
    May 03, 2006
    It started with BASIC on terminal which happened to also have some built in BASIC ROM.  Then it was C64 BASIC, and games/tools from magazines like BYTE.  Moved on to 6502 assembly.  Took two courses in HS, but didn't learn in them, as much as do all the work in about a week, and played around ;)  Pascal got thrown in there at some point.

    Self taught myself Lotus 123 macros, and then moved on to learning C by book, and now do C#, and various scripting languages as well.  Once you have learned to program, the language doesn't matter.  
  • Anonymous
    May 03, 2006
    Spectrum/BASIC -> Amiga/E (a bit like C but didn't force you to have all those semicolons!) -> Windows/C++ -> Windows/C#

    As for how I learnt, I suspect the Spectrum came with a brief programming guide (when even computers came with "real" manuals). And I should also mention Logo too (Spectrum - Snail Logo - named because of its speed) as this is a great introduction to control flow. The biggest step was probably a series of programming magazines (I think they covered Spectrum/Commodore/etc.) called "Input" that my parents bought second hand as the complete series.

    Since then I'll add trial-and-error as my biggest learning experience (I'm using Jacob's definition of trial-and-error above). Of course now online documentation, blogs and Google are my main sources of new information.
  • Anonymous
    May 04, 2006
    The comment has been removed
  • Anonymous
    May 04, 2006
    The comment has been removed
  • Anonymous
    May 04, 2006
    The comment has been removed
  • Anonymous
    May 06, 2006
    You don't need to have university education to be professional.

    I've started off with dBase, then Clipper and by the age of 15 I was already selling my first application to a company.

    Then did some VB and finally Powerbuilder and C#
  • Anonymous
    April 29, 2008
    PingBack from http://ezinefrontpageblog.info/a-view-from-elsewhere-how-did-you-learn-to-program/