Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What sparked your interest in programming?
26 points by thetermsheet 14 days ago | hide | past | web | favorite | 53 comments
My two children seem to love technology and I want to see if I can provide a no-pressure, fun and intellectually stimulating environment for them so that they can give programming a try.

Hacking rules.ini for C&C: Red-Alert!

Game was too frustrating, but hey changing this easy to understand rules.ini file completely changes it to my favour! Also you could do hilarious things like an attack dog launching an artillery as its primary weapon. It taught me how to debug and roll-changes back when the game crashed with the dreaded "Internal game error" message.

cue Neo from the Matrix who starts to see the world as just code

But seriously, it was my first introduction to "programming" and then got me into QBasic via "Complete Idiots Guide to Programming" which I borrowed from the local library. I was also super into Aerospace and this book [1] also from the local library gave me background into computer hardware.

[1] https://www.amazon.com/Computers-Space-Journeys-James-Tomayk...

It's so funny you say this because this was my introduction to modding and programming as well, except with Red Alert 2. I remember changing the cost of the items, adding new units, replacing the graphics, etc.

Ha! I had fun with Red Alert 2 as well, though RA2's rules.ini seemed much more involved.

The RA2's rules.ini pretty much exposed the games internal hierarchical layout for units, i.e an IFV loaded with GI's is different compared to a IFV loaded with Engineers.

But serializing all of these led to a much larger file than RA1, it was quite a bit more difficult to hand-hack RA2's rules.ini. I ended up caving to a utility tool like TibEd and Red-Alchemist. [1]

Good times...

[1] https://www.tibed.net/tibed1/

In the very early 1980s, my father took me into a bookstore in Auckland, New Zealand. While he browsed, I wandered over to the personal computer section where another shopper noticed my interest, asked my name, and typed

  10 FOR I% = 1 TO 10
  30 NEXT I%
into a BBC Micro. And I was hooked. Mum and Dad saved for a year or two and bought me a Commodore 64, and I was away.

Now I try never to miss an opportunity to show the magic to young kids, and I always think of the kindly stranger when I do so.

My dad was a programmer at Sperry Univac. Our scratch paper was 11 x 14 fanfold. He also brought home punched cards. I learned to read the holes (though not for punctuation characters). He had this laminated card with a list of assembly opcodes, what they did, and their time of execution. (I still remember that an add took 4 microseconds, and a multiply took 6).

Then our high school got TRS-80s in the computer lab. I borrowed the BASIC manual and read it while I was supposed to be paying attention in calculus. (It only took an hour. That's something to keep in mind when designing a language for kids to learn.) I already knew FORTRAN, but changing a FORTRAN program took a week (create a deck of cards, hand it off to a teacher, they took it off-site and ran it, and brought back the results). Whereas BASIC I could change in a minute. (Yeah, those who say that a REPL is a big deal? Instant feedback really does change things.)

AutoHotkey[0], which is a phenomonally inconsistent and bizarre yet simple scripting language for Windows that lets you hack together pretty much anything. I knew nothing about programming and was just trying to do something simple with it (I don't remember what), and failing until I dove head first into the docs.

The I discovered the forums, which had a lot of healthy discussion at the time. I remember contributing to a clipboard manager written in AHK called Clipjump[1] that I still use to this day (great concept, not so great implementation). This was when I was in high school in the early 2010s. From there I got a lucky break when I was hired with no prior experience for a PHP4 scripting job, and then on to greener pastures from there with JavaScript and Python.



Are there are any games they play/might be interested in that have scripting facilities of some sort?

I got into tech of various flavors by learning to write RuneScape bots circa 2005-2009. There were a few publicly available Java reflection-based bot dev kits at the time, which was my initial entry point. I later got into more advanced programming topics by figuring out how the SDKs themselves worked and rolling my own, as the widely used free ones tended to get your accounts heuristically banned quite a lot. Sysadmin stuff when I got around to setting up proper remote bot farms, etc.

My example is somewhat more ethically dubious than a lot of similar-ish stories (e.g. blizzard rts mod development, Minecraft mods, etc.) but I've always found that "pure" intros to programming tend to lack an inherent motivating factor like what you can get with messing with games, whether it's to make something cool, skip a grind or generate some pocket money.

Wow, this throws me back. I had the same exact experience. Now I'm back down memory lane thinking of that forum drama...

The RuneScape botting scene was so strange. It was a really interesting subculture to be a part of. If you were ever active on JH, we probably have seen each other's posts...

An different but related scene was the RSPS (Runescape private server) community that created replications of the game with a reverse-engineered client. Developing private server code was my first experience with programming and with backend software problem spaces like networking, concurrency/event handling, etc.

The very first program I wrote that did something useful was a naive runescape autominer using SCAR and pascal.

I wanted to create things; games, demos; even boring business applications ‘out of nothing’. That was when I was 80 around 35 years ago. I still do and still have the same feeling when I finish something.

8 not 80 but guess that was clear.

QBASIC.EXE! When I was in high school, there was this small program (small enough you won't delete for extra space for games) included with DOS that contained everything you needed to create a small program.

Today's official answer would be Visual Studio on Windows or Xcode on macOS which aren't simple or small.

The most similar contemporary approach to that simple game making is probably the 2D game engine LÖVE, which is awesome


You might also take a look at PICO-8 (https://www.lexaloffle.com/pico-8.php). It's a "fantasy console" also programmable in Lua. It includes code/sprite/music/sfx editor. So a complete environment to build games. And the best thing is that the cartridges are also PNG files (example: https://www.lexaloffle.com/bbs/cposts/2/29524.p8.png)

BASIC games printed in 321 Contact magazines that you had to painstakingly enter yourself to play. At about 8 years old.

Ex: http://www.petesqbsite.com/sections/zines/others/basictr3.gi...

Inevitably you'd copy something wrong, the game wouldn't compile or wouldn't work correctly, and debugging began.

I was "in to computers." I liked looking through files, new software, and drawing in ms paint. As I started at university, my buddy said, "you should take a programming class." I took CS101 in C++. I got an easy 4.0 and he hired me at his start up doing PHP. That was the start. Then I went into insurance, financial advisement, and teaching math in highschool. All the while, tinkering and toying with programming and some odd jobs (all the while raising a family that we started a bit early by conceiving at age 15). After failing at insurance, failing at financial advisement, and failing as a teacher (which all hurt), my side projects caught the eye of a recruiter, and I interviewed at a few places. I ended up with a great software company where I have grown tremendously and am now (years later) a principal engineer. I love what I do and I think I am pretty decent at it :). What does this mean for your kiddos? Find something they like on computers and link that to a programming problem. Helo them learn that a computer is a tool and a tool they can alter and control to do what they need done. There is no magic there.

I guess QBasic. Something about drawing a round face with two eyes using commands was just irresistible for me at one point in my life. Also nibbles.bas.

Nibbles.bas! You’ve just unlocked a forgotten memory for me. Wow! Great game that was. Takes me back to the Gem operating system days!

I had always been into technology and computers and had a few friends who were programmers, my mentor was a programmer, my dad was a programmer as well.

In high school I didn't always get along with the old man so I hadn't wanted to be a programmer honestly. But one time I had to do some VB with MS Excel for class and found it to be a lot of fun! I knew that it was kind of 'fake' boring programming compared to the stuff programmers do on the day to day, so I decided to learn real programming and now here I am almost 10 years later.

I think that you'll need to find a way to incorporate programming into some other domain that they fancy rather than trying to just introduce them to programming for the sake of it.

The C64's BASIC prompt. The concept of a computer booting into an environment - an empty canvas, if you will - that allows you to immediately create something was ingenious.

Similarly, what sparked my interest in web programming was the ability to view the page source code in order to see how a specific result can be achieved.

While perhaps not going as far as the web's original creators envisioned it to be (the user being able to directly edit and publish from the browser itself) this feature allowed you to quickly learn from and build on existing code as well as try out new patterns and practices.

RPG Maker 1998. For weeks as an elementary school kid I hounded some hobbyist game dev forums about what the hell "variable" means, until an older member relented and tutored me.

I was doing simple things like custom spell animations and cut scenes. I built a few dungeon rpgs back then, and sought more and more powerful tools to make simple games, GML, and finding Java in highschool was my first experience with a "real" language.

First, my TI-83 graphing calculator. I learned that I could write simple programs to take user input and do things like calculate the Pythagorean theorem. I eventually started writing text-based adventure games, and then simple graphical games by drawing pixels on the screen frame by frame.

Second, making a website using Flash. I had a great time drawing objects on a canvas, animating them using the timeline, and adding click-events to buttons. I ended up drawing a room where you could click on the computer to jump to a list of my favorite games, click on the journal to see something I wrote, etc.

I had a VTech "PreComputer 2000" in the 90's, a kids toy. It was battery powered, with a 2 line display, had word games, etc. One of the games was "BASIC", which was like a typing game that beeped a lot. I finally read the manual and found out that BASIC was a pretty good game once you understand it.

I'm glad the creators of that toy computer made it into an actual computing device, more than the mere toy it appeared to be, and that they included a manual which actually taught how to program.

i had a similar experience, making a little password "application" on mine. however, it didn't turn me on to programming. it was just a thing i did. many years later, i sort of fell into software. i still don't like programming because the tools are always well below what i'd like and really get to me. my saving grace is enjoying the idea of using programming to represent some concept or learn about some new idea. "doing" with software is very frustrating because, as bret victor has talked about, seeing the thing is hopeless with today's tools.

It started with fixing them. Family didn't have a lot of money so I'd get old Pentium 3 machines for free (around time core2duo was popular) while in middle school.

I'd put Linux or Unix on them and play free games like Wolf:ET.

Linux because - was shopping for Windows on Ebay and found Ubuntu 6.04 cds.

Had to learn basic bash. Coding started from there.

Internet wasn't the best, so I setup my own squid proxy, then web servers, etc. By HS I was writing code for fun and profit.

All thanks to some old Pentiums. :)

My father writing a number guessing BASIC program on the computer in his lab (possibly a Vector 3, I don't know) literally in seconds - in 1982 - to demonstrate its capabilities to me.

I still believe BASIC (with line numbers, particularly on graphics capable systems) was the zenith of stimulating programming environments for beginners. Having everything you might want to do available for download/copy on the Internet within seconds is the opposite...

It's weird but I was never interested in it and had no idea what I was in for until I majored in computer science. My dad is a programmer and essentially told me that this is the way to go in the future. Having spent tons of time on the computer playing video games as a teenager, I figured it just made sense. Thankfully college opened my eyes to it and during the whole Facebook craze, it really sparked a ton of interest.

I was in architecture school and the coolest stuff we were doing was building 3D structures with a program called Grasshopper. I learnt that the program was written in Python code, and thought "the people driving the thing I'm most excited about in Architecture are programmers, not Architects".

Before then it had not really clicked how much code was driving innovation all over the place.

APIs. I documented my journey with them over here when I encountered them the first time art university https://www.robinwieruch.de/what-is-an-api-javascript They just empower you to build things.

I was really big into Counter-Strike (1.3-1.6).

Someone created two apps. Amytal would scrape Steam IDs to confirm what leagues the players were in. Bazbar would have a bot in IRC for #findscrim and allow us to chat with people.

Both apps could be run by sending commands from ingame chat.

It was awesome. Still no idea how they worked.

I wanted to play games! Back then, you would get a magazine, peek and poke hundred of lines, and then save it to a cassette tape. It was heaven when I got my first cartridge.

My kid got a kick out of https://robocode.sourceforge.io/

I'm fairly sure my start to programming was from a demo disc that came with our PS2 which had a basic interpreter on it. I remember it could so some graphics stuff that was interesting, but I just made some simple text based programs.

Video games for me too. Had to know how they are made. I was fortunate to get to work in the games industry for 7 years and outside of that I've made my own. If it weren't for games, I'm not sure what I'd be doing now.

If they are ages 4-6 I would suggest the Code and Go robot mouse. I started my daughter out at 4 on this and she had a blast.

We have moved on visual programming.

I have been building a course on how to teach kids Scratch programming with her.

The iPhone (or the "smartphone" in general)

It was both the sensor array: microphone, cameras, IMU, GPS, etc, and the paradigm change of everyone having a computer in their pocket that got me excited about software.

Stuff like this: https://youtu.be/gaFKqOBTj9w Adding graphics gives instant feedback for kid's programming.

I knew that I wanted to be a math major when I started college, and my college's program required a course in programming. I took that first semester, and the rest was history.

Watching my dad while he created some code/UI in Microsoft Access.

Being able to create GUIs where I could put whatever I wanted seemed fun. Making it do something seemed even more fun.

"So I just tell this thing what to do and it does it a million times faster than I ever could? Yep, I want to be able to do this"

I liked computers and the idea of having a good job, so I decided to study computer science. By complete coincidence, I ended up liking it.

I had been playing war strategy game so I have learned assembler (6502 on C-64) to give myself some more armored divisions and some nukes.

It was sparked by video games. I wanted to write games of my own. Then I was hooked by computer graphics.

Doing my bot scripts for Tibia (a freaking difficult MMORPG) when I was 13. The scripts were similar to JS.

I wanted to make SimCity allow you to invade the cities in the neighbourhood. Was 11 at the time. Still working on it.

I accidentally opened an HTML page in FrontPage and successfully wrote a multicolored sentence as a 13 year old.

The movie Hackers started it all for me. 11 year old me thought it was the definition of cool.

Being annoyed if not being able to build my work as a designer

in high school there were a lot of "manual" arithmetic math problems. It was a lot easier to type the formula into a python terminal than using a calculator.

mIRC. I built so many things using mIRCScript back then; I learned "dialogs", sockets, many internet protocols, dealing with binary, etc. etc.

only way to immigrate to usa. just followed that plan.

Video games. (You're welcome, OP's children)


Warcraft IIIs map editor

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact