Ask HN: Why is it so boring to code professionally?
I am very interested in CS and building software, and have a master's in it. I have now landed a job in an environment that gives me tremendous freedom to develop tools and concepts in an area that I find interesting, and I'm basically doing work I previously did for free.
However, I still have to force myself to do it. I like the workplace and I love the projects, but it's still a chore to get anything done. I did the five levels of Google FooBar this spring (and later blew my account by requesting an extra challenge and forgetting about it) in an obsessive compulsive manner, but I suspect that if anyone had payed me to do it, it would have taken at least twice the time it took me to complete it. What is going on here?
P.S. FooBar nerd snipe: Implement a function that returns
sum([floor(i*sqrt(2)) for i in range(1,n+1)])
where 1 <= n <= 10^100
8 comments
[ 2.6 ms ] story [ 36.5 ms ] threadThere is nothing novel about working with the same codebase day in and day out…
BUT, I believe it is possible to find the novelty. I’ve found refactoring to be a very peaceful and creative exercise that gives me a healthy dose of dopamine.. you just have to “listen” to the code and follow the refactoring path. The creativity spikes happen when your deciding on what pattern to use or how to name something. It’s simple stuff, but it gets me by and I have found a way to get joy from it.
Unless you want to work at a startup which can provide higher levels of ownership, uncertainty, loss, and reward, getting the dopamine rush will be harder to find on the stable path of an established company.
It’s a trade-off.
This isn't even a company. It's government, although a rather innovative branch of it. So pretty far from startup territory.
I once heard a factory floor worker say that the way he dealt with it was to make a game out of his job. In his case he would try his best to compete with himself to put out the most parts with the best quality. Another one talked about reframing his mindset. He understood that work was what was financing his life. His family, his vacations, and much of the fun he had in his life. So he did what he had to do to have a nice life.
You'll need to figure out how to maximize the fun and minimize the other. This goes for any job you have or get.
The really big bright spot, with you, is that CS gives you the foundation to many types of jobs. If ultimately you decide that coding is not for you then you can pick from many other types of jobs. Again, you'll have to figure it out.
I'm surprised that school doesn't cover this situation as part of job preparation. I think most of us have to deal with it no matter what kind of work we do.
Does your work get used? how long is the feedback loop, for something you create to get used "in the wild", and for you to get real feedback? By real feedback I mean feedback from external clients or customers, or hard lessons from reality, not e.g. feedback from your manager or project lead.
I have had projects where the duration for real feedback was effectively infinite, as the work I produced was never consumed, and other projects where the duration for feedback was 2-4 weeks from external customers. Personally I find the latter kinds of projects far more engaging, even if a lot of the tasks you have to do are not necessarily much fun or interesting. You can mentally connect the tasks with the production of actual value in the world. Doing something useful.
The project that I find most motivating is probably a client library which I am the sole developer of. There, the userbase is maybe 5-10 researchers, students and consultants spread around the country, whom I have direct contact with. That's probably where I have the greatest autonomy, since nobody strictly asked me to create it.
This rings really true to me. Generally I think I do pretty ok navigating through things, do ok, but eork has always been a bit hard for me as well. I feel misaligned & hampered at work-places. My priorities dont match up. There can be tech impedances- bad operational visibility, bad past architecural choices I have to live with, frustrating tooling... but the real struggle is just people. Not that they necessarily obstruct or arent helpful or well intended, but there is a vast chasm between thr technical & the non-technical in particular, and techies are the ones that have to every day cross that chasm to come explain & elaborate the pieces & parcels of the deep worlds they experience that literally no one on the other side has the ability & experince to comprehends. (Even sharing our travels with other closeby techies can be enormously hard.) It's all on the worker to simplify again and again the current tiny little facets pieces & scenarios of some large unseen unknowable edifice they isolately work upon & hack at.
Maybe I just dont know the literature, but I think it's super undertold how alienating it can be being in tech. There's broad topics around management knowing how the sausage is made, but techies sausage makers are their brains and management can literslly never know how the sausage is made. Getting remotely close to the experience of what production is in any software shop (factory) is intensely challenging, even if you are a top of your game engineer with rich understanding. To most of the org chart, we are aliens. What we are actually doing is indescribeable, unintelligible, and there's only a crass superficial surface level understanding of output that is at all assessable.
The business has so many things it perceives itself as wanting & desiring. Most middle management is obsessed with growth, with new things, with features. MM doesnt have the aptitude to assess or appreciate what possibiliies open or close as we take than path or that, tend to this tech want or not. They dont suffer the same pain we do when the codebase starts feeling rancid or muddied. They dont have their names in git blame, to be thanked or scorned by future generations. Features, users & the business are real to them, and the code is abstract. Code and systems are real to us and tbe business can be abstract.
Im not the best at getting the things I want to work on done, using my own personal time to be productive. But it happens some! I do wonder what my motivation would be like if I had time & space. I have taken some not-working periods here & there, & intended to get up to more, but was so relieved just to be enjoying my time freely for once & travelling that peoductivity was minimal. This is to say, I dont know what true pure self sovereign autonomy really would mean for me, but ideally my personal coding time would grow from 10hr target a week to 30+ hr.
Perhaps I'll leave off with this impression of what being a coder at a corporation can sometimes feel like, as you're great abilities must meet the constraints & wants of the org,
> Phenomenal cosmic powers! Itty-bity living space!
> I am losing precious days. I am degenerating into a machine for making money. I am learning nothing in this trivial world of men. I must break away and get out into the mountains to learn the news