Remix.run Logo
okayishdefaults 4 days ago

I encourage people to learn to program especially if they aren't pursuing a software engineering career. Someone that knows a specific domain that can see it through the lens of an expert at another will understand their domain in a way many others cannot. They will be able to break down problems into a collection of manageable chunks. They will learn valuable lessons that show up when you begin to intimately think your way through specific problems.

People may start out with the idea that they can be content creators. They'll have to go through several steps from planning, iteration, implementation, analyzing success or failure, etc.

I wanted to make video games as a kid. Then it was being a pro gamer. And then it was physics. And then it was linguistics. And now I'm rounding out the end of a software engineering career. I didn't know how to program, and I wasn't particularly mathematically inclined. This led me down several paths all around the idea of generally being a better user of technology.

One of the most seemingly random and yet greatest contributions to my path in life was playing EvE Online. I learned logistics, collaboration, tactics, strategy, spycraft, improvisation, mental fortitude, and even how to administrate LDAP servers. In no way was this a pursuit toward an engineering career.

I'm also a lifelong musician, but there was a significant pause through my twenties due to lack of means. Now that I'm a programmer, I've been able to intuitively command my knowledge of music theory because it's systematic and documented thoroughly.

Learning to play Counter Strike taught me how technique and approach is just as important as mechanical skill. I can specifically recall a tutorial regarding instantly headshotting someone as you round a corner without the need to flick your mouse. You simply anchor your crosshairs to the corner your pivoting around, place it at head height, and click when you see a head. This is an extremely valuable lesson in abstract.

Learning to play Street Fighter competitively was informed by my experience with learning instruments and specifically key components of Jazz. Improvisation, syncopation, consistency, timing, and training the other person to expect one thing and immediately subvert that expectation all translated well.

I am a champion-ranked Rocket League player. To me, my car is an instrument. I practice it like I practice any mechanical skill that I want to make second nature. Repetition, technique refinement and acquisition, control, and composition of all skills simultaneously are shared between these two things. Because of Street Fighter, I also approach it as a fighting game. Attacking your opponent's mental stack is key to high level success in the same way.

David Sirlin's "Play to Win" taught me the value of removing artificial constraints. I seek to explore the bounds of any problem space to their fullest extent and use that knowledge to exploit opportunities without changing the space I'm in. This is a book about applying Sun Tzu's "The Art of War" to Street Fighter and not directly abstract in the least.

Factorio is a common programmer obsession. Because of this game, I have an intuitive mental model of algorithms and data structures, separation of concerns, fault tolerance, and how different parts of any system interact. It's not abstract math in my head- it's Factorio.

My father started his career as a draftsman for oil companies, and his command over his hands has always inspired me. Reading "Drawing on the Right Side of the Brain" showed me that I could engage abstract thought at will. This would come up later when I read "Thinking, Fast and Slow" and I was able to draw connections between artistic pseudo science and an intellectual understanding of different modes of thought.

I am a veteran. My job was being a Crypto Linguist. My experience in the military taught me the value of motivation, rigor, and discipline. I failed basic Spanish multiple times in high school and yet could dream in Korean with the right environment supporting me. These skills and lessons are key to becoming an expert at anything.

I dismantle opponents in Rocket League by applying mental stack management from Street Fighter, tactical prowess from EvE, discipline and motivation from the military, acquisition of mechanical skill from learning instruments, and exploitation of existing mechanics from "Play to Win". Nearly everything I've learned has created a rich tapestry of thought that I pull from.

I am now a successful, specialized software engineer with a long career. I stumbled into this, and I've never been able to succeed with formal higher education. I attended several high schools, often switching mid-semester. This destroyed my ability to get the ball rolling in mathematics. I could write a compiler before I truly understood what math was. Everything from my childhood acted as the foundation for where I am today- even if it was "pointlessly" meandering my way through trying to make a video game, a better MySpace page, process diagrams, drawing, setting up Linux, audio engineering, etc.

People don't take a direct path to their dreams. They evolve and their former experiences inform their future goals, choices, and opportunities.

bigstrat2003 3 days ago | parent [-]

This is a great post and you made a compelling argument. But I think it's important to remember that for every case like yours, there's another person who became a directionless failure who spends his days lazing about and mooching off those around him. I think that parents are reasonable for being afraid that their kids will go down the failure path rather than your success path, because there's no way to know up front which branch they will take.