To build up that empathy, being around children or the elderly probably helps. Also, helping a relative who is struggling but you're on their side.
Also consider the difference between a native speaker of a language who just kind of knows how to say what they want to say, versus someone struggling to learn the language.
This matches my experience 100%. I am not a brilliant developer by any measure. I'm competent enough, I can put together good solutions to the admittedly low-scale problems I'm assigned, and I like to think I have a pretty good sense for the right and wrong ways of going about doing so. But I'm not even sure I could land an interview with a FAANG company, let alone a job.
My feeling at work is one of constant vigilance. I feel like if I look away for too long the gremlins will start creeping in. And I'm not talking about some imperfect design or the odd code smell, I'm talking about dropping in on a PR two senior engineers have already approved and spotting a critical security flaw in the first 30 seconds. Or a data loading pattern that works okay with the five records they've tested against but would make 300 database queries per page for a realistic dataset. Or spend 75% of their CPU time hydrating date objects from timestamps that are then immediately discarded.
I think it comes down to a lack of inherent curiosity and/or interest and/or passion in programming. To me good programming is a craft—I won't go so far as to say it's as much art as it is science, but I think there is definitely an artistic element to it. Which for me introduces a need to do something well, rather than just ticking boxes and going home. "Painting the back of the cabinet", as it were. If business requirements force me to ship some monkey-patch fix, it gives me a discomfort I can't really put into words. I immediately want to replace it with something better, because I just don't like putting work I know to be substandard out in the world. I'm not even particularly invested in the product and services my employer creates, but if it's my work I want it to be good.
Something I often hear is "I couldn't work out how to make <solution we all know to be good> work so I just did <sloppy solution that will need workarounds five seconds after clients start using it>". It irks to me to no end because without fail, what "I couldn't work it out" always means is "the first thing I tried threw up a minor roadblock so I stopped trying". And it sucks because the worse a codebase gets, the more difficult it is to contribute something you can be proud of.
Have I just had the misfortune of working at particularly crappy companies, or are things really this bad across the whole industry? I'd really like to think it's the former, but I read articles like this and dread that it's the latter.
1. Constant self-questioning while reading - "Is this obvious? did I already know this?"
2. Lots of examples or stories
3. Try to turn a simple metaphor/slogan into a complete philosophy for life - i.e "skin in the game"
How in the world do you study 100 times more than average engineers??
Edit: this is not to disparage competence. It sure beats the alternatives. Go read a book. Please don’t let it be Design Patterns, that one has already done enough damage.
I do read book but at the end I would still do things my own way and not follow someone else ‘Best practice’ because life is made of trial and errors. There is value in failing something and getting back to it.
It reads like this author is a nerd, for lack of a better word, not someone I would enjoy talking to for extended period of time.
While I agree with his point to a large degree, this line of thinking leads to some interesting possible conclusions:
1. Tech hiring processes, across the board, are "several levels" more sub-optimal than even people in the business complain about. Even when looking for fresh talent, maybe what companies screen for is wrong.
2. There are extremely poor financial incentives for any long-tailed vocation (professional sports, arts, etc). Addressing the problem the author identifies probably involves addressing this problem too, which itself is a rabbit hole.
> But since they're producing nothing anyway, or are a net negative to society accounting for opportunity cost
3. If the situation is so bad, why aren't companies training their staff directly, on the job?
4. We seem to never ask whether this opportunity cost is more expensive than Universal Basic Income because private and public sector decision making tends to be orthogonal these days.
They probably do, but it's not under the university's college of engineering and they don't call it "version control". Instead it's a subject covered in humanities courses and they call it "textual criticism".
One example: The Go Programming Language. I tried using Go several years back after using Java for years and my experience was horrible. Then I read this book and I understood the philosophy behind Go, followed all exercises. Am I Go expert? Far from it. But I am proficient enough to write my own tools or contribute small fixes to other teams at work efficiently.
I was hoping that the author revisited this at the end of the piece. We see this line of thinking on HN all the time. Perhaps judging an entire field solely on epistemic grounds is a form of all or nothing thinking?
Is reading helpful? Absolutely.
Does it mean you would trust them to work on your car? Absolutely not.
Would you trust a mechanic who didn’t read any books? I sure wouldn’t discount them because of that.
At the end of the day, there is no signal of someone’s effectiveness better than their history of getting results.
Measures like whether you read a book or keep up on a field may be correlated but are largely meaningless.
Another "I take your point, but..." moment.
Robert Nystrom's books are some of the best out there for any software engineer.
I find this pretty ridiculous. It's just that the standards are pretty low in IT. And being a good programmer just isn't a job requirement in the industry. I don't know a single case where a someone got fired for writing bad code.
Like everyone else, Australia has tech brain drain and loses its best software engineers to USA. But unlike almost everyone else it's a very rich country and so can still afford to spend billions of dollars training and deploying engineers who "haven't read one book" to quote-unquote 'solve' domestic and regional technology problems. It's a giant make-work program to keep people busy while property speculation and resource extraction drives GDP growth.
One of the things I am bad at is finding books. Books are everywhere, most books are rubbish, and yet every book I've had recommended has been amazing. So, does anyone have a good book on finding good books?
On the other hand, one can be sufficiently ahead of the competition if they find that one resource and master it well. How does one go about finding them?
I often resort to asking real folks via email, recommendations on HN or Tildes, or sometimes even on Reddit, all aimed at collecting opinions from people who have experience and developed a good taste. However, this sometimes yields bad or even no results. I wonder how some of you folks here on HN find meaningful and helpful resources on anything of interest.
1+ book, playing the guitar, having this one weird hobby, being a semi-pro gymnast—insert whatever you want from your life experience in order to have a story frame to justify a long rant about how you are so good without even trying (or everyone else is a moron).
Reading is more of a facilitator and a start. Practicing is what makes things fall into place. And being interested enough to look up and try different things out.
[1] https://ludic.mataroa.blog/blog/i-will-fucking-piledrive-you...
I'm sorry, but after reading this sentence there is no way that this man is a great engineer. And I don't care how much he studies. This is unprofessional. Pretending you don't need version control or tests is wildly arrogant.
I remember how NCC Group told me not to worry about my health insurance, because it would stay good through the end of the month, as they fired me, with no stated cause, no notice, and no severance, on Halloween.
The returns probably manifest at a senior level, where job security is already a non-issue and one has the privileges and power to make this knowledge actionable. This could be why the readers find it redundant and stick to coasting. I'd like to finish reading the Algorithm Design Manual, SICP and others, but it won't get me my next job, because I won't even be in the same room as someone who cares without jumping through other hoops first. It gets shuffled at the bottom of the pile. On top of it is: networking, building bs, contributing to bs, overengineering a bs blog where I'll write bs. I just want to work my 9-5, man (and do it well), but in my case it's a liability not to.