I tried to write a game. The game wasn't fun, but programming kept mashing the "I created something" reward button in my head, so I kept doing it.
Programming
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Rules
- Follow the programming.dev instance rules
- Keep content related to programming in some way
- If you're posting long videos try to add in some form of tldr for those who don't want to watch videos
Wormhole
Follow the wormhole through a path of communities !webdev@programming.dev
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.
The worst teacher I ever had assigned me a project to make a game using GameMaker. Been hooked ever since, and eventually turned it into a career.
Did your opinion of the teacher change at all after that?
I wanted to make videogames. I made videogames on my graphing calculator between classes.
Working through the logic is fun
This right here. Puzzles are fun to solve and I like the challenge of designing systems for different needs.
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.
Thought it was the best way to meet hot guys
That got a chuckle. Genuinely curious, how'd that work out for you?
Beats doing tedious shit by hand and knowing you’re gonna fuck it up.
Now I do convoluted shit by hand and not knowing I'm gonna fuck it up ;)
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...
I saw a lot of software and in my stubbornness I thought "that's awfully designed, I can do better than this."
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.
Seeing my dad show my mom a demo he'd written in assembly on the C-64.
I always liked doing puzzles and then realised that people got paid for solving them.
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.
I liked computers in general since highschool, felt natural.
Didn't think that much about the money there or now and IT is slowly becoming bluecolar anyway.
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.
I was a curious child, and things spiralled out of control from there...
I'm a little old.
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.
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 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.
I loved math, so a friend of my mother said I could make the computer do maths for me.
6 years later and I'm still amazed computers do what I tell them. And now that I work with this everyday, I'm even more amazed anything works at all.
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 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 studied chemical engineering in university, but I realized it wasn't what I hoped.
What I hoped: sitting at a desk, drawing schematics, crunching numbers, designing chemical plants, coming up with smart ideas, etc.
What it actually was: walking around a chemical plant or factory and managing plant operators (they knew way more than I did).
It turns out programming is exactly what I hoped from chemical engineering. I love solving problems from the comfort of a desk.
Math was always my favorite subject in school, and it seems programming is a type of applied maths.
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.
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.
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.
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.
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.
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.
Typing in basic listings from magazines was pretty much the only way to get software.
I'm bad at everything else.
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
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.
Interacting with something consistent and deterministic while growing up in a crazy, random world. Also power. Power over my computer minions.
Kind of destiny 🤦🏻♂️
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 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.
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.
I have the same trouble.
"How do you get started?"
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.
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.