
Ask HN: What sparked your interest in programming? - thetermsheet
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.
======
filereaper
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...](https://www.amazon.com/Computers-Space-Journeys-James-
Tomayko/dp/1567614639)

~~~
bribri
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.

~~~
filereaper
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/](https://www.tibed.net/tibed1/)

------
gnat
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
      20 PRINT "HELLO, NATHAN"
      30 NEXT I%
      RUN
    

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.

------
AnimalMuppet
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.)

------
frosted-flakes
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.

[0][https://autohotkey.com](https://autohotkey.com)

[1][http://clipjump.sourceforge.net/](http://clipjump.sourceforge.net/)

------
livueta
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.

~~~
stebbins
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...

~~~
che_shirecat
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.

------
tluyben2
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.

~~~
tluyben2
8 not 80 but guess that was clear.

------
phaser
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

[https://love2d.org/](https://love2d.org/)

~~~
dividuum
You might also take a look at PICO-8
([https://www.lexaloffle.com/pico-8.php](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](https://www.lexaloffle.com/bbs/cposts/2/29524.p8.png))

------
agildehaus
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...](http://www.petesqbsite.com/sections/zines/others/basictr3.gif)

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

------
sethammons
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.

------
superasn
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.

~~~
quickthrower2
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!

------
samuraiseoul
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.

------
BjoernKW
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.

------
seventhtiger
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.

------
aonsager
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.

------
Buttons840
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.

~~~
nikofeyn
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.

------
winrid
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. :)

------
lazyjones
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...

------
volkk
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.

------
thundergolfer
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.

------
rwieruch
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](https://www.robinwieruch.de/what-is-an-api-javascript) They just
empower you to build things.

------
jwist
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.

------
heelix
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/](https://robocode.sourceforge.io/)

------
Niksko
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.

------
ajeet_dhaliwal
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.

------
tmaly
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.

------
hpen
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.

------
cellular
Stuff like this: [https://youtu.be/gaFKqOBTj9w](https://youtu.be/gaFKqOBTj9w)
Adding graphics gives instant feedback for kid's programming.

------
joker3
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.

------
xthestreams
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.

------
jasonincanada
"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"

------
drngdds
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.

------
chewz
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.

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

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

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

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

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

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

------
Jack000
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.

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

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

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

------
codemusings
NIBBLES.BAS and GORILLAS.BAS :)

------
pmko
Warcraft IIIs map editor

