> Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all. This a thousand times. Having empathy for future devs, maintenance, and bug fixes is so important.
Amen. Something bizarre I have noticed though in junior-almost-senior engineers is that they pride themselves in obfuscating and writing "highly complex" logic, with no documentation. It's almost like they are demonstrating their new abilities in the worst way possible. I have been dealing with one of these engineers recently, and they have expressed to me that they love writing because it's so terse. It's been a poi…
Drunk Post: Things I've Learned as a Sr Engineer
101–110 of 510 posts
Re: Drunk Post: Things I've Learned as a Sr Engineer
#102> Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all. This a thousand times. Having empathy for future devs, maintenance, and bug fixes is so important.
This sentiment is exactly why programming in an org-chart is so much different than programming as an individual. Don't apply corporate best practice designed to withstand turnover to personal programming - you're leaving abstraction and efficiency on the table. The better code for your own projects is almost definitely inscrutable to a newcomer a lot of the time. It's okay for there to be prerequisites to understand…
Re: Drunk Post: Things I've Learned as a Sr Engineer
#103Earlier quoted context omitted.
A common meme I've seen recently is "no one knows what they're doing". I think people like to believe this because it helps them cope with impostor syndrome, or maybe they think it puts them on even ground with people who do in fact know what they're doing.
Even worst is the meme that “programming is just copy+pasting from stack overflow”
Most of this stuff comes from students / junior developers, where yes, they probably visit stack overflow every 20 minutes
Re: Drunk Post: Things I've Learned as a Sr Engineer
#104Re: Drunk Post: Things I've Learned as a Sr Engineer
#105> Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all. This a thousand times. Having empathy for future devs, maintenance, and bug fixes is so important.
I agree with having empathy for future devs, but I think it only goes so far. I've often seen junior engineers unable to differentiate between code they don't understand and bad code. Usually they end up thinking they can do a better job, decide to rewrite the thing from scratch, and take 10x longer to rewrite it than they thought it would take. And accomplish nothing in the end, because the thing they rewrote worked…
Re: Drunk Post: Things I've Learned as a Sr Engineer
#106> When I first started, I was enamored with technology and programming and computer science. I'm over it. This is the saddest. One more soul taken by the shrinking of the hacker culture.
The love and passion are still there, but their buried under the needs of my current mediocre job. I need to find a position that will let be get back to the task of building things again, rather than just tweaking scripts and keeping the machinery humming.
Re: Drunk Post: Things I've Learned as a Sr Engineer
#107Earlier quoted context omitted.
I think people in the industry are paid based on the potential value they can create (whether real or not), knowing many things or understanding fancy technologies matters little if one can't put them to use for the benefit of the company.
Also, most companies like to brand themselves as ‘tech’ to signal that they are growth based. Why is Peloton a tech company? They’re not. A lot of us have jobs because companies need to fulfill the image. It’s half the reason why so many people are allowed to do full-stack when in reality they would have no business dealing with those parts of the stack in a real operation. So no, you don’t actually deserve more mone…
Re: Drunk Post: Things I've Learned as a Sr Engineer
#108>Don't meet your heroes. I paid 5k to take a course by one of my heroes. He's a brilliant man, but at the end of it I realized that he's making it up as he goes along like the rest of us. I thought they were going to go the direction of "he's an asshole" and was ready to accept that, but this particular criticism is actually disturbing. People with strong visions can often appear to be "making it up as they go along,…
Re: Drunk Post: Things I've Learned as a Sr Engineer
#109This, and the current “sober” posts on r/ExperiencedDevs, makes me think of Herodotus describing the way the Persians made important decisions - once sober, once drunk, and if the drunk and sober decisions were the same they knew it was a good one.
Re: Drunk Post: Things I've Learned as a Sr Engineer
#110> Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all. This a thousand times. Having empathy for future devs, maintenance, and bug fixes is so important.
I disagree strongly with it on multiple fronts. That concern should be secondary to your program actually doing its job well. Your customer will literally not care how elegant or ugly your code is; they just see the end result. And when the program fails them, it really doesn't matter to them whether your juniors understand the code or the error. Moreover, not every abstraction is (or can be expected to be) accessibl…
Easy to understand code can be more quickly patched and repaired by anyone on the team. If you don't need to call in the senior who built it two years ago to repair it, and you can have someone do it right away, it is better for the customer.