6 ms·
I think the barrier specifically for software engineering is probably a bit lower now than in the past. Information was tougher to get at 10-15 years ago than i
by twodave 8y ago
I think the barrier specifically for software engineering is probably a bit lower now than in the past. Information was tougher to get at 10-15 years ago than it is today, and many of the candidates who in past times would not have gotten the necessary structure from a university can now go to a few bootcamps and be pretty much on par with people who completed a 4-year degree.
Software engineering is a trade skill, after all.
- Denzel 8y agoWhat do you mean by software engineering is a trade skill?
- pjc50 8y agoIt's not something with a formal professional exam board that you have to pass, like law, medicine, chartered accountancy, or regular engineering. Nor is it a pure academic discipline. It's a commercial skill: a trade.
- eeZah7Ux 8y ago...and I really wish we had a strict professional exam to use the term "engineer".
- pjc50 8y agoTo use the term, or to make software? The latter would basically be the end of startups and agility.
- eeZah7Ux 8y agoTo sign mission-critical and potentially life-critical software and provide better safety guarantees. And have a professional body to protect employees from pressure to lower quality. Just like aeronautical and construction engineering, surgery, dentistry...
- throwaway55554 8y agoMy degree is a BsCpE. Should I be allowed to call myself an engineer?
- potta_coffee 8y agoResults are what matters. Titles are meaningless.
- throwaway55554 8y agoI don't disagree with that. I was trying to make a point. 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.
- eeZah7Ux 8y agoThe downvotes are telling.
- dsfyu404ed 8y ago99% of software engineering is just data plumbing and processing. It does not require big picture thinking skills beyond the immediate problem or creative problem solving ability. Sure those skills help sometimes but the return diminishes rapidly and you could get by without them pretty much all the time. It's really not any harder than normal plumbing. The medium we work in and the tools and methods we use are different but that's mostly it.
- dub 8y agoI think this is less true than most people believe. 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.
- dsfyu404ed 8y ago>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. 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.
- slothario 8y agoThat's not a good analogy. The problem isn't an intern writing a line of code that takes out the database (although that does sometimes happen). The problem is a failure to understand a complex software system and creating years of technical debt.
- NikolaeVarius 8y ago90% of modern software is plumbing with computers. Skilled work, but doesn't require degrees because we're not really doing anything all that interesting. You don't need a degree for plumbing. It comes in damn handy when you're doing things like flow dynamics or combustion simulations
- sremani 8y agoThe other 90% is plumbing with people, users, managers and testers.
- twodave 8y agoMaybe I misused the term. I meant it more as a way to describe how learning software engineering is just as much about modeling sound principles and learning by example as it is learning theory and terminology. You don’t need a 4 year degree in order to do that, not because it isn’t a highly skilled occupation but because, on the contrary, it is highly specialized.
- thrower123 8y agoI've found that it is often those who move into programming after an earlier career in a trade are markedly better than those that went to college and got computer science degrees. 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.
- throwaway55554 8y agoI don't know. Google has tens of thousands of developers hard at work apply advanced algorithms to everything. I mean, why else would they hire the way they do if that's not the case?
- potta_coffee 8y agoGoogle is a pretty unique company. Most programmers don't work at Google or at a place like Google.
- scarface74 8y agoIf Google got rid of all their engineers that weren’t working on search and ads would it really make a difference since 85% of their revenue still comes from ads?
- wutbrodo 8y agoI can't tell if you're being sarcastic, but since people seem to be taking your comment as sincere: Google doesn't have people applying advanced algorithms to everything. It's a common complaint (or at least observation) among new hires that Google likes to hire top CS students and put them to work doing fairly basic engineering work. 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.
- harimau777 8y agoMy experience has been the exact opposite. It's just that both the problems resulting from just getting it done and the benefits of finding the proper abstraction don't come until months later. So by that time it looks like the non-CS developer was more productive.
- harimau777 8y agoI think software engineering is a unique case because on the one hand actually writing code isn't the "real work"; the real work is the thought and design that comes before writing the code. 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.
- ohithereyou 8y agoYour description of what it means to be a software engineer sounds a lot like being a carpenter. I would definitely call being a carpenter a trade skill. 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.
- throwaway55554 8y ago> I think the barrier specifically for software engineering is probably a bit lower now than in the past. 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.
- scarface74 8y agoI would think just the opposite. HN is very much a west coast, $300K salary, everyone either works at a FAANG or cool startup bubble completely ignoring the “dark matter” and regular old enterprise developers. 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.
- barbecue_sauce 8y agoI often see people say they did "C bit twiddling". Is that just a folksier way to say C programming (as I have suspected) or does it mean something distinct?
- scarface74 8y agoC bit twiddling for me means a bit of inline assembly, inspecting the assembly generated by the compiler, figuring out why the files generated didn’t work across platforms (found out about the endian difference between x86 and whatever the mainframes we were also targeting), etc.
- burfog 8y agoThere are people, not too many anymore, who write C without even remembering how to use the bitwise operators. They can't use any of: left shift, right shift, bitwise and, bitwise or, xor, complement. They may use unions or pointers, but not for any sort of aliasing. To them, byte order and struct packing are fuzzy concepts that never come in to play. 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.