Ask HN: What keeps you going?

90 points by deathWasp271 ↗ HN
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
Making computers do harder and harder things. My current project is dynamic robot control, using some machine learning. I'm not even close to making them do anything I want in this domain (nobody is).

[PhD in CS, programming for 38 years]

I think you either enjoy programming and have a knack for it or you don't.

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 tried side projects but I never have the time for (finishing) them. I have a lot of interests outside of tech and outdoor sports feels like a far better us of my spare time. They keep me fit and are a good way to clear my mind of work.
Speaking as someone who just started his third programming job, and who had a previous unrelated career; the money.

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.

How do you evaluate which companies to join when you're looking for a job? Would salary be your primary factor?

(Asking this as someone who's juggling between Big Co. with RSUs and smaller startup that pays well, but nowhere near as much.)

Don't have anything to live for just too scared to give up and die.
It helps if you’ve had other jobs. Pretty much all jobs have downsides and therefore “suck”.

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.

I'd suggest that even if you love your job, set limits. Your longevity as a professional depends on it.
This is my biggest take away after almost a decade working in this industry.

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

> Let's do a quick game. If you had all the money in the world, would you still do your job? Probably not.

Just one data point but I absolutely would.

you would fit into the camp of 'actually loves their job'
While I probably wouldn't do my job, I do believe I would do something similar for an open source project.
Your relation to the work would change I think. You would be less inclined to put up with bad working conditions, heavy deadline pressures, that sort of thing. Things you would normally let slide for the paycheque become dealbreakers or things you push back on.
I think this is true, but it’s also a bit frustrating in that it’s not at all obvious that programmers are building more or better stuff as a result of the “bad working environment” side of things. So can’t we just lose that?

(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)

> Let's do a quick game. If you had all the money in the world, would you still do your job? Probably not.

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.

Fun by exploring new ways. It implies not to follow the majority.

If it's boring, do it differently.

Don't just look at the problem, itself. Look at the circumstances.

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/

I think the biggest thing you can do is to find a project that really interests you.

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.

You mentioned that you've been programming for over three years. In that time, have you ever completed and launched something?

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.

After being in the industry for around 10 years, my view has now expanded beyond just the projects im working on and into what I am contributing to the company. I am less motivated by 'programming' and more motivated by how it affects the business goals which in turn affects my livelihood and that of my colleagues.
What keeps me going is a semi-decent lifestyle: -Eating decent (fruits and veggies and reasonable portions) -Devoting about an hour to exercise (i like to run) -Getting the sleep I need (varies over time, but hitting snooze and getting an extra hour is worth it over going to work early and being cranky all day).

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.

What makes me wake up and do it again? Mortgage. The desire to eat nice food once in a while. The fact that, as "the system" is currently configured, one pretty much needs to have a job, and writing code is a pretty nice one.

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 want to echo a lot of what was said here.

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.

The lifestyle that having such a lucrative skill set has created for me.

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.

My projects, by and large, serve a greater purpose than "neat code". I do a lot of modeling and basic research, so that's pretty motivating. It's not without its own grind, of course, but it's easier to convince myself that it's worth pulling long hours when the payoff is finding out something new about the world versus writing a slightly better ad-seller algorithm or something.
If You Get Tired Learn To Rest Not To Quit
Curiosity. The desire to create. The will to have agency and interact with the universe. Interacting with other ppls ideas too.
Just FYI the 3 year mark when you're in University is notoriously the place where you get bored. Just push through for another year... you'll thank yourself later
It is not the computers I enjoy, it is solving real world problems. I really get a kick out of that, computer or not.
CS pays. Luckily it's also mildly interesting and sometimes very interesting. I don't love my job, but I work for a company that does good things and pays me pretty well.

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.

This question itself shows a little bit of privilege.

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 look at it as just coding, but rather the purpose behind that code.

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.

I've been programming for 25+ years. I still love programming. Never wanted to be a manager. The challenge of coding, solving problems, and being well-paid for it make me very happy. I'm currently sitting in my kitchen, working from home, looking out my deck onto SF Bay. This is not a lifestyle I would have been able to accomplish being a chemical or mechanical engineer, a biologist, an accountant, etc. I truly feel blessed that I love programming, that I'm good at it, and that I am living in a place that rewards good programmers consistently for the past 2 decades. Who knows when this well will dry so I'm taking it as far as I can.
Programming is an art, and you, and me too, we are like artists in the meaning we juts don't want to give up being creative, and solving challenges is a large portion of the reward we get. Besides of the money of course, we all need that.
As an accountant I take an offence to this.. NOT!!

edit: minor spelling error

I like programming, but many of the jobs out there seem to involve only a small percentage of your time actually doing it.
> What makes you wake up every morning and sit down to code again?

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.

What keeps me going? Obsession and passion. I got my first computer in December 1994. I was 43 then. The first night I did not sleep. Not the next either. Got hooked, immediately. I was in a full time job as a mechanic. In a workshop, wrenches, oil, welding, repairing, cars, machines, etc. Taught myself programming, besides the the normal job. In 1997 I got headhunted by a software company, having won 1. prize in a programmer's competition a Magazine ran. Now I am retired, and am programming more than ever. Will sell my own products, I have what they call an ISV, my own one-man company. Programming is as fun as ever. I do everything, Web, Desktop apps, plug-ins for the large multi media applications. Several languages, all is very fun :)
I work in medicine, specifically genetics, and virtually all code that I write is serving that purpose. A few near-death experiences in life is what keeps me going, each and every day.

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.