5 ms·
> Software engineering is a weird niche that is both a high paying job and something you can almost self-teach If you meant programming, I agree it could be se
by kanbankaren 2y ago
> Software engineering is a weird niche that is both a high paying job and something you can almost self-teach
If you meant programming, I agree it could be self-taught, but not SE. SE is the set of techniques, practices, tools that we have collected over decades for producing multi-versioned software that meets a certain reliability rating. Not all of these is freely available online.
- steveBK123 2y agoSure. And that's why SWEs will be fine in the world of AI, as the rote work is more easily automated. The contrast is that for a lot of other jobs, the rote tasks are not routinely solvable with free online content in text form.
- optimalsolver 2y agoThere are plenty of self-taught people in the open source space making highly reliable software.
- UncleEntity 2y ago...who don't get hired at "real" jobs because they can't produce a bubble sort in 15 minutes on a whiteboard. I feel very fortunate that the core blender devs had the patience to put up with my stupid amateur mistakes while I learned the skills to become a helpful contributor back in the day.
- elicksaur 2y agoUnless you are talking about people who are actual licensed engineers, this is a distinction without a difference. Thing is, I’ve never met someone in software with a professional license.
- kanbankaren 2y agoI didn't mean the professional license, rather the ensemble of practices, tools, etc. It is practiced in safety critical domains.
- BoorishBears 2y agoI'm self-taught and had a job in the autonmous vehicle industry writing software that included safety-critical functionality. I had about 12 YoE at the time, and my manager didn't realize I didn't have a degree until after I was hired. Apparently it hadn't affected my offer, and he was more impressed than anything. You say: > SE is the set of techniques, practices, tools that we have collected over decades for producing multi-versioned software that meets a certain reliability rating. Not all of these is freely available online. The same way there's no single guide on the internet on how to be the kind of engineer who builds reliable or extensible software, I don't think there's a guide hiding in the average CS curriculum. Most of it consists of getting repetitions building software that involves the least predictable building block in all of software engineering (people), in all its various forms: from users, to other developers, to yourself (in the future), to "stakeholders", etc. Learning how to predict and account for the unpredictability in all the people who will intersect with some facet of your software is the closest I've seen to a "universal method" for creating software that meets the criteria you defined. And honestly I'd be concerned if someone told me you can just be taught some blessed set of tools and practices to get around it... that sounds a lot like not having actually internalized why they work in the first place, and the "why" is arguably more valuable than the tools and practices themselves.
- mistrial9 2y agothis is a challenging point of view.. on one side, a "a job in the autonmous (sic) vehicle industry writing safety critical software" sounds like one of the most slave-ish jobs in the world. This person had a 100 other people checking every tiny result, plus automated testing frameworks and hundreds of pages of "guidelines" .. in other words, the least creative and most guard-checked software possible. On the other hand, an open and level playing field does not exist in the thirty-some odd years of open markets software development. No one since Seymour Cray has done complete systems design, really.. it is turtles all the way down. You have to get hardware to run on, and the software environment is going to have been defined for that.. CPU architectures and programming languages. People who write whole systems generally do it in teams. The arrogant and self-satisfied tone of the corporate worker-bee says that there is no such thing as real software engineering skills? like defining "health" or other broad topics.. the closer the topic is examined, the more holes in the arguments. I am glad I never punched a time clock for Elon Musk, however, all things considered.
- taurknaut 2y agoThe vast majority of people learn this on the job. This is certainly not taught in schools (or is only barely scratched as a topic).
- BeetleB 2y agoI'll bite. Can you list specific things not freely available online?