Live data from Hacker News

The worst programmer I know

dannorth.net

621–630 of 668 posts

Re: The worst programmer I know

#621

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.

LOL. Yup. And I've been in a company that had a product like that. One man, one file, one function. Scads of GOTOs. It was a state machine, managing ports on a terminal-to-ethernet box circa 1987. Oh my.

Re: The worst programmer I know

#622
post #196

Earlier 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.

The fact that the HN crowd, the "selective view" have downvoted my comment and not the one saying clickbait titles is good is enough for me to be reminded how braindead the community is.

Re: The worst programmer I know

#623

Earlier 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…

> I've noticed 2 patterns in my various gigs in the past: The virtuous cycle where I'm trusted to build something with significant autonomy from the start, I end up being happy, motivated, productive; and the vicious cycle when I'm just a new untrusted cog in their machine, my motivation & productivity plummet.

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

#624
post #508

Earlier 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…

I am in 100% agreement and the same thinking as you are. I never take the shortcut route unless it is absolutely warranted, such as a solution I know is meant to last only a few months. I have been very loud, and have effected quite a bit of change over my years, if only in a way that allows my boss to believe that I will no longer be a part of his operation if he restricts my freedom and personal ethics. I am highly underpaid, but I make sure to take that out in personal freedoms where it is worth it to me. I no longer answer phone calls or texts after hours unless they are going to directly damage the business, and my ability to continue having a place of employment. I take regular vacations, and mental health days, sometimes just to spend time with my son (went through a divorce where I still can't tell how badly it affected my son, although luckily went through a moderator rather than the attorneys/courts to settle things).

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

#625

Earlier 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…

Unfortunately I am in the middle of central New York, but I sent you an email anyways, just to say thanks for what you have done and continue to do!

Re: The worst programmer I know

#626

Earlier 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

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)

Re: The worst programmer I know

#627

Earlier 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.

Or I just understand the realities of having to sort through large piles of CVs while having a time limit. And that in the real world HR will indeed use heuristics, even ones that don't appeal to our sense of fairness or effectiveness.

You've offered no alternatives other than your schoolboy insults.

Re: The worst programmer I know

#628

Earlier 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.

If only there were some person who's job it was to deal with said busy work because you think it's beneath you. Some sort of manager of the program, who is also technical.

Re: The worst programmer I know

#629
post #626

Earlier 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)

Well, to each their own. I like to understand everything I do, at a very deep level, and I really enjoy learning that kind of stuff. I started as an EE, so my understanding sinks down into the FET junction. My first software was machine code, so it’s been a long, strange trip.

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

#630

Earlier 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?

Love this, it's the Socratic method and leads to a better path without telling someone "how" to do their job.
Post reply on HN