How did you learn to program?
I learnt to program for fun at home, and my theory is that this is the best way to learn. I started in seriously when I was about 14 (I couldn’t quite grasp the concepts before then), and began by learning 80x86 assembly language and Forth. I tried to learn C, but for some reason I grokked assembly more quickly. Plus, assembly made it easy to play with the VGA hardware and write cool graphics demos. The joy of the art was setting in.
Mostly my dad taught me, though I also learnt a lot from reading FidoNet groups and from Demoscene coders. After playing with graphics stuff and coding the first 50 lines of about five different games that were going to “change the face of computer gaming”, my first serious project was to write a Forth compiler. I bootstrapped it by writing the core in assembly, then the rest in Forth.
Speaking of which, I really rate learning Forth. It’s probably the earliest language apart from Lisp which is extensible at the language level and has real macros. But it’s much simpler than Lisp. The only problem is that it’s so easy to write your own Forth compiler that everyone does that instead of writing good libraries or language extensions.
All that said, here at microPledge we’re using Python, and loving it. It’s brilliant for web apps — a clean language with superb libraries.
Anyway, how did you learn to program, and what was your first language?
5 June 2007 by Ben 9 comments
9 comments and pings (oldest first)
Taught myself at home from about 11 years of age. Started with BASIC but got bored in a few weeks and dived into TRS-80 assembler big-time. Went from there to MV/8000 assembler, then C, and thus began my journey into Unix.
I started out on a ZX81 then the TI99/4A and then the lovely BBC Micro Model B. Along the way learning Z80, Basic and 6502. I never had anyone to teach me so just worked on the basis of ‘try anything’ which has always allowed me later in life to be still very creative and not follow how others code.
I toyed with BASIC along the way too, mostly by copying hundreds of lines of code from space invaders games in the backs of Byte magazines. They never worked.
Nice blogs, guys — love the name Irrational Exuberance. Andrew, apparently we’re at a similar stage in life.
I learned to program when I found out my wife was pregnant and I was still making $300/week back in 1996. I decided it was time to get a more serious career, and she encouraged me because she was a programmer. I consumed a few programming books and took a job at a tiny place in south Louisiana paying… $300/week! But after a year I was able to move my career ahead and provide well for my family.
Being forced to accept responsibility and grow up helped me considerably.
My older brother got a ZX81 when I was 9, so I started on BASIC and Z80 assembler; TI99/4A – BASIC and assembler; Dragon 32 – BASIC and 6509 assembler; Amstrad PCW8512 – wrote my own Z80 assembler and Forth compiler in Pascal; Amiga 500 – C, C++, ARexx, 68000 assembler; Unix systems at university – C, C++, shells, Prolog, Lisp; in industry since 1993 – C, C++, x86 assembler, Java, Perl, Python; currently learning Scala.
I started self learning dbase and foxpro at age 12,out of curiosity to build my own external commands for DOS. I played aroung with tables , data , program flow. I picked up C just because turbo c allowed me to create an EXE file (Ooila!, External command for day :-)).. Then went on tweaking system with my little C programs, then picked up BASIC then HTML/Java / Javascript ..C and Perl-CGI .. and built few websites… then got into engineering school to explore computer science at age of 20…. I feel my real learning of programming was only when I was trying things out of curiosity at age 12..
I was working at a company and had access to a Data General Nova 2 minicomputer. I was looking around and found something called Basic in the file directory. I went to the library (no Internet back in the 1960’s) and read up on it and started writing programs in my off hours at work. My boss gave me a task that involved a lot of math calculations and I automated it with the skills I learned and he was impressed and I got a promotion.
At that time Radio Electronics Magazine had an article on building an 8008 microprocessor kit (months before the Altari 8800 kit) and I went for it. I learned assembly language, Fortran, Forth, LISP, PL/M, C, and C++.
I’ve always found it’s best learning to program by having something you need to automate. You create your program, debug it, and add features to make it better. The more you program the better you will be prepared to handle a project when the opportunity comes up. You can also learn a lot about programming by looking at what someone else has done and understanding how it works. It’s also a great starting point for creating your own masterpiece.
[…] what’s even cooler, at least for someone who learned to program by dabbling in Forth, is that the device has a built-in Forth interpreter for testing the hardware […]
I actually started learning to program in college. A class is a good initial catalyst, but I think that at some point (and the point is pretty early on) the learning has to become self-directed, or programming will be a job instead of a joy.
My first language was Python, and I think its a pretty good starter (I read a while ago that MIT has recently switched from Scheme to Python in some of its intro courses!).