I am a developer that's looking to move on more into back-end work than front-end work. The places I've worked at usually have a grand share of clients with problems that are solved by offering them websites built with turnkey software (we are a 90% PHP web shop). There doesn't seem to be much leeway to work on the back-end if I continue getting projects involving third-party turnkey solutions. The closest I get was with using SugarCRM and sometimes Magento. We don't really "invent" our own stuff here, so how do I get the most out of developing my application design skills?
Drupal is a love and hate, and considering our system has 255 modules installed (don't ask) it's more hate. It works great, until it doesn't work, lol. Though I don't think Drupal by itself is a terrible system, its when you start adding all other other crappy modules out there.
Sounds like in the ideal job like the one you're describing, there would usually a couple of very senior developers that know a lot about software, and the willingness for a company to offload some of their time to work together with the juniors. Becoming an expert is a lot about having another expert humble you and tell you how to do things right.
When people talk about design patterns here, I get curious about how many actually get to do this in their day jobs. I get the impression that a lot of the PHP experts here are in their 30's and 40's and grew up in a software culture before the web. The problem I have is that employers no longer care if you just know PHP...it's become the new HTML because it seems like just the whole world knows it by now. So more and more specialization is in demand, in specific areas and frameworks.Which is probably why that guy I mentioned before said something along the lines of "If you're a junior developer and you want to go PHP now, forget it."
Personally I'd like to use Drupal because it's still greatly in demand and gives developers a bit of a sandbox. One specialization I can add.
I do it by developing my own on the side. Create a website or service that people will use, and then create all of the elements from scratch.
It gives you a really good understanding of what works and what doesn't because you're forced to find all of the weaknesses. You have to plan for all of the error messages, and success messages, and head off mistakes the user could make before they happen.
USE it yourself. If you get confused using it, so will your users.
Is moonlighting the only choice? Guess I'll have to stick it out in my current job while I look for one that's more engaging for my needs.
I remember having a basic content management system where you create all the taxonomy related to your website's content yourself. It was kind of like PHPMyAdmin, but much higher level and only a broad level of control. I also had the crazy idea of having people create their own basic logic for dynamic pages, and having that logic also stored on the database side.
Being that I worked on that 4 years ago, the code was all very mixed in with presentational code and pretty procedural. I could have another go and see how I would create that system now.
My boss recently mentioned wanting to use Business Catalyst more and I hoping that there is something left for the programmers to do, maybe like programming extensions and tools that the designers can use.
Because really, there doesn't seem to be any well-defined development processes enforced in my job and I'm betting that PHP application design is better picked up from work than on hobby projects. I know I can bring more to the company and have mentioned picking up on PHP frameworks so that we can streamline the process for custom sites more.
On the other hand, I've been also told by another programmer that for PHP, the "floor fell off that market around 2005" and the demand for custom PHP programming work is declining, because as far as just knowing the syntax and configuring Apache, people aren't impressed by it anymore. He asked about my programming, if it was agile, and was it in cloud, and if it used cloud services like Chef, Puppet, Amazon Web Services, etc. I never used any such services in any of the PHP jobs I've had.
I'm in the same situation working on Drupal 6 and an inhouse framework built 10 years ago with C, similar to PHP. There are things I hate and things I enjoy but ultimately I do not have the freedom to build things without those technologies. The problem is may companies have so much invested in what they use that it doesn't make sense to use anything else, that only increases complexity. I would say the best thing to do would look for another job if your not happy and leave in a professional manor, maybe even sighting why, which probably people would understand. Any place you go though there are going to be up and downs, whether its the software or the people. I rather work with old software then a bunch of assholes… respectfully.