5 ms·
One time, I was helping a friend of mine work on Javascript (js) skills. We cycled through all the basic sorting algorithms to practice js best practices and h
by FrankenPC 12y ago
One time, I was helping a friend of mine work on Javascript (js) skills. We cycled through all the basic sorting algorithms to practice js best practices and help with understanding computation complexity issues.
On one sorting algorithm, Can't remember which one ATM, involved recursion. It was pretty simple. My friend couldn't understand the nature of the problem because he didn't have a instinctual comprehension of recursion. I threw together a Visio of the process and walked him through the blocks one by one. He still couldn't wrap his mind around it. He started to berate himself and I could tell he was giving up on his dream. I told him to keep trying. To keep spending the time on places like HackerRank. He did.
8 months later, he landed a job as a js full stack programmer. Not a senior level position, but a damn good one. I'd seen his work before his interview and it was good. He had a command of all the major frameworks and he was observing all major js design patterns while avoiding idiotic anti-patterns. His code was clean and easy to read.
IMO Pointing out that someone APPEARS to code like a loser is a petty playground tactic of someone who has a serious ego issue. Taking someone by the hand and helping them through the hurdles so they can become a better programmer is the solution. I can't imagine how my friend would have reacted if he had read this petty article while he was trying so hard to become a decent programmer. He may very well have given up. That's not acceptable.
There are only people who give up and people who refuse to concede defeat. Ranting on a website about bad programmers is giving up.
- kaybe 12y agoI find the article really helpful, to be honest. I am not a good programmer (it's not my job, I am a physicist); my code runs and does all I need such as automatically control my instruments so I can do someting else, evaluate my data and make plots. I can also use other people's code, though I sometimes code by google. Since code quality is by no means a qualifier for our work and most people don't really care, it's hard to become better beyond just knowing the languages better. Programming patterns? Ha, I just use all languages the same way. This article tells me where my weaknesses lie, which helps a lot, because I can only google things I have some notion of. It's not just ranting, there are detailed lists of what could be not-good and how to fix it. The only thing potentially offputting is the title, really. (Might help that it's not my job to be good at coding, just a bonus.)
- gambiter 12y agoI agree. There are plenty of very good programmers who never went through formal training. They had to learn somewhere... first copying code, then modifying it to their needs, then finally understanding the concepts enough to write it from scratch. I personally remember the first time I used a recursive function for a fairly complicated use. It broke my brain for a while, but I thought about it for several days, stepping through all of the iterations until I had something that worked very well. If I had been told I was a bad programmer because I was having trouble at the time, I probably would have given up.
- restalis 12y agoI might be punished for this, but it has to be said. First, I agree that learning can be a challenging process and helping someone may make a difference between a drop and an accomplished person. But then, I wonder your friend finally comprehended or not the recursion when landed on that "damn good one" job of "js full stack programmer". If he still doesn't, chances are other important concepts eludes him too, and the pain of his limited understanding can be felt only by his fellow colleagues, not by you. His code may be clean (which I personally appreciate), but that is rarely enough by itself. What is or isn't acceptable needs to be judged by the task at hand, and as sympathetic as one may be, red lines must be drawn all the time (and that is what the article actually does). For average JS implementation tasks your friend may be OK, but you really wouldn't want to encourage him (just out of moral sense of fairness) to get into say, some life-critical systems development without the necessary competence.