Nobody told me it’s impossible, so I did it.

I just read this great post on Derek Sivers’s blog: There’s no speed limit. (The lessons that changed my life.) You should go and read it right now because what Derek says is so inspirational and so true. There is no limit to what you can achieve if you are motivated and inspired. I want to tell you how I started programming, hope you find it relevant and interesting.

I was 14 when my girlfriend at the time told me that her uncle got a home computer. It was Yamaha MSX and it was one of the first home computers in our town. Of course it had games and I started playing until my girlfriend’s patience ran out. After playing games for a couple of days I was very curious how it all works. I asked and asked, and after a while was given MSX BASIC book, I assume just to stop me from bothering everyone with all those questions πŸ™‚ I still remember that it was a xerox copy, pages and pages of poorly translated text with some code and pictures. We didn’t study programming or computers in school, so it was all very new, strange and foreign. But I was captivated. I read the book couple of times (don’t remember if I understood much after the first reading) and after several days I started writing a game. Graphical card game. In MSX BASIC. Using pen and paper. You see, I had access to the computer only few times a week for an hour or two. I had to be ready to type in and run my code when I get to the computer.

So here I was, writing BASIC code on paper and tracing it line by line with my index finger πŸ™‚ But it turned out it’s hard to add something in the middle of your code when you write it on paper. I started to leave every other line empty so I could put another line of code in between but it wasn’t enough. I didn’t know (or didn’t understand) about subroutines/functions but I figured out GOTO. It was great! I could putΒ  GOTO on an empty line and execute additional code written on a separate piece of paper. I know all programmers are laughing reading this, but I was happy that I didn’t have to squeeze several lines of code into one line in the notepad anymore!

Showing playing cards on the screen was hard. You just can’t hold all those pixels and coordinates in your head. But I found the way. I got sheets of graph paper and drew X and Y axes with screen coordinates on them. I could put dots on paper so they form a picture I wanted, then check coordinates of each dot and enter them into my program. It worked! Graph paper was my video memory simulator πŸ™‚ Later I figured out how to copy small picture from one place on the screen to another (sprite graphics) and things became much easier.

I don’t want to bore you with other details but in a month or so my game was working. It grew to 40 pages of BASIC code in my notepad and it was a mess but it worked! It was shuffling a deck using random number generator, displaying cards, making decisions how to play and even winning against human opponents from time to time! I was so thrilled! By the end of that summer (I started at the beginning of summer break) I got crafty and even programmed the game to cheat a little.

Now if you ask anyone they would say that learning programming like that is just not possible. I would say the same thing myself if it wasn’t me who started that way. But back then nobody told me it’s impossible, so I did it. I wasn’t lucky enough to have a teacher to challenge me like Derek’s teacher but I was motivated. No, I was MOTIVATED. I was INSPIRED. I wanted to make it work. It was hard and it was challenging but I loved every minute of it. And over 20 years later I still remember the thrill of seeing my program work for the first time. That’s why I became a programmer and that’s why I write code every day.

Derek Sivers is right. There’s no speed limit. You can do so much more than anyone expects if you’re passionate about it. And it doesn’t matter if everyone says that you want to do the impossible.

Published by

Michael Rakita

I am the founder and CEO of Traysoft Inc. I also design and develop software, provide customer support, manage our websites and do everything else including posting on this blog :-)

33 thoughts on “Nobody told me it’s impossible, so I did it.”

  1. My start as a programmer is almost identical to yours (though only 10 or so years ago) so I can understand the sentiment. I can remember myself writing BASIC programs down in my notebook while slacking off in class, or even worse converting programs and games for TI calculators so I could use them on my Casio calc. Man those were the days!

    1. Ahh… the TI99/4A… with 16K of memoty, a black and white tv, and a cassette tape storage!
      I wrote a “Chuck-A-Luck” (Dice betting game) in TIBasic. It had animated rolling dice, and plenty of “sprite” graphics.
      I would program all through the night!
      And… it only cost me my first marriage!

  2. Sure it’s possible – ask anybody over the age of 35 who grew up in Eastern Europe. And when they finally got computers, they were damned good programmers!

  3. That reminds me of my first days of code.

    The BBC used to transmit source code using Teletext to be downloaded using the Acorn Atom Teletext decoder. The code wasn’t meant to be human readable, line breaks and the like were replaced by tokens.

    Having neither an Acorn Atom never mind the teletext card, I sat there and transcribed the encoded code, decoded it and got something I could read and learn from.

    When I got to senior school there was a Research Machines 380Z waiting for me (I say that because *no-one* else in the 1000 pupil school ever used it) and eventually my later Acorn BBC Computer arrived at home.

    I still have my original BBC even though it doesn’t boot any more and a working version.

  4. I certainly wouldn’t have told you it’s impossible – that’s how I learned too =) Was writing in BASIC for a good six months before we bought our first computer.

  5. Your situation mimics mine very, very closely. I started this in 1982. The “loaner” computer was a TRS-80 at Radio Shack. The main guy working there let me plink around on it for a little while a day.

  6. I did something very similar only with C++. I used to spend a lot of time waiting for my mom to pick me up from different school events and stuff, so I had lots of down time. I wrote lots of dinky little programs like “Calculate your weight on the moon” in C++ on the back of sheet music I had kicking around my trombone case.

    “C++ From The Ground Up” was like scripture to me back then. I wish I could find my old copy of that book.

  7. Thank you all very much for your comments. I’m happy to hear that many people started this way. It confirms that all you need to do something is motivation and passion.

    Just wanted to say that I didn’t write this story to show off. Sorry if it comes out this way. Of course tons of people did much more impressive things. I see a lot of people who want to do something like start a business or change career and they get discouraged by everyone saying it’s hard or not worth doing. I just wanted to motivate them and tell them that it doesn’t matter what others are saying.

  8. i started my programming at an fc like pda device
    with basic on that,and to prove my programming skill on it i learn qbasic which is almost like that one on the pda

  9. I started in the very early 80s, and had been buying computer magazines for a few months before I got one, and I think it was a really interesting time – there were barely any commercially available games, and typing things in from listings in magazines was common, and equally most of the magazines focused on programming as what you did with your computer.

    By 1984 I’d say that was over – you had magazines with nothing but games reviews in them.

    The interesting thing is that almost all my friends at school who had these cheap (1k, 16k) computers have gone on to become programmers, including the ones from ‘poor’ backgrounds – those machines were life-changers, in a way that I think later, more useful, computers were not.

  10. I am 27 and not over 35 but still I did learned the programming on Paper using BASIC same as above when our school had computer access for very short time in the week.

  11. Another “me too”. πŸ™‚ It was around 1981, and we got to use the Atari 800 at school for precious few minutes a week… So, I’d read every programming book I could find, and every computer magazine I could afford, and write BASIC programs on paper. And when I think back, those were the most satisfying days I’ve ever had in this “hobby”. These days, “business requirements” and “architecture reviews” have taken most of the fun out of what was once quite an enjoyable endeavor. Back in the day, writing software — making the machine do what I wanted it to do, how I wanted it to do it — was thrilling, captivating and all-engrossing.

  12. Impossible? That’s just silly. What you describe is probably how a whole generation programmers started out. At least I recognize it. I had to learn English too in order to understand the (xeroxed) manual.

  13. Same story here, more or less. I’ve started with BASIC too, when my brother bought the book but got bored easily. So I’ve picked it up, and read it several times, programmed my first Tetris game, and never stopped programming since then. πŸ™‚ It was a lot of fun.

    But the problem is, and it also gets asked in forums from time to time, what is the BASIC for modern times, that gives the same satisfaction and excitement?

  14. Pretty much the same story. Took programming course in BASIC at pretty much the first computer shop in our town in mid-80 during school holiday.

    I remember the course was 8:30-10:00 in the morning and my brother and I were pounding on the door at 7:30 waking up the owner/instructor who lived there to let us in so we could spent some time on the computer. There were other courses after ours, so we only got access to computer during those short hours 3x a week.

  15. Like many correspondents here, I started programming in much the same way as you describe. Once we’ve established motivation, which I agree is the most important thing, we need to consider how to continue. It took me a long time to pick up the elements of software engineering/craftsmanship, but without them, I would be a Bad Programmer. Learning how to do the job properly matters; enthusiasm alone isn’t enough.

  16. Haha, sounds just like me. I was bored in school (the curriculum was years behind my knowledge level) and would fill sheets and sheets of paper with code, waiting to get home and test. Good times.

  17. I think you are missing the point here , learning how to program this way is the ONLY way to really becoming a great programmer πŸ™‚

    Doing those tasks by hand is a very important first step since that is what gave you a very solid understanding of how programming works, and more importantly it allowed you to start visualizing your program in your head.

  18. Excellent. I’m 51 and a child of the computer generation. In my school days, there were no such things as computer courses or degrees in Computer Science… at least non that I heard of. I certainly did not want to be a mainframe jock!

    – In high school, my math teacher asked if I wanted to be in a “computer club”. I was amazed. Sure, why not? Well, it was an after-school gig… The “computer” was an IBM Selectric Typewriter terminal connected via a 110-baud acoustic coupler and telephone to an IBM System/360… The programming language was APL (A Programming Language), which used a special typeball and the Greek character set. APL was (and remains) a very powerful interpretive lanaguage… very simple to multiply a matrix of a millon by millon dimensions (which would delight us and crash the APL session). I was hooked.

    In college we had an HP Mini, with 8kB of core… We did BASIC programming on Teletype terminals. The BASIC interpreter had to be loaded via a punched tape (To load the punched tape, you had to do a boot-strap by entering octal into the front panel switches.)… When the professor got a $25K grant to buy a 16kB memory upgrade to the HP Memory, he forgot the HP and bought 15 or 20 Commodore PETs — 64K machines with built in video and Bill Gates’s BASIC! It was AWESOME.

    A later college roommate and I bought the Altair 8800 Kit when it came out! S100 Bus and all that cool stuff… plugging in 2102 1Kbit static RAMs… I was in heaven…

    It’s 30 years later and I’m still writing code as an individual contributor… many products shipped, lots of success stories… VB.Net is my favorite language, with C# a close second. On Linux, PHP and Ruby.

    Have PASSION for programming and you will go places. Software is an ART, not a science. Learn by doing — get a college degree for the the science, but let the PASSION for programming live on.

    1. Thanks Gerry, great story! IBM S/360 with APL was before my time but I can imagine all that fun you had playing with it. I agree, software is not a science and passion is a must. We are not in the era of 8kB computers and BASIC anymore but think of all options for someone who starts today. Web programming with Ruby, Python or PHP, Windows programming with C# or VB.NET, iPhone or Mac programming with Objective-C, Xbox programming with XNA etc. I’m a little jealous πŸ™‚

  19. I guess I’m older than dirt. πŸ™
    I started programing with an Altair 8800 with a blazing fast 2 MHz Intel 8080.
    The only language available was 8080 machine code.

  20. My story is similar to yours and others. I had just gotten married and fell very ill after three weeks setting up and running an envelope making machine. So I was fired from my one and only union job. I hunted around and found a job running a TAB machine, then a 1401 IBM computer (4K memory in a computer the size of a VW).
    From there I found a job running an IBM 1440 Machine 3rd shift. After a couple of years I got a job running a 360 DOS machine at an auto parts manufacturer. Because it is so boring running a computer all alone I started fooling around writing little programs in Assembler language while running my jobs on the computer. Well I found I liked writing programs and got promoted to programmer. My biggest accomplishment at that company was developing a means to let all of our systems run when the dreaded year of 1970 arrived.
    Everyone was so afraid that all systems would stop functioning when the year 2000 came because almost all systems were based upon a two digit year. But they all either forgot or were too young to remember that the same thing happened in 1970 because in the 60’s hard drives were so small that virtually every database used a single digit to represent year since only the government had computers prior to 1960 and most government applications didn’t depend upon dates. But businesses used dates for payroll, orders, billing, inventory, etc.
    So I developed a routine that allowed all of our systems to run for an additional five years beyond 1970 while databases were being redesigned and systems rewritten.
    So that bullet was dodged.
    From there I moved to an insurance company as Programming Manager with a staff of 5 programmers working for me. I went on from there to work for 15 years at a mainframe software company in support and then software development for IBM DOS systems, then as relational database technical support, relational database designer and relational database language teacher, etc. I still remember lugging around a “laptop: computer bigger than a Pullman suitcase with a monochrome screen that was smaller than any hand held DVD player today. Yes, the “good” old days…

    All this from a high school dropout without ever having taken a formal computer programming class, only self taught on those long lonely nights while running my computer to print orders, invoices, inventory records, payroll checks, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *