Ask HN: What keeps you going?
I am a university student in CS, and I have been programming for over three years now. The initial motivation for studying CS came from the ability to make a computer do anything I wanted, but over the years, this feeling has dissipated.
What keeps you going over the long term? What makes you wake up every morning and sit down to code again?
73 comments
[ 2.5 ms ] story [ 130 ms ] thread[PhD in CS, programming for 38 years]
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.
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.)
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.
If it's boring, do it differently.
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?
http://threevirtues.com/
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.
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.
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.
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.
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.
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.
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.
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.
edit: minor spelling error
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.
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.