5 ms·
tldr: gamify your development process and jobify your gaming process. Get good feedback loops going for your programming so you can track progress. Count how mu
by larksimian 13y ago
tldr: gamify your development process and jobify your gaming process. Get good feedback loops going for your programming so you can track progress. Count how much money you are earning for every hour of gaming.
Why is gaming more fun than programming? In my opinion, it’s because of 3 reasons:
1. The action-effect feedback cycle is almost instantaneous
2. Your long-term goals are well defined and easy to hold in your active memory(gear, skill spec, kill this boss etc)
3. The connection between those goals and your immediate actions is very clear. If you need 200k DPS to farm act whatever and you are at 180k then you need to find such and such item with such and such specs and the optimal farming route for your level is this one so let’s get this shit done!
A well designed computer game is like a Waterfall project manager’s wet dream. End outcome is very clear(farm level X in Y minutes), the process of getting there is well described(guides, almost all game variables are numerical and their interactions are simple to model), and the acceptance test is obvious(I am farming level X in Y minutes, or I am too slow or I am plain dying and/or not doing enough damage).
I think you need to bring your development process and gaming closer together.
In terms of the feedback loop use tests and todos. If your tests are failing you know you’re not done, if your todos are falling behind, you know you’re not done. Have some automated performance/acceptance tests, I find seeing simulated user behavior being successful as much more satisfying than internal unit stuff. This is likely what you do anyway, so the problem is probably at the long-term level:
Do you have a clear outcome in mind? Do you have a clear path to that outcome? Is what you are doing at a given moment helping you achieve that outcome? Do you have a connection in your mind between delivering your project and achieving your life goals? Is working for yourself really what you want? Will you be happier in 30 days for having written the bit of code you are writing right now?
Try and answer those questions based on what you feel about the question not on whether saying you prefer gaming to programming means you are a good or bad person.
Plan more! Connect your day-to-day coding to your project’s big picture. Make a list of features/tasks that are left to do before a project is ‘done’ and go over it every day before and after you start the day. What did you cross off that day? Where has progress been made? How much work is left over? Does the overall plan need to be adjusted?
Finally, reprogram your view of gaming. Every time you accomplish something in a game write down this: ‘Today I managed to get a 12 win in Hearthstone with a Mage deck. I earned 300 gold, a card pack with a Leroy and some junk in it, and $0. I predict that this will contribute to me earning $0 going forward.’ Money isn’t everything, but it’s not nothing either.
Do the same for programming tasks. Make a note every time you do git commits, for instance. Every little task will STILL be worth $0 immediately, but the end will be different: ‘I wrote the authentication module for my new project, fixing a security issue with token-based auth. I improved the speed at which users get past the login process by 30%(.65 seconds) and it’ll be easy to move the module to a mobile back-end API later on. I predict that this will contribute to me earning $nice_chunk_of_money going forward.’
At the most fundamental level there is one difference between casual gaming and programming: human beings value one of those activities enough to transfer some of their resources to you in exchange for having you help them. The other one makes it obvious when you level up.
Source: this is how I got through college and got myself to actually improve and use my programming skills. Good luck.
- jwdunne 13y agoWow this is exactly what I've been looking for. It also ties together what I've been working out in my head. I'm in a similar situation as OP but its worse because I am not great, haven't done great things and I'm stuck in the same low-paying PHP CRUD developer job. The difference is I'm not afraid to admit it. I do practice and learn a lot but never built anything substsbtial. My current problem is with Civ5. It's hands down the best game I've played. One thing I enjoy doing is building extremely strong economies above anything else. When I'm raking, I notice it doesn't take much to swing in the direction I want to go. When starting out, you can only really increment gold per turn by 1 to max 7. I often wonder is there any of this I can apply to my real life situation? Can I model my income like a civ 5 economy? Maybe I can say x, y and z will increase the amount of £ I receive per day. Perhaps per hour so it's closer to a game.
- larksimian 13y agotldr: Gaming is like calorie free sweetener, a job is like a (sometimes bland) hunk of roasted meat. If you focus exclusively on 'fake' achievements you might quite literally end up starving. What job would you like to have? What do job ads for that post require in terms of technical skills and provable ability? What are some people that have jobs of that sort and what are they able to code, what technologies do they know, what is their work process? Where are you in comparison with people whose career you would like to emulate? Avoid "I'm bad they're good" use more specific language: "They can write full stack PHP CMS-lite apps and deploy them to AWS with chef and manage all Ops tasks associated with keeping that app functional." That's still vague but it gives you a list of research goals and some clear, real world ways to test that you've achieved them. Get yourself closer to that person's level of knowledge, as you advance adjust your current summary of skills and experience and upgrade jobs. Write your own skill/tech tree and monitor where you are on it. See http://www.dungeonsanddevelopers.com/ http://www.dungeonsanddevelopers.com/ for inspiration, though I think it's not that well themed(who cares about +10 strength, where do I record the +10% Bash Script writing speed I gained last week?) On a more philononsense note: Games are awesome because you get to achieve your goals. They are pavlovian systems optimized to tickle the part of our brains that enjoys creating a desire and then satisfying that desire. Life is fundamentally about uncertainty. No model of your career path and the value of your labor is going to get within the ballpark of Civ's precision. Single player against the AI at lower difficulties you can have strategies that will win you the game every time, deterministically. With life there are just too many variables to make such strong predictions. Imagine trying to think of a good strategy for winning a 50,000 game-year long Civ game, with a technology tree that's not set in stone(both in terms of the tree and in terms of each node) so investments made in a prior game might have different effects if made in this one. The tech tree is also 50 times larger. That's an encyclopedia just to get a grasp on what it is! Plus undiscovered nodes are oftentimes clouded in fog of war! Plus paths sometimes snap while you're on them due to the AI researching a different branch! Fundamentally the pleasure of a game is that it gives you goals to strive for that are achievable and that you achieve constantly and steadily. Life will never give you that certainty of 'leveling up'. BUT! remember that game achievments, unless you are actually a pro gamer, produce no value for those around you and no value, beyond happiness hormones, for you. It's quite literally a behavioral drug, mimicking useful human behavior.