1. The world's best reading app

    Great articles, no ads. Get started for free.

    You must read the article before you can post or reply.
    • thorgalle
      8 months ago

      I was writing a comment to this, but it became so big that I published it as a dev_to blog post 🤷‍♂️. The synopsis: I think there are many jobs related to programming or computing today, and none of them require you know everything at all levels of abstraction in the computing stack (hardware, networking, operating systems, algorithms, webshops …).

      Knowing more that you immediately need for your job is a laudable goal, but knowing everything is impossible.

      1. Update (11/24/2021):

        It's exactly this "knowing what you don’t know” (as vunderkind points out here), and then being able to identify what you should know to reach your next goal, that is a good quality that programmers should aspire to to stay relevant. And even that is a constant WIP!

    • vunderkind8 months ago

      I agree, but this is an outcome of the state of software engineering (and, I hasten to specify web development because I'm not paying too much attention to other applications at the moment).

      Business application of tools continues to abstract away the low-level implementation and the nth engineer joining the field needs to be absolutely keen to even know that there are multiple layers down.

      Ben Kuhn, head of engineering at Wise was my first introduction to the idea that you can, and must be willing to, understand the machine at an arbitrary level. Neil Kakkar has written about the idea of a 'slack', questions that throw you for a loop in your day-to-day, that forced you to use a StackOverflow solution you barely understood, and instead use them as interrogating openings during your downtime: 'why did my code act that way?' That's how you can then figure out the reason for the design of the tools you use.

      I think the right tone should be sympathy - the reason people call themselves 'experts' without being experts is because they don't know what they don't know.

      • thorgalle
        8 months ago

        Great comment! I think that taking the time to more deeply understand something you use daily is such a rewarding experience. Even if it's not strictly necessary to do your work today.

    • justinzealand8 months ago

      Interesting background on terminology of cargo cult. While I agree software engineering is increasingly abstracted, this might be argued a feature. The world needs programmers, possibly in more numbers than true software engineers. In any case I trust true engineers to find there way, but it would be nice to distinguish them from the proliferation of technicians masquerading as engineers. I was given the title engineer before I knew the fundamentals, but I made certain I learned them over time.

      • KapteinB
        Reading streakScout
        8 months ago

        While I agree software engineering is increasingly abstracted, this might be argued a feature.

        Yep. It makes software engineering more accessible, allowing people to make software who in the olden days wouldn't be able to, and that seems to me like something to celebrate.

        The writer seems to believe that all of these people would be perfectly able to learn C and Unix, and would be better off for it. I'm not so sure. We definitely need some software engineers who know the very basics, but not only them.

        In the end though, it seems the target audience for this article is hiring managers:

        For my part, I no longer expect entry level software engineering candidates to know the tech stack required for the job. All I expect is that they have a solid grasp of computer science fundamentals, and an in-depth knowledge of at least one thing, anything. This tells me that they have the ability to learn. I know at least one other hiring manager who has recently started a similar “no experience required” approach to hiring junior engineers. The next step would be to develop a similar approach for senior hires.

        The writer also never really explains why this type of programming is killing the software industry. A better title would be "Why you should stop hiring cargo cult programmers".

        • thorgalle
          8 months ago

          The writer also never really explains why this type of programming is killing the software industry.

          I think the writer alluded to the absence of fundamentals as a liability or limitation. By having your understanding based on high levels of abstraction, you would only be able to build derivative technologies or applications. You might build the next GIPHY for Meta, but you might not have come up with IPFS as an alternative to HTTP.

          For the record, I don't think it is "killing the industry" (I'll write another comment). But I’ve heard a first-hand account of lackluster teaching of fundamentals in one city in India (I hope I don’t make undue comparisons to Sri Lanka). At the same time, the local tech industry, which I assume is still full of outsourcing firms, eagerly hires masses of those graduates only to make them implement pre-made plans. Designed in California, made in China. Architected somewhere in the West, programmed in India. I believe that the writer wants Sri Lankans in the tech industry to have a chance at inventing and architecting the next big thing themselves.