To give some context, I'm a developer myself and once I had a conversation with someone who has not "tasted" programming, but was wondering about passion and career. I was asked what I like about programming. My answer was that my interest in it came from writing small scripts when I was young to automate things.
Aside from being a career, I'm curious what got you into coding ?
The fact that debug cycles are fast. I started out working in nanotechnology, and spending 3-4 days of fabrication -> electron microscope -> optical verification was soul crushing cause 99.9% of the work never led to anything and you practically never knew why.
Software development is logical and predictable. It's (relatively) easy to break a large task down into small ones, prove to yourself that they will work, and compose them together to complete a large project. Sure, things go wrong here and there, but for the most part, you can be confident that whatever you're doing should work every step of the way... without having to worry that you committed some irrecoverable error at any step in the process.
I loved (and still do) the rush of solving the puzzle. Programming languages give you a constrained set of rules to express yourself with. And yet we know that you can create literally anything with those rules if you can just put them together in the right way.
I love when a program actually comes together and it works for the first time! When I've started from nothing but a vague desire and then pulled a solution from out of the void. It's as close to actual magic as anything else I can think of.
I compel lightning and stone to my will, commanding them in unspoken tongues.
When I started with computers, the cheapest way to get software was to buy a computer magazine which published software as printed source code. Yes, you had to type page after page from that listing to get a game or utility running. On top of that, I had NO means of saving such a program - it took some time until I could afford the cable to attach a cassette recorder as a storage device.
So I got quite good at two skills early on: Typing fast - and debugging. I basically learned debugging code before I really knew how to program.
And how did I get into coding? I remember the first attempt of understanding code was to find out: "How do I get more than three lives in this game?"
And from there it went to re-creating the games I've seen on the coin-swallowing machine at the mall that I could not afford to play, but liked to watch.
Since then, I've done about everything, from industrial controlles for elevators to AI, from compilers to operating systems, text processor, database systems (before there was SQL), ERPs, and now I do embedded systems and FPGAs.
I've probably forgotten more programming languages than todays newbies can list...
This was me too - I wanted to do things my computer couldn't do, and so I figured out how to make it happen. Absolutely the best way to learn in my opinion and so much easier today than it was when I learned.
Then my dad's friend needed some software and I knew how to do that... so I did. It was fun, and at the end he was like "so how much do I owe you?" and I was like "what? I have no idea. Didn't expect to get paid". He gave me a few hundred bucks and I did a few more small projects along those lines, and a bunch of open source work, before getting a job as a junior developer.
Been doing it for over 20 years now - money was never the goal, but I do earn a decent living thankfully.
When I first got daily access to internet (back in 2009), I got curious about how programs are built. Like, if I wanted to make my own application, what should I do?
I googled something along that direction and it linked me to a famous french website for learning programming (site du zéro) where I learnt C language.
After the course I made a 2D Snake game with SDL2. How naive was I to think I could write it in one go without testing anything in between! I scrapped the 1st attempt because it was a disaster and randomly inserting/removing * was not helping.
I started again from scratch, testing in smaller steps, and I really liked it. After a couple of weeks I had my Snake game working! I was so proud of it that I showed it to my mom. I do not have the source files anymore but I still have the binary somewhere
Afterwards I sticked with it and continued programming - I was back in school without much access to internet so I programmed on my TI-83+ instead. Eventually I pursued computer science studies then a PhD.. It got me hooked real good.
similar story here, just that little me wrote his snake program with windows forms because that was all I knew. Every element of the game was a button. I remember the first versions beeing so inefficient (rebuilding the whole UI that was made of loads of small buttons every few milliseconds) that my Intel core 2 duo couldn't run it properly. Good times.
My father, as a sysadmin with some coding knowledge, got me my first PC, some old tower with a GT 210. I was probably ~5 yo. After moving to a new house (for the fifth time), I got another PC, I think. This one was even older, but with Ubuntu Server it ran perfectly. My father taught me the basics, so cd, mv, nano and init, as we set up a minecraft server together.
A few christmases after that I got a new PC, the old one was promoted to a server and the old server was sorted out (in retrospect, keeping the floppy drive in there would've been kinda cool). Then a Pi was welcomed into the room, yet another server, as the old/new one broke, came too, this time it was a HP Mini Tower thingy. A Raspberry pi zero w for testing and stuff got here too.
But since I got the first server, I learned bash, ofc. Through Minecraft I got to Java, vanilla gets pretty boring after some time. Some time after, I decided to switch to Linux fully (I only dual booted Kali (and before someone starts to scream: I actually needed it)), as Windows kept getting buggier and shittier, I chose Pop as a daily driver. This screamed for custom scripting, so Python came to mind. At the same time I was interested in C# and learned it on my phone, because why not.
One or one and a half years ago I got sucked into depression even deeper, so I switched to my love, always, Arch. Going along was the desire to learn something even nerdier, so C/C++. I'm confident to say that I'm good in python, and OK in C#, so why not. Now I even program things sending and parsing web requests in C++, because speed.
TL;DR:
Strong personal interest since I was 10 through Minecraft (Java), Linux (Python), random other languages (C#, Ruby) and speedy languages (C/C++).
Now I see classmates, 18 years old, and of generation TikTok aka. "I press that button and there are pictures now" trying to learn programming. Fine, I guess, but they lack the most basic skill of all: Acquiring knowledge. Every answer needs to be prepared for them, everything else is inquired from ChatGPT.
My middle school algebra teacher sparked my interest in coding.
Due to moving around a lot, I never learned any mathematics, not even basic arithmetic before middle school. In the seventh grade, I was put in a class where the teacher just handed out worksheets with arithmetic problems, and then usually left the classroom until the end of the hour. On the rare occasions when she stayed, I asked her to teach me arithmetic, but she didn't believe I couldn't do it, so she never taught me and I failed the class.
But in the eighth or ninth grade, they allowed me to sign up for the Algebra for dummies class, which taught in two semesters what the normal class taught in one. My new teacher taught me arithmetic the first day, and I was his star pupil from that point.
He invited me and some other students to stay after school to learn FORTRAN. We did not have a computer at the middle school--it was at the university. We didn't even have a card punching machine. So we had cards that looked like punch cards, but instead of punching holes in them, we coded the Hollerith code in them by filling bubbles with a number 2 pencil. Then we sent the cards on a mail truck to the university and got back a printout a week later.
Honestly, it's because a bunch of programs i used disappointed me (performance, functionality, [being a web app at all], etc.) and i figured it couldnt be that hard to do it better. In some cases i was right, in most i was wrong. As it turns out though, I really like programming so i guess i'm stuck here
I liked video games as a very young child. Naturally I wanted to make my own.
We didn't have the Internet because this was the early 90s, and my parents didn't think it was worth the hassle.
The computer we had did have BASIC on it , and it had some help files. I think I got a book from the library, too, but I was too young to really do well with books written for adults. I made some progress making some games, mostly text adventure style, but they were incomplete and messy like you'd expect from a kid. A kid with no Internet to look things up on, too.
High school had some programming classes. They were pretty okay.
Then in college I hit the trope where the smart kid who never had to study finally hits difficult material and doesn't know what to do. Woops.
I saw these magic windows on my computer, and I too wanted the godlike power to control how they worked and what the buttons did. I looked into Python, then started University and they also taught us Python for science use. With exception of a C++ class, I self learned and used it, then managed to convince a company to hire me to develop, despite being a chemical engineer.
My first program was a GUI wrapper for YouTube-dl, and I still use it frequently.
It wasn't the money, it was the ostracizing. I was bullied mercilessly for years and my only retreat was the inside. Computers were the most entertaining thing, so spending a lot of time on it, made me good at it.
Nobody knows what I sound like, smell like, look like, etc. online. I could delete this account right now and pop up with a new one - to anybody but the admins, it'd be like a new person showed up. Also: I can leave whenever I like.
Semi-related: opensource is great too. If something doesn't work, I can try and fix it. If the maintainer(s) doesn't want it/can't integrate it, a new fork can be created (soft or hard).
Finally, it's cheap. No need to buy expensive equipment, materials, space, pay teachers, or have a team.
One thing I really like is that you can build anything with no cost. I like to build things (woodworking, etc) but software is by far the least expensive.
December 8th, 2009 - Motorola Droid successfully rooted ... [granting] root access on the phone using a terminal emulator. This is how I learned bash which inevitably pushed me into pursuing proper Computer Science.
I got into computers at a young age in the early 90s. You couldn't really do much without getting knowledgeable. I learned basic and then assembler to follow along with magazines that shipped game code for you to follow along with. I later went on to build my own 16 bit computer out of NAND gates, including ALU, wrote a rudimentary compiler, network stack, and OS, etc. Very primitive but functional. I really just wanted to figure out how it all worked through the full stack, and get my games working along the way.
I eventually learned more languages and launched a career in IT and moved through just about every role. Picked up a math degree along the way to help. Was a system programmer on an IBM zos mainframe using C, natural, and assembler. Was a.net developer for a while, an enterprise DBA, cloud and network engineer, and then eventually exited the technical career through management.
So I guess I just always was interested in how computers worked, and getting my games working. I left the technical roles one I felt I had figured out all that I really needed to and went on to other challenges. Still play games and tinker with my own projects though.
I started programming when I was in primary school. And I liked it very much, even though I didn't understand much even then. But it was impossible to stop and here I am writing this after about 30+ years.
What exactly attracted me - my father soldered a Russian clone of the Sinclair ZX Spectrum, showed me a couple of games loaded from a tape cassette, and I was curious how it works.
I just wanted to know how computers worked when I was fairly young. Like, I'd open a web browser and look at the homepage, and think "But how does the computer know how to draw all this stuff?" As in, how do you take an image of something from real life, and over the internet put that image on somebody's screen for them to see? Or how does it know what to do when I click this icon and run a program?
I found out about a popular programming language called C++, asked my parents to buy me a book on it while we were at the book store. Learned a lot, moved on to other languages for other things I wanted to do. It's still a fun hobby, but I never opted to make a career out of it.
This sounds similar in spirit to me, but I did make a career out of it. If you don't mind me asking, what is your career? You can also email me; see "Contact" at http://www.olowe.co
my mum bought me a vic-20. it was beat up and didn't have a tape deck.
I had type my games in from a magazine in basic for a summer, I was hooked.
My uncle gave me a photocopy of a book about assembly for c64 and showed me intros on his c128. He had no idea about programming, he just figured I'd be into it. I worked my heart out to get the cash together for a c64 AND a disk drive.
Interesting that it looks like everyone has come from computers. I got into it because of electronics and robotics. To me controlling stuff in the physical world seemed really cool and it still does. I went straight in with assembly language for microcontrollers.
I started by writing small scripts to automate things, but really got into it after learning how fun it can be to make the computer do stuff. I also see it as a kind of creative outlet, but in general I just want to learn how to fix anything in software if I'm not satisfied with how it works.
I wanted to sell Pokémon ROMs to kids at my school but a lot of them weren't technical enough to know how to run them. DOS scripts and autorun solved the problem.
Software is often terrible and the only person who was going to fix it was myself. Of course that was only possible because I enjoyed the type of logic puzzles that entailed. I also found community within a few software projects that motivated me.
In 11-12th grades I played a lot of card tournaments (mostly Magic and Yu-Gi-Oh) eventually ending up as the one running the competitions for our local groups and learned HTML so I could maintain a simple site with rankings etc. This led to people asking me for tech favors fixing random stuff and eventually into various web projects where I got into CSS, JS, PHP, MySQL, etc.
I wanted to write a minecraft mod. I have never written a minecraft mod but I got interested in actually learning to program after I realized I had no idea what I was doing. Also english and computer science where the only 2 subjects in school I was pretty good at
I wanted to be an animator, specifically for video games. I made all this cool art and animations in flash, but I had no way to show it off in a game setting. So I learned Action Script 2 to make flash games with so that I could show off my animations. Turns out, I suck at art and animation. Oh well! I ended up liking the coding part more anyway.
Programming class at school when I was 15. Basic Delphi/object pascal back then. Was always into technology beforehand, especially tinkering with the first android phones, rooting them and installing custom ROMs
Similar for me - I've been writing scripts since I was young. I write scripts and programs for myself whenever I need them, and I feel like it's a great skill to have in your toolkit if you're a computer power user.
On a side note, I've never thought of a good response for this question when someone looks at my career and my salary and they're like "I wanna do what you do", because I've been doing this as long as I can remember. I don't know how realistic it is to tell someone who's never been interested in computers that they can be a programmer if they really try.
Uh...get addicted to the dopamine hit when the bloody thing finally does what I wanted on the 1000th try. Is that not normal? Then I can't help.
"But how do you motivate yourself to stick with it?"
As a kid, I had a Commodore 64, and a really nice wooden stick to play with. I spent my time about 50/50. Today, I don't have that stick anymore, so I'm sticking with programming, at least until I find another stick that nice.
True. I usually tell people it is a good field, provided that they have interest. Then the question usually is how to be interested in it, and I just tell them to just be curious about how any app/software that they use works.
Yeah, scripts to automate things. Especially the boot procedure in DOS, to allocate the memory in the right way depending on what I wanted to do.
Had a 27mc linked to my pc to download mp3s at 800 bytes a second and it needed some specific things to function.
Then came the internet and I started my computer science education, learned to program for real then, but not a lot about internet and web scripts. Taught myself html, CSS, flash, javascript, PHP, CGI and later Python and everything related to the hosting of those things.
And that's what I still do, teaching myself new web related technologies or even re-educating myself in old ones (javascript!)
A friend dragged me into an extracurricular competitive programming when we were in school. Had to code in Pascal, of all languages.
Funny thing is, the first session was full to the point of people having to stand, a month or two later only 3 people attended, and that's when it stopped.
It started with typing in BASIC code out of magazines. Used an Apple II those days. I missed the step going into pascal, C etc and stuck with basic syntax more or less my whole life. Not spagetti code anymore but still some BASIC derivates. B4X is what I use on Android now to create native APK.
Also I love IDEs with an integrated graphical interface designer. VB6 was my thing.
Over the years I used assembler, sql, bash also but always as tools to get my hardware to do what I need.
The software I wrote was/is for my own convenience at work and in private. Written for PC and Android.
I tried to go commercial one time but the lawyer I talked to shattered my dreams because of insurance requirements when you write software used in peoples air transport business. If something goes wrong you really have a problem.
My Android software uses databases filled with scraped data so can't make them official as well. The royalty fees to pay if I try the official route kills every attempt before starting.
So it's still a hobby, very satisfying but not more.
I like making things. And coding had an overall lower cost of entry, and lower overall cost than wood working and making custom hardware projects. I still enjoy the other two, but when money is tight or I'm waiting on delivery of supplies, I work on coding projects.
My introduction or what got me intrested was Farming Simulator 2009 when I was 10.
The game had amazing mod support and I found out that each mod, like a new tractor, had a modDesc.xml file in it that contained values like in-game price, name of the tractor, fuel tank volume, ... .And I found out that changing these values would change these values in game, which made me feel like an absolute hackerman.
For me it was about web developing (front-end),
when I was a teenager I tried learning Python, but it was more about math and stuff I never find them amazing back then, but few years later I saw a video about html, WOW, it was mind blowing, I can create a website!!! after a while I made a simple php app and connected it to a Mysql DB, good old days.
I was 7 and I found a booklet for BASIC programming language that came with my C64. I was fucking ecstatic that I could just write words and make computer go brrrr. My first project was my school schedule in a form of a table created with n number of print statements. I felt like a fucking wizard.
I didn't like the math they threw at me in the Networking course I did - back in 2006, I think. I think it was like Ohms law, but I saw that shit and noped out into a Gamedev course. And that's how I ended up Iearning Algebra: by learning how to program. Before that, math always scared me.
Anyway, I didn't become a gamedev due to grueling hours I heard they did (fuck that - I work to live, not the other way around), and ended up becoming a data engineer.
I learned C, C++, Java, Python, C#, Haskell, Python again (because the lack of types confused the hell out of me - glad they fixed that bit!), roughtly in that order, so I'm pretty all-rounded software engineer in general, when it comes to languages :D
I worked as a network engineer and got pretty frustrated working with outdated applications that were not user friendly. Once I became a supervisor, a large part of my job became writing and generating reports summarizing events that happened on the network that no one would ever read. I wanted to learn programming to automate the things I hated about my job.
I'm still an engineer, not a developer, but I enjoy writing user focused programs that reduce or eliminate worker frustration. As with many jobs, it's not the networking that's difficult, it's all the other bullshit you have to do.
Also, learning how to parse, model and visualize data can really help you make your point to your management and get your ideas pushed through. Also a great way to earn brownie points with your bosses, as managers tend to love graphs.
Wish I could say it was a passion for me but I really learned out of necessity.
Getting old, "broken" computers running Linux was the first thing when I was about 11 or 12 years old.
Then:
needing a way to keep them running
wanting ways to make running them easier
wanting those ways to be easier/simpler
Often this involved programming.
Eventually I found out that companies pay money for this kind of thing.
But now I'm finding it difficult to find work which aligns with those original values. Getting paid means delivering what people will pay for, not necessarily solving problems. What got me into programming is probably what will get me out of it (profesionally, anyway).
I think I was 11 or 12 when I started plaxing Tibia (a very early MMORPG). I really enjoyed it. At some point I found out that somebody has leaked the source code. You could host your own Tibia server. You could create new map segments or introduce new quests by Lua scripting. There was a huge community for "Open Tibia", hundreds of servers with thousands of players. First, I got into mapping, then I got into scripting and loved it.
I was heavy into skateboarding as a kid, and I was interested in making some skateboarding media website with images and videos. I had initially began with wix, because I had no idea programming was a thing (I barely used technology, or even a phone). I messed around with it for a while, and then learned that I could make websites with just a simple html file… And the rest was history. Ended up getting into PHP, then game development with Java, etc.
For some reason in middle school I tried it and, for obvious reasons, couldn't figure it out. Then in 2012-2014 Reddit kept telling everyone to learn Python. I failed that and kept trying randomly for 10 years. I've only recently begun making progress in web dev, which is deliberately avoided because of Reddit language opinions.
Ignoring all of that, I really like text editors for some reason, and I'm on a journey to make some. I still haven't made any, but it's a goal.
Having an electrical background I noticed a lot of logic disappearing into code and still wanted access to it. Also, virtualisation and emulation are a lot cheaper to run.