Learn Web Development, First
I recently read Rob Conery's PHP or ASP.NET: Did I Do The Right Thing? Although it does a great job uncovering how a developer can literally lose half a decade of their life by focusing their efforts towards the wrong technologies, I can't help but feel as if Rob is still asking himself the wrong questions, focusing on symptoms rather than the problem itself.
Toward the end of the article Rob imagines five ways his professional life would be better today, had he not focused on ASP.NET (presumably, if he had focused on PHP):
- Know Linux a whole lot better
- Be very familiar with MySQL and other open databases
- Be less scared of JavaScript than I was 4 years ago
- Be less reliant on an IDE
- Love HTML and CSS
Let that sink in for a moment... here we have a Web Developer that is/was scared of JavaScript, doesn't enjoy HTML or CSS, is unfamiliar with open source databases and is arguably uncomfortable with Linux. These are the very foundations upon which the web was built!
By no means are my intentions to pick on Rob - I don't know him personally, nor am I familiar with his work; rather, I look to him as an example (and I believe this was his intent with his article).
The framework doesn't matter. Whether it's PHP, Rails, ASP.NET or NodeJS - these are just proxies by which you write software for the web and the languages of the web are HTML, CSS and JavaScript. If you're not comfortable, I dare say in love with these three languages, you're not a Web Developer.
By all means, you may be the best PHP developer the world has ever known; you'll find a job in which you are a mentor to those that work with you, you'll live comfortably and you'll love the work that you're doing. But, if there's one fact within the world of web development it is this: frameworks/languages, which are nothing more than varying syntaxes to achieve the same result, come and go.
In a few years, your product will be forced to evolve as the industry continues to evolve. As history has shown us, this more than likely will lead to a new languge or framework, a new way of thinking; the only constant within this vicious cycle are HTML, CSS and JavaScript. As you're packing up your belongings into a box you'll look back at the remainder of your team, the Web Developers.
If you're just starting out, or perhaps you describe yourself as one of these silo developers - only focused on a single technology - I encourage you to focus on the basics. Learn web development, first; then, feel free to explore various supporting languages.
Consider this: would you trust a surgeon or specialist, knowing they completely ignored the foundation of general medicine?