Earlier quoted context omitted.
> I didn't have to hunt in a different part of the source tree for where something was done. It was all 'right there'. YMMV. This is my take too as I have gained experience. The way I did code from the get go, was the overall best way. Long function that did the stuff one thing at a time. Like no functions called from different parts of the call tree. I breeze to debug and understand or modify.
Until it’s not. Nobody wants to read your 100,000 line file called main that only has one function. As with everything, moderation.
The worst programmer I know
621–630 of 668 posts
Re: The worst programmer I know
#622Earlier quoted context omitted.
[flagged]
Ignore the others. It's a quick read and a good story, and I think most engineers or engineering managers could take away something from it, even if just reinforcing that your already know.
Re: The worst programmer I know
#623Earlier quoted context omitted.
It’s important to find/figure out what a company values and optimise for that. Once a reputation has been established, it’s then possible to go about changing things, but not before. I’ve seen too many stories of people optimising for the “team”, but losing their job or being looked over for promotion due to negative perception from those higher up. The opposite is also true, sometimes unfortunately. Once a good repu…
> It’s important to find/figure out what a company values and optimise for that. One important ingredient for this is to know many companies will actively lie about their values. Typical case is, everyone tells you they value quality and feedback, while in reality everything is rushed and actual suggestions are at best thrown away in the "later" bin. > Once a reputation has been established, it’s then possible to go…
Yeah, I feel your pain on the viscous cycle. For what it’s worth, I have managed to “hang in there” in such situations and the situation turned around. Normally it requires some change in the upper management or getting into a different team/role though (as you said, a “new assignment”).
> Some would suggest I suck it up and work my way up, but to be honest I no longer have the energy to pay my dues over and over again.
I hear this too! It’s a massive pain to have to go through the “we don’t trust you” phase at a new company. Hopefully as we become more senior, this is less of a thing, but for me there’s always been a period of pain when changing jobs.
Re: The worst programmer I know
#624Earlier quoted context omitted.
I agree with you 100%. Management does not have an eye for software that is easy to maintain and continue to make money on 5 or 10 years down the line. Most management is thinking short term, how do I get money in MY pocket right NOW. Who cares how the business does in the long term, they'll jump ship and move on. It is the engineering that often makes a difference for long lived companies, it's just that usually the…
> ... 5 or 10 years down the line. Most management is thinking short term, Woe is us. Five or ten years is not considered short term > . I try to give more to the clients that pay more, or at least create something that I can reuse in the future, while making sure what I deliver is stable and not a big ball of spaghetti to make the next developer/engineer cry at night. I am not sure about the "...who pay more". As I…
It is important to know what you can and can't get away with, and my clients don't pay the cost of the business I'm employed by making bad decisions. Where I am able to, I strive to provide a product that is better than the average, in the hopes that I've developed a solution that can possibly benefit the company or myself in the future in regards to software quality or speed (along with stability) of deployment.
Re: The worst programmer I know
#625Earlier quoted context omitted.
I know it's too late now, but you are the type of developer that makes our profession an actual craft. Sharing knowledge is the biggest benefit to provide other developers, and too few that decide to go that route are rewarded for it. If it weren't for developers like you, we wouldn't be anywhere close to where we currently are in the software world. I try to give back knowledge as much as possible, because it's not…
Wow, thank you. I am grateful that my comment attracted so much thoughtful discussion. But your comment is the one that really touched my heart. I was reading it to a close friend just now, and I have to confess that I choked up a couple of times reading it. So again, thank you, my friend. p.s. You don't happen to be anywhere near the SF Bay Area? If you are (or even if you're not), please drop me a note at the email…
Re: The worst programmer I know
#626Earlier quoted context omitted.
A big, big tool for that, is OOP inheritance, which is considered "bad coder" signal, these days. Is it? I’d agree that there’s increasing awareness of the limitations of OOP, and I’d agree that using inheritance excessively can be one of the limiting factors, but I don’t think I’ve ever personally seen anyone criticised or penalised for using inheritance appropriately .
Just using OOP is considered bad. There is no "appropriate" way to use OOP. I see people being criticized for that, all the time. I have run into folks that don't understand polymorphism. It seems that it is not even being taught. Old Boomer Yells at Sky
(Exceptions exist, of course, like libraries inherently dealing with reflection)
Re: The worst programmer I know
#627Earlier quoted context omitted.
> If you're letting HR who have no idea what they're doing, go from "a hundred CVs" to "two openings" you are bad at your job. What I said was different. How many CVs should we eliminate before calling people back for the two openings? What if the pile is 500 CVs? Call all of them? I guess you stop coding for the next two months and that's ok? Or maybe you let HR help you sort the CVs by priority. > who have no idea…
> HR will definitely reject someone because of the title of a blog post. > I've worked with some very talented HR people. No doubt, since apparently you expect worse than useless it's likely hard not to exceed your expectations. What a buffoon.
You've offered no alternatives other than your schoolboy insults.
Re: The worst programmer I know
#628Earlier quoted context omitted.
It's, what, two clicks to duplicate a ticket, and another to assign one to other person? Sure a "this person paired" button would be easier, but sometimes you just gotta do jira chores.
Then the status has to be tracked in two places. It’s certainly not impossible, but as a programmer I’m allergic to unnecessary busywork.
Re: The worst programmer I know
#629Earlier quoted context omitted.
Just using OOP is considered bad. There is no "appropriate" way to use OOP. I see people being criticized for that, all the time. I have run into folks that don't understand polymorphism. It seems that it is not even being taught. Old Boomer Yells at Sky
I've done a lot of OoP and my opinion these days is that if the reader needs to understand polymorphism properly to understand your inheritance, it's too complex. (Exceptions exist, of course, like libraries inherently dealing with reflection)
One thing that geeks love doing, is telling other geeks they are bad at what they do. It gets a bit grating, but I’ve come to the realization that I need be true to myself, because it’s a losing proposition, hanging my self-respect on the opinions of others.
I do what I do, and get the results I get. I don’t spend much time, worrying about how I compare to others.
One of the benefits of working at the direction of my own muse.
Re: The worst programmer I know
#630Earlier quoted context omitted.
"You don't need to add an external dependency for that" "You're violating separation of concerns" I've found that kind of feedback to be useful actually. And when giving similar feedback it is received better with a small change in wording to make it more about the code and not the person. Even if that is the intention the wording does matter. For example: "An external dependency isn't needed here, try implementing w…
Yes always “we,” never “you.” I’ve become fond of mostly asking questions. I wonder if we could avoid this dependency? Maybe [idea] would work? Can you see a way to separate the X concern into a module? Can we split this function up a bit so the nesting won’t be so deep? Would this loop body make a good standalone function?