When I graduated Uni few years back i was very interested and excited about programming and would constantly work on side projects. Now after having worked for a few companies, it almost completely killed my motivation and interest in programming. Working on boring, crappy projects for a living is just killing me, and you never know until you get on the job. How do you deal with this?
Motivation is usually a product of mental health. Mental health is a product of a variety of things like work-life-balance, good sleep, healthy diet, physical exercise, and measured progression towards realistic goals. Optimize and improve on those, and you'll have more motivation and mental energy overall.<p>Since full time work rarely makes good use of focused mental resources, you might be lucky if you have a couple hours in the evening to work on personal projects. For weekends my experience was I needed Saturday to recover - it's hard to focus on a screen and sit in a chair. But by Sunday I can devote focus into personal projects. Still not very many hours to use. It helps to have no social life and family responsibilities, but I'd rather have those than more programming time.<p>Overall it's hard to have enough motivation and mental energy while working 8 hours a day, but you can optimize for health and get some more utility out of your free time.
>Working on boring, crappy projects for a living is just killing me, and you never know until you get on the job. How do you deal with this?<p>I deal with it by choosing not to work on crappy projects.<p>If a company or the project they want you to work on is crappy, don't choose them!<p>There aren't many non-crappy tech jobs in my neck of the woods, so I branched out on my own.<p>I do the odd consulting gig if you're a small company who has a few technical problems and want to pay to fix them ASAP.<p>And I work on my own projects in the meanwhile... websites... saas... working on an algorithmic trading bot right now.<p>It's working out OK.<p>Yoga helps fill the downtime between ideas... and is really helpful at generating new ones I find.<p>In fact, I just had an amazing idea on the way home from practice earlier today that I should really get working on!<p>Or hey, perhaps programming just isn't your thing and you've finally realized that. It's not for everybody.<p>It's a tough world out there, but you're doing the right thing by asking questions and trying to change yours.<p>Take care now.<p>Chin up!
The author of “Feeling Good”, Dr David Burns, who popularized cognitive behavioral therapy, believes we have motivation backwards. That in reality, motivation comes from taking action. To overcome procrastination, you commit to doing some ridiculously small task — e.g., launching your code editor. Typically this snowballs into doing meaningful work. The trick is to only mentally commit to a few minutes and most of the time you’ll far surpass that.<p>But more generally, interesting side-projects are a good “saw sharpening” exercise. I’ve found that most of the valuable skills I’ve learned in life came from projects I was passionate about, and in turn those skills have benefited my career. Another side effect of these passion projects is that they leave me feeling energized and inspired, which has a spillover effect into my “work work”.
If your work is boring and crappy, you're probably giving it no more than 30% of what you're capable of. This is going to sound cliche but it really works: make a passion out of pursuing excellence in your work. I've turned many mundane projects into interesting, educational experiences by going deeper into the work rather than simply getting the job done. Over time, I accumulated domain expertise that I never imagined I would. I've grown personally and professionally for it. Work isn't just about getting things done. Do better work. Make better things.<p>I guess you can say this is one application of Victor Frankl's "Man's Search for Meaning", which I recommend you read if you haven't -- or re-reading if it's been a long while!
- I read about cool things people do (you're already on the right path if you're on this site). Learning about the cool things often motivates me to "Hey I'll make one too".<p>- Customize your work environment. This is rarely mentioned, but it's a very effective way to keep you interested in programming. All the best SWEs I know customized their work environment heavily. I've basically never lost interest on programming, even on the most boring projects I've worked on, mainly because just "typing" on my vim/terminal is so fun!<p>- Learn other engineering branches. When I don't feel like coding, I design and print a lot of 3D printer stuffs. I build/program RC cars/quadcopters. Then somewhere in the process, I'll be like "hey I can program it to do this!" And I'm back to having fun with my computer.<p>- Don't burnout. I have the feeling you may have some early symptoms of burning out. Go play games and hangout with loved ones.<p>- Know what _really_ makes you unhappy. Is that the work truly soul crushing? Are you trying to get promoted, but felt like you can't even though you are trying hard? Work environment? Lack of sleep? You usually can't debug a problem without knowing what causes it. So take some time and reflect about it.<p>Hope things get better for you :). And keep it up!
Programming is the single thing I'm capable of that has allowed me to provide an upper middle class lifestyle for my family. I will keep doing it for as long as it serves the function. I don't require any other motivation.
> Working on boring, crappy projects for a living is just killing me<p>You couldn't live in a better time for being able to pick your work as a Software Engineer. Even location is irrelevant more and more with remote work. If you want to work on something that excites you, find that and do it!<p>Outside of that, build things that you want to exist using interesting technologies or even just a refined, latest and greatest version of the stack you currently know and use.<p>Whether you turn these things into actual products or just things you'll use yourself, it's irrelevant, as long as you enjoy building them.
I lowered my expectations, just like you know when I was teenager I wanted to have a ferrari, but when you are 30 current year sedan is quite an achievement compared to 15 year old beat up car I drove when I was a student. The same with projects, I am not inventing or optimizing complicated algorithms and I am OK with that, CRUD apps that have long life are also a challange. Handling people is a challange, which I like because I work with really nice people now. Getting that new feature in a CRUD app from concept to production feels good as well! (I am also not going to work in FANG and I am not going to earn $250k a year)<p>I had luck with my current employer, ended up in a company that needs me and are greatful for what I do for them. It is a software shop, so I am not a cost for them but an asset. So one thing to note, try to find company where software is their main product. Earlier I was working in a company where software for them was: "those silly kids fooling around", boy that was bad.<p>Some people say they stopped doing development after work. There is so much stuff to learn that I cannot just let it go. I was mostly Windows person, I learned loads of Linux stuff. I don't do the same stuff I do at work after work. I don't have deadlines, my projects don't have to provide any value, I don't have to open source them. I don't have to learn after work to stay competitive. I am just fooling around just like I want and there is no sprint, no points, no product owners so it feels so much better than what I have to do at work.<p>I think all those words I used could be summed up by: take it easy, don't take it too serious, have luck.
Learn to not need motivation in order to get work done. This is what my father and his father called "work ethic."<p>In short, the memory I always think back to went something like this: me whining about digging a ditch, followed by: "I'm paying you to dig a ditch. I don't care if you're <i>motivated</i> about digging the ditch. Dig it, and I'll pay you."<p>It's the same with anything. If you can't work without motivation then you really aren't doing your job. Everyone has up days and down days, up years and down years. You're paid for all of it, so you should be working for all of the time you're paid to work.<p>Once you surpass the need to be motivated, you really start to get good at something, in my experience. There's a pride in the finished work, which is completely independent of how much fun you had while doing the work.<p>I am not saying that motivated people do not produce great work that gives them pride, I am saying that you will be viewed as more reliable, more dependable, more capable, and more professional if you can simply push out those keystrokes even when you don't feel like it.
Don't stress out over side projects. If you don't feel like working on them, don't. The cliche that good software devs have to sit at desks coding 20 hours a day is silly and unhealthy. Use your free time to do stuff you enjoy. Maybe you'll get inspired to work on the project, or come up with an entirely new one, but there's no point forcing it.<p>And I'd suggest not taking work so seriously. Don't slack off, but don't over think it, either. Most work (in every field) is crappy and boring, so just do it and get it over with and don't stress out over it.
If your job is very 'real world engineering'y, work on projects that tickle theoretical itch. Try to implement a y combinator in a language you like without looking it up. Or learn physics and do simulations to help you.<p>The real question is why <i>should</i> you keep your programming motivation up if its not something you're enjoying? Find something you enjoy and do that! Programming is a means to an end. If you want to enjoy the means more, find a more inspiring end!<p>It's a bull market right now, you can try working in a very different kind of programming.
My hatred of the dayjob is what motivates me on side projects. (The goal is to make enough money to quit)<p>I also find it useful to keep a journal. Recent research shows procrastination to be an emotional management problem.[1] If you can work through the reasons why you're feeling unmotivated, you'll be to turn things around.<p>[1]<a href="https://www.fastcompany.com/90357248/procrastination-is-an-emotional-problem" rel="nofollow">https://www.fastcompany.com/90357248/procrastination-is-an-e...</a>
Motivation is fickle. Cultivate discipline. Set aside time to do something every day. No exceptions. Don't worry about how long you do it for. Discipline is something you can learn.
In my case it is the opposite, programming has helped improve my overall morale.<p>I was running a startup, during first few years my programming contribution to our products were very high as I had inexperienced developers. But once they gained experience, my contribution to actual coding got diminished and was limited to architecture and major troubleshooting. That was compromise I had to make as a single founder and executive of the startup.<p>But in 2018, I had severe health problems and had to undergo life-threatening surgery which has permanently restricted my neck movements severely and had to close my startup.<p>While I was bed ridden during recovery, I wondered whether I could even get back to computer usage if not programming. Now a year since surgery, I have adapted to restrictions in the neck movement, changed computer display setups to aid it and started programming few months back although my primary profession now is coaching startups.<p>I recently released the project which I was building past few months[1], which was inline with what I do professionally and being able to build and launch the project after months of uncertainty over whether I will be able to use the computer again has had a positive effect on my morale.<p>[1]: needgap - 'Submit problems for startups to solve' - <a href="https://needgap.com" rel="nofollow">https://needgap.com</a>
I have three tactics that I think primarily contribute to staying interested in projects (in or out of work), even if I find them somewhat dull or unnecessarily laborious:<p>1. Find a good space of the day when your brain is optimally productive and lock into a tasklist that you've preplanned. For example, I will often create a tasklist in the evening for what I want to achieve the next day, then hit it hard in the morning as that's when my enthusiasm and focus is best.<p>2. For any given project find an interesting approach to the solutions you need to provide. I won't take a run-of-the-mill approach to solving things (unless it's a quick win or mostly appropriate to do so) but will use solutions as a platform to approach things in a new way, with a new technology or just by improving what already exists.<p>3. Exercise: the reason I find the morning my most productive time of day is because I cycle to work every day, I think. If I have too much sedantary time in front of the computer it does my head in, but even a quick walk around the building will let my mind work on itself to meet the other two points I mention. If you're frustrated at your desk, you're already losing.<p>Hope that helps! :-)
I don't.<p>I have stints of high motivation and stints of low motivation.<p>The trick is to be productive without being passionate about programming. "Choose a job you love and you will never have to work a day in your life" is a toxic mentality, and it's okay for work to just be work (sometimes or even all the time!).
I'd recommend companies that have a comfortable environment and that are not overly profit focussed but also do something that you consider useful. I'd definitely also consider going with something that might not offer the highest salary/chances of getting rich.<p>Chances are that the technology you use might also be useful for side projects. Also not working in a high pressure environment might enable you to work on interesting things and leave some space for creativity at home.<p>The times I felt the most burned out at work where actually also those where I took the job most seriously. That's very much the experience I have now from working over 10 years at various companies. Hope this helps ;)
It might be a health thing. I notice when my health is poor I don't feel like doing anything. But after changing my eating habits and sleeping more[0], I have much more energy and motivation to do things I like.<p>I didn't notice this for a long time; the decline was so gradual I didn't notice until I was constantly tired every day. Still not perfect, but much better than before.<p>[0] Please sleep more, dear reader <a href="https://twitter.com/hillelogram/status/1119709859979714560" rel="nofollow">https://twitter.com/hillelogram/status/1119709859979714560</a>
Part of it might be to find work where the grunt work is more closely related to business goals. Seeing its purpose (and assuming you care about the business goals) might provide the drive needed to do the work.
Related discussions that might also be worthwhile:<p><a href="https://news.ycombinator.com/item?id=18903886" rel="nofollow">https://news.ycombinator.com/item?id=18903886</a> "Ask HN: How do you motivate yourself to keep working on a project?
"<p><a href="https://news.ycombinator.com/item?id=19777976" rel="nofollow">https://news.ycombinator.com/item?id=19777976</a> "ask hn: how do you stay disciplined in the long run?"
One idea is to have more influence on the business decisions, take a more active role in the project. So push back on the crappy parts and bring new ideas to the table. Try to make it your own, be proactive instead of reactive. That might give more weight to the work you do and having more stake is also more thrilling. You could be the next team lead, architect or cto, who knows. And if it doesn't work out, at least you gain some valuable lessons.
Find a mission you believe in and use your tech skills to help achieve it.<p>Warning: this might mean fighting bureaucracy, older tech stacks, lack of resources, etc but that is what you are there to solve!<p>Everybody needs help.<p>I’d also second other comments: use the downtime / boredom at your current job to your advantage. Only spend as much time as necessary there, focus on yourself - whether that’s wellness, side projects, vacations, etc. When you’re ready to figure out what’s next, make the move.
When I had a job like yours I quickly left for a company with more interesting projects.<p>These days to keep up my side projects I set attainable daily goals for the projects/languages I wanted to work more in using WakaTime to track my progress. I get daily emails that motivate me to keep reaching my goal of at least 2 hours coding per day.<p><a href="https://wakatime.com/goals" rel="nofollow">https://wakatime.com/goals</a>
I found my passion again by working on a (side) project that I care about and want to use. At work, I try to steer towards projects that I find interesting.
A few years ago I found myself in the same situation and finally determined it was going into the office and dealing with so many people that was to blame. Once I started working remotely I found I had lots of spare energy and motivation for all my hobbies.<p>I don't mean to say that this is your issue, but take a look your life and what drains you. It might be the boring work or it might be something else completely.
The motivation comes with inspiration for me. If I see a problem and know that I can build a solution, I can't stop myself from building it. The more time I spend honing these skills, the higher the bar becomes for new projects, so next time you feel the spark of inspiration, don't pass it up because it becomes more and more rare!
I somehow have the intrinsic motivation to make things better and to challenge myself.
This is why I would never just program UIs which were already designed and ready to implement. I could never work on projects that don't require me using my mind.<p>I need to invent systems, to be creative, to solve complex problems. This is what drives me.
My motivation comes with inspiration to build a new general purpose programming language that worth using, it's what I have in mind after fighting with most of the technical debts and bugs in various programming languages.<p>I still need the community to be interested in making these language more usable.
Focus on your impact, the 'true' value you're providing the world.<p>This is difficult considering what most SE's work entails (i.e. advertising, addictive feedback loop design etc.).<p>Choose your work with strong philosophical underpinning. Else you'll end up in existential crisis.
It's hard to work on a product that you didn't even use... or do not want to use.<p>Maybe the fundamental key is to work on a product that you care, that you want to use... I think it's important being proud of your job to keep motivation high.<p>Something like that I think.
For me the best motivation proved to be success. Once you get paying customers for your service your willingness to write code rises tenfold. And vice versa. If a service flops I don't want to touch a keyboard for weeks.
What scares me more than constantly asking myself if I’m still motivated and really improving as an engineer is a worry that I don’t have enough energy or the cognitive ability to improve to where I’d like to be.
Limit the amount of paid programming.<p>Program projects that you really like and find interesting as recreation.<p>You'll have to force yourself to limit the paid programming but you'll totally burn out if you don't.
1. Don't accept work who does not interess you
2. Keep some personnal project with some fun technologies
3. Choose your personnal environment (OS, code editor, etc.. )
I don't. Turning my hobby into my career killed my hobby and, really, that's fine. It affords me a good life and the ability to discover and enjoy new hobbies.<p>If you're worried about "keeping up," then I would suggest you 1) ignore the rat-race that is framework-of-the-day and 2) focus on learning fundamentals of your domain. Sure, you'll miss out on some hip startup jobs but typical employers don't care about your lack of 5 years experience in a 3 years old framework.