Software engineering is a trade skill, after all.
Software engineering is a trade skill, after all.
On the other hand, even after you've performed the "real work" of thinking things through, the fact that your code works isn't the "real product". The real product is the degree to which the code can be understood, maintained, and extended.
I think that the idea that software engineering is a trade skill produces two problems:
It encourages management to discount software engineers' expertise and view the planning that comes before writing code as a waste of time.
I think when people today say "trade skill" they think of things like factory work and relatively routine construction. However, a programmer is more like a traditional artisan who must always be honing their craft and learning new techniques.
In my opinion, a better way of looking at it is that companies should start actually treating software engineers like engineers. I.e. by viewing them as professionals with the expertise to inform project planning and a professional obligation to follow best practices and design.
Much like being a software engineer the real product of a carpenter is how what the build withstands the elements, can be repaired, maintained, and extended, and that is only achieved after putting in the thought and design that comes before construction. Much like a software engineer, a carpenter must keep up to date on building codes and regulations, different materials and how they are used safely, and collecting, maintaining, and extending their tools.
Software engineers often talk about "sharpening the saw". That's literally something a carpenter would do.
It really depends. I don't think you can compare writing a CRUD to writing a hardware controller, for example.
I think HN tends to be in a bit of a web bubble. There's plenty of software engineering that has nothing to do with the web.
But seeing how I taught myself assembly language in the 80s and learned how to optimized programs to run on 65C02 1Mhz computers with 128KB of RAM in middle school, I don’t see why teaching yourself how to do low level hardware programming is any different than learning anything else.
Yes and I spent 12 years doing C bit twiddling.
Most of these programmers have moved on to Java, Javascript, and Python.
Those doing "C bit twiddling" are the other C programmers. Most commonly I hear the phrase from people who are capable of this low-level programming but never liked it. People using the phrase seem to be mostly people who have moved on to languages like C++, C#, and Go. People actually doing the "C bit twiddling" seem to just say "C programming" as you have suspected.
So I guess it is a way of saying "C, including the parts I don't miss" for people who could do it but never liked it.
They tend to just get things done, without spinning themselves in circles building unhelpful mountains of abstractions or searching high and low for a place that they can apply their algorithms coursework.
Though the flipside is that they make lateral transfers very easy, so those that are the most motivated by more challenging or even just more CS-oriented work find themselves drifting towards it.
A well-intentioned intern can make a programming decision in an afternoon that might take a team of senior SWEs months or more to clean up later once the code or data is being used for something important.
We brush the bad engineering decisions under the rug by calling them "tech debt", but the truth is that if we invested more up front in hiring people with big picture skills and experience we'd probably save significantly more money in the long run, despite their higher salaries.
And a new maintenance tech with the wrong grease gun can cause millions of dollars of downtime. This kind of risk exists in all industries.
You don't need a degree for plumbing. It comes in damn handy when you're doing things like flow dynamics or combustion simulations
Just like aeronautical and construction engineering, surgery, dentistry...
I usually tell people "I program computers" when they ask what I do. I used to say "I do computers" but people are more used to computers and software now so fewer people ask, "so, you do computers?" so I had to change it up a bit.