I've been a developer now for a number of years. I'm pretty good at what I do and can "get the job done".
But, there is a difference between "getting the job done" and "doing the job properly". Let's use an example.
Recently I developed a web site from scratch. The website runs fine and I've had no issues. Looking through the code I thought to myself that I could have done it better. I could have cut down on my MySQL queries. I could have used MVC making it easier to extend (it does need extending now).
I decided to rewrite the project using CodeIgniter. I like the framework. But I then got sidetracked because to cut down on my MySQL queries I had to learn advanced joins.
And this is the problem. Whenever I do a job properly I'm in a constant learning wheel. And topics such as advanced MySQL joins take time to learn, and then time to implement.
I don't work for a company. I do everything alone. So I'd imagine if I was working as a PHP developer for a company there would be separate teams handling the SQL.
Being solo it's difficult. And sometimes, although my knowledge is advanced I find myself asking question, after question. I probably have a lot of pride in my work. But if I had to work for a company handling complete projects I could imagine projects taking a while because I'd have to learn more and more to satisfy my pride and to ensure I'm doing things "correctly".
I do plan on getting a job after the new year. I need the job security. Which is why I'm asking this question.
What advice can you give in terms of self development and self improvement? Should I worry less? Or maybe look for a job as a PHP developer when I won't be handling SQL queries directly?
