8 ms·
The need to code
- senko 16y agoA great story. That process, the act of programming is something that I need to do. My feelings exactly. I can't not program. If I'm burned out with some complex work-related problem during the day, I can still catch myself fiddling around some random unrelated little code that does something "cool" (whatever might be cool for me at that moment) in the evening. I started programming in elementary school (10yo), when I got a C64 computer, which was very popular at the time. BUT, I got it with a disk drive (1541-II drive, which cost more, and had more CPU power than the actual computer), and all my friends had tape drives, so I couldn't exchange games with them.. So I read and re-read the owner's manual, which was in German, and I didn't really know German .. so I would type these BASIC examples and try to figure out what happens. I think one of the first programs I wrote and understood was a variation of "guess the number" game.
- tomjen3 16y agoMy first programming experience was with a guess the number program that I partly got from a magazine which came with a free copy of Delphi 3. I didn't understand enough to do anything but use integers though, so all the cheat codes I put into it was numerical. Thanks for the memories.
- l0nwlf 16y agoNot counting 7 years of GWBASIC on MSDOS, my first experience was with LOGO in class II. REPEAT 360 [FD 1 RT 1] for making a circle, nostalgic. :) EDIT: Downloaded BASIC from http://www.weihenstephan.org/~michaste/pagetable/recompiler/apple1basic_osx.zip http://www.weihenstephan.org/~michaste/pagetable/recompiler/... and now writing some silly codes.
- SamReidHughes 16y ago> And so I did. That first copy of byte magazine got read to pieces, I even knew the words of the ads by heart. :-3 I grew up in a later era and one time in the late 80's my mom brought a portable computer home. When you turned it on the screen would shimmer and my mom let me type in the word processor. It was disappointing, since I expected computers to be so much more Amazing than a word processor. Then, later, we got a home computer, and we had it for seven years, and internet access for two, without the idea clicking that yes, I could probably write programs on it somehow. (I couldn't, actually, because QBASIC was not installed.) Finally I got my start writing "programs" when in eighth grade they taught us how to do word processing and make spreadsheets, and using MS Works Spreadsheet '99 (on a new PC) I made a spreadsheet for managing a basketball pool. I was still unaware of the idea of having a programming environment on a computer. A year later, though, we had to get TI-83 calculators for math class, and that's how the hobby of programming kicked in for a lot of people of my generation. Programming on calculators sure as hell beat devising ways to sort a deck of cards.
- dtby 16y agoMy need to code comes almost exclusively fromy my need to understand. If I can understand a problem space well enough to explain it to a computer, I probably understand it.
- ruslan 16y agoThis is only one side of the virus. There's another one: the need to create things. I feel a great need to implement my _own_ ideas both in software and in hardware, i.e. first to understand the problem domain, then to create something that relys on this new knowledge and that does not yet exist. And it's a great great pleasure to observe the thing I created works. Maybe not as I initially imagined, but works! And I feel so miserable when it does not, usuaully because of some nasty bug (or a bad concept) and I cannot help stop debugging and debugging till I get it working! :-)
- jgrahamc 16y agoWhen I was first programming I didn't have a computer and so I'd write programs in little notebooks. When I finally did get a computer it had a very slow tape recorder for saving programs. I would frequently write programs and simply switch the computer off without saving. Saving was a hassle and I knew that the programs worked once I'd executed them.
- BahUnfair 16y ago> Programming is not like playing a musical instrument, it is not something that you have to have a genetic disposition for. As someone who is stumbling through the basics of programming and learning guitar, I can tell you that the secret to success in both is practice and putting in the time. There are very few activities that you cannot become good at with sufficient time and resources.
- nopassrecover 16y agoThe thing is, there has to be some genetic/early developmental disposition. I "got" programming the first time I tried. 5 years on I'm still fumbling my way through beginner guitar.
- mebassett 16y agoplaying a music instrument, e.g. guitar, does require a lot of muscle memory, which takes a lot of time to develop. apart from mental abilities, programming requires typing skills. it's easier to learn how to pick at a keyboard effectively than how to pick at a fingerboard effectively. Keep practising the guitar.
- petercooper 16y agoI don't know if there is or if there is not any disposition or genetic element but if it applies to one, it applies to the other. There are people who, even with effort, fail to "get" programming (or, more specifically, the logical concepts behind it) in the same way that you're struggling with the physical aspects of the guitar. I've had to do quite a lot of DIY as a home owner but I still feel as useless and incompetent as I did years ago. The difference between DIY, though, and programming is that the average joe doesn't have to program whereas I still have to do house repairs.. :-)
- nopassrecover 16y agoYeah that's the point I'm trying to make I think - I get programming when others don't (even without practice, the practice just made me a lot better). And as much practice as I give it I don't get much further with guitar.
- mebassett 16y ago>> Programming has an addictive component that is very strong. As you get better you gain more expressive power, you can do more complicated things than you could do before, solve more complex problems. and > > It's like a drug. I'm still fascinated by it, even almost 30 years to the day later I still read about languages, new ways to solve old problems, all kinds of developments in software and hardware as though it is the first time that I hear about these things. It is like a drug. I think our brains fire off the same pleasure inducing endorphins when we figure something out or learn something new. And it happens so much in programming: you implement something old in a new way and you get a little buzz, you squash a bug that's been getting to you for a period of time and you get a bigger buzz. I think curiosity when we were little got us interested, but ever since we, or at least I, have been a junky. I sometimes wonder how my life would be different if, by chance, I would have gotten addicted to something else. There's so many things to get addicted to these days. my other drug of choice is mathematics. the highs are higher, but they take a lot longer to reach. programming gives you rewards almost instantly.
- KevBurnsJr 16y agoDrug Wars on the TI-83 is largely responsible for my interest in computers.
- michaelty 16y agoLoved that game!
- mattdeboard 16y agoA lovely article. I did not start programming with intensity until I was 30, almost two years ago. Now I look back to my youth, when I was poking around in Basic, trying to figure out how to write a login system for my computer (running DOS 5 or something similar), and I wonder, what happened? Why did I ever stop? Why didn't I carry it through? I spent my teenage years and my 20s doing work I wasn't passionate about simply because it was easy. Now programming has changed the way my brain works. I'm a much more critical thinker. I wake up in the morning and the first thing I do is crack open Emacs (yep.) and start hacking. I need to program. Creating software is the first thing I've ever been truly passionate about in my entire life. My entire wasted life. At least I found it. Better late than never.
- phugoid 16y agoI followed a very similar pattern. I got stuck at DOS 5 and BASIC. At the time, I had a C book but my 286 couldn't run the compiler. Also, I couldn't run Windows 3.1. So I stopped learning and picked up the electric guitar. Like you, I've come back to it full force in my 30s. Programming has invaded my brain, and shapes the way I think. I have rekindled the excitement I felt as a child and I won't let go of it again.
- mattdeboard 16y agoHear, hear. I'm hacking on a project on a Sunday morning and having a good time. I used to fill these gaps with video games.
- patrickk 16y agoWeird. I have a memory of when I was about 12, attempting to code BASIC on a VTech PreComputer Prestige (not a 'real' computer!): http://ttggallery.blogspot.com/2010/01/vtech-pre-computer-prestige.html http://ttggallery.blogspot.com/2010/01/vtech-pre-computer-pr... The manual had some instructions for learning BASIC. I messed around with it for a few days, but never stuck with it long enough with it to have an epiphany. It was only when I got to college in my late teens that my eyes were opened to the possibilities of programming. Wish I taught myself to code instead of wasting time moping around during my school years!
- xiaoma 16y agoWow. I can almost picture that kid! I've only done limited amounts of programming, but I can certainly see how it could be addictive as you get better. A lot of the time I've spent has been utterly wasted, e.g. fighting for a week to get a rails install configured 2 years ago and then mostly giving up as various tutorials I was following were all out of date. But when I've gotten something working such as the kongregate shootorial, it's been easy to spend all my free time for a week tweaking it and improving it. I also have to say that the entry point for programming (aside from setting up the environment) has been a lot less frustrating than for some of my other pursuits such as language learning. I must have learned a good 200 words of Swedish before my pronunciation was good enough that natives could even guess at what I was saying. Obviously at a higher level, language learning is more about memory than intense thought like programming is, but a lot of people get frustrated long before reaching that point. Programming is also a hobby that won't lead to being a perpetually broke translator.
- cubicle67 16y agoAnd then, one day it clicked. I don't know what exactly caused it but it was as if the light had been turned on, I suddenly understood the program that I'd just typed in and* all the ones that I'd been typing in before it. And the next program I typed in was one that I came up with, not one from the exercises* That's exactly what happened to me, and you're the first person I've ever seen express it. I was about 10/11 at the time with a Vic20. I spent quite some time with nothing really making sense. No specific memories, just that I didn't really get it and was close to getting bored with the whole thing. My next memory is that suddenly, I got it. One minute I understood nothing, then it all made sense. Some window opened in my mind and understanding flooded through, an experience I can't explain and have never had since. Here's how my story differs though - Once I was midway through high school I became embarrassed by my affinity with computers. Bit of a social stigma I spent the next 15 years trying to avoid, working all sorts of different jobs trying to fit in somewhere. It wasn't until I ticked over 30 that I was able to admit it (writing code) was the one thing I kept coming back to; the drug I'd been addicted to for the last almost 20 years, but tried to hide from. And now here I am, almost 40 and I've just got myself a cofounder, we've registered a company and I've spent what's been (so my wife says) a lovely Sunday sweating in the hottest room of the house (the study) working on the beginnings of a new life. And I can't think of anything I'd rather be doing. Sad, isn't it :)
- mgkimsal 16y agoNot sad at all (that you're working right now). Sad perhaps that you tried to avoid computers for so long. I wonder what people like us would have done in BC times ("Before Computers"). I doubt pure algorithmic math work or sciencey research really would have cut the mustard for me.
- edw519 16y ago...if you add up the number of hours that I've spent in conversation with editors, compilers and debuggers over the years... I'm afraid to do that. I would probably be shocked by the number, and then would quickly calculate my lifetime rate, which would probably be about 28 cents per hour. This is the thing non-programmers never understand; programming takes a lot of time. It's like a drug. Great analogy! For me, there's no bigger high than the exact moment of the conclusion of this process: NothingThere + IDidSomething = SomethingThereForTheFirstTimeEver! That process, the act of programming is something that I need to do. Sometimes I think this is the difficult-to-define missing requirement for software success. Some call it "passion". Some call it "determination". I call it "I can't imagine doing anything else". but it has all the components of a 'real' program, input, computation, output. Don't forget storage. That was the killer feature that got me hooked. You could write a simple program, store the result (on a disk!), come back later and build upon that result. Before disk storage, computers were toys. After disk storage, they changed the world. there is nothing that can't be learned. I've never had a tatoo, but if I did, this probably would be it (backward, on my forehead). ...all you need to be is a little bit better than you were yesterday and to keep doing that for a long time. This advice: 1. is excellent. Maybe the best you'll ever read here. 2. is not intuitive. Most people don't get it. Like compound interest, it's hard to wrap a human brain around it. 3. is universal. It applies to almost anything you can do. 4. is very difficult to teach. As soon as you think people get it, they don't. They stop measuring their own deltas and resume comparing to perfection. Grrrrr. 5. the single most important thing I've ever programmed in business turn-arounds. The best dashboards and report writers I've ever written are time-phased; they clearly show improvement over time, which is almost always more important than any snapshot: Losing + Improvement + Time = Winning Beware of that bug though, once it bites you, you'll be hooked for life. To this day, whenever I need something for myself and can't find it in 5 minutes, I build it. It may not be the most effective way, but I just can't help myself. There must be a (3)(2)(2) program for people like me.
- sunjain 16y agoWhat is probably most significant point of this article is that he has enjoyed programming for that long and still enjoys it, and gets to do it. It is refreshing to read that, amongst all the craze for startups, somewhere folks are interested in programming as a hobby, as an art. And not just high school or college but life-long. I certainly think that just like music, art, sports there is an aspect to programming which is as fulfilling as these art form. And more than the end goal, the act itself is also filled with purpose and fun.
- rbarooah 16y agoI had one of those sharp pocket computers - though I was a but younger at the time. It was 4 bit!
- rbarooah 16y agoI've never understood why Byte magazine was shut down. There's been nothing like it. I can't imagine it not being popular in today's tech culture. I'd pay $100 or more for a year's subscription to it right now.
- kragen 16y agoBecause of the web. Writers no longer need printing presses to reach interested readers. Readers no longer need managing editors to select good writers and articles. (Writers can still benefit a lot from good editing. Witness the long list of thank-yous on every Paul Graham article.)
- rbarooah 16y agoWould that this were true. There just isn't anything on the web that compares. (or if there is, please please tell me!) After writing my comment I did some research and found this: http://www.halfhill.com/bytefaq.html http://www.halfhill.com/bytefaq.html It turns out that BYTE was shut down because it didn't focus on WinTel enough - which was the dominant platform at the time (late 90's). I had always suspected this. It wasn't some overt conspiracy though. Byte had above average circulation for a computer magazine, and far higher resubscription rates. The problem was that because it didn't cater to a specific well defined segment of buyers, it was less appealing to advertisers. Given that so much of the web is advertising driven, I don't see how it's immune from this. There can be a huge number of people who want a source of well written broad ranging tech material but it's the advertisers who fund the web and they don't want broad ranging. They want people neatly divided up into predictable segments of buyers. What gets funded on the web isn't determined by what users want - it's what advertisers will pay for.
- kragen 16y ago> There just isn't anything on the web that compares. (or if there is, please please tell me!) The breadth and depth of well-written technical information available on the web is far, far beyond what was available in Byte in its heyday. Consider: http://lwn.net/Articles/428530/bigpage http://lwn.net/Articles/428530/bigpage http://www.airs.com/blog/archives/category/programming http://www.airs.com/blog/archives/category/programming http://hackermonthly.com/issue-10.html http://hackermonthly.com/issue-10.html http://blogs.msdn.com/b/oldnewthing/ http://blogs.msdn.com/b/oldnewthing/ http://prog21.dadgum.com/ http://prog21.dadgum.com/ http://www.dadhacker.com/blog/ http://www.dadhacker.com/blog/ http://diveintomark.org/ http://diveintomark.org/ http://lambda-the-ultimate.org/ http://lambda-the-ultimate.org/ http://www.facebook.com/Engineering http://www.facebook.com/Engineering http://research.google.com/video.html http://research.google.com/video.html http://rentzsch.tumblr.com/ http://rentzsch.tumblr.com/ http://perspectives.mvdirona.com/ http://perspectives.mvdirona.com/ http://www.exampler.com/blog/ http://www.exampler.com/blog/ The big difficulty these days is not getting access to well-written, broad-ranging tech material; it's choosing which well-written, broad-ranging tech material you want to read out of all the immense quantity of material out there, and avoiding spending all of your time reading it. Services like HN, Reddit, Digg, Facebook, Delicious, and Slashdot basically exist to solve this filtering problem (although not, obviously, limited to the tech press). > What gets funded on the web isn't determined by what users want - it's what advertisers will pay for. That's true, but fortunately it's irrelevant, because what gets written about on the web isn't determined by what gets funded—it's what people want to write about.
- ekidd 16y agoThis captures more of the story of my life than I'd care to admit. I'm lucky to earn good money doing something that I can't stop doing. Once, I was deeply burnt out. I took up knitting in an effort to get away from programming for a while. And just like Feynman in yesterday's front-page story, I was once again writing toy programs within a month. Sometimes I wonder what I would have done if I was born 20 years earlier.
- mcnemesis 16y agoI actually once asked the StackOverflow community where the software we make isn't so dear to us as "one's own child" - at least I feel that way so often. I(){ _just_love_code;} I();
- wazoox 16y agoThis is so similar to what I've done .... My first computer was a Casio PB100, with the 1548 bytes memory extension :) I still have the programs I've done on small cardboard sheets. Then I had an MSX in 1986. I made dungeons games, drawing programs... all in BASIC of course. When I got bored with BASIC I plunged into Rodney Zack's "programming Z80" and wrote a crude assembler in BASIC. From there I had a grandiose plan of a 3D 3rd person adventure game in an open world... I began some work on it and realised I'd need about 10000 times the 64KB RAM to get anything done, and a CPU 100 times as fast, and countless other stuff :) Happy days, everything was possible back then.
- HiroshiSan 16y agoThe end really hit me deep...very assuring " It may take a while (it took me more than a year to learn 'BASIC', which is a very simple language) and I gave up several times only to go back to it once more." I don't know how many times I've tried learning python only to fail..but I'm going to keep trying until I can stick with it and get better...bit by bit.