Live data from Hacker News

Cargo cult programming (2020)

blog.bitgloss.ro

31–40 of 50 posts

Re: Cargo cult programming (2020)

#31
post #9

"Ask them to explain in detail, a small part of the product. Yes! In detail! ... Everything is explainable in layman’s terms…" - so now you dependent on the teaching/explaining talent rather than code.

It's more accurate to say you depend on the teaching/explaining talent in addition to code talent. Why is that a problem? I've never heard anything as helpful for learning as the Feynman technique: https://fs.blog/2021/02/feynman-learning-technique/ The article's mention of "best practices" rings incredible true. If it's a "best practice" you should be able to easily list a half dozen reasons why. Otherwise you don't…

If you go with physicists, it is said that Landau was kind of bad lecturer. Feynman was good, Landau was bad. But one can't say he did't understand what is going on. "Best practices" should be real and achievable. What you are trying to emphasize sounds like a maximalist bullshit

Re: Cargo cult programming (2020)

#32

Earlier quoted context omitted.

Who remembers their sources anyway? Once you learn a concept or a principle, the source of that knowledge fades away pretty fast while the concept remains.

Getting a bit off topic but I definitely have some strong associations between concepts and the time & place or people I learned them from.

For some concepts, yes. Radical new approaches to things that give you an "Aha!" moment will be memorable.

But often you synthesize ideas too. You take your body of knowledge and produce a good idea from it. Some concepts are "obvious" when you've learned other, related concepts.

In those cases you wouldn't have an external source. After years on the job, you should have a lot of things like that. They may not be original ideas, people have come up with the same ideas before, but nobody told them to you.

Re: Cargo cult programming (2020)

#33

Cargo culting is basically doing something you don't understand, hoping that it'll accomplish your goals. Following this person's advice to not learn from blogs and articles, and instead only learn from books, sounds like cargo culting to me. The source of the information doesn't matter. What matters is learning new concepts, knowing how to apply them, and understanding the reasons for applying them. You can learn th…

My attention span for books is very small i learn better from Blogs, articles and small videos. I have finished very few technical books yet i have learnt a ton of languages only by looking at blogs and docs.

Re: Cargo cult programming (2020)

#34
post #28
post #18

> What you need to hear is books and good authors (e.g. Kent Beck, Robert C. Martin, Martin Fowler, Michael Feathers and many more). A former coworker is obsessed with some of these authors, particularly with the concept of clean architecture. It doesn't seem that bad until you read the Java-looking Python monstrosities he writes.

Yeah, dogmatically following the teachings of one of these "prophets" (e.g. Uncle Bob's "Clean Code" bible) can also be a cult. And if you don't really understand why you're doing it, it's some kind of cargo cult too...

Plus some of these authorities, while well versed in some topics, are not reliable in others. For example, Uncle Bob is a minefield -- knowledgeable in some topics, but also very stubborn and tends to preach about topics he knows little about, like functional programming (preach against in this particular case, with a heavy dose of strawmanning).

Re: Cargo cult programming (2020)

#35

Cargo culting is basically doing something you don't understand, hoping that it'll accomplish your goals. Following this person's advice to not learn from blogs and articles, and instead only learn from books, sounds like cargo culting to me. The source of the information doesn't matter. What matters is learning new concepts, knowing how to apply them, and understanding the reasons for applying them. You can learn th…

Cargo culting is basically doing something you don't understand, hoping that it'll accomplish your goals.

You can see this heavily in the Clojure community, at least in the hn/reddit/slack circles. It gets annoying seeing others think they have some kind of superpower because they use Clojure. I blame Rich Hickey videos since they are heavily in the style of a good salesman.

Re: Cargo cult programming (2020)

#37

Earlier quoted context omitted.

I tend to use my commit messages for things like this.

The advantage of having it in a comment vs in a commit message is that the source is immediately available to another developer browsing the code. Otherwise they will have to use git blame (or equivalent) to see why you did it that way.

Commits are forever, comments could be deleted by someone 'cleaning up'.

Re: Cargo cult programming (2020)

#38

Cargo culting is basically doing something you don't understand, hoping that it'll accomplish your goals. Following this person's advice to not learn from blogs and articles, and instead only learn from books, sounds like cargo culting to me. The source of the information doesn't matter. What matters is learning new concepts, knowing how to apply them, and understanding the reasons for applying them. You can learn th…

I'll try to empathize with the original author by providing an example "from real life" or from my life anyway LOL.

Blog posts are too small to provide a lot of information. So in 2021 if you're programming a STM32 you're probably doing something complicated so if its license compatible blah blah etc you're probably/possibly pulling in the whole MBED OS along with include rtos.h and doing everything in separate threads etc.

Which is good for real world projects that are complex enough to benefit from a full featured RTOS.

But its cargo culting if you're literally blinking a LED for a kids toy or similar level of complexity.

The world is full of microcontrollers that do little more than act as timers or do protocol conversion. If you implement a car transmission microcontroller that needs to convert a quadrature motion input to a single canbus thing, if you do it as a raspi with full Debian linux including GUI and 5 layers of middlewear you have seemingly infinite security surface and reliability surface and will never be able to prove its unhackable or even reliable. But if you do a quadrature encoder and canbus interface in, I donno, 50 or so lines of commented C that handle various error conditions and sensor failure conditions, its going to be very easy to prove it works reliably and very difficult if not impossible to hack as one of the 375 microprocessors supposedly installed in every new car. On the other hand the GUI and 5 layers of middlewear might unfortunately be the best way to implement the stereotypically hypercomplicated GUI that new car buyers have come to expect/dread.

Re: Cargo cult programming (2020)

#39
The overall idea of learning from reliable sources over the evergrowing heap of clickbait is sound. However that shouldn't mean avoiding blogs - they can still be excellent sources of correct deep technical information.

Re: Cargo cult programming (2020)

#40
post #9

"Ask them to explain in detail, a small part of the product. Yes! In detail! ... Everything is explainable in layman’s terms…" - so now you dependent on the teaching/explaining talent rather than code.

It's more accurate to say you depend on the teaching/explaining talent in addition to code talent. Why is that a problem? I've never heard anything as helpful for learning as the Feynman technique: https://fs.blog/2021/02/feynman-learning-technique/ The article's mention of "best practices" rings incredible true. If it's a "best practice" you should be able to easily list a half dozen reasons why. Otherwise you don't…

From the man himself:

> Feynman was a truly great teacher. He prided himself on being able to devise ways to explain even the most profound ideas to beginning students. Once, I said to him, “Dick, explain to me, so that I can understand it, why spin one-half particles obey Fermi-Dirac statistics.” Sizing up his audience perfectly, Feynman said, “I’ll prepare a freshman lecture on it.” But he came back a few days later to say, “I couldn’t do it. I couldn’t reduce it to the freshman level. That means we don’t really understand it.”

https://kottke.org/17/06/if-you-cant-explain-something-in-si...

Post reply on HN