Hacker News new | past | comments | ask | show | jobs | submit login
Why I Love Coding (2012) (henrikwarne.com)
252 points by spideymans on May 10, 2021 | hide | past | favorite | 118 comments



I feel like I’ve lost most of my interest in it. It’s been years since I’ve been truly excited by it and and motivated to do it, but I had been on and off the edge, losing interest for long periods of time before a random spark of motivation would bring it back, only to go out within a few months at most, and after the most recent spark, I’m not sure if I can see myself coming back to programming.

It’s a strange feeling, as this has been my “thing” for many years now, both as a hobbyist and a professional. I can’t exactly pinpoint why the situation feels different this time. Until a few weeks ago I had dozens of interesting projects lined up and had invested money into at least a couple of them. I think part of it is that I lost a sense of “magic” that once enticed me. Whereas when I was still very new to me there was a lot of software I would think about and wonder “wow this seems incredibly complicated, I wonder how it works”. When I returned to learn about it whenever. A lot of thing seemed like sorcery, and I just needed to know how it worked. Well years later, when I decided to return to those sort of things, more experienced, I would start to dig in, only feel a bit disappointed when I figured it out and it was no longer cool or interesting. That’s not to say I’m an expert or that I know how everything works and implement it all, just that I can generally get the idea and that causes the magic to evaporate. Additionally I’m beginning notice a mismatch between interest and ability in a lot of things. I find myself unable to learn and implement the things I’m interested in. While that may sound like it’s in opposition with the my first theory, it’s not really. There’s a lot of things where I have a general mid-high level idea of how they work, but couldn’t implement if you asked me to right now.

I’m probably going to focus on other interests of mine for the time being, though I’m sure I’ll never truly be divorced from programming. Additionally, I have a feeling that the problems I noted in the previous paragraphs will eventually wither away my other interests as well. I figure simply return to it in a much different and reduced manor. I’m also considering giving it up professionally, but I’ll have to see how that ends up.


I've also lost interest many times during my 25 years of coding, but now I feel excited as ever again.

One of key realizations has been that I'm more interested in people than machines (even though I feel the same fascination figuring out how something works). In the end, software is almost always for people to use. Things like programming language design easily get regarded as highly technical, but it's so much about creating abstractions for humans to create abstractions for humans.

Another one has been learning how software fits the bigger picture. In order for a company to succeed with software, things starting from vision, strategy, execution need to be in line. What I'm trying to say that it's important to notice when the development of software gets blamed for problems elsewhere. Otherwise our view of the development itself gets murkier.

Finally, learning new languages is something that's keeping it fresh for me. Making the effort to dig deeper and learn something complex I didn't know well before.


> Another one has been learning how software fits the bigger picture. In order for a company to succeed with software, things starting from vision, strategy, execution need to be in line

This was something that I experienced in my career trajectory. My first shift from pure programming was to requirements definition, which I enjoyed. I then got involved in specifying the need for systems in the first place - developing business cases and evaluating solution options. I'd by then realised that by the time someone starts writing requirements, someone else must already have done some work to secure funding, teams, etc. Luckily I was (mostly) able to stay tech-focussed rather than moving into pure management. Some of the most technically challenging work was at the end of my career - looking at how systems could be affected by / drive organisational transformation. And being able to confidently brief very senior decision makers on how their organisational structures (often stovepipes) were actually driving inefficiencies, duplication and nugatory work at the systems development and operations end.


> Luckily I was (mostly) able to stay tech-focussed rather than moving into pure management

Can you expand on this? Like what was the title, or was this a unique role to your business?

This thread has really resonated with me and where I might want to be taking my career.


Sure!

The title was unique to my business but in practice I was a ‘Senior’ position. I joined a company that had been part of the UK civil service but which had been privatised before I joined. The part I belonged to conducted advice-side / customer-friend work as opposed to supply-side / product-development. So in effect I was an independent technical consultant deployed into UK Govt customer organisations (in Defence) to support their activities, which included the stuff I mentioned before (requirements definition, business case development, etc). I did this for approx. 10 years, starting very technically focussed (e.g. helping to draft tech sections of Invitations To Tender or contributing to standards development) but gradually looking at business / organisational issues (e.g. can we restructure this organisation to reduce commercial and technical barriers to efficiency? / what research do we need to do to conduct to de-risk this new simulation technology?). I became reasonably well known in the customer community and, crucially, was trusted as a friendly techie rather than a commercial ‘suit’.

The plus side to this was getting superb levels of customer access and some experiences not available to most civilians. Because I had been around for years the customers saw me as someone who actually understood their domain and their problems. I knew their acronyms and understood their business processes, more so than some of them did (especially customers who were new in role).

The downside was that from the perspective of my parent company, I had effectively ‘gone native’ with the customers (although was still useful because I generated revenue and demonstrated the competence of my company). I had to be commercially fire-walled away from the product side of the company so that the customers still trusted me. This limited my career development – partly because I couldn’t be involved in high-profile bids and delivery projects that attracted C-suite attention. As an example, although my salary increased okay, I found it very hard to gain evidence (e.g. third party feedback) that would support a grade rise. As it was, I didn’t mind too much (this was the latter end of my career) but had I been younger it would have been frustrating.


"Programming is Chaos, Art and Science. It is a curse, a blessing, and progress. It all depends on who uses programming, how they use it, and to what purpose. And code is everywhere. All around us. Easily accessible. It is enough to stretch out one’s hand. See? I’m stretching out my hand.”

― Yennefer of Vengerberg, the software engineer


That’s sad, to me, but I tend to have the author’s point of view.

I support you in whatever endeavor to which your muse directs you. Having a background in coding generally means you’re a good problem-solver, and good problem-solvers are valuable in any vocation.

In my case, I was a manager for the last 25 years of my career, and was forced to do my programming as a “nights and weekends” gig. Since leaving my last job, I have been 100% focused on programming, and I’ve never been happier.

The advent of the Swift programming language has also been serendipitous. It’s proven to be fun and engaging.

My first computer was also a VIC-20.


> I support you in whatever endeavor to which your muse directs you. Having a background in coding generally means you’re a good problem-solver, and good problem-solvers are valuable in any vocation.

Ironically for me, the more I got interested in the lower levels of programming, the more I lose sight of the original goal of solving a problem.

I have to juggle between satisfying my curiosity and interest and solving a problem.


I have been in a more management or consulting focused role for 3 years now and i already fear that i am loosing my effectiveness as a programmer. How did the transition back to programming go for you?


In my case, it went well.

I never really took my hand off the programming wheel, while being a manager. I just wasn't being paid for it (bonus was that I have a big open-source portfolio). I just did open-source work in nights and weekends.

When I left my last company, I just made it my full-time vocation, and that went quite smoothly.

I do this for the love of the craft; not the money.


>I do this for the love of the craft; not the money.

I think this is main point. Somehow introducing money into anything seems to drain all the pleasure out of it.


I have to agree. It sucks, because I have skills and experience that could make people with established corporations millions.

They just can't seem to bring themselves to work with people like me, unless they are doing the whole "alpha dog" thing.

The NPO I'm working with can't afford to pay me squat, but I'm not constantly mud-wrestling knuckleheads.


I second this question. I find that "potentially loosing [..] effectiveness" is the least of the problems though, but that a few years of experience in management makes one essentially unhirable for positions that even involve some coding. I saw this from both sides of the table: as employee and hiring manager. It's also not a money problem, accepting less for a coding position does not work.

A career path back to coding just does not exist within the industry. Of course freelancing and founding your own company may be options but in a regular company hierarchy - no way in my experience.

I'd love to be proven wrong of course and I'd love to hear stories to the contrary.


Why does management experience make you unhirable?

I do program every now and then in my spare time, but not to the extent the original commenter does in his spare time.

Interview wise i am doing fine, albeit not for FAANG type roles.


Managers -especially young ones- can be quite insecure. They don't want folks reporting to them that can call BS.

Basic human nature.

TBH, they have a point. I was a manager for many years, and know BS when I smell it. I had a management style that involved a lot of self-reflection and intimate feedback loops with my employees, but I also managed very experienced engineers that all knew more than I did, so treating them with respect, and listening to their counsel, became second nature. It wouldn't have bothered me a bit to have employees that used to be managers, as long as they were good engineers.

Not sure that most managers, these days, operate that way.


That's what I wrote - unhireable for coding positions. Of course management positions don't make you unhireable for management positions. Sure, you can code in your spare time, but how much of that spare time do you have if you take your management position seriously?


Probably the case. Being older than 35, in this industry, is also a killer.

I just gave up looking for work, and am working with some folks on a nonprofit startup. It's great. best decision I ever made.


I am 31 so maybe i have a chance to switch back for a few years, fingers crossed. Thanks for your replies.


Reminds me of a former colleague of mine, he was a manager at a bank for 25 years, I don't know the whole story but one day he made a switch and became a self-employed CSS + accessibility guy.


When I was younger I would systematically read all Linux man pages. I could give much more similar examples. That kind of excitement has vanished, but has been substituted with other things. I try to think longer term. What is limiting me? Is it algorithms? Is it statistics? Domain knowledge? It takes time, but the progress is there. And society is not going to reward you, because it rewards short term, the latest fad. But don't accept your limitations, plan long term.


Time + patience + other hobbies + moving on.

If you can manage to stop worrying about it and move forward, then the curiosity and magic has space to grow. Worrying that the magic isn't there is not a good way to bring it back, it's not a good mindset to have anything positive arise. But "giving in" is easier said than done of course, since you want the magic back :) Once you stop wanting it, it will have a chance to return


As I get more senior, I juts keep other people poorly architected monstrosities running rather than writing anything new. It saps any excitement from the job.


I wonder if this is tangentially related, and worry that it might be an unpopular view, but in relationships, with a family member or spouse/partner, falling out of love can be a self-reinforcing feedback loop of separation. Sometimes the solution is to stop worrying about not having the feelings and affections and act as if you feel affection; the affection will grow out of the discipline.


Or, alternatively, will pretending to have affection simply cement the feeling that affection is unrewarding? Perhaps there is a case to be made to lean into not having affection, to fall out of love and to have a break, and to let it arise again naturally instead of summoning it via artifice.


I prefaced the opinion as likely being unpopular. It is something that I contemplate as a husband when affection is low and wits are at an end (with a toddler demanding much energy and attention from my wife and I). It has helped immensely in my attitude that disciplining myself to just love her has stirred up feelings of love inside. It is the virtuous opposite of the self-reinforcing cycle of despair and resentment.


It ebbs and flows for me, but I'll never get that excitement back from when I was a kid. I just have to get fulfillment from doing my job well, finding and creating an elegant solution to a stupid problem. Knowing I can do my job well helps a lot, especially when I compare what I offer to what my competitors sling out in the world. It's B2B software, so the bar is set very low as just about all B2B software is atrocious.

What also helps is having interests and hobbies that are in no way related to your job.


How common is this ? At the human level, arent most adults less and less excited about their craft ? Unless they can focus on a set of deep and long term beautiful aspects (a sense of precision in thinking, in execution, a bond with the customer or person you're doing it for, a sacred like service say like medical workers) ?

I have a feeling that naturally the purpose of adult work is less self centered and ambitious but broader and fair for more people.

I'm just asking.


Are you burnt out? Every person needs a break. Well in the end, programming is a means to an end. Sometimes people obsess and see the skill as the ends. Some others see it as a tool to achieve their goals. Anyways maybe take a break/vacation or something.


There really is a special kind of satisfaction when you see something you wrote actually work. I remember the first time I made a sprite move around the screen with arrow keys, I probably moved that guy around for several minutes just out of pride. I'm sure we all have similar memories.


> There really is a special kind of satisfaction when you see something you wrote actually work.

I think your second sentence is actually the key here - first time. If you do something day in day out for 20 years there’s no surprise if it works.

Thankfully, there’s plenty of room in the domain of programming for someone to go from seasoned expert to absolute beginner and experience the joy all over again.


> If you do something day in day out for 20 years there’s no surprise if it works.

The Japanese inter-related concepts of Kaizen, Muri, Muda, Mura, Hansei, and Ikigai are relevant here, I believe. Except for the most mundane, immediately-automatable "something", I have always found an area for improvement and thus, delight. Though Feynman commented there is plenty of room at the bottom about the physical world, considering his life history I believe he would also concur about the cognitive world.


Kaizen, Ikigai, and Hansei might be classified as ideologies, but Muri, Muda, and Mura are just normal words that seem to have been wrangled into ideology status by some Western institutes...it's like if I took the word 'unnecessary' or 'consistency' and called it an ideology. Just...why?

I'm sure if I asked my caucasian wife she'd say something about exoticism.


Thank you, good and fair points.

I liken the more pedestrian words to the words I use to get myself to the gym. Instead of muttering "perseverance", I mumble "find a way". I pick the pedestrian words when they resonate with me in some contexts, and the five dollar words when they resonate more.

I believe there is beauty, wonder, and endless improvement within attention to detail to be found in honing the same craft repeatedly over the years. There Is Plenty Of Room at the Bottom. Jiro Dreams of Sushi is one of my favorite movies that touches upon this.


Exactly - the first time you work out a "puzzle" it's amazing - especially if it's a complex one without a "solution" that you can glance at when you get stuck.

But doing roughly the same thing for 20 years it can get wearing - it's a different form of brainwork at that point.


Why would you code roughly the same thing over and over? Don't people do that because they want a nice and easy job rather than constantly challenging themselves?

My impression is that if you constantly do "exciting" stuff you burn out at work. It isn't like school where you do new things all the time but they give you plenty of time to internalize stuff. So people eventually just accept the easy situation where they are comfortable and don't have to do new exciting things.


I have a similar memory where I made a sprite jump by pressing the spacebar! I played with it for atleast ten minutes without getting bored!

Recently I made a small music player and till now I have played several songs on it just because the software is programmed by me!


When I was a kid and learned about BASIC, I would write little snippets of code in my paper notebook. I didn’t have a computer at home at the time.

One time we were doing a math test in the computer room with Apple IIes and we were allowed to use them as our calculator. I finished the test early, so I thought, what program can I write in the five to ten minutes I have that would be neat? I ended up just making the screen fill with random characters. I was so proud to get it to work.

In high school I even wrote assembly code in the library on some loose leaf paper as I once was gripped with a really neat idea I had to express.

Honestly, my teenage years were filled with moments like these when I first learned to code.


A magic moment for me was writing a sorting algorithm that was horrifically inefficient (I think it was like bubble sort but worse), and then later finding out about recursive sorting and making what I now know to be merge sort. It was really special to realize that you can make code that does the same thing but faster if you're clever.


Conversely I get the opposite. I come up with an elegant solution to a problem, but the previous dev has architect things in such a way won't work. Rinse repeat a few times until you have something that will work, but is not elegant at all.

I feel like the people going before me are the "ninja coders" I see in job ads. With all my years of experience I come up with various ways to solve a problem, but these guys are so much more effective than me in anticipating my moves and have a way to block them already.


I come up with an elegant solution to a problem, but the previous dev has architect things in such a way won't work.

Finding an elegant solution to a problem in isolation is usually quite easy because you can ignore all the edges that make it hard. Finding an elegant solution to something within the constraints of where the problem actually lies is what separates great developers from the rest of us.


Elegant solutions and considering all edge cases are not mutually exclusive. I see where you are coming from, but not all of the pieces of crap code are there to cover edge cases, just that the previous developer was a bit crap.


> I remember the first time I made a sprite move around the screen with arrow keys, I probably moved that guy around for several minutes just out of pride. I'm sure we all have similar memories.

Memories? I still do that to this day :)


Pentesters when they get their first shell


I love coding too, basically for the same reasons. There’s something about creating things from scratch, making them better, and debugging issues that can’t be matched by other hobbies. You just have more control and speed in working on things versus physical things like working on an engine.

That said, I don’t like the business of coding. Doing coding for a living strips away a lot of the joy out of it, but this is why I have side projects and why I have learned to treat the business of coding as a job first and coding second.


I think a big part of the “joy”, is pursuing your own idea of what would be cool to make. Start a side project, and not one you think would be lucrative, or that other people would be impressed by. Just something you yourself are fascinated with, even transiently.


Pursuing your own idea of what's cool to make is sometimes possible in paid work too. Within constraints, to be sure, but it can be one of the great joys of being a dev on a product team.


> Doing coding for a living strips away a lot of the joy out of it

As someone with a lot of interests, I have found this to be true for every one of them. Seems like monetizing yourself is always soul sucking to some degree.


for me it's the difference between doing purely commercial work and treating it as a craft. I picked up woodworking years ago as a hobby, and after a while I started doing paid work for a bunch of friends and it really wasn't any less satisfying. When you build unique things that people really want to me it's no less interesting, same with programming. Once you start doing industrial style coding it becomes cumbersome.


> I don’t like the business of coding. Doing coding for a living strips away a lot of the joy

This is sad but I think a lot of people have the same experience. Then again, I had a recent programming job that I really enjoyed. I think the team you're in and how they work has a huge influence on keeping the joy.


I love coding on my own projects. When it comes to work, I get so incredibly anxious about not being able to deliver a good solution. I obsess over every detail fearing I'll make the wrong choice ("this _could_ be a foreign key but should it be?" "Redis or postgres for this very crucial counter data") that most joy is completely stripped away.

I admire and envy those who can hear unclear requirements and get excited about needing to solve a problem.


Getting past the "fear of getting it wrong" is a powerful skill. Learning that it's actually easier to fix a mistake than to get something right first time is the first step to developing that skill.


This is so true! When starting work on a new project or feature I nowadays actively try to embrace ugly solutions. Refactoring after you have a working solution is much easier than coming up with a perfect solution (which probably doesn't exist).


And when you get your ugly solution going, you can show it to somebody else and help them understand the domain and get feedback.

It's a lot easier for somebody to understand and then critique when you've got something concrete to demonstrate


I feel the same way. I love obssessing over small details. In professional programming there's no time for that, people just want results and profits as soon as possible and the technology is just the means to that end instead of something that's inherently good. I chose not to pursue a career in professional programming because of this.


Two things I find help reduce the fear of making a wrong choice (architects have this particularly bad, btw):

* Make the decision for just the next step, and try it out. The faster the feedback loop the better. * Work as a team. The better the collaboration and support, the more effective the team. Good teams care about psychological safety and about the outcomes - there's no contradiction there.


Try to keep your code and architecture malleable (and documented) instead of optimizing everything upfront. Once you discover bottlenecks, you can actually spend time improving things.


I usually just don't do foreign keys, makes the queries insanely fast :D


I also love it :)

Just this weekend I was learning about RabbitMQ and setting it up on a free Oracle Cloud VM. Writing some Python code (using the Pika library) to be able to send and receive messages.

Also getting around to learning about how to use Flask (Python web framework) and then Gunicorn. All this so I could try to figure out how to have my own webhook receiver accessible on the Internet and then get those events to end up inside my local intranet.

And reading an article here today (https://news.ycombinator.com/item?id=27100974) and realizing I could use Cloudflare's Tunnel (aka Argo) and be able to stop using the Oracle Cloud VM.

At the end of it all I was thinking, "this is cool!" :)


I too love coding but as I code complex things I get frustrated when things do not work (may be due to my lack of knowledge) or hard to understand and loose interest


This is always when I double down. For better or worse. I’ll happily spend a week stubbornly chipping away at the same brick wall with no feedback or positive reinforcement. By the end, though, you’ll likely hear me yell “I’m a FUCKING GOD LETS GO GET FUCKED” from down the hall.


I got hooked on the feeling of power and control. When you're five years old (the age I was when I started programming "seriously"), it's an age when people start expecting things of you, making demands of you, but you are in no position to do likewise to others. The computer is a machine, not a person, but it's more like a person than other machines are (which is part of why it's so mystifying). It can follow instructions, answer questions, and remember things. It can be communicated with. It is like a rather stupid genie that can only accept meticulously formulated wishes, but will carry them out faithfully to the limit of its power. So a kid like me, finally confronted with something that will do whatever he wants, can spend hours formulating wishes for the genie to construct whatever his imagination can dream up.


> When you're five years old (the age I was when I started programming "seriously")

I know this is HN, but I have a hard time believing this. Somehow feels like nostalgic self-congratulatory boasting.

Honestly curious, what does it mean for a 5-year-old to be programming seriously?


It means to type basic programs found in a book or magazine. It meant learning a poke command to change your background color. Writing a for loop to print out a number.

At 6 maybe you type that huge program that creates a sprite ball that bounces across the screen. By 7 you are drawing out sprites on grid paper and making that bouncing ball different pictures.

It took me until later in highschool to understand things but typing and modifying is programming. My variables for loops were always lili,lolo,lala,lulu,p naming them there purpose seemed foreign.


I think "seriousness" has to be interpreted in the context of the programmer. I discovered computer programming at the ago of seven, and I was about as serious about it as a seven year old can be.


I was 7 when I started writing simple programs (to solve simple equations which came up in maths class) in QBasic. I was 8 when I learned about arrays, which led to writing a contacts app (storing name, address, and phone number in a file, then reading it and displaying the info). It took crazy amounts of time and incredible number of trial and error, but it was fun.

Not sure if I'd be able to pull off the same at 5, but it doesn't strike me as utterly impossible. Also, the GP didn't say what was the result of his "serious coding" - could be nothing (working) at all until much later.


That's why I put it in quotes. Compared to the stuff I would do later, it was utterly trivial, but yes, I was writing what one might consider real programs, with multiple statements, branching, loops, and conditionals, at 5. It's not intended to be self-congratulatory at all -- honest. Only to give you a picture of what's going through a kid's head at that age.


For myself, it was around that age that I stopped just writing games line by line from magazines, and started creating my own from scratch.

I also branched out from just making games, and started writing programs to solve things for me, for example, a budgeting program.


Interesting you were coding at 5, I have 7 and 5 year olds who are pretty good with computers, can install and learn new games by themselves but I haven't considered introducing them to programming mainly because I don't feel they can manage and also it does not seem necessary...considering I personally started coding at the age of 20 when I joined university for my computer science degree and I have been fairly successful, currently working for a US company, remotely from Africa and making more than a US average developer salary which in my city puts me at top 0.1% salary range, and with a quite positive career outlook.


I think you are missing the point then of introducing them to programming.

It's not about career prospects. It's about joy and about learning a way to structured thoughts which few other activities can provide. A computer can't be argued with or tricked. It executes instructions. You can't beg it to be nice, you have to actually fix the bug. It won't betray you either. This very strict cause-and-effect property is a very important lesson that too few members of society have understood.


Well, for one thing, back when I learned, there wasn't a whole lot you could do with a microcomputer besides program it. The first computer I had was a VIC-20, and I didn't get any games with it so it was strictly a BASIC machine. Today, kids have endless options for games and other software to try, plus access to the whole online world (well hopefully, only as much of that world as their parents let them see!).

You may wish to show your kids something like Scratch or even just drawing pictures with Python's turtle library, just to get a feel for their interest level. If they figured out how to install games and stuff on their own, they are good candidates for programming, provided they are interested. Most importantly, you cannot rush it. They will become interested in programming (or anything else) if and when they are ready. Any age is a good age to get started. I have much respect for folks who discover programming during middle age or older.

Oh, and like the other commenter said... worry about their career prospects later. Right now, for them it's about having fun.


That's why I don't know what to say to people who ask me why I would write my own date picker control or my own URL parser or (you might want to sit down for this) my own cryptography routines. If you don't already understand why I would want to do that, I don't have an explanation that's going to make sense.


This is why it boggles my mind schools bother teaching low level standard library operating systems coding. Not only is the likelihood of me needing to know how to implement my own scheduler, bit also dynamically allocating memory. The system is so low level that the only way you will ever do that is if you work with MS, Apple, or contribute to Linux. Which I'd wager is only a single digit percentage of programmers worldwide.


Schools are also trying to prepare people who might be going to grad school and into research careers. Computer Science is still an academic discipline, not just a vocational major. Very little research goes into creating user-facing consumer apps. A ton of research goes into trying to make virtual memory allocators and process schedulers work just a tiny bit better.

Pre-med is totally different since it is explicitly vocational. People in it are becoming licensed clinicians. If they want to do medical research, they need to separately pursue a PhD.

What more schools need are Software Engineering degrees in addition to Computer Science, maybe even Application Development as its own major or sub-focus within Software Engineering. Some schools have something like this, but at the biggest and most prestigious institutions, there is a huge focus on research.


To be honest, your example here reminded me of the standard pre-med chemistry curriculum many of my classmates were in. It has an extended focus on building up from fundamentals that I am not sure pays off once it’s time to handle the high-level concepts. The chemistry sequence is something like gen chem |> o chem |> bio chem |> pharmacology. My understanding is that most of the pharmacology fundamentals are not used by MDs in practice: it’s usually only a dedicated PharmD, MD/PhD, or the EMR who considers the chemistry of various drugs on a regular basis.

The other thing that comes to mind is the quip that it’s easier to innovate down the stack than up the stack. Apple can design new chips better than Intel can create an operating system.


Coding at work sucks. Coding at home is great as a hobby.


If you're lucky enough to actually write code (or preferably, solve problems) at work then you're already quite lucky.

I seem to spend all my time in meetings, preparing presentations, performing sysadmin tasks, testing things owned by other teams or external providers, looking things up for people, "resolving" tickets, communicating with other teams, chasing other teams, debugging internal infrastructure, doing code review, and being involved in a peripheral manner with more junior team members.

Apparently this is what being a "senior software engineer" is all about, and it really does suck.

My solution is to work on interesting things on the side and treat the day job for what it is: a ticket to financial independence before I'm 50. And if it all becomes too much, then the job market (for now) is at least very fluid.


Coding is hell in the wrong environment. Requirements always changing, not being allowed to go back and fix or improve things...


Coding feels like that art game kids do where each person paints a part of a picture without seeing what any of the other kids are doing. The main difference is that with code management will give the end results to customers who will complain a lot if the parts don't fit well together. So instead of learning to become an artist you learn to do as boring work as possible to match what every other developer is doing. It is sad to see when some here considers that state to be the true peak of this craft.


> Requirements always changing, not being allowed to go back and fix or improve things...

This resonates with me. Working in a startup environment is fun and scrapy, but when you're never able to go back and improve what you did because "we barely care about that feature anymore" it becomes pretty frustrating. Building features that only a handful of people use is also soul draining.


> Coding at work sucks. Coding at home is great as a hobby.

Curious why you think that is. I think the difference is that coding under unreasonable deadlines (and then getting blamed when the quality produced under the unreasonable deadline is low) is what sucks.


This is my experience. I enjoy coding at home and at work, but I'm on a team that understands deadlines and that quality of code has real meaning (assuming nobody is aiming for academic or algorithmic perfection).


I've found being the only developer, or in a very small team of developers, with realistic deadlines is most enjoyable. There's always the looming deadline, but being a small team means everyone is of the understanding of how timelines and coding works (as long as you are truly a close-knit team).


Time to find a new employer then.


I have changed job numerous times in the last decade. It's the same shit everywhere. Poorly paid jobs writing fresh projects, or better paid senior roles trying to keep the crap projects started by a junior running a few years down the line.


You may have bad luck then. Anecdotal evidence from myself and friends tells me that there are better outcomes too.


Not many. I was doing short term contracts for a while, anything from a single day to three or four weeks on site. Over the five years I was doing that I visited a lot of companies. I could count the number I would consider working for on one hand.


Further to the nonrepeating nature of the task (4):

  There need be no real danger of it ever becoming a drudge, for any processes that are quite mechanical may be turned over to the machine itself.
https://wikiquote.org/wiki/Alan_Turing


I love it too. However, it is one of the few things in my life that has plainly exposed the limits of my intellect and sobered my imagination. So while I love it, I always wish I was better and smarter but can at least take satisfaction from continuing to learn.


I feel you, in general I love coding, but I just usually run out of ideas fast if I actually want to start some kind of side project.


I love coding.

Only issue I have is that I don't talk to many people during the day. I rent an office and I just sit at work the whole day. Don't get me wrong, I love it, but I wish there was a setting in which I could network with more people. What has worked for you?


Try working somewhere that does pair programming. I work at a full-remote company that does pretty much 100% pair programming. We're constantly talking all day.


This is pretty much the best explaination why I love coding and why I would still choose this work over everything else. The other reason is that I, when thinking about the solution, just feel home. It's just natural to me.


I loved coding for a short period of time before work stress made me hate it. I went from Developer for 4 years to Sales Engineer for the past 3. I'm now completely exhausted of joy for Sales Engineering and now want to get back into something purely technical, but not sure if my Development PTSD from my past company is done.

What can scratch a similar intellectual itch as coding that doesn't come with the same stress? Data Analysis? Technical Writing?


yea I've thought the same thing about coding being the ultimate puzzle. i think you pull your hair out way more than you would if you were solving a regular puzzle but there great part is having something that's actually useful at the end of it all, and not just having the satisfaction of solving it.


I do too, and I'm 99.8% certain it's because I don't (primarily) do it for a living.


I have always enjoyed coding most when it is part of a bigger project - such as writing firmware for an electronics project or writing a script to generate G-Code for a CNC machine. Connecting code to the real world is always the most fun.


I used to like making things that are useful to other people (2), but just us people quickly switch to your shiny new thing, they quickly switch away to the next shiny new thing.

That impermanence makes me feel it was never intrinsically valuable.


Everything is ultimately impermanent. I think over time novelty-seeking takes more of a backseat to the work itself (from which to draw value), whether or not we rationalize it's importance. You can probably argue for or against the value of anything, the more detached and objective you try to be about it and after enough scrutiny, nothing we make feels valuable.

I think we can't accurately predict the extent to which our work will be valuable to someone else. The Feynman perspective I came across is that we should "play", follow those kernels of interest whatever they may be, and that may turn into "something". Whether intuition, foolishness, whatever, having curiosity/interest feels good.


There's less impermanence in becoming part of the "stack" (e.g. geometry, algebra, calculus, Kleene algebra, relational algebra, unix, C) or being an inspiration/predecessor of progeny (C again).

But that's real hard.

I agree with the "play" attitude having a sense of intrinsic value, regardless of newness, importance or usefulness.


I started to lose interest in coding over time until I learned about functional programming and started to apply it by writing code in Scala.

Sometimes it is enough to change perspective and learn a new way of doing things to enjoy old stuff once again.


I literally view coding as a skill, like a blacksmith of the past or a mid-higher level field architect. My one coworker/semi-mentor also seems to view it that way.

I'm not even that good, I just learned enough Java etc to be solid as a mid-level engineer at age 29.

It pays well, sometimes it's fun (with coffee and techno music of course). But I do what I need to do to get the job done well, and then reap the benefits of having a skill that's in demand to build what companies/society wants.


My first love was a classic C-64. I was able to code back then but i believe that’s why i ended up as a program writer (i’m a physicist by training).


I would add: the ability to automate nearly all the repetitive or tedious parts of the job, something not found in (nearly) any other profession.


This is the same reason that motivates me. My day job involves some really tedious manual procedures, of which I've been able to automate a few of through software.

I've never been more motivated to learn relevant knowledge and work on solutions than when the goal is to write tools to make my team's work less tedious. And I've never felt more satisfaction than when I completed those tools, successfully used them to cut those tedious tasks down to a few minutes, and got praise from my coworkers for making their jobs easier.

See also: https://news.ycombinator.com/item?id=27080695.


I don't really enjoy programming. But I love having new ideas, and enjoy being able to validate them by programming.

My personal R&D laboratory.


I love coding too. I really enjoy pair programming as a more social way of coding be it with better or worse engineers.


The set of "why's" is well put. But in a production environment, that pleasure is being squeezed out by processes, principles, capitalism. Programmer becomes like a machine that makes sure the necessary requirement is in place and then executes. Over time this flow brings cancer to the hacker soul. I fight it every day: sometimes by visiting HM to charge myself with ideas, sometimes by delaying the work and delving into some piece of the abstraction. The last bit just extends the delivery of a feature but brings long-awaited joy to the soul. Whether it is a new type of assertion in the testing framework or a more performant and elegant authentication logic or even an exploration of a new browser API. The rule is simple - for every piece of work for the devil, do something pleasing for yourself without any exception. Otherwise, the fingers of pleasure will tickle you only at night in your bedroom.


>The last bit just extends the delivery of a feature but brings long-awaited joy to the soul.

Programmer productivity is so hard to measure that I think nearly everyone can get away with this and should.


This article is from 2012, but still relevant.


The Mythical Man Month was written in 1975.


I love coding as the way to build things and play around with new/cool technologies.


Amen to that


The title should be "Why I Love Coding", but the system appears to have modified the title after submission. It would be great if the mods could revert that.


I think there are some automatic removals of gratuitous words with the intention of making titles less clickbaity. Not sure I see the value in this case, or I could be entirely mistaken.


You can contact the moderators at hn@ycombinator.com.


I dislike the use of the word "coding" here. I don't enjoy coding that much. Typing text into the computer is menial work. What is being described here is more generally called programming. If I spend my entire day typing code then it's a bad day. There are no castles in the sky, only text on the screen. The castles are made in my head. Coding is just a necessary evil to get my ideas from my head into the computer. But it is necessary, as there is definitely joy in running your own program for real, rather than just in your head.


If you want to be pedantic, "coding" was about translating by hand instructions into machine code when working with the very early computers where there were no assembler yet.


(2012)

7 years ago, 3 pts, no comments. (https://news.ycombinator.com/item?id=7010730)

9 years ago, 3 pts, no comments. (https://news.ycombinator.com/item?id=4057897)

Nothing super insightful really in this article, usual creativity, problem solving allure etc.. Most comments here just self-analysis, anecdotal.

This year present time, 67 pts, 19 comments. Meh, why?




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

Search: