After my last off topic question was so popular (ha!), I thought I might ask another question
I saw a commercial the other day selling a product to teach coding at a younger age, and I was wondering how did you get interested in programming in general?
My interest started when my parents bought me The Legend of Zelda: A Link to the Past for the SNES, and when I was older I bought Metal Gear Solid for the PC. After completing those two games, I knew I wanted to make video games, and I began researching different fields that lead to video games, one of which is programming. Although I never became a game programmer, I still love programming and have an amazing job.
I think my first foray into programming was when I was about 10 my parents got me this Lego Mindstorm kit which had a little “brain” (https://en.wikipedia.org/wiki/Lego_Mindstorms#/media/File:LegoMindstormsRCX.jpg) that you could connect various motors and sensor to and you could hook up to your computer and “program” it using some super simple drag-and-drop GUI type thing. I think the language had if-statements, maybe even loops! I remember making some cars that could drive themselves around and go around obstacles when these little bumper sensors they had hit anything. In hindsight, I guess I was making a Roomba . Man, now I’m nostalgic…
In high school I was interested in becoming an audio engineer so I learned a lot of mathematics and dynamics to understand how to do noise control of the specific features that I was seeing in some homegrown equipment and a rough recording environment. I wanted to create VSTs and got really interested in how signal processing was done. That got me interested in dynamics and differential equations and well… it’s been more than a decade now .
Eventually my PhD defense started with a problem of how to do noise control in biological systems, and if you watch it you’ll notice that the inspiration for how to think about identification of biological processes from noise and performing noise control all links back to music. It shouldn’t be surprising though: if you can detect the type of amplifier from the distortion, then you could figure out what chemical processes should and shouldn’t be happening from the randomness of your measurements!
For me it came from wanting to know how things worked - which is very similar I think to going from playing games to making them. There has to be some inherent desire to break apart and build up. I don’t know that it was anything specific, just tinkering and breaking and making a thing into a mess and back into a thing again.
This blows my mind - and is incredibly interesting!
Early 80s C64er guy here. Age of about 14. Cracking games and coding intros for the C64 “eco system” was my start into assembly (6410) language (programming Basic doesn’t lead to too much results ) Never wanted to code games. Thats what I would like to do now, creating my own game, but it would probably go down the Star Citizen way .
Later assembly on a Atari 1040ST (68000). Ok, after changed decision from studying Computer Science to Physics I went back after university into IT.
I wanted to make games, but then found that too frustrating with the tools I had (which was basically Turbo Pascal — in retrospect, I often wonder how that didn’t turn me off programming for life).
Then I kind of forgot about programming for a while, until I came across a copy of what is now known as the The Little Schemer in high school and worked through that. It was in the high school library and I have no clue how it got there; from the due dates card I think I was the first to borrow it.
I think that kids today may find it easier to get access to hardware and a language environment than my generation did (I had a 80286, no hard disk, and of course no net), but finding the right direction isn’t much easier. A lot of companies are selling dubious tools and courses to parents, who themselves may not have a clue of what programming is, and don’t realize that learning programming does not necessarily mean preparing for a career as “a programmer” (ie someone who writes boilerplate Java/C++ or equivalent for a living).
Programming is like math, a fun activity for some kids involving problem solving.
My first approach to programming was probably less `honorable’ than yours.
It was my second year in high school, the smartphone thing was just becoming widespread and me and a friend noticed that some of our classmates were using one of those mobile app to solve some mathematical problems(don’t really remember what it was about) during exams which returned a lot of wrong results.
So we said “hey, we can make a better one, let’s learn programming” and then in 2 weeks we had our own python “app” that worked like a charm(no gui, we had to run it from a terminal emulator but it worked).
Then a few weeks later I happened to visit for my first time a Maker Faire where I was exposed to Arduino and Raspberry Pi and continued programming with robotics in mind and never stopped since(but kind of dropped the robotics interest sadly).
Wow – everyone so young. I only started after graduating college.
You don’t have to be a teenager or child prodigy to start. I’d like to think it’s never too late.
The LessWrong sequences got me interested in Bayesian statistics, and the question of how can we know what truth is?
So I applied for statistics graduate programs. Developing models can be fun, but then you invariably run into computational problems and have uncomfortable uncertainty surrounding whether it actually works or lines up to reality in a reasonable way. Or maybe you don’t think reality is really a regression. Compared to that, the computational problems are rather deterministic, understandable. A much more comfortable world to live in. So I’ve spent most of my time either running simulations operating characteristics of models, optimizing runtime performance, and writing code to make such performance optimizations easier.
Can’t decide which moment was the most influential…
I had wanted to edit a hash dump(plain text) of my saved game state in a really hard game. Had no idea what I was doing, failed completely, but it always stuck with me. Somehow I could learn a language to change games.
My brother’s friend brought over a weird game, think it was a side scroller where the main character was a gorilla. I could barely operate a computer and I felt low on myself about it. But I found the game stored on the computer and misclicked the file to open in a QBASIC IDE(?) or maybe just note pad. I saw a bunch of code, and was like “… ???”.
Then I started writing little quick basic scripts to help me do my math homework, I was really frustrated with these “long” formulas and how I had a tendency to know them but still screw them up. Then moved onto game dev like a lot of other people here.
I wanted to cheat in video games. hahaha Turns out that “hacking” in older PC games just involved a small degree of changes to some program files. Suddenly your aim was true and your skin bulletproof! Man I was a cool kid. It did get me interested in programming though.
Then came bitcoin…
Much later I got back into it when I had a C++ course in my first physics semester at university. I learned some Gui programming with qt and thought for the first time, wow I think I kind of know how software works now. That was a huge motivation boost. I switched to psychology and learned Matlab, thought it was the coolest thing to vectorize everything. Then python and a couple years later Julia. Julia fixed almost everything I didn’t like about C++, matlab and python, although I don’t really have to care about performance for my work. I only sometimes think back how nice it was not to wait all the time for precompilation
Me too – I remember how hard it was to get a C64 in my country. I had to wait more than a year, since the first couple machines my parents bought for me were confiscated by customs.
I learned basic and assembly, but what I was most interested in was the CPU. I studied EE just to learn how to make a CPU, and all my industry experience is in hardware design (which turns out to be a lot of programming ).
So, I learned to program as a way to express difficult problems and solve them, and as an extension to mathematics and logic. I enjoy thinking computationally.
There was no computer (early 90’, end of primary school) in my town, but for some strange reason there was K&R in the agricultural library where my mother worked. Some time after I read it the first computer came, so it was natural to start programming it (and maybe that is why I love so much that you can learn Julia just by reading its documentation).
I have actually done that, for a time At least I had been following the docs and been fascinated with the language for a long time before I wrote my first Julia program.
But it was far from my first language. At \approx 16, I was going to have a programming course at school, using C#, and started reading a bit about it during the summer before. I ended up knowing things way better than my teacher before it began.
A lear later, Gödel, Escher, Bach taught me recursion proper, and convinced me that computer science is cooler than chemistry.
At the time I graduated from high school, I had decided that I needed to broaden my horizon, started Python (over Ruby), then gotten more or less accidentially into Haskell, and was trying to understand Agda. High ambitions
I don’t really. I actually find it a chore and I never really program outside of my job (although I did have fun building a simple roguelike in Python). But I got Problems To Solve™ so I’m spending more and more time doing it (working in healthcare formally as a project manager, but we’re usually underfunded and understaffed so I keep ending up doing more and more data analysis work and less and less project management).
Actually, I’m still using R because I’m lazy as hell and R has too many convenience packages that help me write as few lines as possible. But I do think that Julia is the future so I’m keeping tabs on what you people who do love programming are doing.
If I remember correctly, this was the book which got my attention, back in the early 90ies:
Műszaki, Budapest, 1986
ISBN : 9631070514
I wrote my first working programs (text adventures and alike) on an Amiga 500 and shortly after I got a i386 laptop from my best friends father. From then on, it was the quite usual path (C, Perl, C++, PHP, Java, Delphi, Obj-C, Python, etc.)
I first started programming because my middle school computer science teacher decided to teach us some BASIC even though it wasn’t part of the syllabus! It was more of a chore back then than an interest but the teacher was funny so I enjoyed the class. I remember he made us all promise to give him 20% of our paychecks if we ever made a career in programming! Probably why if we ever cross paths again that I will be very reluctant to say hi
Fast-forward a couple of years, and the same teacher taught us some SQL and databases. Then I learnt some C++ and Java in my first year in undergrad and was even a Java teaching assistant once. Had to learn Python for a course in my Master’s degree and then got introduced to Julia in a talk about JuMP by @chkwon at KAIST! I started using Julia and JuMP casually back then and then I fully committed to learning the language properly right before starting my PhD.
I think my interest in programming was gradually growing until I got introduced to open source. Having access to so many knowledgeable and friendly people in the Julia community who are developing amazing software and putting it all out there was simply captivating to me. My background is in mechanical and industrial engineering which is a very “closed” and private field where most high quality software is controlled by a few competing companies. So I found OSS and the Julia community refreshing in many ways. I became a GSoC student during the first year of my PhD and joined the Turing team some time after that.