It would be better if these fundamentals were spread out alongside code writing.
Programming is just writing code. It might or might not be complicated say you fine tune some assembly algorithm.
Developing would be next step up. As you need bigger view.
Software engineering is when you start to consider what would be good engineering and making decisions before just writing code.
Software architecturing is interdisciplinary with engineering and happens is larger systems.
I really think we have done lot of disservice, by grouping all of the things also under coding or programming.
arduanika•4h ago
This part especially:
"Some developers can fit substantially more in their memory. I have come to believe that hinders them at least as much as it helps them. When you are at your limits, you are forced to simplify the situation in order to resume forward progress. The more regularly you are forced to do that, the better the chance that you are keeping the situation under control."
It reminds me of how Bill Gates said he'd rather hire lazy developers, because "a lazy person will find an easy way to do it." Maybe even better would be to hire lazy developers with poor working memory.
svth•4h ago
rzzzt•10m ago
physicles•3h ago
"Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it?"
userbinator•2h ago
https://www.linusakesson.net/programming/kernighans-lever/in...
nine_k•44m ago
Terminally clever is when you look at code that does something impressive and say: "Oh snap, I still can't exactly get it. I've read five explanations, and still cannot understand why they are doing this here. Screwed magic. How do people even come up with such ideas?"
Genius is when you look at code that does something impressive and say: "Holy guacamole, it's so simple! Now that I see it, it looks almost obvious. Pure magic. How do people even come up with such ideas?"
Despite the superficial similarity, clever and smart can be told apart. Clever should be seen as late stage optimization, smart, as foundation.
userbinator•1m ago
IMHO "genius" is code that appears completely unintelligible at first glance, but then you examine it carefully and then feel immensely enlightened once you understand.
These are the two examples of such code that immediately come to mind:
https://news.ycombinator.com/item?id=22353532
https://news.ycombinator.com/item?id=28491562
add-sub-mul-div•3h ago
numpy-thagoras•52m ago
These matters are always problems of organization, and of prioritizing what the job is, what are the inputs/outputs, how do you efficiently parameterize them into messages and data packets, where do they go and how will you send it, etc.
jandrewrogers•2h ago
Being able to see across it at scale is what exposes elegant reductions to something simpler, which enhances maintainability. It is how you end up with the commits that delete a thousand lines of code.
paulddraper•1h ago
This is how you wind up having tons of pointless parts and layers, because no one could understand the system from end to end.
Blind men plus elephant, vs seeing men plus elephant.