5 ms·
That doesn’t sound like you’re falling out of love with programming. It sounds like you’re frustrated with the red tape at work. Try working on something fun o
by actsasbuffoon 4y ago
That doesn’t sound like you’re falling out of love with programming. It sounds like you’re frustrated with the red tape at work.
Try working on something fun on the side. Make a game, or a mobile app, or something you’ve always been curious about that doesn’t have anything to do with your job. You might be amazed by how productive you feel when you work on something ambitious that doesn’t involve all of the corporate machinery.
I’ve been getting a nice dose of that with game development. Sometimes I sit down on a Saturday with a big plan that should last me through the weekend, and I get it done before dinner that evening, and I feel like some kind of programming wizard. It’s been a great reminder that I am a talented programmer, but I’m just feeling burned out on all of the tedious process that’s involved when coding professionally.
- cnity 4y ago+1 on game development. This is where I always find the most engaging and fun programming puzzles.
- pigsty 4y agoYep. Key thing is to make small game projects that you aim to finish in well under a year. Once you embark on a big project and feature creep sets in, you’re back to avoiding programming.
- cnity 4y agoTotally. I find that seeking a true MVP (like, really paring the idea down to truly minimal) is part of the fun. Making something really tiny that explores an idea is really inspiring and sets you up (mentally) for taking on something slightly larger next time.
- ajmurmann 4y agoWhat libraries or engine do you recommend to build on for fun of programming?
- jefozabuss 4y agoUnreal engine is pretty fun, I like the ease of adding models and physics by mouse without writing complex collision detection logics.
- sodapopcan 4y agoIf you're _totally_ new to game programming (like me), I found tic80 [0] or pico8 [1] (I think the latter is more popular) a really nice introduction to game programming. They are simulated "fantasy consoles" that come with a whole wack constraints, so you're somewhat limited in what you can build, but it leaves a lot of room to grok core concepts that you could then take over to Unity or Unreal or the like. There is a third one too, I can't remember what it's called though. I think it has "Love" in the name. [0] https://tic80.com/ https://tic80.com/ [1] https://www.lexaloffle.com/pico-8.php https://www.lexaloffle.com/pico-8.php
- cnity 4y agoIt is literally called Love (or LÖVE): https://love2d.org/ https://love2d.org/
- sodapopcan 4y agoAh, thanks! I thought so—I searched for "love console" and did not come up. "Love game engine" worked a little better.
- freetonik 4y agoI found Godot[1] to be a nice, mostly consistent and cohesive gaming engine and editor. It has a Python-like native scripting language, and the whole thing feels much more approachable compared to Unreal and Unity. 1. https://godotengine.org/ https://godotengine.org/
- pdntspa 4y agoI've had some success banging out quick ideas with Godot
- lightbendover 4y agoThe only time I coded anything in the last 3 years (been a manager) was during a hackathon -- I made a videogame that integrated our technology in a novel way to expose a new market segment. It was by far the most engaged I have ever been to the extent that I booked weekend nannies around the clock to get more time put into it, probably 130 hours spent that week. The end result was something I was actually proud of, which is something slinging ads has never been [for anyone]. Afterwards, I fell into a depression, told my manager I was switching to an IC role, and even debated quitting entirely to pursue indie game dev (just about financially independent, would easily make it to a supply-side-favored environment should I wish to return to corp nonsense). Unfortunately, it's difficult to give up mid 6s for what would most likely be 0 income ever even if it meant being content.
- nyarlathotep_ 4y agoDid you use something like Unreal or Unity for this, or start at a more foundational level and deal directly with graphics APIs etc.? I ask as a matter of curiosity and personal interest--it's something I'd like to learn as a hobbyist, but my knowledge is limited to simple OpenGL tutorials and the (relatively speaking) watered-down Graphics course I took in College years back.
- frakt0x90 4y agoI would strongly recommend starting with an engine like Unity. You can prototype and get something functional SO fast. It's extremely rewarding and keeps in the dopamine loop. There's not sense in struggling through OpenGL to build an engine from scratch unless that's what gets your rocks off or you have an explicit need for it.
- lightbendover 4y agoI worked in WebGL without a game or graphics engine sitting on top, because I'm both a masochist and egoist. If you haven't ever dipped your feet into RTR before (or don't have an interest in "doing everything yourself" / flexing or have a desire to be productive without building your own tooling), I have to recommend Unity or Unreal.
- trynewideas 4y agoOP is frustrated with flaky and constantly changing tools, silent breaking bugs, poorly documented libraries that change capriciously, and unhelpful IDEs, all connected to and reliant on badly behaving services. Why is game development different? My experiences with the larger or more popular publicly available engines available haven't suggested that.
- actsasbuffoon 4y agoOne paragraph mentioned that, but the thrust of the argument was about burnout. For me, burnout occurs when I feel like I’m putting a lot of time and effort into something but I’m not getting enough back to justify it. Burnout is like a mechanism to get you to stop pouring energy into something that isn’t working. Unfortunately, many managers are bad at giving positive feedback. The only time you hear from them is when something isn’t working. Corporate processes slow things down and make you feel ineffective. Eventually you start to wonder if you’re actually bad at software development, or if you’re just a bad worker. Let’s say you get a ticket for a performance problem. It turns out that the app is doing something kind of silly, and it would be easy to fix the problem and you’re confident that users would be okay with it. Well, too bad. You’re not allowed to make product decisions; only management can do that. So you bring it to management, but they’re in a meeting. You don’t have enough time to do anything else, so you spend 15 minutes reading HN. They get out of the meeting, and you explain the problem. They’re okay with the change, but because it affects the UI, you need to get approval from the UX team. You explain that it’s a very minor change, but management insists that you have to follow the process. You go to UX. You explain the problem, but they don’t have time to get back to you. You figure it’s going to be a bit, so you grab another ticket. 20 minutes later, it turns out that they’ve approved your request. It was a very small change, after all. So now you have to put your ticket back, which is going to mess with the time tracking in Jira that your boss gets pissy about, but whatever. You make the change, which takes about 5 minutes. You commit, push, and open a PR. The CI tests fail. Apparently there was some kind of silly linter error, so you fix that and push again. Now you wait for the tests to pass, which takes about 40 minutes. The QA team requires a detailed set of instructions for how to test every ticket, so you start writing up those instructions in the Jira ticket. As that’s happening, you get a Slack message from the documentation team. They noticed your ticket status change, and you forgot to mark it as requiring doc review because it affected the UI. You apologize and go back to update the ticket. When you’re done updating the ticket, you notice the build has failed. Looks like a flakey test that’s been a problem for months now, but no one ever gets time to fix it. You re-run the tests and cross your fingers. Time for a sprint planning meeting. Two hours later you resume work. The build passed, but your irritatingly picky co-worker has requested a change on your PR. He always requests at least one change on every PR, no matter how small. You used this method to find an element in an array, and while there’s nothing wrong with that, he personally prefers that method for doing it, and he won’t approve your PR until you change it. So you update the branch and push again. Then you start working on filling out information for the compliance team which is needed for anything affecting this part of the application. You wrap that up and notice that the flakey test failed again. Swearing under your breath, you re-run the build. You spend some time reviewing PRs for your co-workers and see that your build passed and your picky co-worker approved the changes. You merge and move onto something new. A few minutes later you get a message from the QA team. You didn’t provide documentation for how to test the code. You remember that you were in the middle of writing it when you got interrupted, and you forgot. You apologize and finish writing it. You look at your watch and realize that it’s the end of the day. You know your boss is going to be irritated with you after standup tomorrow because you spent all day working on a ticket that was only estimated for half a day. This is the kind of stuff that makes me want to run away from software development and never return. It’s not the code; it turns out that after all these years I still love programming. It’s all of the soul crushing BS that makes me lose the will to live. And so far, the antidote for that has been to work on something with zero red tape where I have full autonomy. It reminds me that I’m actually very good at software development.