To be confident in Basic Programming, you will need to know the following concepts.
- Variables and Scope
- Control Flow
- Function and Object Decomposition
- Design Patterns
- Databases and Data Modelling
- Libraries and APIs
- Deployment and Administration
- Automated Testing
For Advanced Programming you will need to understand,
- Profiling and Scaling
- Architecture Patterns
- Workflow Patterns
- Enterprise Patterns
- Computer Science
- Advanced Maths
- Reverse Engineering
- Integrated Testing
- Hardware, Networking and Operating System concepts.
How do you overcome the fear of wrong code and become more confident ?
In all probability you went to a college that sucked. The situation is fairly dire with misdirection everywhere.
The gazillion framework authors, language designers who have thought of the problem are here to do the thinking for you and tell you to use their stuff. But their incentives are skewed. Yes their websites dazzle with videos, their demos and conferences are a weeping glory but learning a framework and idiosyncrasies of one language will never help to overcome the fear.
Here are time and tested methods,
- Trial and Error
- Find a mentor and work on a project with him / her
- Build and Distribute a Game or 10 Apps and maintain it on your own
- Join a startup as an intern which does code reviews
- Do a course completely which stresses the basics not just the frameworks
- Work for free at a Non-Profit while you learn
It should not take more than 3 months to do this, although trial and error will take longer than that
If you want to become more knowledgeable, reading and practicing is the only way. It will take time. The career has its ups and downs, but you will not get there in 21 days.
I am happy to mentor and do code reviews. Teaching is something I enjoy. Feel free to get in touch with me if you are interested.