Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do you keep your programming motivation up?
114 points by eanthy on Sept 10, 2019 | hide | past | favorite | 129 comments
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?

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.

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.

Ignoring the framework of the day and “learning the fundamentals” won’t get you past the either HR filters or make you competitive with developers who are constantly doing Resume Driven Development and have a resume that is buzzword compliant.

Especially if you are an older developer (I’m 45) and you will just be seen as just another old out of touch developer.

That being said, the further down the stack you go, the more stability there is in technology.

So what? I don't care to compete with those developers or work for the companies who hire them.

If you live in a place where you can be selective with who you work for, I think this is the right approach.

If you are choosing to leave a company on your own terms you can be selective. If you are leaving because of layoffs or the company exploded, every week you wait you’re losing money.

Good luck with that.

In 17years I’m yet to have an interview where I’m quizzed on any JS framework or a store that isn’t relational, as a web and back end dev. Not heard the word GraphQL uttered In person ever :-).

A lot of jobs exist where they just want to know you can code and assume you’ll learn what you need as you go along. Experience in their languages seems most important.

The last time I had a hard core technical interview was in 1999. I had been working for 3 years and they needed someone who knew the ins and outs of cross platform C development.

By the time I got back out on the market ten years later, I was already 35 and I was able to talk about projects, architecture, trade offs involved in shipping, etc and I was applying for mid level roles - partially because I had become an expert beginner “engineer” even though I was good “developer” and they were getting me cheaply.

Eight years and three jobs later, my engineering skills had caught up with my age and I was applying for jobs where they needed a “change agent” or “someone who could speak experience into the team”. Now, I rarely get asked any programming questions. It’s mostly architectural and soft skill questions.

But, in the grand scheme of things. There are only two reasons anyone is interviewing for a job. Either they are being forced to find another job because of a layoff or the current environment has become inhospitable or they are choosing to find another job for more money/new challenges.

In the former case, where I need to find a job now, I need my resume to be buzzword compliant so I can find a job/contract fast. I also need to be ready to for more technical interviews especially for contracting.

In the latter case, I can be more picky and find jobs where they are looking for “principal developers”/team lead type of positions and the interviews tend to be more architectural/theoretical.

On a side note, I’m not sure what I want to do next. If I choose the cloud consulting/“digital transformation consultant”/“enterprise solution architect/consultant” route. Knowing a little about everything will come in handy - including something like Graph QL.

> There are only two reasons anyone is interviewing for a job. ...

I like the insight here about the two types of job and looking back at my jobs I think this is spot on.

There is another reason to change jobs which is for lifestyle reasons. Moving country, changing to a work from home/digital nomad would come under that. In the lifestyle case you are probably trading other factors for the lifestyle factor, so that would also more likely lead to the buzzword compliant route.

There are paths and trade-offs.

a) Focus on technologies that have staying power. I don't think Java EE jobs will really ever disappear

b) instead of flavour of the month, focus on the flavour of the decade? i.e. Go and Kubernetes seems to be the trend :)

c) instead of resume-driven development, focus on having a network. Most of my jobs have merged because a former colleague, classmate or friend realized I knew some programming once, and they might want me to work for them :)

More in depth, I think you can make a trade-off between the tried and tested and the new-fangled thing, by introducing the new in your current job. Technologies that are not cutting edge, but slightly past the first peak on the hype-curve. I.e. if you do backend, you would probably try Go language (instead of Rust/Elixir/...), on frontend you could introduce Type-script (instead of other compile-to-js languages), you might try Kubernetes ... in general technoligies with following that are still new, but with more than five years in production at some places it puts them outside of the 'flavour of the month'

A) and now you’re competing in a commoditized market where they can easily hire someone cheaply. This would be the type of skillset I would keep up to date if I need a job/contract now and I wasn’t on the market by choice.

B) There are still a relatively few jobs in Go and they don’t seem to be paying more than your standard enterprise language. I’m not wasting my time learning a language/technology with both a smaller market and no pay premium.

But K8s while I think is overhyped and something being chased because of the ooh shiny effect, it is the type of technology I would jump on, insist on a pay premium and ride the hype curve.

C) you still need to do RDD. Who you know will only get you so far. Who you know gives you the inside scoop on opportunities but you get jobs based on what you know. No one is going to stick their neck out for someone who is objectively unqualified.

I'm curious, where do you find accurate and up-to-date data about market size, number of jobs, and average pay for programming languages? I could definitely use this information to better plan my next career move.

It’s more nuanced. It’s not the absolute “market size” it’s whether the market is large enough.

I can keep up with that from talking to former managers, former coworkers, my network of local recruiters, recruiters job listings, LinkedIn posts, Indeed job listings, etc.

For example. Let’s say from all over those sources I see the following trends.

Senior consultant positions (in my case AWS). There are relatively few jobs in my local market compared to everything else that pay enough to make me jump ship just for the money. But when they do become open. I’m building my resume and skillset to be qualified for these types of jobs. If I leave my company on my own terms, I can wait until the perfect position opens up. If I need to find a job now I can’t afford to wait and it’s too risky for me to over specialize in an area where local jobs aren’t plentiful.

On that same note, the only reason I am specializing in AWS instead of Azure is because that’s the job I ended up in. Even though the market for AWS is much larger than Azure, the Azure market is more than large enough so it doesn’t matter. GCP on the other hand...

If I take that same mentality to Java, C#, and Go, the same thing applies. Java is more popular in the enterprise, but C# is popular enough that you can quickly find a job, it’s hard to ask for above average compensation just for a developer job since there are plenty of people who can do it “well enough” to develop your bog standard SAAS CRUD app or bespoke internal app. But they pay well enough. The cost of living is relatively low in Atlanta.

On the other hand, I don’t see that many jobs for Go developers locally and when they do appear, the salary is the same as C# and Java. Why specialize in a language where the demand is lower and the compensation is the same - unlike AWS Consulting.

Learning Go would mean I am neither optimizing for salary or for optionality to find a job quickly.

Of course, it’s always good to have Javascript in your back pocket because of the web and it’s used for server side code, desktop apps, and cross platform mobile apps.

As far as my next career move, I am not sure. Extra money would always be nice, but cloud consulting/enterprise consulting doesn’t excite me. I have a decent work life balance and I enjoy my current stability.

On the other hand, I am getting bored with developing, a change of pace would be nice and increasing my savings and investments wouldn’t hurt.

Interesting w.r.t Go-lang. Where I live, we have RedHat working on kubernetes, and several startups in the "lets-turn-everything-to-golang-microservices-on-kubernetes" phase of hype-cycle, that pay premium, so my cost-benefit analysis looks different ;)

I kinda agree, that is why I was talking trade-offs.

In reality, you probably mix bit-of-collum-a/bit-of-collum-b.

Perhaps I should clarify in that I don't worry about what's cool right now, but do in continuing education in what's new-ish and a solid solution. Having fundamental understandings of your domain is very helpful in spotting what's good and what's marketing flash-in-the-pan.

> That being said, the further down the stack you go, the more stability there is in technology.

IME, it's about where you go and not what level of the stack.

Some places are just fine with a basic form-based website with a little JS for convenience that ultimately just talks to an IBM mainframe. Others want full-blown SPA in the latest, greatest Hipster language deployed across a dozen datacenters with Kubernetes and whatever other trimmings.

And then after you get laid off from the vanishing few remaining companies using old tech and can’t find another job, you’ll be complaining about “ageism” on HN.

If the market is paying higher than market salaries for the buzzword compliant “digital transformation consultant”, that’s what I will learn.

> And then after you get laid off from the vanishing few remaining companies using old tech and can’t find another job...

As we speak, banks are migrating from systems written in cobol/fortran to systems written in java. I just got quite a few recruiters contacting me for open java jobs. Sure, frontend code was in angular and they offered training for it, but for some even angular might be considered to be "ancient" because they're living in a react bubble (not saying that you are).

I know just enough about the front end to call myself a “full stack developer” and get past the HR filters. But front end developers are a dime a dozen and the pay shows it. I keep up just enough in case I need a job now and I want to get something fast.

When the day comes that I do decide to leave my job and I leave by choice, I’m staying buzzword compliant enough to be an overpriced “cloud consultant”, “digital transportation consultant” or whatever the hype of the day is.

But, I wouldn’t take a job doing Angular knowing that React is more popular and I would rather add React to my resume than Angular.

Sounds like you went the corporate route in your career, which is totally fine. Compared to the startup route, it has its pros and cons, one of which is HR filters and people gaming the system to advance their careers. Just wanted to say that it’s not everyone’s experience, there’s a whole other world where that’s not a problem, but.. you know, there are different issues.

The startups are even worse when it comes to ageism, “culture fit”, and overwork.

As they say, you can find something wrong with everything.

Yeah, but don’t you find it a bigger deal that “what’s wrong” is the bro culture, crazy work ours, and ageism?

We’ve all heard horror stories, of course, but I think it would be a mistake to generalize it to the whole industry because we don’t hear about the startups that have perfectly mundane work hours and reasonable diversity.

Don’t get me wrong, those things are problems that need to be addressed, but in my limited experience it doesn’t seem to be as common as it might appear.

So do it the old fashioned way: socialize and network with people at industry events. Ageism is another issue that isn’t quite so easy to solve. Doesn’t that depend on the area more than anything?

Networking like that is how I found my job without a degree in computer science.

Networking - which I do - will only take you so far. I have a strong network but you still need to have the requirements for the job. Why would a company hire someone who doesn’t have the wanted skillset when they could find someone who does.

I only started really job hopping and taking my career seriously 10 years ago at 35. I’ve always had at least a half a dozen interviews and a minuscule number of rejections. My network got me to the interview without going through an ATS. My Resume Driven Development and knowing the game got me offers.

Ageism outside of the cool hip startup world is exaggerated. Most of the older developers confuse ageism with not keeping their skillset in sync with the market.

> That being said, the further down the stack you go, the more stability there is in technology.

Maybe my English is not that good, how do you mean? Asking as a 43yo developer.

I take it to mean that back end development has less new stuff going in n compared to front end. Deep back end, like networking or systems development has even less new. Kernel or embedded, even less new. Not sure how true it is, but that is how I read it.

Thanks for great advice! May I know how you keep yourself relevant at that age and what approach you changed from earlier when you get old?

I made the mistake of staying at one company for close to ten years and then when it was time to leave, I found my skillset woefully out of date. That was 10 years ago.

As far as staying relevant, I’ve developed a network of trusted local external recruiters and I speak with them to see what companies want.

When I’ve been looking for a job, I’ve found jobs where I have the listed “must have” skills and I want the “nice to have” skills. Rinse and repeat.

I don’t do non work related side projects. I will work extra hours and volunteer for a low risk project using new to me technology just to learn.

I want to say that I would change jobs if I saw the technology that my current company is using is out of sync with the job market all other things being equal. But, every job change I’ve done in the past decade has come with both more pay and more resume building opportunities.

Now after job hopping and following my own advice for a decade, I’ve reached close to the local market (Atlanta) maximum unless I start working for a consulting company (not contracting/staff augmentation).

You do learn framework of the day while job hunting. You do not have to learn every framework of the day while having a job.

No job is permanent - always keep your running shoes around your neck.

Whether I am actively looking for a job or not, optionality is important.

Yeah, but it is not like learning framework was months of effort. You learn it fast we you decide to.And it is not like job would disappear completely unexpectedly - you can see the signs.

I am not advocating not learning things for 20 years. I think it is ok to skip 1-2 years, then you check state and learn framework, relax, learn something fun, relax, learn framework, repeat.always one not all.

It depends on what I’m optimizing for - to add value at my current company or to add value to my resume for the broader market. Hopefully I can choose a technology that lets me do both. But if my company is paying me an higher than median wage, and I see things going well at the company I’m with now, I optimize for learning what I can to ask for more money where I am. If I don’t see that happening and I can get more somewhere else or I’m falling too far behind, I’m optimizing for buzzword compliance.

Luckily, right now, everything is in the right place for my current job.

- they are paying me above the local median (we are talking Atlanta here not Silicon Valley)

- the technology stack we are using is not bleeding edge but in the right place in the hype cycle.

- I think they will continue to do so for the next two years.

But you’re right. I’m not going to spend my time learning the latest frameworks if I am not going to use it at my current job and I don’t see myself in the market within six months. But if my company ever got too far behind the market, I would have to start preparing.

study things that aren't trends / frameworks if you don't want to follow the latest trends.

learn stan (still relevant technology despite being one of the oldest in its domain). learn image processing. learn database administration.

“Database Administration” is a bullet point for most companies not a complete job. Specializing in it definitely doesn’t give you the optionality of a wider range skillset like a developer who also knows about database administration.

How many companies need someone who specializes in “image processing”? Soon, if it’s not already a commodity library that any company can leverage.

not many companies, but the hiring pool is also much smaller.

If you want to be a general hire, then you will suffer competing with generalists (this is not a bad thing just a different strategy). You can choose to become an expert on a general skill (or trendy framework). This is useful and highly marketable, but your competition pool is also larger and the technology is still likely to dissolve over time.

Also, for DBA , I think i'm internally thinking Data Engineering instead. I perhaps misspoke by title.

"the further down the stack you go" is the reason I love English (being Spanish)

I am not following as well, I am from China. Thanks.

Consider a typical web application, the “stack” is.

The browser and front end code - just sticking with Microsoft, the popular method has been classic ASP, ASP.Net Web Forms and ASP.Net MVC and ASP.Net Web API and they both have changed significantly after Core. Not to mention that the industry has moved away from server side rendering to client side rendering. The popular client side framework seems to change every year.

The next level down is a server side language, let’s assume that we are doing client side rendering. When I really got serious about my career in 2008, after staying at a job for a decade, job listings were looking for C# and Java. Those are still two of the most popular enterprise languages. While of course both languages have evolved in 10 years, it’s mostly syntactic sugar. If you were in a coma for 10 years, you could wake up and easily understand code in either.

Databases - back in 2001, I was working as a backend developer writing batch jobs to load data into MySQL and Sql server databases and do reports. Now, I’m still working with MySQL doing some ETL as part of my job. What I learned back then is still applicable. The difference between those two databases now and the front end framework of the day is like night and day.

Web servers. I don’t deal with web servers that much anymore (see below), but when I do, it’s still IIS, dealing with IIS hasn’t changed much in 15+ years.

Networking/Infrastructure. I’ve had to deal a little with the networking in the early 2000s, but I didn’t get back into the infrastructure side until two years ago with AWS. Everything made perfect sense. The basics of TCP/IP, servers, load balancers, etc hasn’t changed in decades. While AWS is always adding things, nothing you learn is ever obsolete unlike the framework of the day.

Can you explain that more? I'm not following.

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.

i second that. It became a 9-5 work, and i am fine with that. If and when i get myself very curious about something, i just open a new bitbucket private repository and play with it until the novelty fades away.

I also second the other, "I don't.", responses below. At some point along the way I started really thinking about what I was doing. I also realized that the "rat race" in software engineering is the constant need to "keep up" with the latest technical trends.

At that point I had to start looking elsewhere for a sense of engagement. I ended up finding fulfillment in discovering where I could provide the most value to a company and then focusing on that. 9 times out of 10 it had nothing to do with technology.

These days, if I want to enjoy learning about technology I sit down and read some of Knuth's "The Art of Computer Programming".

I generally agree with you. But, I think we also need to constantly evaluate our view about the current way we do things. For example, in 2012-2013 time frame, I was involved in a project dealing with an insane amount of data. I studied Hadoop in the spare time and applied what I learned at work. I felt grateful that it helped with the scale and performance tremendously. Fast forward to 2016, I was just starting to learn more about Spark (even though it was available for a while by then) to replace the slow execution model of Hadoop MapRed for our iterative model. Again, applying what I learned to the project helped us to cut the R & D time a lot. Plus, for most of the folks who start with Spark, they don't have the first hand experience of the original MR idea implemented in Hadoop. It is a pain and slow to use Hadoop MR model but nevertheless it makes you feel more appreciated with things like Spark/Flink.

To sum it up: you don't need to constantly chase after the greatest & latest framework. But, you need to constantly review new inventions/technologies to help you improve the way you currently do things. I am grateful for still having the passion to improve things around me!

Yep. Just view the reduction in side projects as normal. No matter how much you love art, if you paint at work for eight hours, you're going to be far less likely to want to paint at home. Monotony is defined by lack of variety and repetition.

I feared that this would happen to me, and avoided a dev career for a long time. Eventually I realized that I needed a career and gave up.

What I found was that despite how good I thought I was, I'm way better now and enjoy programming even more than before my career. I don't program at home nearly as much, but when I do it's for something I really want to make and it's very satisfying to be able to just whip it up.

I spend all my struggling hours at work and can just use the knowledge at home now. Much, much better than spending all my free time struggling to figure things out and getting little done.

Programming seems to be one of the few fields where it's considered a sign of laziness if you don't work outside of normal working hours.

I know a lot of people (myself included) got into the field by turning a hobby into a career, but I don't think it's healthy to try to force yourself to spend 12 or 14 hours a day crunching away at the keyboard. Even if you truly do love programming.

Honestly, my advice is to find other hobbies and interests to do outside of work that are not programming related. Recharge during the week and use weekend time to work on side projects if you feel up to.

If you are feeling burnt out by the daily slog, I don't see how forcing yourself to "be motivated" to do more work will help.

Thirded. An obvious consequence of 9-5 programming schedule is any other hobby takes precedence. In fact, I strive (and struggle) to power off my laptop and put it in the closet when home.

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.

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.

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.

This is a fantastic comment. Did you get your Motivation formula just from experience, or do you have a suggested reading where I get more info?

Trial and error as a programmer dealing with depression and anxiety accounts for a lot, but for resources I'd point you to Robert Sapolsky's lectures on Behavioral Biology (here: https://youtu.be/NNnIGh9g6fA). Sapolsky's lectures are great for getting a Biology perspective to how human's operate. Jordan Peterson's has lectures on Personality (here: https://youtu.be/kYYJlNbV1OM) which are also great and echo similar ideas from a Psychology perspective.

>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?

I deal with it by choosing not to work on crappy projects.

If a company or the project they want you to work on is crappy, don't choose them!

There aren't many non-crappy tech jobs in my neck of the woods, so I branched out on my own.

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.

And I work on my own projects in the meanwhile... websites... saas... working on an algorithmic trading bot right now.

It's working out OK.

Yoga helps fill the downtime between ideas... and is really helpful at generating new ones I find.

In fact, I just had an amazing idea on the way home from practice earlier today that I should really get working on!

Or hey, perhaps programming just isn't your thing and you've finally realized that. It's not for everybody.

It's a tough world out there, but you're doing the right thing by asking questions and trying to change yours.

Take care now.

Chin up!

> I deal with it by choosing not to work on crappy projects.

Most don't have this luxury, and have to eat what moldy bread they can get their hands on.

There isn't enough to go around in most places.

The rest of my comment above addresses the lack of non-crappy projects available which I suffer from dearly as well, I can assure you.

They're few and far between in my neck of the woods too!

tl;dr work for yourself... figure out how to make some money selling something or trading or consulting and do it.

> 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.

I've thought about this before, and imagine I could encounter some pretty interesting problems as well as collect some pretty valuable experience, but I just doubt companies acknowledge or care about a lot of tech issues. Particularly if they shakes up established processes

>I just doubt companies acknowledge or care about a lot of tech issues.

You're bang on, they sure don't.

Which is why I am extremely selective in who I will work with.

My consulting gigs are generally just favors for friends or friends of friends who are stressed out from having hired shitty programmer after shitty snakeoil salesman for the past few years straight... and are finally ready to bite the bullet and pay a few grand for whatever they need done... once and for all.

I would say that situation describes almost 100% of the consulting gigs that I have ever done.

> working on an algorithmic trading bot right now.

Any suggestions on how to approach building algorithmic trading bots?

Start getting some data in front of your face and start looking at it.

Really look at it... pore over it... think it... be it... once you start dreaming about price and volume data, you'll know you're on the right track...

...until you think you might notice an edge or something somewhere... then write unit tests to see if that hunch about the pattern your monkey brain thinks it saw is actually consistently profitable.

Then you do all of the real work that is implementing the actual trade execution engine. (Yes, I just yada yada'd over months of work)

That's how I went about it at least and it's working out great so far!

Good luck!

What language or frameworks do you use for that? Metatrader or things like that?

Also well worth look at Robert Carver's material, ex HF guy:


A google will turn up plenty of videos and interviews too.

Get your bot working first in your preferred language, mine is python. Then look at some of the libraries available. Ta-lib is a good one to start out with. Then combine the two, your bot and your code for trading with ta-lib.

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.

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”.

Really interesting take. I will keep this mind.

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.

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".

- 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!

- 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.

- Don't burnout. I have the feeling you may have some early symptoms of burning out. Go play games and hangout with loved ones.

- 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.

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.


My motivation for programming is strictly that I get an above average amount deposited into my account twice a month to do a relatively easy job in an air conditioned office or at home.

> Working on boring, crappy projects for a living is just killing me

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!

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.

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.

> If you want to work on something that excites you, find that and do it!

I think that's a bit oversimplified, a lot of really cool projects are simply inaccessible for one reason or another. While there's cool stuff out there, the vast majority available to your average person seems to be the boring stuff

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)

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.

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.

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."

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 motivated about digging the ditch. Dig it, and I'll pay you."

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.

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.

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.

I find this works fine with physical labor but not anything requiring creativity. I used to work 14 hours/day as a barista, no problem, but 4 hours straight untangling code is impossible.

Software development isn't really a creative endeavor, though. A large portion, if not all of it, is seeing what needs to be done, then doing it.

Creative friends (coworkers, really) tell me that "the wall" is a very real thing and that to get through it, you simply must find a way to push through it, somehow. That sounds a hell of a lot like me getting over my inability to want to dig a ditch as a child.

My creative friends say that they switch projects or turn to another art, such as drawing if they are a writer, to force their imagination and creativity to stay on, while not banging their head on the same section of "the wall" and getting terribly burnt out. Others just switch projects within the same medium.

I'm not a creative person, so I can't say if what that have told me works for everyone (almost certainly not) but I can paraphrase what they summarized for me.

> Once you surpass the need to be motivated, you really start to get good at something, in my experience.

Great sentence !

Thanks! I should have worded it a bit differently, I think, and it's pretty great as-is.

It is indeed good and very inspiring, at least for me.

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.

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.

The real question is why should 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!

It's a bull market right now, you can try working in a very different kind of programming.

I'm starting to wish I went to school solely for the potential to get into research if I wanted. Unfortunately, although it seems like it would be more interesting and fulfilling, it also seems like financial suicide.

> you can try working in a very different kind of programming.

On that note, how do you manage to work in X when all your years of experience are in Y? I'd love to try different things, but I just don't know how to pivot

My hatred of the dayjob is what motivates me on side projects. (The goal is to make enough money to quit)

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.


Thanks for the link - it’s a good read.

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.

I agree with this, but when you get drained all day on mindless tasks, you want to go home and forget all that rather then jump straight into work again even if it's interesting own project

Overcoming "want" is the purpose of discipline.

In my case it is the opposite, programming has helped improve my overall morale.

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.

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.

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.

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.

[1]: needgap - 'Submit problems for startups to solve' - https://needgap.com

I don't.

I have stints of high motivation and stints of low motivation.

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!).

that's very true, every job will eventually become a chore. I guess working on the motivation highs is doable, and then do only enjoyable things on the lows

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.

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.

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.

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.

[0] Please sleep more, dear reader https://twitter.com/hillelogram/status/1119709859979714560

What specifically did you change in your eating habits?

don't have any issues with health, already exercise, eat healthy and generally live healthy. It's only professionally unmotivated

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.

For me, I haven't worked in an organization where I would be rewarded in any concrete way if the business achieved it's goals. (0 equity, pay based on market forces more than effort) So I don't particularly care about business goals in any real sense as they don't appear to align very well with my personal goals. Honestly I just do whatever looks best on a resume at this point.

You have to find better work.

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.

our team is very separate and even if you do anything it goes unheard. Also I can't make myself care that much about a project which is not mine. If that's something that benefits me personally yes, if it's something for the company to make more money I can't care less

Related discussions that might also be worthwhile:

https://news.ycombinator.com/item?id=18903886 "Ask HN: How do you motivate yourself to keep working on a project? "

https://news.ycombinator.com/item?id=19777976 "ask hn: how do you stay disciplined in the long run?"

Find a mission you believe in and use your tech skills to help achieve it.

Warning: this might mean fighting bureaucracy, older tech stacks, lack of resources, etc but that is what you are there to solve!

Everybody needs help.

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.

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.


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.

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.

this plays a huge role yes, but seems to me that finding remote work is quite difficult

I don't do side projects, I have other hobbies. Whatever exciting thing I want to do as a Software Engineer I'll do it during my work hours.

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.

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.

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.

This is difficult considering what most SE's work entails (i.e. advertising, addictive feedback loop design etc.).

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.

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.

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.

Program projects that you really like and find interesting as recreation.

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 have side projects and I try to learn new programming related technologies. An app in the app store could set you free!

Try getting better projects at work. Or try working for a smaller company, as small as possible really.

I don't and I'm bored AF!

This is unhealthy, try to find what you enjoy! At least a little bit. If you haven't noticed it yet this will start wearing you down.

I dont enjoy any of it and have been looking for an out into management for 12 years. At this point im a depressed robot with hardly any useful output. Life sucks.

Right there with ya buddy, except for the management goal.

What killed your motivation to be exact? Most programmers don’t find their work boring... you must’ve hit a really dead end company to feel that way.

You're telling me most people just love making the "latest" and "greatest" CRUD web app? Because that's what most programmers do.

I love making our CRUD not latest and not greatest web app. I get not bad salary and I have great people to work with. No pressure, no assholes.

Some point in time company owners may change, situation may change, but for what it is worth I am riding this wave until it dies and then will see. Not changing that job even for 2x salary.

no idea how you have CRUD apps interesting, it's always the same thing just different tools/application. The most mindless work I've ever done really

I am genuinely jealous of your position. Sounds like you have a great situation going.

Anybody doing competitions ?

take a vacation, keep away ur gadget, pc and other tool for 3 day or more, u will feel it's gratefull to have your current job

Drink some beer

Unwinding at the end of the day is a great way to boost morale. The trick is to keep it moderate and not overindulge.

Alcohol doesn't really unwind you. And relying on it to help you relax or code is probably not a good idea.

Instead I recommend doing something mildly physical between getting home and coding. Housework, playing with the kids if you have them, dog for a walk, or a mild jog should do the trick. Alternatively having a warm bath works well for me.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact