I'm a small business programmer. I love solving tough problems with Python and PHP. If you like what you're seeing, you should probably follow me here on dev.to and then checkout my blog.
expect it to take way longer than you think initially - like 5-10 times longer than developing a feature without TDD for someone's the first few attempts at TDD
expect code quality to go down initially when someone is learning TDD
chose easy tasks at the beginning while you're learning TDD to somewhat mitigate the points above
expect different developers to catch on at different rates
lots of people are confused about what you're actually supposed to do and test when you TDD. Read this for clarification
understand outside in vs inside out
(I've never done this but) pairing with an experienced TDDer would probably new TDDers get up to speed more quickly
I'm not sure what others will think about this one but I would probably not teach TDD to an absolute beginner programmer. Programming is overwhelming for beginners and adding TDD to the mix will just make it worse.
thanks for your thoughts on that topic. I totally agree with your points.
And I think you are totally right with your last point. There are so many "programming is easy" posts on the internet. But the reality is: It's not. Of course it's not wizardry. Most people can learn it. But starting with TDD would be too much.
I agree with you. But one little moment. In the last point you're mention that programs is overwhelming - it's ok!
But, I think that TDD in the beginning of the way it's good practice.
Yes it's difficult to understand, but it sets good tone of you code.
Even if it's hard for beginners, it is better to practice it from the very beginning.
P.s sorry for my English.
I'm a small business programmer. I love solving tough problems with Python and PHP. If you like what you're seeing, you should probably follow me here on dev.to and then checkout my blog.
My (limited) experience has been that programming is absolutely overwhelming and that beginners progress faster if you can reduce the cognitive load as much as possible.
So I would try to get them comfortable with the basics, once that's achieved, you can add an IDE, then static analysis, then unit tests. And once they get unit tests, you can add TDD.
If someone dropped me in a brand new language with completely new tools and an unfamiliar IDE, I'd probably resist writing in TDD from the start. It's just way too much.
But, that's just my experience. If you've had good success starting with TDD, that's great.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Hi Lars, great topic.
Some random thoughts:
Hi Blaine,
thanks for your thoughts on that topic. I totally agree with your points.
And I think you are totally right with your last point. There are so many "programming is easy" posts on the internet. But the reality is: It's not. Of course it's not wizardry. Most people can learn it. But starting with TDD would be too much.
Hello Blaine,
I agree with you. But one little moment. In the last point you're mention that programs is overwhelming - it's ok!
But, I think that TDD in the beginning of the way it's good practice.
Yes it's difficult to understand, but it sets good tone of you code.
Even if it's hard for beginners, it is better to practice it from the very beginning.
P.s sorry for my English.
My (limited) experience has been that programming is absolutely overwhelming and that beginners progress faster if you can reduce the cognitive load as much as possible.
So I would try to get them comfortable with the basics, once that's achieved, you can add an IDE, then static analysis, then unit tests. And once they get unit tests, you can add TDD.
If someone dropped me in a brand new language with completely new tools and an unfamiliar IDE, I'd probably resist writing in TDD from the start. It's just way too much.
But, that's just my experience. If you've had good success starting with TDD, that's great.