

Ask HN: What if PHP is the only thing you know? - jawns

I'm good enough with PHP to be able to write code professionally, but I don't know Python, I don't know Ruby, I don't know C++, I don't know Java, I don't know ASP.<p>If I ever wanted to leave my job, how limited are my prospects, knowing only PHP?<p>Or, to frame the question another way: What kind of possibilities -- in terms of opportunity and salary -- would be opened up if I were to commit to learning one other programming language ... and which should I learn?
======
rcoder
I've been on the hiring side of the interview table for web developer
positions a lot in the last few years. While only having _professional_
experience in PHP isn't a big deal, I have to say that folks who've never
shown an interest in another language or facet of software development don't
tend to impress.

PHP is a very pragmatic, simple language with a complex and baroque set of
libraries. It's great for hacking together websites, but working with PHP
(even for many years) doesn't tend to teach you the kind of technical and
aesthetic judgement that differentiates an assembly-line coder from a
productive, engaged hacker.

Learning Ruby or Python might be the shortest path to another gig, but it
probably won't push you outside your comfort zone far enough to really improve
your programming if you stick to the usual Rails/Django garden path. If you
want to really push yourself and grow as a developer, learn something
completely unrelated to the standard LAMP stack.

Lisp (especially in a modern form like Clojure) is a good choice, as are
Smalltalk and Erlang. C++, Java, or C# may let you jump up a pay grade or two,
but tend to lead into dead-end "enterprise" coding, unless you're lucky enough
to stumble into a top-notch shop that happens to be using them for their
efficiency rather than their "manager-approved" status.

Most importantly, I'd suggest actually _building_ something in whatever
language(s) you decide to pick up. Reading blog articles and tutorials is all
well and good, but it's far more impressive for you to be able to show code
and talk from experience about the relative strengths and weaknesses of the
languages you've worked with. Even a half-finished side project hosted on
GitHub (or hauled into your interview on a personal laptop) will go a lot
further than regurgitating buzzwords on demand.

~~~
gregory80
excellent point, pushing yourself outside the comfort zone is critical, at
least that I what I have found.

Though, I have also found that companies are willing to hire and teach you, if
you can exhibit excellent projects (and code), even if they are in PHP

------
KevinMS
I'm guessing you are going to stick to "web development", in which case,
knowing C++ is irrelevant.

In the case of python and ruby, while these jobs are high profile, they are
relatively rare at the moment, especially python.

Java and ASP seem to be their own walled gardens of career development. Try to
climb in if you want, but they don't really lead to anything else, but might
be a good place to be.

Only knowing PHP is a good problem to have. Lots of jobs there, especially
contracting.

------
byoung2
At the last company I worked for (Internet Brands), there were about 100
developers. 90 PHP, 6 Java (for CarsDirect.com), and 4 .NET (for a handful of
sites like Tjoos.com that haven't been migrated). Some of the PHP devs also
know a little Perl or Ruby (helpful for migrations or legacy code). IB's
business model is to migrate newly-acquired sites to PHP/MySQL whenever
possible. This keeps development cheap because PHP devs are cheaper than Java
or .NET devs.

The Java or .NET guys probably make 2x what PHP devs make there, but those
positions are in very short supply. PHP is good to know if only for the sheer
volume of jobs out there, even if the starting pay is lower. Keep in mind that
highly able devs familiar with any language will make more money.

------
bwh2
I would suggest learning both Ruby (plus Rails) and Python (plus Django).
There are plenty of PHP shops with nasty code bases thinking (even if only
superficially) about developing to those languages and frameworks. Even if
that never actualizes, it makes you as a candidate look more attractive.

I would also suggest really wrapping your head around client-side technologies
if you haven't already. In particular, JavaScript plus jQuery.

------
skowmunk
Do you know MySQL and AJAX also? How long have you worked on PHP?

If you are looking for prospects, I did be interested in seeing if your
profile matches what I am looking for. email id on profile.

good luck.

------
konad
Depends how well you can actually write programs.

ASP is a platform, not a language. Its runtime languages are VBScript and
JScript and others (PHP included I think). Their modus operandi is very
similar to PHP. I prefer JScript but VBScript is simpler. You probably know
quite a bit of Javascript already from PHP so it should be easy enough to
migrate to that.

All the imperative languages are pretty much the same. X = Y + Z; If X then Y
else Z; While X do Y; For(X in Y) do Z. The most different from that list to
PHP I would say is C++ because it introduces the dreaded MEMORY MANAGEMENT.

