|
I've been programming for a while purely as a hobbyist for many years and as a professional for less. I've come to realize I'm not very good at it and thats unlikely to change. I have basically no CS knowledge and am not even really that great with the "practical" stuff despite having been at it for so long. There's not a single language I'd consider myself good with, maybe one or two I can write and maybe one I'm ok with. I can read most code and I suppose consider myself well read when it comes to tech in general, in that I have very surface level familiarity with all sorts of things many most people have never heard of, although I must stress the "surface level" part. Its good for temporarily sounding smart or experienced, but most of that however is unfortunately useless. I can recall my last interview tripping up on questions about very basic OOP concepts, which you'd think I'd have internalized now and there's no way in hell I'd make it past a phone screen for your average whiteboarding company. I know many people much less experienced or even relatively new who are significantly better at this. I suppose that some people are simply more intelligent or at least more inclined to the proper skills than myslef, which isnt neccesarily good or bad, more of just a fact. I also suppose that I'm an ok "hacker" in that I can get very interested / fixated on certain problems, although my solution is more likely to be a complete mess. Main problem is I'm not sure what quite to do about it. I'm not sure this is a "try harder" type solution, as I've been at it much too long for brute forcing to be realistic, but most of the alternatives seem dreadful. Not sure what options I have given my strengths and weaknesses. |
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.