Personally, I started off with Roblox back in the early 2010s, and taught myself Lua. I really liked those Tycoon games, and wanted to see how they worked.
I eventually found Minecraft (like every kid back in the day did), and learnt Java to make Bukkit server mods.
Around 2016 I thought websites were kinda cool, so I started learning HTML, CSS, and JS, and I’ve been in the web dev space ever since.
What about the rest of y’all? What’s your personal programming path?
It was 1981. I wanted an Atari 2600. My father bought be an Atari 400 instead. It didn’t have the extensive game library but it did have better graphics, and you could write programs on it (Atari Basic). There were monthly magazines with programs you had to type in yourself (no floppy disks yet, just cassette storage). It was pretty easy to learn how things worked as you went, and some other reference books with additional details for new-to-me processes.
I’m still new to the space, though I’ve been dabbling for years now. I don’t really have a handle on any language yet. I feel like I’m still trying to wrap my head around the concepts fully and haven’t really done any real projects other than a simple Python program that was about 100 lines of code. I’ve dabbled in Java and HTML/CSS here and there as well.
Between life’s challenges with my own health and my family’s as well it’s tough to find time to learn. But I’m still endlessly fascinated.
Being able to actually develop the skill and become good enough at a language to get a job in the industry would probably be great for my family’s situation but it’s just so hard to get to that point.
I’m hopeful one day things will line up and I can finally call myself a programmer.
My father bought a Radio Shack Tandy TRS-80. I was mesmerized by it. I created basic programs on it.
Then we eventually got a 486DX2 IBM Compatible and I programmed little fantasy adventures.
Those actually built up so that when I was in high school and had a math test I realized my TI-82 was similiar to what I knew and I was able to program my calculator with all of the math equations to spit out the answers for me. This had approvals from my teacher.
I never became a developer, but I still enjoy looking at code and investigating it.
Going from a TRS-80 to a 486 must’ve been like going from a tricycle to a starship.
Yeah the TRS-80 was an oddity that barely worked. The 486 really got me into computing and just loved all of it.
The 486 was remarkable in that it packed a lot of features onto a single chip, including privilege levels, memory protection, virtual memory, floating-point arithmetic, and a 32-bit address space. These were once features you’d only find in a big-iron machine from IBM or DEC. Even when they did become available in smaller computers, like the Motorola 68000 series, they still tended to require additional chips to implement them, like the Motorola 68851 memory management unit and 68881 floating-point unit. The 486 had all that stuff built in. Motorola was behind, but not by much: they matched the 486’s features a year later with the 68040.
Intel wasn’t always neck-and-neck Motorola, though. When the 68000 was released in 1979, it was even more revolutionary: it was one of the first 32-bit microprocessors, and very fast for its day. IBM engineers wanted to use that for the IBM PC, but if I recall correctly, management wanted Intel instead because they already had a deal, so they went with the more primitive, 16/20-bit Intel 8088 instead.
And that’s a shame. Had they used the 68000, PC DOS would have been 32-bit from the start, and the infamous 640kB limit would never have existed.
I was able to program my calculator with all of the math equations to spit out the answers for me. This had approvals from my teacher.
Super cool of your teacher to allow that!
Back then, when you wanted some new games you could:
- buy them (over expensive)
- trade some on cassette tapes at the schoolyard
- Go to the library, grab some source code books, have fun programming them
Wrote my own text-adventure when I was 10, since then I came across Basic, Turbo Pascal, JS, Java, AS, Lua, Python, C++, maybe some more 😵💫
Before college, the only exposure I had was some basic HTML and CSS in high school because I wanted to customize my MySpace and LiveJournal (am I dating myself here? haha). Then I had one class my freshman year of college that involved some C++ programming, which was my first time actually writing a full program. Halfway through college, I wanted to change my major, and I ended up switching to CS since a few of my friends were doing that, and it turned out I liked it well enough.
Minecraft plugins, a very fun way to learn Java
TI-83 graphing calculator in high school, around 1998. I would sit there in math class coding games in Basic. Ended up developing a reputation as the guy you went to if you needed a program to cheat on a math test.
The highlight of the entire endeavor was a class wherein the teacher announced that before a test, they’d be resetting the memory on everyone’s graphing calculators, to prevent cheating. I wasn’t planning to cheat, but I did have a few games I was working on, and I didn’t want to lose them, so I wrote a program that emulated the graphing calculator’s interface, and would let you go through all of the steps to reset the memory, including showing the Programs menu as being empty afterwards, while not actually resetting anything.
I showed this to the teacher just before the test (demonstrated “resetting the memory” with the program running, then demonstrated that the memory was in fact not reset), and he backed off from the compulsory reset policy in favor of the honor system, because he conceded that he wouldn’t be able to verify that the memory was actually reset anyway. Made me feel like an absolute hero.
It’s honestly funny because I learned the concepts in the math classes a lot better as a result of this - it took a very thorough understanding of how to use a concept to write a program to solve it for you.
It’s honestly funny because I learned the concepts in the math classes a lot better as a result of this - it took a very thorough understanding of how to use a concept to write a program to solve it for you.
My experience almost exactly. I built the interest by making/hacking TI-83 games, then made math class programs which i never really used because i had learned the material. It was fun, eye opening, and paved a path to my career!
Growing up in the 90s, I watched my father work with computers in the US Air Force. In 2001 he gave my brothers and I an HTML book and stated that “With this and Notepad you can write your own websites”. We proceeded to tear that book apart and each of us had a web site on our Windows 98 SE computers that were networked together and thus had our sites linked together. Nothing spectacular but it was fun.
I wish now that I had spent more time on the javascript side of the book as I am still pretty weak with JS.
I started by making myself a small personal website in the early 2000s, and introducing iframes because I was tired of copy-pasting the same navbar into each page. That led me to PHP to achieve the same thing with includes, and then the snowball effect started.
After more amateur and self-taught website work before uni, I then started a CS degree and was taught how to program for the first time: starting with Java, some Haskell, some C and more than enough perl.
The working world came knocking and I expanded my repertoire to include Python and any other language of the day.
deleted by creator
I think my first push was when I was 12 reading a local popular science magazine and it had an article about a 13 year old kid who had made a very successful iOS game. After that I talked about how I want to do programming so much that my parents got me a “Python for Dummies” book.
Self-learning programming at such a young age was very difficult, I tried to turn to online forums for help and was met with extreme amounts of abuse. The worst by far was StackOverflow and I’ve hated the site with passion ever since. Things turned around when I started to ask for help on a local social network similar to Facebook and people seeing that I was a kid there were extremely helpful. I still remember the founder of the site even answering a couple of questions I had. I really wanted to work there after these positive experiences, but by the time I grew up the site had been ran into the ground.
After that I had some experience doing some game dev stuff. I played around with game maker, later on made some Minecraft server plugins for Bukkit. One of them even reached over 1000 downloads and is still by far the most successful solo project I’ve ever published haha.
Where I really started to establish my skills was when I switched schools and the new one had a competitive programming extra curricular class. After being a very active participant there I ended up winning many state level awards at competitive programming, even went for some regional international contests.
Then years later I joined university and absolutely hated it. It almost turned me off of programming just being teached decades old programming knowledge. Waterfall project management etc. One memory of mine is explaining basic c++11 features to the TA because he had never seen them. This was in 2018. There was only one good course I had and I enjoyed - Linux System Programming. I hated the rest so much I dropped out and now am a professional software developer. Still feel like the time I spent at university was just extremely wasted.
Now I know how all the old guys felt when I asked this question in 2000.
I got my start making GW Basic programs for classes I had in … 1996? Visual Basic 6 came to me in '98, ADA95 in 2000, Java 1.5 in 2003, and then I got a job doing it while finishing my degree and mostly writing Coldfusion. Then it turned into Java, Java, Java, more Java, some extra Java, and some more Java on that.
The last few years it’s mostly been Python, Rust, C++, C#, Scala, Kotlin, and Java - all because I work in a research org and can just pick the best tool for the job at the time and not worry about much beyond showing our research POCs in the best light possible. For some cases, that’s writing Rust with pyo3 Python bindings so the dsci’s can still do real high performance computation from their cute little jupyter notebooks, in others it’s a quick Python fastapi rest interface; sometimes I gotta write some Azure Functions and pick C#, and sometimes I need something fast and easy to wack out something a bit more enterprise grade and I go back to Java and SpringBoot.
And right now I’m suffering with C++ and trying to track down a sometimes segmentation fault sometimes double free sometimes munmap chunk error that only happens when we use the lib through the pybind11 bindings we’ve built, and I’m just not having any fun at all. It’s amazing how frustrating debugging is without a viable debugging environment. I had forgotten how brutal this is in your early days when you don’t know how to set up a good debugging environment until now when my tools have forsaken me. I’m back to ye olden
std::cerr << __LINE__ << "here" << std::endl;
insertions like a baby programmer and it’s both exceptionally frustrating AND rewarding - mostly because when I go back to a problem space where I can use a debugger, I realize how fucking good I have it.The one nice thing about becoming a software developer is that, if you want, you can write in any language you want and learn new things constantly. Eventually you’ll reach a pretty high level but still a plateau in your given language - and that’s awesome. You can stop there if you want. If you’re motivated to figure out how everything ticks, though, I urge you to learn a new language. Find a new job if you have to. I would say the biggest boon to my understanding of programming, languages, etc has been when I went deep in LanguageX for a long time, then shifted to something well outside the bounds of LanguageX - like jumping from Java to Scala (diving wholesale into FP), or Scala to Python (giving up on sanity and type checking and a hilariously difficult time to write robust libraries), or Python to Rust , or Rust to C++. So much of what you know from your experience is just you knowing something by looking at one or two sides of it at a time from a fixed position. Learning a different language (to a professional level) is like changing your position around the outside of the room to look at things from a completely different perspective. Suddenly your Java gets better because you’ve learned Scala. Suddenly your Scala gets better because you’ve gone to Python. Suddenly your Python gets better because you learned Rust, and suddenly Rust makes sense because you’ve been strugglebussing with C++.
There’s a ton of value in diving deep on a language for a few years. Don’t ever regret that opportunity. But for me, I really think changing things up every few years has made me a distinctly better developer overall, and understanding so many more things that I never would have had any insight at all into without my madcap sprint through languages; language features, language constructs, language paradigms; entire ecosystems of different approaches.
I’ve come a long way since I struggled to write my first hangman game in GW Basic and used variable names like
g_string : str
, thinking I was the most clever sob who ever lived (clearly, I was not).I started 20 years ago when I was in the 4th grade. Asked my dad who was a software consultant to teach me what he new about web dev. From there I got interested in video game development. I dabbled in flash, game maker, and unity over the following decade. By the time I had my BS Computer Science, I was no longer interested in game development. But the passion for solving problems with code remained. So that’s what I do to make a living now.
BASIC and eventually Z-80 asm on the Sinclair ZX-81. I didn’t have an assembler so I had to translate the instructions on paper and
POKE
them in by hand. I managed to write a screen scrolling routine this way.RAND USR 16514
and all that.Some other Z-80 micros after that and then PCs and jumped on the Linux train pretty early on, been riding that since.
deleted by creator