I have good experince in PHP and PHP Frameworks.
And there are all sort of new programming languages and frameworks getting famous.Like Ruby,Ruby on Rails,Node.js,Angular.js,Backbone.js,Ember,Express,etc.
Do I need to master yet another language or Is it ok to stick to what I already know?
If you want to still keep whittling away at PHP code, then don't do anything.<p>You want to learn new languages and tools because you enjoy your job. At least I hope you do - you do this 8 hours a day.<p>I've worked with guys who were 20 years into their career and only knew PHP (ok ok and some C) and haven't even heard of SVN let alone something modern like Git or Mercurial. "Source Control, what's that?"<p>You don't want to become one of those guys when you're 50. Suddenly your job is precarious and worse than that, if you should lose your job where will you find other work?
It depends on what you want to do and what you want to become. As the old saying goes, knowledge is power, and the more you know, the stronger your skills can become. As a developer myself, I would say that my skills are independent of the language I'm coding in. For example I currently work in .Net, but the skills I know are easily transferable to other languages (Java, Node etc).<p>It's important to remember that PHP is not going to be suitable for every situation that you develop in and knowing what else is out there, and having a basic knowledge in how the other languages work and their pros vs cons means that you can chose the right solution at the right time. Ultimately if you want to be a PHP developer I would recommend really focusing and learning that language first and then looking further afield. After all its better to be a master of one language, with the ability to pick up new skills as needed in others, than be an amateur at 10.
This depends a lot on your situation.<p>If you work for a medium-to-large company, you may be called on to learn new technologies for new projects, new business initiatives, etc. If this happens too often it can be a bad sign, but in moderation it's a great way to learn new skills, broaden your horizons, and deepen your toolbox, so you can always find the right tool for the job (which often changes over time, since as an industry we are always enhancing our toolset).<p>If you are a freelancer or in a small startup, this is much more at your discretion. You'll still want to use proper tools for the job, but you can make use of what you already know, or try out the latest whizbang thing.<p>The common thread is that for the most part, the technology used is secondary to the business needs and how to fill them. By all means explore new languages for your education and edification, but if you are asking "Do I need another language," the answer is, "Can I use it as a tool to solve a problem I am facing?"
Do you want to grow as a programmer? Do you just want to keep doing what you're doing? Or do you want to be exposed to new ideas, new ways of thinking, new techniques, and possibly better ways of solving your existing problems?
Not master a new language, just dabble in an added few. Kill off an hour of bore learning some NodeJS or AngularJS, what's there to lose? If there's nothing to actually be gained. I do this from time to time and the knowledge I picked up later became the deciding competitive advantages for startups I work on.
The best way to look at yourself is not as a PHP developer, but as a software developer. You can be a 'king' of software development, regardless of the shifting landscape of tools available to you. As a master of software development you must keep up to date on the best tools for the job.
IMHO, if you want to be a better programmer, you should eliminate language dependency.
No one can `master` one language, but good programmer can use new language easily with less effort.