You must read at least one book to ride
The author reflects on their engineering and artistic journey, emphasizing continuous learning, contrasting engaged professionals with complacent ones, and critiquing the tech industry's incentives for unqualified individuals.
Read original articleThe article discusses the author's reflections on their journey as an engineer and artist, highlighting the paradox of feeling both competent and inadequate in their professional life. The author acknowledges their success in the engineering field, having been recognized as one of the best engineers despite a lack of deep technical knowledge. They contrast their experience with that of other professionals who seem to "sleepwalk" through their careers without striving for improvement. The narrative shifts to the author's exploration of art, where they initially struggled but eventually found success through a single book, which transformed their drawing skills. This experience leads to a broader commentary on the importance of continuous learning and the disparity between those who actively seek knowledge and those who do not. The author emphasizes that even minimal effort, such as reading one book, can significantly enhance one's skills and understanding in any field. They also touch on the competitive nature of various professions, illustrating how levels of expertise can vary widely, and express concern over the incentives in the tech industry that allow unqualified individuals to thrive. Ultimately, the piece advocates for personal growth through education and the pursuit of excellence.
- The author reflects on their dual feelings of competence and inadequacy in engineering.
- They emphasize the importance of continuous learning, citing their improvement in art from reading one book.
- The article contrasts engaged professionals with those who "sleepwalk" through their careers.
- It discusses the competitive nature of various fields and the disparity in expertise levels.
- The author critiques the tech industry's incentives that allow unqualified individuals to succeed.
Related
On Being a Senior Engineer
The article outlines senior engineers' expectations, emphasizing maturity, effective communication, collaboration, and self-awareness. It critiques the culture of immediate gratification among younger engineers, advocating for constructive feedback and teamwork.
The Impossibility of Making an Elite Engineer (2017)
Kent Beck's article discusses the development of elite engineers, highlighting the balance between project longevity and diversity, the roles of success and failure, mentorship, self-direction, and personal growth.
Magic Isn't Real
The article reflects on a software developer's journey from confusion to clarity in programming, emphasizing the importance of experience, continuous learning, and tackling challenges to gain deeper understanding.
Stay in the Gap
The "taste gap" describes the difference between artistic aspirations and abilities, emphasizing persistence and practice for growth. Improvement leads to evolved perceptions of excellence and personal satisfaction in creativity.
I Will Always Be Angry About Software Engineering
The author, frustrated with corporate software engineering, left a high-paying job to start a consultancy, advocating for purpose and improvement in the field while contrasting it with effective healthcare experiences.
- Many commenters express frustration with the lack of genuine effort and curiosity among some engineers, contrasting them with those who strive for improvement.
- There is a shared belief in the importance of reading and continuous learning, though opinions vary on the effectiveness and necessity of reading specific books.
- Some commenters highlight the disconnect between theoretical knowledge and practical application, emphasizing the need for hands-on experience.
- Concerns are raised about the tech industry's hiring practices and the incentives that allow unqualified individuals to enter the field.
- Several comments reflect a sense of disillusionment with the industry, questioning whether the standards for competence are sufficiently high.
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"
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.
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...
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?
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 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.
How in the world do you study 100 times more than average engineers??
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".
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.
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.
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 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?
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.
Another "I take your point, but..." moment.
Robert Nystrom's books are some of the best out there for any software engineer.
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.
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.
Of course, you think if he has this much time to respond to insults he would have time to respond to my email where I said hello :(
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.
Related
On Being a Senior Engineer
The article outlines senior engineers' expectations, emphasizing maturity, effective communication, collaboration, and self-awareness. It critiques the culture of immediate gratification among younger engineers, advocating for constructive feedback and teamwork.
The Impossibility of Making an Elite Engineer (2017)
Kent Beck's article discusses the development of elite engineers, highlighting the balance between project longevity and diversity, the roles of success and failure, mentorship, self-direction, and personal growth.
Magic Isn't Real
The article reflects on a software developer's journey from confusion to clarity in programming, emphasizing the importance of experience, continuous learning, and tackling challenges to gain deeper understanding.
Stay in the Gap
The "taste gap" describes the difference between artistic aspirations and abilities, emphasizing persistence and practice for growth. Improvement leads to evolved perceptions of excellence and personal satisfaction in creativity.
I Will Always Be Angry About Software Engineering
The author, frustrated with corporate software engineering, left a high-paying job to start a consultancy, advocating for purpose and improvement in the field while contrasting it with effective healthcare experiences.