16 years professionally, but been programming computers on and off for 33 years.
Learn all the time. Don't let yourself fall into the "Right, now I am a Ruby Developer" (for any language) trap. Learn new languages, learn new ways to use them. Do challenging stuff, with other people for preference.
Avoid PHP if you possibly can - it will allow you to form and get away with bad habits.
Never reject a language on first look because you don't like the look of the syntax - you may get over your initial reaction quickly and discover something marvellous beyond your initial prejudices. (e.g. "All those parentheses in Clojure are just confusing - if you can see past it this drops away in hours, particularly once you add paredit to your dev environment of choice and you are just left with an amazing development experience)
Learn Vi(m) AND Emacs - they are both awesome and both well suited to different tasks.
Use the command line - it's hard to learn to be productive, once you are you will wonder why everyone else f's around in the GUI and with IDEs.
Having said that if you are working on a large project have a good IDE (IntelliJ or similar) on hand for when you can save a lot of time by using one - following relationships between calls and their respective classes / func-libraries etc.
Write Unit Tests.
Bake in your deployment approach from the beginning and make build->test->deploy a 1st class citizen in your projects.
HAVE FUN! (otherwise what is the fucking point)