Live data from Hacker News

Things I’ve learned in my 20 years as a software engineer

simplethread.com

261–270 of 745 posts

Re: Things I’ve learned in my 20 years as a software engineer

#261
post #180
post #15

Earlier quoted context omitted.

Software is whatever you want it to be. I can write software that is not for other humans. That's the most fun part of software engineering to me, when you don't care about the users and just do it just for the fun of doing it.

Don't forget to write for future you . They'd appreciate some consideration as well. Mostly along the lines of "wtf does this module do?"

The best one for me was documentation to complicated for me - by me.

Re: Things I’ve learned in my 20 years as a software engineer

#262
post #5

Amazingly, I agree with every single point. >> 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 k…

Mmm, in my experience, it’s more that people don’t believe that something truly valuable to them comes packaged in your arrogance, brilliance, or effortlessness. They’re so accustomed to those things being signs of assholes, or reasons to feel inadequate, that they resist looking at what’s being delivered. The OP’s point about bracing for a long battle means that truly persuading others is not just about making the a…

I'm not at all arrogant in real life. My last boss even told me that I don't stand up for myself enough. Besides, I didn't even say it was about me and merely brought it up to make a point.

Imagine constantly improving yourself for 15 years, then after 15 years, everyone you work with only gives you positive feedback and everyone wants to be on your team. You even launch open source projects which get thousands of stars on GitHub... You know you're good because there is no other explanation and nobody helped you and you have 0 meaningful industry connections and come from a modest background... but somehow you struggle to even land a first technical interview at a big tech corporation in spite of having the required university degree. That's my situation, so forgive me if I sound like an asshole on this anonymous website where I can finally vent my frustration.

Re: Things I’ve learned in my 20 years as a software engineer

#263
post #184

Earlier quoted context omitted.

I do a lot of dev work with non-profits and such. About a year ago I was working on an extremely difficult project as a volunteer where I was insistent that a specific part was vitally important to getting the project to move forward (generalizing tables extraction from scanned OCR docs) and I was spending a lot of time on it. One of the devs I worked with, with 40+ years of experience, basically told me this exact t…

Make an API out of that. There is huge demand for it.

I’m in need of that right now! Would pay for it, especially if the proceeds benefitted that non-profit!

Re: Things I’ve learned in my 20 years as a software engineer

#264
Avoid the word 'just' and be suspicious of those that use it: It's just a new model and a few pages, how hard could it be? It should take just a couple of weeks. When people use this word they are being overly optimistic about something they're not sure of.

It's harder than you think: The name of the game is to avoid fooling yourself and you're the easiest person to fool (that's from Feynman). If the problem seems hard it probably is harder than you think. Be ruthless and don't settle for unsatisfactory, hand-waving solutions to these problems. Most people can't detect deadlocks or temporal properties of concurrent programs in their heads.

Re: Things I’ve learned in my 20 years as a software engineer

#265
post #219

Earlier quoted context omitted.

That's a useless advice IMO. How can you not assuming anything. I assume that my CPU works, for example. You can't write useful programs without many assumptions. Imagine program that does not assume that CPU works and reruns every algorithm few times with few different code versions to verify that outputs match. It might make sense for moon mission, but definitely not for another CRUD app. I don't have 20 years of e…

I completely agree with your second paragraph but the last sentence seems like you don't know what people mean when they say they hate NullPointerExceptions. They don't mean that you just silently ignore the null value, they mean that they would prefer to use a language that has proper optional types.

People tend to not languages without null though. They have all those NullPointerExceptions in their mind and figure coding would be easier if those didn't exist, but when you give them that they don't like it. Null sits in a very nice spot between dynamic typing and static typing.

Re: Things I’ve learned in my 20 years as a software engineer

#266
post #184

Earlier quoted context omitted.

I do a lot of dev work with non-profits and such. About a year ago I was working on an extremely difficult project as a volunteer where I was insistent that a specific part was vitally important to getting the project to move forward (generalizing tables extraction from scanned OCR docs) and I was spending a lot of time on it. One of the devs I worked with, with 40+ years of experience, basically told me this exact t…

Make an API out of that. There is huge demand for it.

I believe such an API already exists: https://pdftables.com/ (no affiliation).

Went to a presentation at a Golang meetup in Amsterdam by the guys behind this company. Seemed to know their stuff. But I have no real world experience using it.

Re: Things I’ve learned in my 20 years as a software engineer

#267

> I’d rather someone give me opinions that I violently disagree with than for them to have no opinions at all. I've been a developer for 15 years... anybody else feel like the further they get into their career, the more they want to keep their opinions to themselves? I feel like as a junior dev I had way stronger opinions and I was a lot more vocal about them. Now, I still have opinions, but I've learned that nobody…

I think that is also because as a Junior one thinks that he should have opinions and be vocal about them and be right to further their career or to become Senior/Manager/Leader. Just like getting good grades in school you would have to put your hand up and tell that smart thing to the class/teacher.

After couple of years people realize that just having opinion and being vocal about it does not make one a Senior/Manager/Leader. There is much more to it and one learns about it on the job.

Re: Things I’ve learned in my 20 years as a software engineer

#268
”The 10x programmer is a silly myth.”

Incredibly high performers exist, but are rare.

For example, the following quote is from a talk given by Gabe Newell.

(Unfortunately, I do not have the URL to the source video for this quote.)

“At IBM in the 1980s, typical productivity would be 1,000 debugged, shipped lines of code per year. That was the metric that they used for their median employee. Where as, when we were shipping Half Life 1, one employee, Yahn Bernier, was shipping 4,000 lines of code per day.”

Re: Things I’ve learned in my 20 years as a software engineer

#269

40+ years of experience here, and I'll tell you the #1 thing I've learned: * 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...

A corollary-ish observation of my own:

   * If coders could write useful documentation (starting w/inline comments) they probably wouldn't be coders.

Re: Things I’ve learned in my 20 years as a software engineer

#270
post #260
post #6

This 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…

> while it's inherently a super-subjective metric, I would say that 10x programmers do exist Even worse than super-subjective, it seems like people don't agree on the definition of "10x programmer". Is that 10x value (code * code quality) produced per unit of work-time? Per brain cycle? Are you controlling for programmer experience, or domain knowledge, as [1] pointed out? Do you actually mean 10x, or is that a stand…

For me, it's definitely "a stand-in for "significantly more productive" with an unknown value". Neither the input nor the output can be properly quantified, and we don't really know the full set of variables to control for, and it inevitably runs into serious questions of inequality, SES, and background that are likely to make people even more cross.

I see it as more of a compliment. Nobody should be seriously and unironically calling themselves a 10x programmer, it should be bestowed by other people.

Post reply on HN