Ask HN: What keeps you going?
What keeps you going over the long term? What makes you wake up every morning and sit down to code again?
What keeps you going over the long term? What makes you wake up every morning and sit down to code again?
That's my take after several decades of doing this. Sounds like the passion maybe went right out, didn't it? No, it didn't. It's like a marriage. Sure, those first few years it's hot as lava, fsckin' like rabbits every day, hate to leave for work because it's time away from him/her. But that calms down, and frankly I think we should be glad it does as I don't know how sustainable such a relationship would be. Same with careers. Oh, sure, I was a coding maniac for years after I got access to a computer. But like a marriage, eventually the honeymoon ends and you settle into a nice, reliable, sustainable relationship with your work.
Just roll with the times you're not so passionate about it. There are times I don't like my wife very much, but I stick with her. There are times I don't like my job very much, because every job has some shit work or some drudgery. And even the coding can become drudgery some times. Because after twenty years, how many times do you think you'll have hand-crafted a for loop that iterates over an object collection?
But after twenty years of writing SELECT statements in your sleep, you can "level up" to where you easily slay the SELECT boss and move on to more challenging endeavors. And I guess in the end, that's what gets me out of bed: familiarity with my tools allows me to keep things interesting by moving on to new challenges. Right now I'm working on Programmable Logic Controllers. Before the interview I had to look up "PLC" on Wikipedia. I'm learning lots. :-)
I've moved around in roles and duties a lot over what is now almost a two decade long tech career. I'm only in the fourth year of it actually paying well, but now it feels like I can do anything I choose to.
That's not to say that I know everything, but I'm pretty sure if I target a specific job, I can learn what's needed in a reasonable amount of time...enough to get hired.
I've had jobs from laptop hardware repair, syadmin for banks, software developer, malware research, NOC tech for an ISP and now systems engineer. Not in that order and I could see doing almost any of these again someday.
Do whatever in this field interests you and you'll be around a long time. When you're doing something that doesn't interest you, work towards the things that do.
edit: minor spelling error
I think loving your job is a dangerous phantasy sold to CS grads to get the them work longer. It doesn’t mean you have to hate every minute, you can enjoy parts of it.
But passion should be reserved for hobbies outside of work (unless you work for yourself). Be a professional - do it for the money mainly, and don’t put up with horrible work environments. At the end of the day go home and have fun. It’s just a job, and should never define you.
"Love your job" has been sold to me thousands of times. Yet, I think that people that say they love their job lie to themselves. It is also very unhealthy.
Let's do a quick game. If you had all the money in the world, would you still do your job? Probably not.
I highly advocate for balance in your life. A job needs to be done properly, and once in a while there is nothing wrong about doing a 80 hours work week, but don't drink the koolaid and work away for a dream that is not yours.
Just one data point but I absolutely would.
(It probably doesn’t help that preferences are quite variable. I’m generally pretty comfortable doing tight-deadline stuff at least some of the time, especially if it’s clear why someone needs the thing fast. On the other hand, I’m not a big fan of some of the current process/“practices” stuff, and can see that people who enjoy a fair amount of structure could dislike an environment I found near-ideal)
There have been times when I said to myself, "Don't they realize I'd do this even if they didn't pay me?"
Those times are fewer than they were earlier in my career. I've learned that real fulfillment isn't in my job. But, given that I need money, having a job that I enjoy is really sweet.
I've shifted to finding more enjoyment in good interactions with coworkers, and less in the high of getting something to work that never worked before.
None of my goals have ANYTHING to do with my career and most of them have EVERYTHING to do with motorcycles and offroad racing.
Software engineering funds my (very amateur) racing "career".
Loving your job such that you want to wake up every day and commit yourself to it is a fantasy for almost everyone and a reality for the few. Some people even on my team love what we do and think it's the coolest shit. For me, I'm happy here because it allows me the freedom to do the things in my life that are actually important to me.
I love programming so I look forward to it everyday.
Learning new things, applying things you have learned, solving hard problems keep it interesting for me.
Having your own side projects are a good way to learn new things and look forward to the time you have to spend on them.
A CS degree and a job as a developer can lead to untold riches right now. So having a semi-relaxing job you enjoy that pays really really well (hopefully doing something you enjoy) is something to look forward to.
It's also amazing what one or two developers can create, as far as their own business. From a small SaaS app that brings in $200k/yr to a small team developing something that exits for $1B. Amazing times and knowing how to develop and create is the key to that kingdom.
Enjoy University while you are there, they are some of the best times.
Study and prepare for the real world, keep learning new things.
I have the funds to do it, probably. My parents both worked until they were about 70 and neither lived to see 75. So I'd like to avoid that ending.
If I do, I think I will go tech-free for a while. No internet, no cable TV. Books, some other non-tech hobbies. If I really need to look something up I can go to a coffee shop with a tablet. Sounds very tempting.
My dream was always to retire by 40 - probably won't get there at this rate as I underestimated how expensive kids are but I still want to be semi retired by 50.
[PhD in CS, programming for 38 years]
I find that if I fit these things into my schedule regularily I have more energy - physically and mentally - to put up with the nonsense of reality.
But what really keeps me going is the fact that I know nothing. Whenever I get bored and arrogant I google something that I think I know (say some signal processing or math concept) and just dive into the rabbit hole. It helps if it's work related.
While I'm currently living off savings on a beach, I'll have to find a job again in the next twelve months and it's not something I'm stressed out about because I know I can find remote work again.
Building stuff is one of my hobbies, and this hobby is marketable. But I am more than someone who can write code. I have other hobbies too that my programming hobby pays for.
Also, university is a grind. I recommend finishing it rather than being tempted to let your emotions drive it. But, just like in the rest of life, remember to have fun and take the opportunity to meet people.
Losing everything is the most motivating loss function. If only my life had a more stochastic optimizer that didn't get stuck in local minima.
* allows autonomy (depending on where you are)
* is lucrative
* makes you a valued employee (often)
* is mentally challenging
* has a low barrier to entry (though getting higher)
* is location independent (or can be)
* is in demand across different geographies (especially most cities)
* is easy enough on the body to be done into your 80s
* doesn't require selling anything
* requires you to learn every day
* lets you build things that actually help people
I've been a developer for almost two decades and have looked at many other kinds of jobs, but haven't found anything that compares to that set of attributes. At least for me, it's the bees knees.
Note that above I used the word "development" and not coding. That was conscious. The world of software development includes the magical flow of coding, but is so much more.
Edit: I did write a blog post about the difference between a developer and a programmer.
IMO: That's the best way to pick a career. Find something that you enjoy, you're good at, and pays well. It doesn't have to be exotic, BTW. Electricians and plumbers get paid well, and don't have much student debt.
BTW, even when you pick something you enjoy as a career, your job won't always be fun. There will be times your job isn't fun, times you aren't good at your job, and times it doesn't pay well. Part of being an adult is being able to manage the natural ups and downs in life.
There are a lot of different types of jobs in the world. Most require you to sit at a desk in a suit and attend meetings. Programming is fun because problems come in text format and you can solve them in a sense that more abstract disciplines cannot, i.e if you run code and it does what you want, you solved your problem. If you want true happiness, solve problems you care about. That true happiness is rare in any industry though. You probably maximize it if you're your own boss.
The only thing that can keep you going is you. Try to understand what you love and do what you love until you knock it out of the park.
Get yourself healthy. Get some balance -- social interaction. New and different and positive inputs.
I think you'll sit down to the problems you're working on, refreshed.
And problem-solving might have renewed purpose. Improving the world you're engaged in.
Best wishes.
P.S. Another way of looking at this: Get some "domain expertise". I was always a lot more effective when I had a domain to which to apply my skills -- and that motivated me to improve those skills, to improve the domain or the instance of the domain with which I was engaged.
Also, what was it Larry Wall said?
There's been a general pattern. I would get tired of my work, and would put more and more energy into hobbies. At some point, then, I would leverage a hobby into a new career. Usually not exactly what I'd focused on, but something that a friend or mentor pointed me to.
So maybe coding per se isn't the rush it once was. But is there something that you're deeply committed to, where coding could make a huge difference?
I haven't seen many others mention this, most focus on basic sustenance, passion or luxurious life.
For me, the part of life worth living is that I get to do things that advance my personal values, which, while related to coding, are not necessarily any of those. As someone else suggested, having all the money in the world wouldn't make me change jobs.
I feel this question can be rephrased as "what is the meaning of life?". Is coding a mean to reach it? I'm sure that pursuing the meaning will keep anyone going.
It doesn't have to be a startup, though that's one possibility. Rather, it just has to be something where you can go from idea to reality and hopefully get a few users along the way.
I hated programming when I was in CS, then I discovered products and realized that I love solving problems. Code is a tool for me to solve problems.
The money and other benefits allow me to subsidize and fund the kind of life I want to have with my family. I know that my children and my wife in our later years will have the resources we need to be financially, physically, and emotionally healthy.
(Asking this as someone who's juggling between Big Co. with RSUs and smaller startup that pays well, but nowhere near as much.)
Employed work is by definition for money and will always be heart/gut wrenching or soul crushing to degrees, that’s a cost. Holding personal boundaries helps but invites plenty of abuse from above and ridicule from beside, in competitive markets. Economics, incentives, biology all factor in. A small piggy bank of FU money helps mindset and against being put in an intolerable or worse compromising spot.
I still get some satisfaction from the "making the computer do what I want" thing, but usually that only happens in situations where first there's some degree of doubt that it'll actually do what I want. Which is usually when I'm trying to master a new technology. When using things I already know how to use, making the computer my beyatch is less of a surprise, so the feeling, as you say, dissipates.
Do you want to change people's lives, or make their lives better?
Do you want to have an outsize financial impact on a company and be appreciated for it?
Do you want to create something new alongside people you really enjoy?
Do you want to help shape the world in a positive way using technology?
Do you just want to have a comfortable, secure living and focus on other things (family, hobbies, etc)?
Are you driven by being the best at what you do?
Etc
I'm a PM, not an engineer, but I love creating things that materially improve people's lives in some way. That brings me deep satisfaction.
Having a hobby that isn't coding, but just as intricate and puzzle-solving, is another outlet I have. I restore and refurb old video game consoles in my spare time. It restores my sense of patience and want for a carefully-deliberated project with problems to solve and no time horizon should I want to step away for a bit.
Coding used to be that hobby growing up. Then, in the dot-com boom, I made it my career. There are rare times I regret ever doing so, but on the balance I make an excellent salary, have benefits, a lot of flexibility, and I realize I easily made the right choice.
How about getting a bit of historical context? If you're a geometer in the era of Euclid, and you're grinding, it's not going to feel motivating. But...you're a geometer in the era of Euclid. Same thing goes for the CS revolution now.
Don't take it from me though - take it from Mehran: https://www.youtube.com/watch?v=nWRGPxSNnag
Other than being passionate about coding, what keeps me going is taking regular breaks - small and big. And by break, I mean stuff that has absolutely nothing to do with computers: downhill longboarding, hitch hiking, sailing, etc ;)
The industry pays really well, even on average, so taking a 1-2 month break between jobs is totally doable. Finding a job in tech that allows you to balance work&life is a bit harder, but if you're any good, it's gonna be you choosing the employer, not the other way around.
Recommended reading: http://expatsoftware.com/
It's not a very exciting answer, but mine is "I'm good at it and it pays better than anything else someone would be willing to pay me to do every day." It supports me and my wife in a comfortable lifestyle, and I can work from home in my pajamas if I want to.
If I had all the money I could possibly need, I would probably take a very long break from programming, maybe a year or two. Then I would still code, but it would be only fun little personal projects, game jams, stuff like that. Things to stretch my skills and creativity because learning is fun.
After 20 attempts, I was still a failure
I was about to give up
But one thing changed everything
I was watching a documentary on lions, and I came to know something interesting.
Lions fail 8 times out of 10
They fail a lot and one mistake may make them lose their life and reign.
But do they give up? Do they cry and complain?
No!!
They Fail - Learn - Evolve
And that's why they are called King of Animals
It was an important learning for me.
I will fail, but I must learn and evolve from them and never give up on my dreams. And thats keeps me going
As someone has rightly said, “If size really mattered, the elephant would be king of the jungle.”
What keeps me going is having to pay the bills. And even after you pay bills you have to worry about retirement, and if you have enough for that you can worry about your family and friends.
Don't get me wrong I actually REALLY like my job right now but I didn't always like what I was doing. And probably one day I will also dislike what I am doing, but in the end you have to keep working so long as you need money.
After I started my first job, I had a long period where I no longer had any motivation to code. What snapped me out of it was starting a project that I found interesting and challenging (related to data compression, if I remember correctly). For me, at least, solving a difficult technical problem is what keeps me going.
I don't know if I am interested in coding for years and years, but I do enjoy solving problems and right now I am doing it via coding.
Seeing that code solve real world problems for our users is a very good feeling.
Food, water, shelter, security, all sorts of services and conveniences... all of them requiring time from different people and the sacrifice of countless plants, animals and the environment.
What keeps me going is working hard to make those sacrifices count.
Second, the job pays very well and is in high demand.
Now: knowing that when I get home, my infant baby will smile at me.
If it's boring, do it differently.
Having other coders to talk to about code as well as life. You won't have access to such people unless you keep working with them.
As it happens most of my current team is remote, but a lot of the socialising is over Slack.
And it's a big deal having qualified experts to talk to about stuff; they know the most about what's interesting, what works, and what's been tried before.