View Single Post
  #1   (View Single Post)  
Old 22nd June 2008
TerryP's Avatar
TerryP TerryP is offline
Arp Constable
 
Join Date: May 2008
Location: USofA
Posts: 1,547
Default How did you learn to program?

How did you learn to program?


Perhaps a stupid question but one I wonder about since I'm one of few people in my area that took it up. For me, I have no true idea of why I started to learn programming but this November it will be three years since and two since I've considered myself capable of doing anything worth while...


I started out on the tutorial at cplusplus.com with no prior experience. Managed to figure out a starting IDE/Compiler from cprogramming.com (Dev-C++ / MinGW). I read an article called teach yourself to program in 10 years. I figured, this stuff is rocket science compared to what I knew already, so taking 15-20 years to learn wouldn't be too far fetched for me.


One day I found a tutorial on Perl and got bored after the second section or so and dumped it. I ended up using the manual pages the first time I had to use Perl for a task, although later I would check-out the llama book last year when I wanted to make a new friend of it.

One of the books I bought at a library book sale was the old Java Sourcebook by Ed Anuff, which I enjoyed reading about the language and OOP but it made me realize I didn't want to actually write Java code >_>

I've never considered myself talented at programming, starting with C++ was probably a bad idea to say the least. Like chess... Something I enjoy more then excelled at.

At various times, I did a few small programs in C++ to test my understanding of basic things, stuff like an Integer Calculator that must be implemented such and such way, etc.


One day I was coming off a web search and found a thing about using the compiler directly instead of the IDE, and I found it was part of a C Tutorial and read on.

I had always been curious about what C would look like, having been playing with C++ already. The first time I had ever seen some form of C, was the Win32 API -- which had me raising my hands in disgust in nanoseconds. So it was really strange to see that tutorial and I never again looked at the windows api's (and hope to keep it that way).


The authors sense of humor in that C tutorial managed to keep me entertained and I started learning more, C eventually became my primary language.

Learning the syntax of a few languages was easy, actually creating programs was a bit harder. So I concentrated more so on reading and understanding rather then being told off by gcc.


By the time I started to use FreeBSD, I also was scouring Wikipedia as I always do, reading everything of interest (especially computer related). I got curious about how the various programs I was using in /bin:/usr/bin worked. So when I got /usr/src cvsuped, I started to read.

Analyzing bits and pieces of small programs, sometimes copying them to my home directory and fiddling around, recompiling and seeing what happened. I read and read, poking around the source tree -- seeing what was done by people that actually (or hopefully) knew what the frig they were doing.

One day, I started to write a small program after hours that satisfied my opinion that cat is for concatenating files not viewing one file without using a pager/editor. To make it more interesting, I made it able to skim off the top and the bottom of files similar to head and tail.

That's how I learned to use a debugger lol.


Eventually as things happened out, a group I'm involved with ousted their lead admin for misconduct and a friend of mine took over as webmaster. Being the only other person with some programming experience this side of QBasic other then the old admin. I got asked to work on some of the PHP code, a language I never learned or used +S.



Fast forward almost 3-4 years, a several more languages, many more implementing "Hmm, I wonder if ..." programs, and a lot of reading and writing code later and I've learned enough to get my tasks done.


Repetitive tasks usually get handed off to Bourne, quickies to Perl, web pages on first come first serve, and Qt makes me glad that I learned about C++, since I needed it when I learned Python in order to use PyQt lol.


And now that I'm in my friends webmasters boots, if I ever bump into our collective predecessors that did most of the original web work, I would like to shove their collage educations up their hindquarters one line of code at a time :-P


So for me, learning really has been a couple of years of reading and writing code. No teacher, no collage, no courses, just tutorials, documentation, and source code.
__________________
My Journal

Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''.

Last edited by TerryP; 2nd November 2008 at 05:17 PM.
Reply With Quote