Live data from Hacker News

Skills Poor Programmers Lack

justinmeiners.github.io

151–160 of 211 posts

Re: Skills Poor Programmers Lack

#151

The most lacking skill that I tend to see is an inability to think in types, and to design software accordingly. Too many software developers never progress beyond primitives and basic control structures - I call them Int, String, and For Loop Developers. Second biggest issue I see is failing to incorporate our cognitive shortcomings into code design, assuming that you'll remember these dozens of little details from…

Could you explain the consequences of not progressing beyond "Int, String, and For Loop" development? Are you suggesting that these engineers don't understand or apply Design Patterns [0]? [0]: https://en.wikipedia.org/wiki/Design_Patterns

That would be part of it, but since was talking about inability to think in types I suspect they were taking aim more at things like excessively stringly-typed[0] code.

[0] https://devcards.io/stringly-typed

Re: Skills Poor Programmers Lack

#152

> Programmers who only work on small temporary > projects (like an agency) may get by without > ever improving how to design programs. Amen to this. We recently ended our engagement with a very well-known Ruby consulting shop for exactly this reason. Their engineers were very smart and wrote very pretty code. However it was not suitable for the real world once even a little bit of scaling was required, and this was a…

This is the problem I've got at my current job. While I try my best to write code in a way that it'd work many years ahead, the lack of scale requirements and relatively freedom I've got on my own decisions are double edge sword most of the time. Would love to work in a large shop with more senior people than am.

Re: Skills Poor Programmers Lack

#153

As an addendum perhaps to the Organize and Design Systems section, I'd propose including mise-en-place as it applies to project maintenance and the development environment. This centers on tooling and documentation, especially the README. I want a README that gets me set up and running as quickly and in as few steps as possible. Recently I needed to test out some stuff one of my teams was working on. It was a somewha…

Totally agreed. I wrote up my thoughts on this recently: https://blog.0x74696d.com/posts/mise-en-place/

Re: Skills Poor Programmers Lack

#154
post #93

Most programmers do not follow the Golden Rule, which is to write code you'd like to maintain with minimal training. It's a principle, but there are various skills involved in doing it successfully, including writing, automation, design, seeking quality peer review, and a few other things. Similarly, writing code that can be deleted is an important skill. Using "good design" and "knowing your language" are fairly neb…

> writing code that can be deleted is an important skill Are you saying "I can easily delete this code from the project" is a metric for modularity? That's really interesting, is it your own thought?

Write code that is easy to delete, not easy to extend: https://news.ycombinator.com/item?id=11093733

Re: Skills Poor Programmers Lack

#155

Earlier quoted context omitted.

I can’t speak for the parent, but my take on it is a skilled programmer would define structs or classes, for example: parent, student, address While the unskilled would: parentfirstname, parentlastname, parentaddress1, .... studentpostcode

Yes, I'd call that "grouping related data (and functions, if you're using OOP) together"; no need to obfuscate the matter by saying "thinking in types". Incidentally, that's another thing about the difference between actually-skilled programmers and "pretenders": the former will always explain something in very simple terms, while the latter will try to use as much abstract and vague technical-sounding terms as possi…

I think that your response is overly accusatory, especially given that I think "grouping related data (and functions, if you're using OOP) together" is only one aspect of thinking in a type-oriented way, and not always necessary.

A perhaps simpler, perhaps better example: Floats are lossy, but transactions in currency cannot be. An inexperienced developer might make the mistake of representing currency values as floats, while a more experienced developer would know to use some sort of BigDecimal. But the more experienced developer is still making a fatal error. Currencies have units, but BigDecimals do not. While BigDecimals can be added together, it is not meaningful to add Dollars to Euros. A developer who is "thinking in types" will define a numeric type for Dollars and a numeric type for Euros that cannot be added together.

Re: Skills Poor Programmers Lack

#156

> Programmers who only work on small temporary > projects (like an agency) may get by without > ever improving how to design programs. Amen to this. We recently ended our engagement with a very well-known Ruby consulting shop for exactly this reason. Their engineers were very smart and wrote very pretty code. However it was not suitable for the real world once even a little bit of scaling was required, and this was a…

Weird, I find this to be more frequent the case for people who work on large, long lived, legacies

Re: Skills Poor Programmers Lack

#157

> You may have seen code which misunderstands how expressions work: > if isDelivered and isNotified: isDone = True else: isDone = false; > Instead of: > isDone = isDelivered and isNotified Are people actually finding code like this in professional work or is this just an example? I'm self-taught and know I've got some gaps, but this example is so fundamental I find it shocking.

All the time. There are a lot of reasons people write really bad code and being a bad programmer is only one of those reasons.

Re: Skills Poor Programmers Lack

#158
post #32
post #28

Earlier quoted context omitted.

I don't think these accusations are fair. The author has been programming since at least 2009, and is degreed in math. They also wrote the "think in math write in code article" that people here seemed to like quite a bit last week.

Programming in academia has very little to do with software in general, maybe that's the disconnect.

If you look at his resume from a sibling comment of the one you were replying to, you’ll see that his experience is in industry, not academia

Re: Skills Poor Programmers Lack

#159
post #28

Earlier quoted context omitted.

I don't think these accusations are fair. The author has been programming since at least 2009, and is degreed in math. They also wrote the "think in math write in code article" that people here seemed to like quite a bit last week.

> The author has been programming since at least 2009 Which is to say, since the author was 12 years old if they followed a standard K-12 + undergrad program (graduated from a Utah Valley University last year it seems). I think the irony in the article is that the author is very likely 22 or 23 years old and opining about how developers that have been coding for longer than he's been alive still just-don't-get-it. I…

Given he has work experience from prior to his university dates, it’s more likely that he got his degree after having already worked for a few years.

Re: Skills Poor Programmers Lack

#160
post #32

Earlier quoted context omitted.

Programming in academia has very little to do with software in general, maybe that's the disconnect.

If you look at his resume from a sibling comment of the one you were replying to, you’ll see that his experience is in industry, not academia

He's also arguing that code is math, which is academic bullshit at it's finest.
Post reply on HN