10 Years Later: Software Opinions I’ve Completely Changed
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Unlock all features
FREE: Get instant access to 10 AI summaries, chats, or transcripts per day.
Related videos
Open Source might change forever
The PrimeTime
68.2k views
Anthropic confirms software engineering is NOT dead
ThePrimeTime
341.6k views
Software Horror Stories | The Standup
ThePrimeTime
119.4k views
Why is the Rust Compiler So SLOW?
ThePrimeTime
98.2k views
Software Is Changing (Again) - Andrej Karpathy
ThePrimeTime
166.1k views
How **WE** Use AI In Software Development
ThePrimeTime
158.9k views
Why Does Software Keep Breaking?
ThePrimeTime
184.4k views
The Insanity of Being a Software Engineer - Prime Reacts
ThePrimeTime
252.3k views
The Greatest Software Engineers of All Time
ThePrimeTime
113.3k views
So I Tried Laravel
ThePrimeTime
260.1k views
Top Comments (10)
Prime not understanding how codebases can get needlessly complex quickly tells me that he's never worked with my co-workers. "Clever programmers" who overengineer features and add useless abstraction layers for things that could possibly be problems in the future (but never will because they don't realize they're not working for Facebook or Google) are the bane of my existence. It truly is a constant battle to keep the code simple and doing only what it needs to do, not what some lunatic with delusions of grandeur thinks it might possibly do maybe someday in the far-off future once we reach billions of daily users.
I think that my #1 piece of advice for programming is simply to be prepared to throw out code. Attachment is a vice one must shed on the path to enlightenment -- pragmatically speaking, the first time you implement something, it is likely to be shit; improvement requires flushing it away.
Comments in code are great in at least one situation: when something is first done in the obvious way and then there's a subtle bug or other roadblock why it can't be done the obvious way, a comment explaining why it was done in a weird way is good so nobody goes and "fixes" it before checking if the problem still exists.
Prime you 100% need to watch the Rich Hickey talk on complexity. You’ve had this tangent too many times
Simple != easy. The statement is made for the solution, not the process for achieving it. If you added indirection (interface usage) for it to be testable, and testability is a desired quality of your system, then this complexity is part of the solution you need, and it will still be between the acceptable/expected boundaries. It isn't that you simplify your problem (unless you really are able to), you simplify your solution so it doesn't have any extra added complexity besides what is required. In regards to software, we have to deal with the complexity inherent to the problem we are trying to solve (higher level problem), plus the complexities added because of the technical constraints we have deal with (although we try to minimize those, as much as we can, by having a well put architecture), both are part of the problem itself. Maybe your solution will still be (inherently) an incredible complex monster, but at least it will be smaller than the one you would get if you didn't put the effort at all
Is it me or did 10 lines in the bullet list get skipped at once?
I work in a big Python shop and enforcing type hinting is the single best thing we've done to improve code quality.
"It seems that perfection is attained, not when there is nothing more to add, but when there is nothing more to take away." -Antoine de Saint Exupéry
Phoenix LiveView has singlehandedly reignited my love for frontend development
I used to be the code equivalent of “Hemingway has never used a word that might send someone to the dictionary” Now I’m more “poor Faulkner, does he really think big emotions from big words?”
Unlock the Data Inside
Turn Videos into Knowledge
- Get FREE 10/day: transcripts, summaries, chats
- Chat with videos, export text & PDF
- $1 free API credit for RAG, chatbots & research
Free forever plan • All features unlocked
Top Comments (10)
Prime not understanding how codebases can get needlessly complex quickly tells me that he's never worked with my co-workers. "Clever programmers" who overengineer features and add useless abstraction layers for things that could possibly be problems in the future (but never will because they don't realize they're not working for Facebook or Google) are the bane of my existence. It truly is a constant battle to keep the code simple and doing only what it needs to do, not what some lunatic with delusions of grandeur thinks it might possibly do maybe someday in the far-off future once we reach billions of daily users.
I think that my #1 piece of advice for programming is simply to be prepared to throw out code. Attachment is a vice one must shed on the path to enlightenment -- pragmatically speaking, the first time you implement something, it is likely to be shit; improvement requires flushing it away.
Comments in code are great in at least one situation: when something is first done in the obvious way and then there's a subtle bug or other roadblock why it can't be done the obvious way, a comment explaining why it was done in a weird way is good so nobody goes and "fixes" it before checking if the problem still exists.
Prime you 100% need to watch the Rich Hickey talk on complexity. You’ve had this tangent too many times
Simple != easy. The statement is made for the solution, not the process for achieving it. If you added indirection (interface usage) for it to be testable, and testability is a desired quality of your system, then this complexity is part of the solution you need, and it will still be between the acceptable/expected boundaries. It isn't that you simplify your problem (unless you really are able to), you simplify your solution so it doesn't have any extra added complexity besides what is required. In regards to software, we have to deal with the complexity inherent to the problem we are trying to solve (higher level problem), plus the complexities added because of the technical constraints we have deal with (although we try to minimize those, as much as we can, by having a well put architecture), both are part of the problem itself. Maybe your solution will still be (inherently) an incredible complex monster, but at least it will be smaller than the one you would get if you didn't put the effort at all
Is it me or did 10 lines in the bullet list get skipped at once?
I work in a big Python shop and enforcing type hinting is the single best thing we've done to improve code quality.
"It seems that perfection is attained, not when there is nothing more to add, but when there is nothing more to take away." -Antoine de Saint Exupéry
Phoenix LiveView has singlehandedly reignited my love for frontend development
I used to be the code equivalent of “Hemingway has never used a word that might send someone to the dictionary” Now I’m more “poor Faulkner, does he really think big emotions from big words?”