| > purely as a hobbyist This is my first clue that you're not nearly a bad as you think. The biggest obstacle to becoming a good programmer is hating to program. Many people nowadays want to get into software because they can make money. There's nothing wrong with this, but if you really don't enjoy programming it's going to be more painful than it's worth. The fact that you like it is a good sign. I saw in the comments that you've been doing this for a year or two. Programming takes a long time to get good at. I recommend reading Peter Norvig's classic essay "Teach yourself programming in 10 years" https://norvig.com/21-days.html It takes two years of programming to really break out of the beginner stage in my experience. I define this period as the period where you have to think much more about writing code than about the problem. The means that you really can't do much software development in the true sense because just getting programmings to run and run consistently take a lot of mental effort. Years 3-5 are the intermediate stage where you can solve most common problems without having to think about programming too much, but programming itself is still a source of friction when it comes to completely projects. At this stage you begin to think more about how to structure larger and larger projects, learning some clever techniques, and understanding some of the more specialized techniques in your language of choice. Expertise happens when you don't have to think about programming any more and are exclusively concerned with larger design problems. This is the point where you can reasonably write a program and, barring a few typos, will run on the first try. Don't stress too much about being a great developer, just keep coding and you will improve. |