3 ms·
This post seems to support my hypothesis about TDD: it is for the poor programmers. If your programming skills are limited (for whatever reason - you are junior
by haspok 4y ago
This post seems to support my hypothesis about TDD: it is for the poor programmers. If your programming skills are limited (for whatever reason - you are junior or you are just sh*t tired or distracted) it can help you by not enforcing you to think your code through, and it enables you to make some kind of progress despite of that. (Whether that is a good thing or a bad thing - I'm not sure, but for juniors I can accept it as a viable alternative.)
But the problem is that if you _only_ do TDD then you will be stuck being a poor programmer, because you will never develop the mental skills to design and hold code structures in your head beyond the trivial size. Beyond a certain point of maturity in your professional career you will just have to move past that, and then you will realize you have no use for TDD in 99% of the cases, it doesn't help you, in fact it slows you down and makes your code quality poorer.
- maest 4y agoThat's an edgy thing to post, tbh, in terms of how HN readers will take this. I think there are 2 arguments for TDD: 1. For at least some bits of your code, you would benefit from having tests. Writing tests after the fact is a pain, so might as well start with them. 2. Even for highly skilled programmers who enjoy thinking about their code deeply as they write it, there is still a class of difficult algorithms where they would benefit by writing the tests first. I'm thinking about stuff like tricky graph algorithms or scientific computations etc. That being said, I generally have found TDD to be too onerous - except for maybe 1% of the time when I do find the extra safety brought by the tests to be useful.
- Shish2k 4y ago> This post seems to support my hypothesis about TDD: it is for the poor programmers If there’s one thing I’ve learned after decades in the industry, it’s that we are all poor programmers. Our squishy wet human brains are simply not a good match for what computers do, and as such, we should take all the help we can get :)
- pcthrowaway 4y agoI think it's more that TDD is great for testing the kinds of things juniors are more capable of writing. Once you're dealing with multiple systems, or outputs dependant on the combination of an input and a complex state, unit tests aren't as easy to write or as useful.
- jonstewart 4y agoI encourage you to program with Ward Cunningham sometime and then call him a poor programmer.
- antifa 4y agoThis is maximum Dunning–Kruger effect right here. This is how you end up with cowboy code nobody but you can debug. You'll spend all day bragging to everyone on Twitter about how you can put "big data structures in your head" meanwhile you're spending hours manually testing things that only require 10 seconds of the full test suite. Then over the next 2-3 years, random things break between releases unless you're QA team is doing hours of regression tests all the time.