I still learn and read a lot, I have always one course going (most recently on Coursera).
Ask HN: How many "self-taught" programmers and how did you do it?
21–30 of 128 posts
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#22I believe any programming is self-taught. I know that I had some course in a community center when I was very young, probably like 10 or so, and while these courses probably got me interested and taught me the basics, I think most of my skills came from solitary practice and studying books. Moocs can be a better introduction to programming than mere books, but I haven't seen any evidence on how successful MOOCs are a…
1,2) Me and a cousin started out making games in Macromedia Flash when i was little kid, Probably when i was 8 or 9. At first it was only copy pasted code and/or keyframing stuff. After i Studied BASIC in 9th grade, got a little more confident and started playing around with ActionScript more. By the 11th grade I was making pretty cool stuff programatically in Flash 5 (or i think was MX by then) I made a lot of game physics and game AI and stuff. In freshmen year in college, i got introduced to C and later C++ and just took off from there, learning mostly by doing, making harder programs etc. Competed in a lot of national level Programming Competitions and won.
3) Recently graduated with a CS major and working at a big software solutions firm, working on enterprise level software for insurance companies.
Btw, i think people should really take up CS in college. While you can learn programming and a ton of languages on your own, there is a lot of timeless theoretical stuff that is best learned in class. Oh and also Software Engineering stuff like "Object Oriented Analysis and Design" or "Requirements Engineering" or "Design Patterns". That stuff comes in handy a lot!
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#23For me the most important thing is not having a rule book. If you believe deeply that you need a CS degree or to follow a popular route into the industry then I believe that you will fail to learn as everything will seem to be an obstacle that you are not privileged enough to overcome.
Without a rule book, and with the belief that anything is possible... and if you can break down your problems into logical things you can describe... then you can teach yourself how to solve the problem.
My first step was a simple one, I had a manual mailing list which was names and addresses on bits of paper that I photocopied onto Avery label sheets. This was in 1993 and when the mailing list exceeded 2,000 I knew a computer could do this easier then I could. I purchased an IBM 386 and had no internet access (or knowledge that it existed) and could only learn from books as I also knew no programmers.
I purchased a book called Programming Perl, and just set to it. I think it took about 2 weeks to get the full mailing list application built, with flat-file datastore, printing, etc all complete and working. Looking back, everything was horrible about the implementation, it was ugly, inefficient, virtually unmaintainable... but it worked.
By 1996 I had started selling merchandise to the mailing list and written stock management, VAT accounting and reconciliation, the paper mailing list, an email marketing list, a shopping cart web-site, a community area on the web-site. This was effectively a shift from hobby programmer into a professional programmer and the start of a career in computing.
If I had been told those things were hard, or belonging to the problem domain of highly educated programmers, then perhaps I wouldn't have tried.
Believing in advance that anything was possible gave me the motivation to persevere, an obstacle would clearly be overcome if I could just stand back and think clearly about it.
After that... just carry on solving problems. Every time you have a new problem you gain fresh experience. Over time, that adds up.
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#24I built a bunch of personal websites, and sold my first professional website (static HTML) to a local estate agent when I was 15, back in 2000. I charged £300 - around $500 at the time. I worked for them for a couple of years, updating properties etc.
I studied Law at university, but worked on websites for my college, the student paper and various sports teams. I started my first startup when I was 19 - I wrote a lot of bad PHP and inline MySQL queries whenever I needed data in what we now call "views". There was no test suite, no version control and I often made changes straight into production, because I couldn't get a LAMP environment running consistently on my PC. This repeatedly took the site down for hours at a time. This was back in 2004. The bad old days.
I took a break from coding to join a management consultancy for almost 3 years, although I ended up automating a lot of my work in Visual Basic (through Excel), and went on to teach the Excel course to colleagues.
I started my second company at the start of 2011, during an enforced 3-month period of "gardening leave" between two jobs. I decided that I wanted to learn how to code properly, so I bought "Agile Web Development with Rails", published by Pragmatic Programmers, and worked through it in about 3 or 4 days, non-stop. This was an epiphany - web development all started to make sense, and we launched the first version of our site about 2 weeks later. I knew enough Ruby to be dangerous, but probably not enough to get a job as a professional programmer.
As my co-founder was teaching himself HTML & CSS at the time, we didn't really have expertise in-house, so I spent a lot of time on the #rubyonrails channel on freenode - a wonderful place to get help on anything Rails related. Stack Overflow was also very useful.
By March or April of 2011, we'd been accepted onto Y Combinator and hired our first (extremely capable) engineer, who had a CS degree. This spurred me on to become more technically capable, so I just started devouring programming books. I've mostly steered away from the classics (Gang of Four just didn't make sense from a Ruby point-of-view), but there are often more practical, up-to-date equivalents in the language of your choice. "Design Patterns in Ruby" and "Eloquent Ruby", both by Russ Olsen, stand out for me.
Ruby Koans, and then implementing a bunch of common sorting algorithms have kept me keen to keep learning the more theoretical side of stuff. I've had a little more time on my hands recently, so I've divided into open-source software - I'm currently trying to help out with Resque 2.0 (pull request coming soon, I promise!).
I've recently played around with Clojure and Go, but I'm struggling to get into them without a practical project to spur me on.
I'd say I'm now competent enough to have a good shot at getting most Ruby-based development jobs out there, if that was a path I wanted to take. And it only took 14 years!
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#25Re: Ask HN: How many "self-taught" programmers and how did you do it?
#26Re: Ask HN: How many "self-taught" programmers and how did you do it?
#27It started with a book named "Basic para niños" (BASIC for Kids,) which as you may guess, taught me some BASIC when I was 8 years old. Then a few years later I learnt some basic Pascal (I don't remember where from, it may have been a class in my school, when I was around 11 or 12.) Then I taught me some assembler from a book (around 15) and Visual Basic (and Visual Basic for Applications) around that time, too. I didn't learn anything new until 17 when I started with Lisp and a little later, Python. Then in my university I was taught C (which I complemented by reading TFM, i.e. the K&R book.) After that I've learnt on my own many more languages, up to a certain fluency. The list of things I can at least write a "hello world" (actually if I have learnt it I can write something larger once I get back into the language structure, because every language I learn is for "something") includes Basic, Pascal (well, actually I don't remember much about Pascal,) C, Lisp (that's Common Lisp mainly, and quite a lot of Emacs Lisp... I can write Scheme, but somehow I never got really into the deeper parts of it that make it "Scheme",) Prolog, Forth, Go, Javascript (that's for the browser and for node.js,) Awk, Bash (heh,) Java (ugh,), octave/Matlab, R, PHP and probably 1 or 2 more I'm forgetting right now. I'm currently writing quite a lot of Go, trying to find some use for J to learn it (it's fg crazy!)
2) When did you start learning (perhaps informative because of the recent rise of MOOCs)?
When I was 7-8, that's (whoah) 23 years ago, in 1990-91, before I even had a computer at home.
3) At what point (if yet) did you start working as a programmer professionally relative to your initial efforts?
I'm not sure when the correct timing is. When I was working as a researcher I wrote quite a lot of code as part of my work, and now even if I write a lot of code for work, my main work is not being a programmer. It took a long time, of course, because I started early and didn't start to do real work until right after college.
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#28My parents bought me one of these when I was in basic school: http://en.wikipedia.org/wiki/ZX_Spectrum I was happy playing games for a few weeks and then it broke. It took one month to fix, so meanwhile I was left with the BASIC manual it came with. I read it to withstand the cravings and when I got the computer back I was already more interested in coding than playing games.
So I taught myself Basic. Later in school I was taught Comal 80, some variation of Cobol taught in Danish schools. I learned Pascal later, also in School. When Internet came to Denmark in 1995 I taught myself PHP v1+2+3, and later Javascript, and started my own little business creating websites, based on a selfmade CMS. PHP + javascript has served me well for 18 years, but I think its time to move on to something like Go - so thats what I am planning now.
Re: Ask HN: How many "self-taught" programmers and how did you do it?
#29Re: Ask HN: How many "self-taught" programmers and how did you do it?
#30Started again properly about a year and a half ago when I began college (I'm 20 now - and I'm doing a Business Management degree), and haven't looked back since. You are right in saying that StackOverflow has literally changed the many people learn code because of how vast its library now is (for iPhone especially). Never had any formal education whatsoever — I've only ever read one book (http://www.apress.com/9781430236023), which was a complete beginner's guide. Everything else has been online tutorials (make sure you do your research and corroborate information on which blogs/sites are best to learn from for your chosen language), and Apple's amazing documentation.
As I am still in college, most of my projects are 'side'-projects, but with each iteration they're getting stronger. Collaborated with an SME to make an educational app and now have a contractual and in-house app lined up before Christmas. It's difficult to freelance like this, but the funding (loan) that comes with going to college means that I haven't needed to find a 'proper' job yet.
Never give up trying to learn, if you enjoy doing it. If you don't enjoy it, don't try to learn it past the point of caring. I constantly felt an 'impostor' syndrome-like feeling when working for the first company I worked with, but in reality, consistent hard work for at least a year will put you ahead of most average outsourcing operations for basic stuff. Try and validate your learning, too — keep a blog and constantly ask questions, either on SO or your language's forum of choice. A milestone for me was when I was accepted on student scholarship to attend WWDC this summer. Take it from me, you can achieve something similar if you make sure you don't slack!
I wish you the best of luck.