TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

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

34 pointsby BoumTACover 3 years ago
I&#x27;ve been a developer for 7 years. I&#x27;m just a random web developer doing random application for random companies.<p>But I have a recurrent powerlessness feeling every time I code. I often get blocked on issue that are not made by me.<p>The last few years I was a front end developer and as you know everything is complicated in the javascript world and everything always change. For example it was recurrent to have issue with webpack or the ES6 compiler. It was the kind of hard issue, the manager doesn&#x27;t care and doesn&#x27;t understand, he just wants the new form to work but here I am, just another day and nothing work for no reason because of external issue (webpack here for the example).<p>The problem is this, I don&#x27;t know how to resolve the issue, (and only a few people on earth know because webpack is so hard to understand), and I don&#x27;t have the skill to resolve the issue which is not mine.<p>Yes I know I can report an issue, try to fix it, debug all the application and maybe with a lot of chance I will be able to resolve the issue. But the manager don&#x27;t want me te take a few days on something he doesn&#x27;t understand and which it isn&#x27;t my fault. What am I supposed to do ? I feel powerless. How do you resolve this kind of issue ? It&#x27;s a difficult state of mind and it get a lot of stress from it.<p>For the last few months I&#x27;ve been learning back Django which was my first love. I&#x27;m learning back the django rest framework and today I have an issue where in the DRF interface the button for POST&#x2F;DELETE&#x2F;PUT&#x2F;PATCH don&#x27;t work. They don&#x27;t even send the POST&#x2F;DELETE&#x2F;PUT&#x2F;PATCH request, they just reload the page as if the only thing those button do where `window.location.reload();`.<p>What am I suppose to do with issue like this ? I&#x27;ve found a 1 year and 11 months old stackoverflow issue with no answer, and it&#x27;s such a basic feature. Nobody use the DRF framework nowadays for nearly 2 years ?<p>What am I suppose to do? Debug it ? I don&#x27;t event know where to start from. Develop a better alternative than DRF ? I don&#x27;t have the skills. Post an issue on github ? I will get an answer like &quot;we don&#x27;t have an issue here maybe check your code you should have miss something&quot;. But I don&#x27;t know where to search because the interface is made by DRF and not by me. The browser don&#x27;t even send a request, and the server receive just a get request to reload the page.<p>I feel so powerless and it&#x27;s always like this. It&#x27;s not as if I was missing something I mismanage in my model, it&#x27;s the library I use that doesn&#x27;t work. What am I gonna say when I will be looking for jobs ? Sorry it doesn&#x27;t work for no reason so I couldn&#x27;t improve my skill so I&#x27;m a shitty developer.<p>This is not a post about shaming famous project (like here Webpack and DRF for the example), those are incredible project that change the life of millions of people. I would have never been able to do 10% of those. I just often get stuck in those kind of things. I find no answer on the internet and I don&#x27;t know what to do next. Pay a freelancer to help me debug the application ? What am I suppose to say to a manager or recruiter ? How do you manage the stress of the powerlessness feeling I have. Am I the only one to feeling like this ?

16 comments

zapharover 3 years ago
It sounds like you are struggling with two different things.<p>Problem 1: Your manager isn&#x27;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&#x27;t want to listen then it&#x27;s time to start looking for different employment. It&#x27;s a great time to be looking, seriously, the market is crazy hot right now.<p>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&#x27;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&#x27;s our reality and sometimes it takes weeks of reading the code and experiementing to identify why it&#x27;s breaking. The good news is that once you&#x27;ve done that you are just a little bit more of an expert in that abstraction, and that is a very marketable skill.
评论 #29796761 未加载
f0e4c2f7over 3 years ago
Ask for help. Slack and discord channels are ok. StackOverflow is ok. A senior dev on your team is better.<p>If you don&#x27;t work with someone who seems like gandalf had he gotten into graph theory, consider switching jobs.<p>Working with talented people really pours gasoline on your career.<p>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 &quot;fixed&quot; or &quot;done&quot;. In my experience that mindset makes problems harder to solve.<p>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&#x27;t done, think about it as another day at the puzzle factory.<p>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.<p>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.
matt_sover 3 years ago
Go back to basics. Web applications and XHR have been around for ~20 years. Yes the latest framework or library in use today didn&#x27;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.<p>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&#x2F;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.<p>In general I really dislike frameworks that emit&#x2F;transpile&#x2F;compile into other base (Python&#x2F;JS in your example) languages. Its like two pairs of handcuffs. A new feature&#x2F;bug exists in the base and the base+1 (e.g. Django) takes time to include&#x2F;resolve it and then base+2 (webpack&#x2F;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&#x2F;base+2 framework&#x2F;library itself.<p>Eliminating unnecessary dependencies and sticking to basics helps a lot. I&#x27;m not saying ditch Django and write your own framework, just try to limit the libraries used on top of the framework.
fragmedeover 3 years ago
<i>&gt; and only a few people on earth know because webpack is so hard to understand</i><p>Absolutely not true.<p>This isn&#x27;t a comment about webpack (nor is yours) but looking at this specific example, how to deal with feelings of powerlessness is gain power. In this case, take apart webpack. It&#x27;s JavaScript, after all. Create a new project using webpack using your default tooling, create a project using webpack with <i>no</i> magic tooling, reproduce the problem with webpack in with your repo in various states&#x2F;at various points until you <i>really</i> understand the issue. Understand what webpack is doing under the hood until you&#x27;re not powerless.<p>Extrapolate and figure out how to debug Python&#x2F;Django. Bang your head against the code until you get frustrated. Take a break, a breather, some space. Go back to it. Eventually something will give and you&#x27;ll figure it out.
GianFabienover 3 years ago
You&#x27;re not alone. What you describing is the problem with abstractions. They are fine and dandy when they hide the details and let you produce a greater volume of results than if you had to develop from basic principles. Unfortunately, most abstractions are brittle and often poorly maintained. I have had many experiences comparable to yours.<p>I think you have two distinct problems. Your manager is obviously ignorant and possibly techno-illiterate (the most common variety of their species). To use an analogy, he is handing you a pair of Nike shoes and expecting you to outrun Usain Bolt - just like that. No training, no warm-up. Just Go!<p>As for the technical problems, when you are confronted with a problem that is beyond your abilities to fix, you tell your manager that they need to either give you time to debug the issue or they need to hire a specialist to fix it. Another analogy: if your car is not running and you don&#x27;t have the skills to repair it, you take it to a competent mechanic. Nobody knows how to fix everything all the time. That is simply the price we pay for the ever increasing technological complexity. With cars people understand the issue. Seems like it is less obvious to the average person when it comes to software development.
spdionisover 3 years ago
&gt; What am I suppose to do? Debug it ? I don&#x27;t event know where to start from.<p>This is the problem. Know that it&#x27;s mostly a psychological thing. Start by reading the code of the feature you&#x27;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.<p>To the manager just say &quot;it&#x27;s gonna take a little longer than estimated, there&#x27;s a bug we didn&#x27;t expect in the library&quot;. Eventually, you will deal with these issues so fast it won&#x27;t even be worth mentioning.
评论 #29795544 未加载
评论 #29796316 未加载
caseymarquisover 3 years ago
If your manager doesn&#x27;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 &quot;I&#x27;m blocked because Webpack is broken.&quot; My reaction would be to laugh, tell them we&#x27;ve all been there, and ask them to spend an hour or two on it. If they can&#x27;t fix it after that I&#x27;d start helping. They&#x27;d be free to keep trying, or work on something else if they wanted a break.<p>I will say this though, my reaction to things unexpectedly breaking on me is typically &quot;Oh... interesting.&quot; Sure, it can be annoying when it happens at the wrong time, but I also get a little excited. If there isn&#x27;t some part of a person that thrives on the break&#x2F;fix process, then software development may not be a good emotional fit. This is a normal part of the job, so if you don&#x27;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.
NicoJuicyover 3 years ago
Well, as soon as you adopt a library it becomes your problem if something is happening.<p>I tend to simplify things as much as possible and using my own code. Doing PoC&#x27;s to see if i can adopt a certain &quot;thing&quot;.<p>So my solution for being &quot;powerlessness&quot; is owning the code i use and therefore I know what it does.<p>I use tools a lot, but also because of that, I&#x27;m able to fix issues fast and mostly the error is from my end.<p>For example, i had some slow query generation in EF a couple of years ago and this led to the EF team implementing a Like operator. - <a href="https:&#x2F;&#x2F;github.com&#x2F;dotnet&#x2F;ef6&#x2F;issues&#x2F;115" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dotnet&#x2F;ef6&#x2F;issues&#x2F;115</a><p>( I actually had to debug the library and give a reasonable explanation to the team. They found a solution, that they already considered. Which i think is pretty awesome of them! I use the like operator a lot by now)
评论 #29793798 未加载
tluyben2over 3 years ago
I don&#x27;t know how much years experience you have, but a lot of these issues you get a &#x27;feel&#x27; 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.
thenerdheadover 3 years ago
Look into stoicism. Everything you are describing is core to the dichotomy of control:<p>“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...&quot;<p>-Epictetus<p>There are things within your control such as creating issues on GitHub, questions on Stack Overflow, chatting in the project&#x27;s chat&#x2F;mailing list, opening up a PR, explaining to your leadership, etc.<p>There are things outside your control such as approving &amp; merging a fix, getting attention on a GitHub issue &#x2F; StackOverflow question, how your leadership reacts, etc.<p>I think the challenge you have right now is having clarity of the problem &amp; solution.<p>A problem is a known unknown. It’s our assumption that needs clarity. A solution is a known known. It&#x27;s the facts we gain from having clarity.<p>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.<p>Feeling powerless comes from not taking control. You have many things in your control you can be doing. Once you do that, it&#x27;ll be a hell of a lot easier on your conscious.
评论 #29798766 未加载
评论 #29795829 未加载
评论 #29796422 未加载
buffingtonover 3 years ago
Knowledge is power.<p>To be a great programmer, learn how to get really good at reading and understanding code.<p>To get good at reading and understanding code, you need to know where to look, and then you need to just start reading it. If something doesn&#x27;t make sense, figure out why it doesn&#x27;t make sense until it does make sense.<p>I know that sounds a bit like &quot;to be good at programming, be good at programming&quot;, but there&#x27;s really no way around it.<p>Consider your Django example, the &quot;they&quot; in your sentence is actually code:<p>&gt; they just reload the page<p>Figure out where that code lives, and read it. Dive into its methods&#x2F;functions, and follow the flow of inputs&#x2F;outputs.<p>A common thing see with both junior and more experienced programmers is their acceptance of &quot;magic&quot;. If the libraries they use just work, they don&#x27;t dig into understanding why. Then when those libraries fail, they feel much the way you do.<p>But there&#x27;s no magic. The code is written down or the framework is documented, and knowing how it works (or doesn&#x27;t) is as simple as reading the code.<p>I&#x27;ve also learned, having done this for 25 years, that you&#x27;ll read a lot more code then you&#x27;ll write. I&#x27;d guess that I probably spend 75% of my time reading code. The rest is split between meetings, thinking, and writing code.<p>This isn&#x27;t just a thing for programmers to consider either.<p>Reading code as a programmer is the same as a race car driver knowing about suspension. Or a chef knowing about heat and chemistry. Or a luthier knowing about what wood to use. Driving the car, cooking the food, or assembling the guitar are just a small part of the entire job.
sdevonoesover 3 years ago
Happens to me all the time, I also feel powerless in many situations. How do I handle? Well, I try as much as I can to fix the issue by spending countless of hours on it. At some point I reach to my team for help and now the responsibility is shared: if we can&#x27;t manage to fix the issue we try with another approach.<p>Managers usually like to say &quot;we are here to clean up your way from distractions so you can focus on the important stuff&quot;. Well, most often than not what I need help with is with stuff like OP described... ironically managers can&#x27;t help with that (they help with stuff I usually do not need help with).
评论 #29801518 未加载
jim_lawlessover 3 years ago
Without seeing any of your code, what I&#x27;ve written below can be considered wild speculation.<p>I&#x27;ve experienced this kind of page-reload relating to buttons that are of type SUBMIT and no specific ACTION is specified in the FORM tag. Sometimes, the default SUBMIT behavior triggers earlier than an attached Onclick() handler. If there&#x27;s no ACTION, it reloads the same page.<p>You might try adding the following attribute to the FORM element:<p>ACTION=&quot;javascript:void(0);&quot;<p>This should prevent the form from SUBMITting to itself. The job to submit the form then relies on JavaScript code in an event handler to submit the request properly.<p>You also might try switching the type to BUTTON if you just want to attach an Onclick() handler to it.
t312227over 3 years ago
hello,<p>a bit o.T. here, but i think, that 50+% of (web) development is communication (with people).<p>especially in &quot;common&quot; projects - mostly CRUD stuff - this is much more essential than any other technical experience&#x2F;knowhow <i>ever</i>.<p>why? its easy to delve into technical details, its hard to explain them to people, especially, if those people are non-techies ;))<p>br, a..z
genezetaover 3 years ago
&gt; For the last few months I&#x27;ve been learning back Django which was my first love. I&#x27;m learning back the django rest framework and today I have an issue where in the DRF interface the button for POST&#x2F;DELETE&#x2F;PUT&#x2F;PATCH don&#x27;t work. They don&#x27;t even send the POST&#x2F;DELETE&#x2F;PUT&#x2F;PATCH request, they just reload the page as if the only thing those button do where `window.location.reload();`.<p>It&#x27;s hard to know for sure without actually seeing it, but...<p>This sounds very much like a fairly typical JavaScript problem. Or to be more precise, a &quot;lack of JavaScript&quot; problem. Let me first explain what I think may be the problem and then <i>how you could look into solving it</i>.<p>The problem as described makes me think:<p>- There is a button which submits a form. It <i>should</i> use an XHR for the submission, which means there should be some JS event handler attached to the button.<p>- But instead of that, <i>if for whatever reason the handler was not attached correctly</i>, then the button would simply submit the form it belongs to in a default way, which would reload the page. This fits the description you give.<p>So, first thing, how can someone go about verifying if this is indeed the case of what is happening?<p>What you do is you open your browser development tools and look around for a couple of things. First, you load the page normally, and do not <i>yet</i> click the button. Now, you look in the console for any JS errors at all and, if there are any, see if one of them maybe either a. related in any way to the button, the form, the event handlers, etc, or b. there is one that <i>breaks JS execution</i>, which would prevent other code from being run. More: You inspect the button itself with the DOM inspector and verify if it actually has any click event handlers attached. Note that it may be the case that the handler is attached as a submit handler on the form, instead of as a click handler on the button. If there is <i>neither</i> of those, then it&#x27;s very likely that something has prevented some piece of JS from being run and the handlers from being attached.<p>After looking at that, still with your browser dev tools open, you set the network tab as visible, and then actually click the button and trace what happens. There&#x27;s a lot to learn about browser dev tools, and there is a lot of info out there, so when you have a chance, that&#x27;s something you could spend some time on. But right now you just want to check the request that happens when you click the button. In particular you need to look at the type of request and the &quot;initiator&quot;. These will tell you whether it is indeed a &quot;normal form submission&quot; or an &quot;XHR request&quot;.<p>Once you verify these things, if this is not the problem, then you&#x27;ll need to explore other options -which I cannot specify more due to the lack of information, of course-.<p>But if this is indeed the problem, that there&#x27;s no event handler attached and the form is simply submitted, then you need to investigate why there is no handler attached, obviously.<p>Again, try to search for any errors in the console, check id&#x27;s used on the form or button, check the template that generates the button and form. Also check the network template for any 4xx, 5xx, or any files that are not loading for whatever reason. It may be a misconfigured path, a missing library, a misconfigured MIME type... It can be a lot of things.<p>If you can&#x27;t find anything like this that gives you a clue, then it&#x27;s time to change the approach. Now start by looking for the origin of that button in the source. Where is it created? How is it created? Does it depend on any parameters? Are those correct? Does it depend on a <i>global</i> configuration? Is that correctly set up?<p>I can&#x27;t tell you anything more specific than this, but that is how you &quot;go about solving the problem&quot;. At some point, you&#x27;ll most likely find a misconfigured path, or a missing file or parameter. Or, at the very least, you&#x27;ll find an error message that can give you a clue of what is happening and what should be your next step. With that it will be much easier to ask questions.<p>----<p>So, in summary, you fight the powerlessness by actually trying to figure it out. There is no secret, really. There&#x27;s no magic thing people do to solve problems we haven&#x27;t seen before.<p>Note, also, that I cheated a bit. That is, going from your description I offered an experience I have previously had. But what if it was my first time? What if I had never seen this? The idea, then, is to first establish what is actually happening. You suggest &quot;...as if the only thing those button do where `window.location.reload();`&quot;. This is an hypothesis. So you verify it. You do the thing with the browser dev tools -which you learn to use beforehand, of course-, and try to verify if your hypothesis is correct.<p>There&#x27;s a small catch, though. Your hypothesis there is a bit &quot;too sophisticated&quot;. Why would someone attach some JS to do location.reload()? Could there be an easier explanation? That&#x27;s where the above comes into place: if you attache no handler at all, the submission is just a normal form submission; if the form has no explicit action declared, it will POST&#x2F;GET to the same current URL.<p>So, in a way, that <i>is</i> a small secret -but really, it&#x27;s not secret- thing: always start verifying from the <i>simplest</i> things. Always check the most simple hypothesis. This can even be extensible to &quot;always check the most visible&#x2F;obvious things&quot;, like always checking the error console and always giving the network tab in the dev tools a look for 4xxs or 5xxs.<p>Also, as already mentioned: owning the code. But this does not necessarily mean making the calls. Sure, you did not make the decision to use DRF, ok. But you can still make the effort to learn DRF to a desirable extent.
评论 #29794244 未加载
ra-mosover 3 years ago
To be frank, you’re struggling with junior web dev problems. Learn to be an engineer.
评论 #29797223 未加载
评论 #29795889 未加载