55 comments

[ 2.3 ms ] story [ 107 ms ] thread
This genuinely looks like that I wrote it...until I saw that LISP line, definitely not me. But do agree with a lot of items in the list, and I happen to be a DE, too.
“a new job in two weeks.” heh, yeah everyone was opining expertise back then when employees had control of the market.
Aged like milk for sure.
Lost me at dynamic languages. Don't build anything of any significance in dynamic languages! ;)

Some good points. Laughed at TDD is a cult. I mean a lot of software orgs/cultures are cultish (Agile, Scrum, whatnot). At work I often feel I'm part of a cult.

> Don't build anything of any significance in dynamic languages!

Posted on a significant website built in a dynamic language.

I tend to disagree. Static typing can catch some bugs, but most serious errors are not type errors, and the common situation where the type system disallows just enough invalid states for developers to get complacent is the worst of both worlds.

> Algorithms and data strictures are important — to a point. I don’t see pharmacist interviews test trivia about organic chemistry. There’s something fucked with our industry’s interview process.

Pharmacists have to get a special degree before they can even get an interview, and I've heard that the education is heavy on organic chemistry. Then you get a job as a cashier selling pills.

> Hacker news and r/programming is only good to get general ideas and keep up-to-date. The comments are almost worthless.

You got me.

> Once, someone asked me who I looked up to and I said Conan O’Brien [...]

He wrote for SNL and studied literature at Harvard, so there's probably plenty going on up there.

> Max out our 401ks

If there's any 20-somethings here that make 6 figures, listen carefully:

  1. Max out your 401k, and invest all of it in a target date retirement fund. (Some companies are douches and will assign you mostly their own stock, which when it tanks, there goes your retirement... so check your allocation)

  2. Get an HSA and max that out. Invest it all in a target date retirement fund. Do not use any of it, pay for medical expenses with cash and save your receipts. Get reimbursed for the receipts when you retire.

  3. Contribute to an IRA and max it out (or backdoor roth when you make enough that that's necessary). Invest it all in a target date retirement fund.

  4. Keep 6-12 months of living expenses in a high yield savings account.
If you start when you're 23, and you make $100k/yr, you can retire at 45. That may sound very old right now, and you might think, I'll just save later. But consider that when you turn 45, you may realize you have 20 more years of this shit job before you can retire.
Are there any retired 45yos who were making around $100k and can attest to this advice being accurate?
> you can retire at 45

Kinda hard to do that when you've locked all your money up in a retirement vehicle that doesn't let you withdraw until age 59.5.

lol good luck following any of this advice and also paying for basic living expenses.
Eh, I kind of disagree. Contributing until you hit the maximum employer match makes the most sense for quality of life.
Kind of crazy the negative feedback you’re getting from this. This is extremely valuable guidance for a fresh college grad into a good paying job.
Even ignoring enjoying your youth and funding things that would provide that, most youth who make six figures are barely cracking that, and likely live in HCOL cities that eat so much of that.
I am so incredibly envious of American tax-advantaged retirement funds. Our government mandated retirement fund in Germany is a massive sham on the verge of collapse. There is no way for the average employee to retire before 65/67. Even if you have contributed a lot to the government pension scheme, they will comp you 0.5% of your lifetime pension for each month you go into early retirement.

We have nothing like the 401k/roth/IRA and it sucks.

"HR" does not set your professional obligations. If you need to be drunk to talk this honestly, you are not a "senior" nor a mentor, but an incipient alcoholic and a coward.

Then again, this person is obviously also lying to claim the engineer title - sit down, "data science!" You're only even here because Product prefers being lied to - so that really sets an ironically honest baseline on how seriously anyone should be taking any of this farrago.

"If you’re not sure what you want to do, just do Java. It’s a shitty programming language that’s good at almost everything."

- I agree, 100%.

And here's a take that a lot of the folks will disagree, and categorically state that these both belong to two entirely different domains: "Rust, is the evolution of Java. Not Kotlin, not Scala, not clojure, but, Rust".

I hadn't thought about Rust that way before, but I think you might be on to something here. Rust and Java both lean heavily into keeping developers from doing anything dangerous with expressiveness and power being pretty far down the list of concerns.
I disagree about rust.

I would say Rust is a successor to C/C++ for specific use cases.

No real successor to java yet so just keep using it, works fine and has finally evolved.

Point of java was always ease of use. Rust is... Not so.

Maybe golang is kind of an Evolution but into a very specific slightly different direction.

> The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there’s any recommendations, I’d seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)

Good docs are docs that make it easy to implement the next feature.

From an AI perspective, it's my observation that LLMs often write code with lower quantity / quality docs. At the same time, they are reasonably good at synthesizing / inferring meaning from code that lacks good docs. They often do so internally by forming a chain of thought / reasoning around how the code works. The docs that should be written as part of the code are probably the same things that an LLM would reasonably come to by spending tokens when modifying that code. I believe that this should be trained into model so that future LLM work starts with not having to build up context.

In the absence of that being built in, something I've been experimenting a little with is tuning what I want to see in docs that actually help source control / development. Currently that's at https://github.com/joshka/skills/tree/main/doc-steward - still needs a bunch of work, but it's generally better than nothing. YMMV

> 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.

Ha yup - I've felt this one before :D

I once worked with someone well renowned in my circles who gave talks, ran a blog, was cited/edited other peoples books.

His code did not match the hype, to say the least. His SDLC even less so.

There is probably an ego associated with being renowned that doesn't align with team-based work. He likened basic things like code reviews or PRs to being brought before The Hague and that the rest of the team was a bunch of bureaucrats.

Hot Take: best $5k you've ever spent.

Imagine living your whole life thinking you couldn't do it?

I'm not saying it's fun. Just saying it may be a good thing.

Quite a few major issues with the post:

  - Drinking wine solo is odd. Whiskey, vodka, or beer (and if you Russian) is the standard. Spelling mistakes like 'ever thing' support the idea of alcohol induced unordered thoughts, that's good.
  - Webdevs would one of the last to consider to be experts.
  - While I don't use darkmode, browser extensions solve the unsupported web pages. Dark mode used to be the only possible option on a black/green screen, glad that changed.
  - Pharmacist require a degree and quite a few years of studies and exams with tons of organic chemistry. 
  - HN comments being worthless is an awkward one. Lots of posts (e.g. Apple CEO change) had tons of useless stuff but it's very often the comments would bve better than the post itself.
IMO drinking is a very personal thing so I almost always drank solo. Like playing piano — I always thought playing in public very weird, almost equaling naked in public…
> The most underrated skill to learn as an engineer is how to document. Fuck, someone please teach me how to write good documentation. Seriously, if there’s any recommendations, I’d seriously pay for a course (like probably a lot of money, maybe 1k for a course if it guaranteed that I could write good docs.)

Just wait till he hears about Claude Code

I feel strange about someone deciding an interesting use of their time is getting drunk alone to write a blog post.
Wow, this is 2021? Feels like 2014. SQL, getting a new job in 2 weeks, etc.
What do you mean? 2021-22 was peak of the employment market. At least here in Europe. To get a job all you had to do was be breathing. It was insanity. SQL was and still is highly relevant. Especially in data related fields.
I did TDD properly the first time in my Masters Degree (ongoing). It was an eye-opener. Write your program in two different ways to make sure you know the requirements by making their outputs match. That's not me being snarky. It actually works well. Just make sure you can type quickly.
Until you have a real life scenario and are dependent on 3 external services that spit out enormous JSON's.

It's nice for writing libraries though

My biggest lessons I've learned as non-senior non-engineer:

1. You'll never be as smart as the smart guys. It's okay to give up.

2. Most likely you'll work with incompetent fools, get used to that.

3. Workplace is the best place to make friends. If someone tells you otherwise it's a psyop to turn you into a robot.

4. Minimize your output while trying to maximize your salary because mythical "job satisfaction" doesn't exist and it makes much more sense to redirect your energy elsewhere.

5. Luck is the most important factor.

There is nothing I've done at work I'm truly proud of. Everything I'm proud of is completely unrelated to work.

> A lot of progressive companies, especially startups, talk about bringing your “authentic self”. Well what if your authentic self is all about watching porn? Yeah, it’s healthy to keep a barrier between your work and personal life.

this is probably the best truth. after a while it's easy to recognize people that are consistently being their "authentic self" and they're usually the worst.

FFS, be professional at work.

> The most underrated skill to learn as an engineer is how to document.

Document why. I can read code. I want to know _why_ this nebulous function called "invert_parameters" that is 200 lines long even exists. Which problem did you have that this function solved? Why was this problem there in the first place? Write some opinions on maybe its intended lifetime of the codebase. Hell, I write comments that apologize, just so that a future reader knows that the code I wrote wasn't meant to be great but that I was in a time crunch or a manager was breathing down my neck, or that some insane downstream/upstream thing did something... well, insane.

Paint some picture of your mindset when writing something, especially if it's non-obvious, as that'll give all the additional context not captured in code, when reading the code.

Obviously this isn't the only good documentation rule, but I wish people - juniors and seniors alike - would do this more often, especially at the workplace.

Documenting why is incredibly important, but also why something has not been done.

The last business I started, I was coding at full steam building features that I could make work now although not optimal, so I would add comments reflecting that.

Over the > 15 years the product’s been on the market, there have been several times I’ve come back across those comments when we outgrew the quick solution several years later.

our rule for the last couple of projects has been: if the PR description doesn't explain why, it doesn't merge. code comments about why rot, but PR descriptions are timestamped and tied to the diff forever. not perfect but it's saved us more than a few times when someone asks 'why is this like this' three years later.
> What’s the worse that can happen? He fire me? I’ll just pick up a new job in 2 weeks.

That did not age well.

> Hacker news and r/programming is only good to get general ideas and keep up-to-date. The comments are almost worthless.
“Hacker news and r/programming is only good to get general ideas and keep up-to-date. The comments are almost worthless.” In full effect as per usual.
Me? not much. Ive learned more in the streets...
> You know what the best part of being a software engineer is? You can meet and talk to people who think like you. Not necessarily the same interests like sports and TV shows and stuff. But they think about problems the same way you think of them. That’s pretty cool.

That hasn't really been my experience, for every 50 people I meet maybe 1 is here for the craft, the rest want to do 9-5, have a visibility at work, work on impactful projects but actually talk about their problems, their opinions in a deeper way - almost never.

two things

> Meet and talk to people who think like you.

#1 I think this is true. And even if it technically isn't, you get to meet and talk to smart people. YMMV and not everyone at work.

#2 work moderates your coworkers.

work is disneyland. If there's a problem with someone, they are stupid, disruptive, directly mean or dangerous, work will mostly take care of it.

In the real world, none of this applies. So work can be nicer, but you might not have/need the skills to deal with real problems.

I recommend the book "difficult conversations" for getting along outside of work. (though it applies there too)