Live data from Hacker News

Ask HN: Reading material on how to be a better software engineer?

news.ycombinator.com

111–120 of 134 posts

Re: Ask HN: Reading material on how to be a better software engineer?

#111

A few books that I've found useful: The Goal - Eli Goldratt - It is a novel about optimizing a factory, but it is immensely valuable in thinking through what are the actual constraints on your team's ability to deliver software and how do you fix it without making other things worse. The Phoenix Project is kind of a modern retelling, but I'd start with The Goal. The Principles of Product Development Flow - Reinersten…

The audiobook version of The Goal is the best audiobook I have listened to! Each character is voiced by someone else, which sometimes doesn’t work well for audiobooks, but in this case I think they knocked it out of the park. The main voice actor in particular is phenomenal. I have tried to figure out who voiced Alex, but all credits for the audiobook simply say “ensemble cast” or “unknown”.

Re: Ask HN: Reading material on how to be a better software engineer?

#112
post #65

So I asked this same question to ChatGPT, here's its response. This thing really does have the potential to be a good recommendation tool for books/resources. "Here are a few books that may be helpful for improving your skills as a software engineer: "The Pragmatic Programmer" by Andrew Hunt and David Thomas: This book offers practical advice on a wide range of topics, including how to write clean and maintainable co…

And yet, the first two explicitly fail the criteria of the OP.

The ACM has some interesting work, but is often impractical in day-to-day practice, unless your day-to-day involves constructing databases or researching generative algorithms (for example).

Rather than seeing this as great I see it as... superficial.

Re: Ask HN: Reading material on how to be a better software engineer?

#113
I’m currently reading The Staff Engineer's Path by Tanya Reilly and it’s really good (so far). It’s a great thing to read at the point it sounds like you have reached, where programming a little better is no longer going to move the needle, even if you aren’t in a position to apply everything in it yet.

Re: Ask HN: Reading material on how to be a better software engineer?

#114

Earlier quoted context omitted.

It shouldn't. The fact that it recommended Clean Code goes to show it's literally aggregating a bunch of books that are commonly recommended. Clean Code is really not the way you want people writing code, especially judging by the code examples in the last half of the book.

Can you expand on why you feel that way? A few people I respect have told me they got a lot out of it, so I'm curious to hear what you think is wrong with it.

IMO, the advice is all over the place. Sometimes it's good or almost, but often obvious or accepted (maybe a sign of the times?). Sometimes it's bad or ambiguous. If you can make that call, you are likely experienced enough to not need it. If not, how would you know what to follow, and what to ignore?

There's also a shocking lack of evidence that applying "clean" code rules actually leads to, well, "better" code (more maintainable, or even just more readable). In fact, in some cases, the rules kinda clash.

So in the best case, you read it, think about it, and maybe pick up one or two new things. In the worst case, it leads to pointless zealotry that can be quite toxic, especially when forced onto other people.

In short, save your money. Clean code is a grift, like many self-help books. You do have to give to Uncle Bob, he recognised that in a gold rush it's better to sell shovels (as the saying goes).

This has been linked elsewhere already, but is a better critique than I could do in a comment: https://qntm.org/clean

Re: Ask HN: Reading material on how to be a better software engineer?

#115
People have recommended some excellent books.

I will advise something different, find a mentor.

The most important parts of actually -engineering- software, not bashing out code come from intuition and taste and these are best taught through a mentor.

If you can't find a mentor at your current company then consider getting involved in OSS, particularly in well engineered projects like Linux, PostgreSQL, Apache projects, etc. If you have the capacity for this it's one of the strongest ways to increase your capability and strengthen/widen your network which will help further your career in other ways.

Once you have found a mentor focus on being a good student. Learn how to ask the questions that will prompt insightful answers, the "why" rather than the "how". Especially try to learn what -not- to do. Experience doesn't always need to come first hand... getting burnt isn't necessary to understand not to touch hot stuff.

Not the answer you asked for but I think perhaps even more important than what you can learn from a book.

Re: Ask HN: Reading material on how to be a better software engineer?

#117
There are many books, articles, and other resources that can help you to become a better software engineer. Some popular choices include "Clean Code" by Robert C. Martin, "The Pragmatic Programmer" by Andrew Hunt and David Thomas, and "Code Complete" by Steve McConnell. These books provide practical advice and guidance on a range of topics, including design, testing, debugging, and refactoring.

Re: Ask HN: Reading material on how to be a better software engineer?

#118

Earlier quoted context omitted.

It shouldn't. The fact that it recommended Clean Code goes to show it's literally aggregating a bunch of books that are commonly recommended. Clean Code is really not the way you want people writing code, especially judging by the code examples in the last half of the book.

Can you expand on why you feel that way? A few people I respect have told me they got a lot out of it, so I'm curious to hear what you think is wrong with it.

There's A LOT I could write about Robert Martin and Clean Code, but in short:

- focused on the readability of small functions rather than the readability of the whole program. This gives you unreadable programs containing lots of small readable blocks of code. I argue this is wrong. We care about programs first and foremost.

- arbitrary rules ("ideal function should have zero arguments", "functions should be two to fours lines long"). He hasn't run studies, he hasn't provided any proofs. Nothing scientific, it's just some guy's opinions.

- his code examples speak for themselves, in a bad way. Check out the link posted in a sibling comment. They show a person who's trying to put their ideas in code for the first time (or, at the very least, first time trying to write non-trivial code) and it's becoming obvious that those ideas don't work. But the person persists and publishes the book regardless.

- he hasn't really achieved anything in software apart from selling books and consultancy services. Name one impressive piece of software that he wrote, like a version control system, or a database, or a high performance JSON parser. All he's done is (as far as I can tell) CRUD software. That's not even enough for an "appeal to authority" argument.

In the words of a classic, Robert Martin is a "self-appointed expert". I would be very skeptical about following his advice.

> A few people I respect have told me they got a lot out of it

I don't mean to offend you. If I had to guess, these people you respect work on trivial software, just like me or Robert Martin. It's software you can write using almost any ideas or methodology. It doesn't matter what you use, because the task is so simple. Read data from a frontend, write to a DB, read from a DB, send back to frontend. You can do this using assembly x86, Fortran, OOP (whichever flavour), FP, whatever P.

So when people say "they got a lot out of it", I take it this means "I do things a lot like Robert Martin (as opposed to a mythical idea of > that's meant to make the code unmaintainable), and it seems to work; I deliver features and I get paid". And that's fine, I guess. You can make your life harder by following Robert Martin's advice and still achieve your goal.

The problems begin when you need to start writing "real" code (rather than CRUD/plumbing), like anything that's supposed to have good performance, or actual CS problems like TSP, path finding, and so on. Robert Martin proved he can't write a readable prime number generator even when performance is not an issue.

My advice is to keep respecting the people you respect but focus on the CS and mathematics fundamentals instead. IMO there's little to nothing in Clean Code that will make you a better developer.

Re: Ask HN: Reading material on how to be a better software engineer?

#119
post #65

So I asked this same question to ChatGPT, here's its response. This thing really does have the potential to be a good recommendation tool for books/resources. "Here are a few books that may be helpful for improving your skills as a software engineer: "The Pragmatic Programmer" by Andrew Hunt and David Thomas: This book offers practical advice on a wide range of topics, including how to write clean and maintainable co…

How did you get that? Any attempt I do at recommendations or summaries of books is met with a cookie cutter response that it can not do recommendations because it can't access the internet.

Just hit try again. It very often says it can’t do something, then does it on the next try.

Re: Ask HN: Reading material on how to be a better software engineer?

#120
post #117

There are many books, articles, and other resources that can help you to become a better software engineer. Some popular choices include "Clean Code" by Robert C. Martin, "The Pragmatic Programmer" by Andrew Hunt and David Thomas, and "Code Complete" by Steve McConnell. These books provide practical advice and guidance on a range of topics, including design, testing, debugging, and refactoring.

Most of these books are so trivial that if you’re already a professional you should be surprised if you learn anything from them.

Except for the Bob Martin one, which you just shouldn’t read since he is not good at programming and his advice is bad.

Post reply on HN