When I read things like this, I end up feeling a lot of sympathy for kids who are trying to learn programming and "computers" nowadays. I count myself as very fortunate that I started learning programming back in the 80's when not much was expected out of computers, since they were so (relatively) underpowered. I feel like I was able to learn programming concepts at a much more leisurely pace than you're expected to learn nowadays. My first real computer was a commodore 64 - completely self contained, no internet, no GUI, and something you could really understand from beginning to end after a few months of study. When I started learning more complex architectures and things like virtual memory and pointers, I had a solid base to fall back on that I don't think this younger generation is allowed.
This is a good point—I see a bunch of people overwhelmed nowadays on forums about languages, frameworks, paradigms, ideas, etc. So many! I know we say "just pick one, it doesn't matter" but still, not an easy choice.
I picked up programming after degrees in Mechanical and Chemical engineering, wanting to understand things more than make something immediately marketable, and I've been feeling this way for a while.
Reading "Masters of Doom" I couldn't help but feel that the technical constraints that existed at the time bred craftsmanship that seems hard to justify these days. Still trying, though.
At the same time, the counterpoint is of course that the 80s (and 90s for most) really required you to read a lot of books. There wasn't really any coding boot camps, tutorials (as they are today), pluralsight etc etc and the chances of meeting another accomplished programmer in real life was fairly low.
Some of the books from back then were much higher quality than what you get today. By reading Kernighan/Ritchie and Stroustrup's books and understanding them you could get a pretty deep understanding of C/C++. Most of the material available today seems pretty superficial in comparison. Maybe that's because back then you had a decent shot at understanding the whole stack and now there are just too many choices
Actually these kids should be reading all those same books. Coding bootcamps, tutorials, stack overflow and cut-and-paste are the reason there are so many solutions that nobody actually understands.
This is cool. I'm around the same age as you and share a lot of that background. I've wanted to put something like this together for a while, possibly in the format of a timeline on a personal blog.
It's also fun to look back at old forum accounts and blogspot posts and think "shit, I was 12 years old when I wrote that!"
I remember being going to barnes and noble, picking up a fat "advanced PHP programming" book, and slapping it on the counter (which was taller than I was). The guy behind it looked at me like uhhhh is this for you?
My biggest programming regret is not keeping hold of the qbasic stuff I cranked out as a nerdy kid.
I'm my head it was all so effing great (whole games with graphics drawn with the old pen-down, forwards 10, turn 90deg turtle thing!) but I'm certain grown-up me would get a kick out of how utterly abysmal it all was.
Then again, I'm a JS guy, so I still occasionally stumble across sites with code i worked on a few years years ago and weep openly at it.
Webmonkey was such a fantastic project, they really influenced my life with those tutorials. As I've learned more about html/css/javascript it motivated me to move forever from Delphi/C++ into the web development world. If any of them ever happens to read this comment, a huge THANK YOU!
I learned all my initial programming from tutorial sites. Some other ones, if anyone remembers: sitepoint forums, neverside, spoono, tutorial9, phpforums.... And of course IRC channels. I had so much fun in those, always competing with the other kids who were 12-14 years old (there was always someone smarter than I was).
I recommend taking a bit of time to do a similar write-up, it comes easily and you'll probably be surprised by the sheer amount of stuff you've worked on, and might see some interesting patterns.
I'm assuming he mentioned this somewhere, but Tavish was the editor of Architecture of Open Source Applications while was still an undergrad (if I recall). http://aosabook.org/en/index.html
I worked with him as a co-editor until I had to drop out because of other commitments. Super good dude.
My biz partner and I have often thought about creating a site with mini work history biographies to help others get further in their career (it is relevant because we have a recruiting software company). Perhaps even hiding personal identification of the biographer. The idea being if "I want to be a CEO how do I get there... is there an example... what are the details that don't show up on a linkedin profile / resume".
While you can certainly read biographies of famous individuals they are often too long and are often fringe cases anyway (not representative of others in the field). Also often biographies are written after or near the end of ones career so facts maybe hazy and or contextually irrelevant by the time they are published.
For software development this is no so difficult as most developers are transparent and blog but for many industries this is not the case.
You should still write it! I would like to read people's experiences throughout the years and the things that shaped them. I am especially intrigued by people like you who got to taste technology while it was in its teens. I am sure a lot of other people would find value in it too.
Interesting. I'd have dismissed it as low interest, not having worked for Sun, SGI etc or on anything world-changing. My perspective is still coloured from where I started out though.
TL;DR - Programming - don't get discouraged, it's hard but possible for anyone really - fun too sometimes! ;)
Really great write-up to share with aspiring programmers of all kinds - debunks a lot of stories many of us tell themselves and others ;)
I hope for more honest personal stories like these (not only for "programming"?) - always great to read about those. The internet (IRC and forums like HN especially) has always been doing that for me and I hope it continues to be that way for others too (anyone willing to learn really).
Edit: I've seen he knows and mentions Julia Evans - I've got the feeling that the Montreal "scene" is on the forefront in terms of inclusivity - big fan here - cheers from the old world :)
hehe, my first years of programming were filled with failure.
With 8 years I got a C64 and tried programming on it, but didn't get much going beside some arithmetic and prints.
My next gig was mIRC with 15 years. Copied some scripts to get funny colors going and later build some funny chat bots for games or social experiements.
Then I did a website with PHP, when I was 16 and had some C in high school were I build 2 console games (asteroids etc.)
With 21 I did my first paid website.
As one can see, it took me many many years before I was able to make money with my skills.
When I was 15 I wrote a game on the BBC Micro and sent it in to one of the computer magazines of the day (this was back in 1991, and while the internet may have existed in the UK, nobody had heard of it).
They rejected it (rightfully).
Recently I found the floppy disk, managed to find someone at work with a KryoFlux and a 5.25" floppy drive, and, miracle of miracles, it was readable.
The next question became: what do you do with such an awful thing? The answer is, of course, you run it in emulation on your website.
What's the point actually? I mean, I admire the diligence required to write it all down but how should this change my outlook on programming? The general idea is 'in order to be a good programmer, keep doing computer stuff'. Do we need extensive biographies full of details to learn this?
The point is to enjoy (or not) the adventure of another fellow human being in his way of becoming a better programmer.
To identify with some stages that you yourself went through, or to consider some difficulties that he had that never occurred to you as particularly difficult.
One can even get ideas about how to make teaching programming easier, or how to ease the setup/deployment of some open source project based on the author's experiences.
Heck, one can find a hundred messages and ideas to take out from this post.
The point of writing this bio probably had comparable inspiration to your own when deciding if you should make this comment.
You wanted to make the comment and thought other people might want to read it. Do we gain anything from your comment? No. Do we gain anything from the bio? Maybe not. Did that stop any of us from pushing text out onto the internet?
It's a good question. I came up much earlier than the OP did, so I enjoyed comparing his path to mine. His story gives some context to how younger developers think. For instance, the kind of small enthusiast projects he was doing (webpages and php) were different from mine (interpreters or games -- single-computer stuff).
But there are still some similarities -- his reasons for learning vi(m) and (La)TeX were basically the same as mine -- word of mouth from people who knew more.
> His story gives some context to how younger developers think. For instance, the kind of small enthusiast projects he was doing (webpages and php) were different from mine (interpreters or games -- single-computer stuff).
For the record, I'm also a "younger developer", only about one year older than OP. I was never particularly interested in the Web or PHP or anything of the sort. What inspired me to become a programmer was primarily Nintendo (NES and later SNES) -- I wanted to make games. As a young child, when asked what I wanted to do when I grew up, I'd tell people that I wanted to "make MegaMan".
In my early teens, I became a fan of the Final Fantasy series, and like many others at the time, I enjoyed creating little Japanese-style RPGs. Hearing about some technique called "scripting", I decided to write my own interpreter, and fell in love. Since then, I've been primarily a PL geek with a deep interest in programming languages, compilers, interpreters, and related subjects (such as PL design, PL theory, type theory, etc.).
I've also dabbled in operating systems and other low-level systems programming stuff. For whatever reason, I enjoy very low-level programming (as in assembly language, no higher-level than C or Forth) and very high-level programming (as in Lisp, Prolog, ML, Haskell, etc.) -- anything in the middle (Java, for example) leaves me feeling utterly bored.
I've been a developer for 20+ years (traditional CS/EE degree) and i think it's more difficult to be an excellent developer now than it ever has been. The sheer number of DSLs and the rate at which new ones appear and extant ones become less relevant is frightening.
sure the barriers to entry to become a novice programmer are far lower compared to 20 years ago, but the flip side of the low entry barrier is a seductive paradigm that can so easily mislead an aspiring developer into thinking they have reached some baseline competence, because they followed a line-by-line tutorial to create a rails app to store and display photos in a cool slideshow with swirling transitions set to music. Compare that learning coding by typing at a REPL to grok the utility and time complexity of data structures. The immediate sense of accomplishment is so much higher in the former. To someone with no prior cs training, there seems little to recommend the difficult path.
Yeah, I have 5+ years of full time Rails programming experience. I've been doing JavaScript full time for the last 3, and I just got turned down for a full stack job because I didn't have enough Rails experience. People are out of control with the platform knowledge demands.
I find it fascinating that most people have over a decade's experience of tinkering with computers, writing their own little pieces of code etc before they even enter the job market in their early twenties! Very few other professions can expect this level of experience from people just getting going.
Excessively long? Ah, millennials... perhaps you could abbreviate it down like Fabrice Bellard's site: http://bellard.org/ -- it shouldn't take more than one line to explain things like inventing ffmpeg, qemu, jslinux, writing a 4G LTE base station, and so on. Be sure to check out the "Old projects" as well for greater nostalgia.
I wouldn't recommend it. It's too long and too unstructured for that purpose. Also it's inverted such that the most important parts are at the very end. If the CV is so long that it probably won't be read completely by everyone involved in a hiring process, you at least want the most relevant parts in the beginning.
It also doesn't quite work as a story, since it's mostly just a list of events. Even biographies need a narrative arc and some kind of a hook. So it's perhaps best to just take the README at face value on why this was written: "I want to learn more about how people learn what they learn and examine the sometimes serendipitous or roundabout ways that people come by their skills."
While I second this recommendation I would also think that it doesn't make much sense that most HR people would prefer a "classic" resume over such a piece.
It tells you a lot more about a person WHY and HOW he/she started several different things then the fact THAT those things were done.
Try to imagine how this text would read in a resume like style: strip out all the anecdotal things about how and why and just leave the "facts". To a HR person this would read like "Oh my gosh, this person isn't knowing what to start next." But with all the anecdotal parts it reads more like "Oh a person which knows how to train different skill by theirself."
I don't know about that, if a bunch of people are excited about something and I'm just not seeing the 'hook', then I'd want to be clued in so I can be excited too. Or, just be made aware "yep, that's what they were excited about, it just doesn't do it for me", which is okay, too.
Looking forward to the exciting conclusion, did the author just get their first prof prog job? Does that make them good, or hireable, or are they the same? I don't believe so.
Maybe keep it going, and it'll get really interesting around years 5, 10, or even 20 past their first prof job.