Live data from Hacker News

Ask HN: How do you deal with the powerlessness feeling of coding?

news.ycombinator.com

11–20 of 35 posts

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#11
I don't know how much years experience you have, but a lot of these issues you get a 'feel' for after decades working with software. The tech is not even that relevant for me; I have a feel usually what the person was attempting to do and roughly where it went wrong. It is extremely hard or impossible to convey this info many of the times they occur. I really do not like this stuff and it definitely gives me nostalgia rose colored glasses. Like when using Pascal, C, Forth, asm etc years ago where there was none of this setup and leaky abstraction stuff. The rose colored glasses are actually not that fake though; when I do embedded work or lower level stuff like high performance work, it is so enlightening that I have no clue why I ever do anything else. Web dev really sucks, but what can we do without.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#12
Ask for help. Slack and discord channels are ok. StackOverflow is ok. A senior dev on your team is better.

If you don't work with someone who seems like gandalf had he gotten into graph theory, consider switching jobs.

Working with talented people really pours gasoline on your career.

Also consider a mindset switch. The choice of the word powerless is interesting here. There are modes of thinking you can get into where you just want to get to "fixed" or "done". In my experience that mindset makes problems harder to solve.

I would encourage instead a kind of eccentric puzzler mindset. Instead of thinking in terms of the dread of explaining to your boss the problem still isn't done, think about it as another day at the puzzle factory.

The way you become gandalf by the way. Is by working really hard on the seemingly impossible puzzles. Always going deeper, reading books, asking experts, developing patience.

What takes weeks today will take seconds tomorrow and some of those lessons will cross apply to problems in future software that does not exist yet.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#13
If your manager doesn't understand that everything being broken all the time is a natural part of development, then you might need to find a better place to work. If someone I managed said "I'm blocked because Webpack is broken." My reaction would be to laugh, tell them we've all been there, and ask them to spend an hour or two on it. If they can't fix it after that I'd start helping. They'd be free to keep trying, or work on something else if they wanted a break.

I will say this though, my reaction to things unexpectedly breaking on me is typically "Oh... interesting." Sure, it can be annoying when it happens at the wrong time, but I also get a little excited. If there isn't some part of a person that thrives on the break/fix process, then software development may not be a good emotional fit. This is a normal part of the job, so if you don't have terrible management and you still hate the process after seven years, maybe look at other options. If everyone was an intellectual masochist that enjoyed things breaking on them, the species would probably go extinct.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#14
It sounds like you are struggling with two different things.

Problem 1: Your manager isn't giving you the space to diagnose and fix the issue. The solution to this is to explain to them the situation in as much detail as it takes why you need a certain amount of time. If they don't want to listen then it's time to start looking for different employment. It's a great time to be looking, seriously, the market is crazy hot right now.

Problem 2: You are using abstractions that hide details you need to understand when things go wrong. The solution here is to go read the code, write small examples that trigger replicate the problem. Use a debugger. Get really familiar with the code in the abstraction you are using. The answer is in there somewhere and more than likely you can figure it out if you trace through. It's a partial failure of our industry that many times these abstractions make it really difficult to figure out why they went wrong. But it's our reality and sometimes it takes weeks of reading the code and experiementing to identify why it's breaking. The good news is that once you've done that you are just a little bit more of an expert in that abstraction, and that is a very marketable skill.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#15
Look into stoicism. Everything you are describing is core to the dichotomy of control:

“The chief task in life is simply this: to identify and separate matters so that I can say clearly to myself which are externals not under my control, and which have to do with the choices I actually control. Where then do I look for good and evil? Not to uncontrollable externals, but within myself to the choices that are my own..."

-Epictetus

There are things within your control such as creating issues on GitHub, questions on Stack Overflow, chatting in the project's chat/mailing list, opening up a PR, explaining to your leadership, etc.

There are things outside your control such as approving & merging a fix, getting attention on a GitHub issue / StackOverflow question, how your leadership reacts, etc.

I think the challenge you have right now is having clarity of the problem & solution.

A problem is a known unknown. It’s our assumption that needs clarity. A solution is a known known. It's the facts we gain from having clarity.

Being able to articulate a problem helps us gain clarity. Clarity relies on the fact that our assumption is correct. Most of the time, our assumptions are wrong.

Feeling powerless comes from not taking control. You have many things in your control you can be doing. Once you do that, it'll be a hell of a lot easier on your conscious.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#17
post #9
post #7

> For the last few months I've been learning back Django which was my first love. I'm learning back the django rest framework and today I have an issue where in the DRF interface the button for POST/DELETE/PUT/PATCH don't work. They don't even send the POST/DELETE/PUT/PATCH request, they just reload the page as if the only thing those button do where `window.location.reload();`. It's hard to know for sure without act…

Thanks for your help and explaining your philosophy of debugging. I found the issue, it was ublock origin which was preventing the request. My model name is called "Ads" so ublock think it was really ads ans so preventing the request and make the browser reload. After deactivating ublock origin the request is executed and I receive data on the server. It still crash but now I can debug it and make my code work. Thank…

You should rename the div then rather than assuming clients wont use ublock

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#18
Go back to basics. Web applications and XHR have been around for ~20 years. Yes the latest framework or library in use today didn't exist but the basics are the same: GET, POST, PUT, DELETE are the calls to the server and you are using JS on the client.

If you run into an issue with the framework or library in use, see if you can work around the issue with the basics. Inform your manager about the issue, a potential resolution but that the side effect is technical debt in the project that should be revisited later to see if the issue is resolved with a version/patch. Yeah its a crappy decision, make the boss make the decision, note it in the code and file the find-a-fix ticket for later.

In general I really dislike frameworks that emit/transpile/compile into other base (Python/JS in your example) languages. Its like two pairs of handcuffs. A new feature/bug exists in the base and the base+1 (e.g. Django) takes time to include/resolve it and then base+2 (webpack/DRF could be in this category) takes even longer if they are even aware of it. Or it could be a bug in the base+1/base+2 framework/library itself.

Eliminating unnecessary dependencies and sticking to basics helps a lot. I'm not saying ditch Django and write your own framework, just try to limit the libraries used on top of the framework.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#19
> What am I suppose to do? Debug it ? I don't event know where to start from.

This is the problem. Know that it's mostly a psychological thing. Start by reading the code of the feature you're trying to use. Go through it with a debugger. Yes, the first time it will be hard and take a long time but you will get used to it.

To the manager just say "it's gonna take a little longer than estimated, there's a bug we didn't expect in the library". Eventually, you will deal with these issues so fast it won't even be worth mentioning.

Re: Ask HN: How do you deal with the powerlessness feeling of coding?

#20

> What am I suppose to do? Debug it ? I don't event know where to start from. This is the problem. Know that it's mostly a psychological thing. Start by reading the code of the feature you're trying to use. Go through it with a debugger. Yes, the first time it will be hard and take a long time but you will get used to it. To the manager just say "it's gonna take a little longer than estimated, there's a bug we didn't…

This.

Reading 3rd-party code, figuring out how it works, and figuring out how to fix it is a critical skill. It takes time and practice to develop, but the more you do it, the easier it gets.

Perhaps the biggest step is simply believing that you can do this. Remember that all the software you use was created by humans. Yes, much of it is complicated, but not as complicated as you imagine it to be.

Post reply on HN