How many of you are self-taught/hobbyist programmers

Started by
66 comments, last by 21st Century Moose 11 years, 8 months ago
Self-taught hobbyist (trying to go indie).
I started learning mostly through books, then mostly through online tutorials, and now by trying to get the real two or three chunks of gold in hour-long conference videos or multi-page articles.
...and I've always learned by asking stupid questions on this forum until I think I understand whatever I'm asking about.

I also learn alot by seeing a short, clearly-commented, piece of code or pseudo code from someone else, and walking through it in my head and then modifying it and running it to learn how it works. I first copy and paste, but then rewrite in my own coding style and add comments as I walk through it, and then modify to confirm that that's how it actually works and to get it to do what my project needs, and then often scrap it and rewrite it completely to better fit the architecture of my project or to be more re-usable the next time I come across it.
Note: I do this when learning something (like an algorithm) I'm not familiar with; not for whenever I run into a problem in my code - less than 00.01% of my code is not directly written by me, excluding libraries and such. Copy+Pasting other people's code is a bad programming habit, IMO, unless you are doing so to learn how they did it (and not to just copy what they did).

The most important advice I can give is: Learn new things, but don't jump from new thing to new thing every week - you need to stick with one project or topic long enough to actually really "learn" it before moving on. Project abandonment happened all too frequently with my earlier projects which never got finished. Now I only abadon a subproject if I find it's detracting to much from my real primary project.
Advertisement
I have a feeling whether you need a 'bit of paper' qualification in e.g. computer science may depend on what particular field of programming you are going into. Certainly in game programming, at the moment, if you know your stuff you don't need a CS degree.

In programming it's fairly easy to show whether you have a grounding in the basics, that's why they often have programming tests in interviews. And the relative lack of importance of qualifications in the field ... in other subjects it can be much more difficult to quickly assess your knowledge, therefore a bit of paper is more useful.

A problem can be that qualifications are often set at such a basic level as to be effectively useless. The kind of people who are good at programming aren't those who need to be 'spoon fed' by formal education, but as said earlier in this thread, people who can adapt and are constantly learning new areas and ways of working. Ok - you'd be expected to know the kind of things taught in CS to work in CS, but that knowledge alone is a given, and doesn't indicate any kind of skill or talent (I've met many with CS degrees with no talent or flair).

In my age group (coming up to 40) the best programmers on the whole tend to be those that started early. There was ample opportunity for us to get started early (8-15 is typical) and those that started later tended to not have the genuine interest. If you are a 'computer' person, you will know it from the very first time you play with one. You will be instantly drawn to it and want to change stuff, learning how it works, move pixels on the screen etc. You'll literally have to be pulled away from it.

If it takes you until you are 18 to even think about this, you have to seriously ask whether you have found the field for you. You would be entering it as a 'profession' like law or medicine, rather than because of a love of it. Are you ever going to be anything other than a 'mediocre' at best programmer? There may also be benefits to starting very young - learning foreign languages is proven to be easier at a young age, and the same may occur with programming - with it framing the way you think.

That said, there may be exceptions to the starting early. Certainly for older people (50-60) there was not the availability of home programming until the early 80s, and there are some exceptional older programmers.

Another point however is that today, although in some ways new programmers are lucky (having a huge amount of info on the internet, free tools, etc etc), the barrier to entry can be much higher unless you start with a simplified system. In the early 80s, there was only 'so much' you needed to learn to get started and be producing cutting edge level stuff. Nowadays there is so much interoperability with different components and it's more difficult to produce something that would be considered 'professional grade', so I do understand to an extent the 'late starters'.

Back in the 80s, home computers came with built in programming languages - basic, assembly. These days, you need a considerable investment in time just to install a programming language and get it writing 'hello world' on the screen, which may put people off. Which is the reason for efforts such as the raspberry pi project.

To answer the questions though, myself I was self taught, along with most of my fellow programming nerds (hence my obvious bias lol). Began at 9 (this was typical at the time). I did do a computer science ancillary on my degree, in with the CS full time students, and the courses they had were diabolically basic. I actually cracked up with laughter during the lectures (pascal, systems analysis, AI etc), and ended up doing the other students programming assignments for them (in CS), and taught the engineers 6502 assembly. Had enough exposure to be glad I didn't waste my time doing a full CS course. I also did considerable programming on my phd, but that would be more professional use, rather than a learning course.

I did game programming as my job, until I was in a position to retire, since then I've done programming independently (often for fun rather than profit), but also had other means of earning money (gambling, extortion, drug running etc).
All self-taught.
Started 1979 at age of 13. First earnings with something like Software engineering 1988. Now making software and system designs for automotive companies.
Never gave up even it needed along time to get reasonable payed for my knowledge.
RL has been sometimes a problem. But now everything is fine.
Yeah, I'm self-taught...


...which just means that I had a crappy teacher :P
I'm a mix of self-taught and formally educated. I thought I knew everything I needed to know about programming and that everything I didn't know, I'd learn through on the job training and experience. I decided that if I truly knew everything, then getting a formal education should be easy enough and a good way to "check the box". To prove it, I went and got my degree. Having a CS degree would make me much more marketable to employers.

I had the luxury of being in a position where I could get a well paying job with or without a degree. If a degree is useful only for getting a good job, then what's the point of getting a degree if I can get a good job without one? I like to think I was one of those rare students who decided that I'd go to school to acquire wisdom instead of a job, so I took a bunch of philosophy courses. Heh, am I more wise as a result? I'm wise enough to know that most of philosophy is people bullshitting and hiding behind a daunting language of esoteric philosophical terms. I think the best way to acquire wisdom is through a variety of life experiences and to critically read the words of those who you believe are wise.

It's worth mentioning that a lot of my learning came from this site :)
The only courses I took in programming were back in high school in the early 80s - COBOL, FORTRAN, and BASIC using an Apple 2c. Other than that I'm completely self-taught and I've been programming for a living for about 15 years doing .NET development. I took a C++ refresher course before I started with a company when I was in the industry and ended up helping out the other students since the course taught me nothing I didn't already know.

I should go back and get my degree though as it's getting harder to get any further in my career. I still want to go full-time indie game development but that's difficult when you have a family to support.

Former Microsoft XNA and Xbox MVP | Check out my blog for random ramblings on game development

Self taught here.
Started with Amiga BASIC around '91. Then QBasic, Turbo Pascal, C++, C#, PHP, JavaScript, etc.
I attended CS in college for a few semsters but dropped out because I found it to be pretty boring there. The thing I took from college however was the course about basic algorithms which really helped.
I might go back sometime but at the moment I'm pretty good with how things went. ;)
I was self-taught, and landed my first paid development position before I'd taken any CS classes at all. But I've since completed a 4-year CS degree from a good program (BYU) and I don't regret the time or expense at all. I learned things there that I never would have even known existed; recursive-descent parsing, statistical natural language processing, compiler design, security primitives and protocols, etc. Don't shoot yourself in the foot by being too proud to learn in a formal environment.
99.99% self thought. We had 1 semester of C, 1 of C++, 1 of computer graphics. Engineering University, so these were just introductions to the topics. I'm working as an engineer and but once I programmed an application for my work and I'm very proud of it.
Other than that in the first 2-3 years: no internet, no programming friends, no books. Just some very few tutorials and documentation I downloaded to floppy disks.

I'm a very sloppy programmer, I have to add.
100% self-taught. My interest (actually it began as an obsession) when I was in grade school. My cousins had a Tandy CoCo3 with ROM BASIC. When I realized that programming is how you created computer games, I was obsessed. I didn't have a computer at the time, so I would check out every book on programming in the local library (a town of 2000 people. The library didn't have much) and read them all. I would then write programs down on paper. None of those programs actually made it into a computer though... Shortly thereafter I got an Amstrad something-or-other IBM compatible (8086, 640k, dual 360k floppies) and from then on I spent most of my free time writting terrible code in BASICA, QuickBasic, then finally moving to Borland Turbo C.

I've been working as a professional developer since 2001, being hired at nineteen. My title is Senior Applications Developer. I actually was offered the development manager position a couple months ago but turned it down due to some office politics that I didn't want to get in the middle of. The best decision of my life so far, seeing what the poor schmuck who did take the position is having to deal with.

This topic is closed to new replies.

Advertisement