Code and technology
What should they know of PHP who only PHP know?
Winds of the World, give answer! They are whimpering to and fro And what should they know of England who only England know? The poor little street-bred people that vapour and fume and brag, They are lifting their heads in the stillness to yelp at the English Flag! Rudyard Kipling - The English Flag
I like that stanza a lot, and (taken out of context) it rather suits an opinion I hold on the merits of learning of several programming languages. Most programmers have a core language, the one they are most able and comfortable with; I think we should expand the list of peripherals.
Knowing more than PHP
I suggest that by learning more than one programming language, you stand to learn even more about the one at the core of your skill. It’s commonplace in the programming community to stick to one language, be it Ruby, PHP, C++ and so on; but I think if you do you’re missing a trick. I’ve titled PHP herein, because it’s a language I’m familiar with, but my own adventures in JavaScript and Python especially have been enormously rewarding and have helped me learn a lot about PHP actually.
So many languages share fundamental principles, and indeed many are even derived from the same concepts, but because they differ in their approach there’s something new to understand in each. It’s these differences that will frequently bolster your understanding of your primary language, or indeed of programming as a whole.
Yelping at the PHP Flag!
Another point succinctly raised is against the dogged ‘vapouring, fuming and bragging’. How often have you read a post titled ‘243 reasons Programming Language X is shit and Programming Language Y is the King’? Or more likely, how often have you scoffed at the title and ignored it, thinking ‘what a jerk, Programming Language Z is obviously King’?
There’s no reason to attack another language just to validate your own investment in another - it’s crazy. It’s when the communities come together and share their ideas: discussing improvements and drawing inspiration from one another that things get interesting.
Stop arguing about whether their language sucks and your language is great and start listening to the opinions of another discipline: I guarantee you’ll get more out of it.
So what are you waiting for?
I realise it’s a big investment to learn a new language from scratch, and I’m not suggest that you necessarily do that. You could however easily complete a decent ‘getting started’ tutorial: it’s often the fundamentals that are most rewarding anyway. Frankly you don’t even have to switch languages: if you’re a PHP type who uses CakePHP, go and learn Symfony; if you’re a Django type have a look at Pylons.
It’s stepping outside of your comfort zone and engaging with the underlying concepts of the languages and tools you are using that will enable you to grow as a developer. As the Pragmatic Programmers have said before… consider the case of the developer who claims ten years of experience, but in reality it was one year of experience repeated nine times. That doesn?t count as experience.
Sorry, comments are now closed for this entry.
7 Comments
Excellent thoughts Will. I often have to set aside personal investments in a particular language to decide what is the best fit for a particular project. Sometimes we might go with a language or platform that is alien to me, but we have to think about what best fits the problem, what scales appropriately, what we have in the skills pool, what tools we have, etc. Some languages are useless for one thing, but a perfect fit for others. It’s been interesting getting into node.js – the event driven model is quite a different paradigm to the procedural stuff I’m used to, and it’s really made me think more seriously about Javascript!
Totally agree, the last problem with a program is the language itself (most of the time anyway..) It’s certainly very beneficial and fun to learn other languages although sometimes you just don’t have the time! Personally I can’t get enough of being thrown into situations where I have to use languages other than php – just this week I had to do a bit of VBA which is very different from what I usually use.
I don’t really know what I’m getting at. Good article though!
http://pragprog.com/book/btlang/seven-languages-in-seven-weeks
A great book from the Pragmatic Bookshelf which ties nicely into this topic ;)
In fairness, it’s typically Ruby/Rails developers that churn out those kinds of articles – they seem to have a permanent inferiority complex.
Nils, I hadn’t seen that book but it looks great – it’s going on the list, so thanks. John, absolutely agree: investing time in this sort of thing is difficult but I think totally worthwhile. And Pinksy, node has been so useful for gripping the event driven model, and by proxy it’s also helped to optimise some of the threaded / blocking work we do, not to mention request / response etc. etc.
I recommend to all junior coders to aim to learn at least two languages. One from the 'object oriented’(for example, Java) group and one from the 'memory manipulation’ group (for example, C). It gives a broad understanding of some modern coding techniques along with an appreciation of what is going on under the hood.
Good Article!