Things I’ve learned in my 20 years as a software engineer
simplethread.com
Things I’ve learned in my 20 years as a software engineer
1–10 of 745 posts
Re: Things I’ve learned in my 20 years as a software engineer
#2This is so important. I think a lot of the advice given out there comes with the bias of having been successful doing it. There are countless others who have tried to scale the same ladder, doing the same things even, and still did not achieve the same success.
Re: Things I’ve learned in my 20 years as a software engineer
#3> The best code is no code, or code you don’t have to maintain
I always say "The best code I write, is the code I don't write."
Re: Things I’ve learned in my 20 years as a software engineer
#4In my 20 years of experience quality of software engineer comes down to personality, the ability to make decisions based upon evidence more than intuition and the ability to make decisions in the face of insufficient evidence. There is a certain vision of systems that cannot be taught as many people are incapable of accepting concepts of economic abstractions outside what they can put their hands on.
Re: Things I’ve learned in my 20 years as a software engineer
#5>> Nobody asks “why” enough
This point is the most important IMO. It's so common for people to do things without asking themselves why they're doing it. Every line of code should fulfill a clear purpose. You want to avoid writing code which is difficult to explain to a non-technical person.
>> People don’t really want innovation... If you believe in what you’re doing, and know it will really improve things, then brace yourself for a long battle.
This sounds ridiculous at a glance, but it 100% matches my own experience in pretty much every company and project I've ever worked on.
It applies to everything; jobs, getting funding. Nobody wants to see real innovation and nobody wants to see real talent. If you're too good as a developer and innovate too much, developers who work for big companies will get jealous and they will reject you. If you're very good, you need to pretend to be mediocre and above all; compliant.
Re: Things I’ve learned in my 20 years as a software engineer
#60.1x programmers are often lost or afraid, although they may just be unimaginative. The real risk of fear is introducing 0.1x processes. People are often willing to sacrifice any amount of development velocity to avoid being seen to make mistakes.
Sometimes this makes sense, sometimes it doesn't. Arguably the reason for the success of SpaceX is that they were willing to fly, crashland, and improve a dozen rockets in the time that a conventional company would spend agonizing over whether to launch at all. On the other hand, nobody wants to be on the same roads as the "move fast and break things" self-driving car.
Re: Things I’ve learned in my 20 years as a software engineer
#7 * Software is a social service. Its for other humans.
Incredibly, it doesn't matter how educated the developer, they still seem to have to learn this lesson themselves, over and over, until it sinks in...Re: Things I’ve learned in my 20 years as a software engineer
#8This is a very insightful list. But there is one thing I'd quibble with: while it's inherently a super-subjective metric, I would say that 10x programmers do exist. Both in the "can support a company by themselves" sense and the "mad lone genius" sense. Not all the 10x programmers are good at working with other people or on other people's ideas. 0.1x programmers are often lost or afraid, although they may just be uni…
Re: Things I’ve learned in my 20 years as a software engineer
#9One of the things that I have learnt is how important effective communication is for software developers. It can make or break the products.
Re: Things I’ve learned in my 20 years as a software engineer
#10This is a very insightful list. But there is one thing I'd quibble with: while it's inherently a super-subjective metric, I would say that 10x programmers do exist. Both in the "can support a company by themselves" sense and the "mad lone genius" sense. Not all the 10x programmers are good at working with other people or on other people's ideas. 0.1x programmers are often lost or afraid, although they may just be uni…
-1x programmers also exist, in a variety of guises. From the dev with long cv of projects he’s contributed nothing to and been sidelined from, but who manages to keep getting hired because of his cv, to the dev who crowbars in new tech where it’s not needed and causes a ton of problems.