Many young people who wants to enter the it industry consider programming as something really hard to learn, but is really coding that difficult?
Programming has changed significantly during last decade. It is more like LEGO now. We build software putting blocks together rather than making everything from scratch. There are dozens of tools, libs and frameworks we can reuse in our app. We follow same patterns from one application to another so if you already build one you can build million of them. Often programmer doesn’t need to create complicated algorithms anymore as all he needs is probably already wrapped by some library.
So everyone can build an application. That’s true. But still making it fast, reliable and maintainable is a challenge. Designing good software architecture is not something everyone can do and you probably need quite a lot of experience in programming to make it good.
The same thing is when it comes to testing. Making a code working is pretty easy. But how to test it? How to make a code testable? How to mock everything around? How to make tests stable and atomically fast? That is what differs good programmer from beginners.
Why do we use such technics as TDD, BDD, test first? It is because often making tests is a far more challenging task then creating features. So this practices encourage you to start from more difficult task and than implement easier part matching already defined requirements. So if you are not experienced programmer you can simply start from tests and than fit your code into them.
Hope I encouraged youths that coding is not that bad and showed what is challenging part of software development nowadays.