Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I started programming in PHP sometime before last Christmas. Before that, I had done some development with Access/VBA (1-2 years). I have a BA in Art History and a masters in Music Composition. I've been studying up on OOP with PHP 5.3, Zend Framework and some design pattern textbooks, and I'm starting to feel comfortable, conversant.

I work for a bank, unfortunately. I say unfortunately simply because I'm not really in a bona fide technical role at the bank (although my manager really supports my development work, probably b/c I work for peanuts), and most of the job openings here I would apply for are for .Net or Java.

I'm really enjoying myself, though, and I'm finishing up my first complete ZF application here at work. But I'm at a point where I'd love to start learning something different and new. I want to be excited about it, but I also want to be realistic/strategic about this, because I haven't been able to land a "real" developer job, and that is my goal (I don't care what language, or even what working environment at this point--I don't have any real experience with working as a developer yet to know what I like best, honestly. I just know I need to be part of a team now--no more working alone in the dark).

I've heard people say that it's best to learn several languages vs. sticking to the same one (especially if it's PHP, for some reason). But I've also heard the opposite. My question then has to do with that: what best complements a 0+ years professional experience PHP developer who wants to learn something new, but aim for being marketable? Should I learn other PHP tools like Drupal, Joomla, Wordpress? Or should I learn a different scripting language, such as Groovy, Python or Ruby? Or should I go for a language more like Java or C# (or even Objective-C)?

I'll have fun either way, I just want to be sure I'm not diversifying too much (or not enough), impeding my chances for a first real gig. How should I go about making myself marketable?

share|improve this question

closed as off-topic by gnat, Kilian Foth, Bart van Ingen Schenau, Dan Pichelman, MichaelT Oct 23 '14 at 17:44

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Kilian Foth, Bart van Ingen Schenau, Dan Pichelman, MichaelT
If this question can be reworded to fit the rules in the help center, please edit the question.

up vote 0 down vote accepted

First of all hats off for doing BA in Art History and a masters in Music Composition. And then finding your passion in programming. Very few in the world live 3 lifes in one.

Coming back to your question. PHP is web centric, in that sense is a server-side scripting language. It's a pretty good language with great share in the internet domain, along with great community support and forums. Drupal, Zend, Joomla, wordpress and many more are frameworks made using the same language so this can help you understand the popularity of the language among programmers.

So, IMO you should keep learning php in depth along with various tools mentioned above. Learning other language is always helpful. For windows programming, you have C++/C#/VB. While JAVA, Python can be learned for targeting platform independent applications. There are hundreds of language, but i have listed the popular ones(or the ones i remember ;-) ).

And don't worry about the job coz if PHP can't gaurantee one, then no other language can.

share|improve this answer
So, just to be sure, what you're saying is I should go ahead and familiarize myself with everything (ab ovo usque ad mala), but PHP technologies should take priority...? – user25791 Sep 15 '11 at 22:19
Yes, you can put it this way too. The point is that being a developer you should atleast have idea of how to develop things for different platform/OS and not just the web. You don't need to learn everything but a slight knowledge will always be helpful – Pankaj Upadhyay Sep 16 '11 at 5:51

I'd suggest talking to recruiters, other developers and looking at various job boards to get an idea of what employers want in your area. Another point is what kind of work do you want,e.g. would you prefer being a jack of all trades so that you handle someone wanting a website or do you want just the coding part and all the other stuff is handled for you? Those would be my suggestions for what to do next.

share|improve this answer

As for PHP there often seems to be a negative connotation toward strictly PHP programmers since allot of PHP programmers fail to operate using standard best practices. I love PHP and have worked professionally with it. However, in my experience, employers want to see some more complex work in languages like C# or Java using the latest OO.

That being said, to be a web developer you need to know CSS, HTML, XHTML, JavaScript, and PHP or DotNet or Java - using a MVC framework.

For Line of Business you need to be well versed in C#, VB, or Java with OOP and some related technologies like Crystal Reports, PDF, and/or business application servers.

Plus, a solid understanding of SQL is required for just about any developer gig.

So, the bottom line is to understand the CS principals like OOP, patterns, etc... in either C# or Java and know your SQL. From there, the specific language should be chosen based upon what is being used in your area. Look at SO Careers or Monster to see what people are wanting in your area then join and contribute to an open source project using that technology.

share|improve this answer