Which Programming Language to Learn – Web Programming

   Which Programming Language to Learn   Web ProgrammingToday we’re going to take a look at the various web programming languages that power the Internet. This is the fourth part in a beginners programming series. In part 1, we learnt the basic of variables and datatypes. In part 2, we moved onto functions and control structures. In part 3, we had a look at some of the numerous software programming languages. Like last time, I’ve included screenshots of what typical code in the language looks like, which I believe is a good at-a-glance indicator of whether you’re going to be comfortable programming it or not.

PHP

PHP is the undisputed king of server-side languages in use on the Internet today – running on 75% of all web servers – and is the power behind WordPress, Wikipedia, and even the user-facing part of Facebook.

php   Which Programming Language to Learn   Web Programming

As a server side language, the code is processed before it reaches the user’s browser, so all they see is the final page and none of the original PHP code. PHP is mainly used in conjunction with MySQL to pull information from a database, manipulate it and present it to the user.

PHP is general-purpose and comes as standard with most web servers – if you’ve ever heard the term MAMP/WAMP/LAMP, the P generally stands for PHP (the rest is Windows/Mac/Linux, Apache, and MySQL).

MySQL

Another component of standard web server installations, MySQL is a free, open source database server. It’s not a programming language as such, but it is a new language to learn if you want to talk to databases so it’s a key component of modern websites. Although MySQL is actually a command-line language, there are common GUI tools available such as PHPMyAdmin for managing databases more easily.

Again, MySQL is what powers WordPress  – so all your posts and content are actually stored inside a MySQL database.

mysql   Which Programming Language to Learn   Web Programming

Javascript

Not to be confused with Java, the full object oriented software programming language we introduced last week, Javascript is the daddy of interactive webpages. It’s a scripting language that’s run locally on the user’s browser, allowing webpages to respond to user interactions such as clicking on elements and timing events. To cover everything Javascript is capable of would be impossible – suffice to say if there’s something interactive on a site, and it isn’t Flash – it’s more than likely Javascript.

It’s worth mentioning JQuery at this point too. JQuery is a Javascript-framework which lets you write less code and gives you greater browser compatibility, and is quickly becoming the standard for modern webpages. It’s particularly useful for targeting specific parts of a webpage using familiar CSS terms and doing something with them, such as showing or hiding them. Although JQuery is made from Javascript, it introduces its own unique language components too, so just because you know Javascript doesn’t mean you can automatically use JQuery (you could also argue that you don’t need to know much Javascript to be able to use jQuery). We’ll definitely be looking at this one at some point.

jquery   Which Programming Language to Learn   Web Programming

Perl

Perl used to be a major force in web programming but has since been relegated to mostly just text-processing applications. It’s incredibly fast at processing text, but not of much use on the modern Internet. It’s something that all hackers have in the box of tricks though, so it’s worth checking out at some point.

To give you an idea of the power of Perl, here’s the complete code that was created to crack DVD encryption. Yes, it is rather cryptic:

perl   Which Programming Language to Learn   Web Programming

Ruby

Ruby, and its web application framework Ruby On Rails, powers some pretty major websites such as Groupon, Shopify (a commerce platform), and the front-end of Twitter. It’s a full object oriented language that’s interpreted by the server and then sent as a finished HTML page to the browser – much like PHP (yet also completely different, *sigh*). It has a number of key advantages though, namely in rapid development, less code repetition, and speed.

ruby   Which Programming Language to Learn   Web Programming

Unfortunately, most web servers do not support Ruby out of the box, so unless you’re able to configure your own server as you wish, you need to use a hosting service such as Heroku.

Python

Python is another full object-oriented high-level strongly-typed language. Adjectives used to describe Python typically include fun, easy to use, and a good learning tool – but ultimately there’s very few real-world Python web applications. It certainly sounds like a good place to start though, especially if you’re the kind of person who’s into Linux and open source / community-driven projects. Just don’t expect to be making any actual webpages with this, and there appears to be a rivalry with the Ruby community.

python   Which Programming Language to Learn   Web Programming

ASP.net

This is Microsoft’s contribution to the web language arena, predictably popular in corporate environments and nowhere else. It’s closely integrated into the .Net family, and you need specific Windows hosting to run ASP.net web applications, which in my experience is far more effort than it’s worth. Stay away from this one unless you have a really good reason not to.

aspnet   Which Programming Language to Learn   Web Programming

So, Which Should You Learn?

If you want to create a modern, interactive website, I suggest a combination of PHP, MySQL, and possibly JQuery/Javascript for interactivity. That’s not to say the languages such as Ruby and Python aren’t worth investigating as a learning exercise – which we certainly will be doing at some point – but if your time is limited and you seriously want to start learning useful real-world skills then the PHP/MySQL combo is the best place to start.

If you think I’ve missed something, then feedback and reader contributions are always welcome in the comments.

The comments were closed because the article is more than 180 days old.

If you have any questions related to what's mentioned in the article or need help with any computer issue, ask it on MakeUseOf Answers—We and our community will be more than happy to help.

95 Comments -

Tim C

What a hugely lopsided post. With no real value except for pointing out the fact that you are a php fanboi. That is fine. However if you are going to write an article like this, you should objectify the facts along with having a greater breadth of knowledge.

Jeff Fabish

All rise for the honorable PHP

Rather than degrading James as an editor, why don’t you provide actual constructive criticism which will aid him in writing his next article? After reading your comment about five times, I still have no idea what you’re pissed off about.

PHP code doesn’t have bugs, only undocumented features. I think PHP has just one the fight…

Christopher Allen-Poole

That’s *won* the fight.

James Bruce

Wow, we have fanboys of programming languages now? Most of the internet is written in PHP, it comes as standard with web servers, and its easy. Hence in an article aimed at beginners who wish to learn something useful, I recommend it. 

If you have something further to contribute though Tim, we’d like that. Perhaps make your own recommendation with a beginner in mind based upon your own experiences. 

Chris Morgan

Man you get some crazy comments…to my point, though: you said you recommended PHP over Python because it was easier and cheaper to get it hosted on sites like GoDaddy. I just checked and GoDaddy says they fully support Python application code on their site – sooooo, does that change your recommendation?
Also, while I’ve done some programming (VBA, and some other stuff), but not web stuff: I get the impression that if you are going to do web, say web with Python, you still need…what? MySQL, html, xml, CSS, and/or what else? An overview of the complete package necessary to produce a reasonably professional looking website would be very USEFUL, including the part each piece plays, and the best resource for making use of that tool (i.e. WordPress for PHP). I read all your articles, and I’m still not sure where to start; I like Python, so lean in that direction if feasible on a small budget of time and money. Thanks!

James Bruce

Doesn’t change my recommendation to be honest – web software is primarily done in PHP. Having said that, if you particularly want to learn Python just for the fun of it, then there’s really nothing to stop you. I can’t really comment on being able to write a full website with it as I’ve never tried, but it’s not going to help you adapt WordPress for instance. For a programming learning web project? Awesome.

For any web programming, MySQL, JQuery (don’t bother with core jaavscript stuff, you’ll pick up what you need with jQuery), and obviously HTML/CSS. Nothing else needed.

Good article idea – an overview of all the web technologies and how they play their role in the web. Thanks! Will try and get something written in the next week or so, published a little while after that ;)

Jonathan

 Correct me if I’m wrong but surely to create a website we need html at least, and css too. 

acc

Those are markup languages, not programming languages.

Jeff Fabish

Kind of took that for granted. Like how they don’t teach you how to sit down and be patient in driving class.

James Bruce

I did consider including those, but as @df43350123223666edd5f529e7a6edc8:disqus 
 eludes to, those aren’t actually programming languages. Sorry if that wasn’t clear. We’ve covered HTML and CSS quite a few times already, as well as got a whole ebook guide on them. 

http://www.makeuseof.com/tag/download-learn-speak-internet-guide-xhtml/

BenEskew

You obviously didn’t read that article. The author starts off saying “no” there’s no difference. Then points out that even Java is not a programming language because it runs within another program. But he missed the point.

The lack of compilation does not mean one is a “programming” language and another is not. 

“A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer.” See: http://en.wikipedia.org/wiki/Programming_language

Therefor, any “language” which relays instructions directly to a “computer” is termed a “programming language”…therefor, PHP, Java, Asp.Net, etc all are programming languages. Example: JavaScript relays instructions to a web browser application which in turn relays those instructions to the computer it’s running on…therefor js is not a programming language. PHP relays instructions to its own interpreter which in turn relays those instructions to the computer it’s running on…therefor IT IS a programming language since it’s relaying to itself.

jowido

Why can’t you make web pages with Python? I’m pretty sure Django and Pyramid are up to the task.

James Bruce

You can. Do you have any examples of real world high-traffic sites running on Python? I’m afraid I can’t find any. 

Jack Cola

James, I am about 90% sure both Google and Facebook use Python somewhere in their technology, and somewhat, quite heavily. 

Tobiás El?d-Zoltán

From what I know Google is running on V8 (it’s own framework built in JavaScript) as well as C. Not entirely sure though. V8 got plenty of hype when Node.js entered the playing field. Facebook on the other hand is using PHP through C++ documented in their Factsheet (http://www.facebook.com/press/info.php?factsheet) in the Technology section.

James Bruce

Okay, Wikipedia has this to say. It’s not widely used, but google is one of the heavier users. In fact, I think they’re the main way other people *host* python apps too on their app engine platform. 

Commercial uses
CCP hf uses Stackless Python in both its server and client side applications for its MMO Eve Online[1]
Google uses Python for many tasks including the backends of web apps such as Google Groups, Gmail, and Google Maps, as well as for some of its search-engine internals
NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment[citation needed]
reddit was originally written in Common Lisp, but was rewritten in Python in 2005[2]
Yahoo! Groups uses Python “to maintain its discussion groups”[citation needed]
YouTube uses Python “to produce maintainable features in record times, with a minimum of developers”[3]

Andrew James Tatum

I began developing web applications in 1996 and started off with Perl/CGI and moved up to PHP a year or so after that. I’d be the first to admit that PHP is easier to “get into” as it’s open source and is less expensive to get up and running. However, since working in the corporate world, I’ve switched gears and moved onto ASP.NET/C# in 2005 and have not once looked back or regretted my decision. While there are certainly pros and cons for any language, it is obvious that this article is completely lopsided. To quote nettuts, “ASP.NET isn’t perfect—there is no such thing. But it is one of the most flexible and powerful server-side technologies available today.”

James Bruce

Thanks for the input Andrew. I don’t come from a corporate background so I’m afraid I am a little biassed there. However, this article wasn’t really aimed at people looking to program for a corporate environment – but rather, “what should I learn as an MUO reader who’s never really done programming before?”. 

Jack Cola

I’ve just learnt ASP.Net and PHP, and I absolutely hate ASP.Net. PHP is so much easier to get your head around. In fact, I have an ASP.Net Exam tomorrow which I am not looking forward too.

Mike Olivera

css

Jeff Fabish

If you consider CSS “programming”, you need higher standards. It’s hardly scripting.

Evert

“Unsubstantiated comments make me sick.”… double standards much Jeff?

Jeff Fabish

How is that a double standard? You can lookup CSS, I can’t lookup why PHP makes him sick.

From Wikipedia (lazy :)
Cascading Style Sheets (CSS) is a style sheet language used to describe the presentation semantics (the look and formatting) of a document written in a markup language.

Evert

In any case the second comment still holds, “”why don’t you provide actual constructive criticism”. Something more useful than, “you need higher standard.”

Jeff Fabish

Well played.

Evert

+ “why don’t you provide actual constructive criticism”  ;)

w00t

What about QBASIC?

Jeff Fabish

^ Owns a musket. 

Rich Curry

If you’re looking for a job go with .net or Java there are tons of jobs right now using these 2 languages. If you want street cred with your fellow hackers/geeks/nerds php and perl are the way to go but there are less jobs (still jobs, just less hiring).

James Bruce

But those are also different types of programming. For someone wanting to get into web programming, PHP would be best, no? 

Also, there may be tons of jobs for Java, but it’s highly competitive. I dont think a beginner could get the level required to do anything useful in a short space of time – whereas anyone with a bit of creativity could popularise a website or sell an app on iTunes fairly easily. 

Eric Miller

There are a few new kids on the block. One of the nerdier is Node.js, Coffescript, and (since you mentioned MySQL) the various NoSQL databases. I’m a M$ developer by trade but I’ve recently started learning this stack.

James Bruce

Thanks Eric. Do you see them really taking off? Any examples of where they’re being put to good use? Server side javascript with node.js certainly sounds intriguing.

Mustafa

Great topic for discussion, but not something that will ever be settled. Having working on  web/e-commerce projects (from mid 1990s), I have to say that one should learn the about the environment that you feel most comfortable with. 

As many of you have very rightly said your goal should also be taken into consideration. If you are learning web development to create the next big thing, apache, mysql and php are great options. If you are learning it to look for a job, you may be better of on the Microsoft platform/Oracle platform(s).Also keep the big picture in mind, that all the web application engines will accomplish your goals. You may want to consider the maintenance issues (the number of lines of code it would take, time taken for a project and so on).

James Bruce

Good input, thanks Mustafa. That’s a fair summary, I think. 

Chuck Elliott

James, thank you for the article.  I think your explanation of the scope of PHP is justification enough for the recommendation.

Jeff Fabish

Unsubstantiated comments make me sick.

Jeff Fabish

You couldn’t get the users to agree what day it is, in other words – feedback is usual. The article could have been completely satisfactory and conformed to the users opinions entirely, but they see ONE thing they disagree with and suddenly you’re a piece of shit who needs to go die (and your mother’s a whore). There are going to be disagreements in the technical community, more so specifically amongst programmers. 

It was a good read, James. Any hints on what the next programming related article will be?

James Bruce

I’m struggling with what language to start on. I think Jessica would be a good choice to write a java beginners series as she’s still in college and active with it, so I won’t touch that. I thought perhaps a “My first web app” would be good, but may need to do a primer on PHP, mysql etc before tying it all together. 

Jessica Cam W.

Hi James,

By all means, write the Java series if you’d like. :) I’ve only used Java in one class so I don’t feel expert enough to do a whole series. 

Jack Cola

While I did my one Java class as well, to help me learn, I wrote an eBook for myself based on the topics in the lectures, but using my own example and wordings. But back then, MakeUseOf didn’t want it, and I never published it as PDF Editor (because of that), so it’s still sitting on my hard drive not being read.

James Bruce

That’s a shame, sorry to hear that Jack. I think MUO has changed a lot in a year though. I’m already writing tons of stuff that I was original banned from writing. I wonder if submitting your book to Justin might get it looked at again in a new light. 

Jack Cola

Nah, that’s cool. I will have a think about it – I haven’t spoken to Justin for a while though.

Jack Cola

“Stay away from ASP.NET” – I wish I could!

Stan

How about Java ?
Converting variable/data type in PHP (e.g. string, integer, boolean) is a problem.
And another big problem is lack of the Application Scope variable, while ASP, .net, and Java haven’t.

Tobiás El?d-Zoltán

What about Java? I’ve recently taken to the idea of distancing my learning curve from pure web based languages and Java seemed like the optimal choice. But from what I understand the alternative to ASP.Net is Java. And LinkedIn uses it.

James Bruce

As Jeff said, I covered Java last week in the article on software (not web) development. I can’t recommend it myself. 

Commenters have said that c# is now cloned to be on linux and mac too in the form of Mono, so I might actually be inclined to recommend that over Java. I certainly enjoyed making some educational classroom games in c# a few years ago. The tools MS provides are great for code completion and rapid development, and the software is reasonably fast. Perhaps I just havent touched java lately, and it’s no doubt evolved since I played with it, but in general the java apps I do have on my system run like crap. 

Dean Pugh

Can I add that most people here are not considering the cost side either? As this article is clearly aimed at a beginner, most would not want to spend too much money while learning. PHP can be run from your current desktop using various software for vary little, if any, cost. 
ASP.net does come with free versions, as well as the very expensive versions, but their limited and getting a development area set up is tricky.

Nigelboor

To try to keep the fanboi element out of this I just did a quick job search on jobsite.co.uk using PHP and .NET.
PHP returns 600
.NET returns 2000

James Bruce

Just digging up some numbers is not helping anyone. I already addressed the issues of getting a job in the article. If you’re looking for a corporate job then java would be a great way to go (or .net). If you’re looking to develop your own next-best-thin web application – at home, right now – you should choose PHP over .NET, because it’ll work on any web host you can find and there’s a world of support and tutorials out there. 

Rick

Wow, stay away from Asp.net? Really? I program in PHP, Java and Asp.NET and I can tell you programming in Asp.NET is heads above the rest in the Dev experience. Not only that, but compare contractor or salary rates between PHP and Asp.NET and it’s a no brainier which one I would recommend a newby to learn. In fact I’d rate Java and Asp.NET above PHP for the pure earning potential alone. PHP developers are a dime a dozen and the demand shows.

James Bruce

So I guess ASP applications are real easy for a beginner to get started developing, like out of the box on any old (free) linux server stack? 

Gabor Szabo

I am surprised you picked a deliberately obfuscated piece of Perl code instead of beautiful examples of modern web frameworks in Perl. Just take a look at either Mojolicious http://mojolicious.org/ or Perl Dancer http://perldancer.org/ 

If you are wondering about high visibility, high perfomance sites built on Perl then you might want to take a look at http://booking.com/ or http://www.ticketmaster.com/

James Bruce

I chose it because I thought it was beautiful! I’m not a Perl hater, but it’s use isn’t exactly widespread on the modern internet. It’s nice to nice it is still kicking though, and thanks for the real world examples. 

Kris

If you are curious which language you should learn, might I suggest you make a pit stop at https://github.com/languages.  Github is currently the most popular place to host an open source project, and likely is the busiest in terms of current contributions.

The language James recommended PHP, averages in at about 7% of all projects.  The current champion PHP project on github is Symfony 2, a project that demonstrates good object oriented design sense such as dependency injection, model-view-controller based web framework, and many other useful utilities and a thriving community.

Some of the other languages are fine choices as well, Ruby and Python are very mature, and have great pluggable components, and a healthy choice of training materials available.  

One of my main criticisms of PHP is that it’s object-oriented design features feel bolted on, which they were, and there’s plenty of design consistency problems in it’s standard libraries.  Many experienced PHP developers often have to refer to the manual for function parameter placement for example.  PHP is great for simple one-off projects, but it starts to feel cumbersome once a project matures.  

f you plan to make an international site, PHP lacks default unicode strings, which makes doing localization a pain, just avoid it and go with Python or Ruby which both have first-class support for unicode.

Many beginners start off with PHP.  The syntax isn’t completely horrible, it looks similar to C/Java/Javascript.  There are some annoyances, for example all variables have a $ dollar sign in front of them, and if you want to call a method you have to use the cumbersome dash-rocket “->” as an accessor instead of the usual “.” dot in most other languages.  I believe this decision harkens back to the original language designer’s preference for C++.

If you are ever asked to maintain an existing PHP project, just say no.  Most of it will be beginner level code, and likely be a huge plate of spaghetti.

Ilya Shmygol

>>Just don’t expect to be making any actual webpages with this (python), and there appears to be a rivalry with the Ruby community.

Ha! Did you hear something about the Google? There is such a company and they have opposite opinion about the Python. Python has some great web frameworks: Django, Pyramid, Flask.

Google offers  hosting for python applications (Google App Engine).

PHP and MySQL are not the best solutions. Very popular (and it’s very good sometimes), but not the best.

I agree with Tim C. You should read something about the topic before teaching people what to learn.

James Bruce

Thanks, I know Google uses Python and I know they run the app engine, as I’ve already said in the comments. 

PHP/MySQL may not be the *best*, but they are the easiest to pick up immediately and the cheapest to get running with such widespread support and real world applications.

If I had Google’s money and willingness to innovate and built an entire infrastructure to run Python site then perhaps I would. Most of us have considerably less resources than Google. 

halfas

Can you tell all the arguments you have about python and this quote: “Just don’t expect to be making any actual webpages with this” ?

James Bruce

Sure, go buy some cheap web hosting and let me know how hosting python apps on there works out for you.

Ilya Shmygol

The author deletes comments! My and another guy, who disagree with the phrase about the python.

Aibek

We don’t deleted comments unless they’re abousive. Please send a copy of the comment that you believe was deleted so that we can investigate.

Ilya Shmygol

Sorry, James! I was wrong about deleted messages. )

James Bruce

I only delete messages with profanity or deliberate trolls. I dont delete comments just for disagreeing with me, you are allowed to do that ;)

I’m not trying to hate on Python, I’m sure it’s a great language to learn and clearly has many fans, as well as very heavy support from Google. It’s obviously fast and very scaleable. 

I just don’t think our average reader is going to find it that useful if they wanted to actually make a webpage, right now, and host it on their godaddy account. I also chose PHP because *the* most popular web platform right now, WordPress, runs on PHP – so by learning even just a small amount of PHP, a beginner will be able to do some pretty amazing stuff without having to work completely from scratch. 

VirNeto

James Bruce!
 I’ve just came across reading your full sequence on this matter.
Although I have no base for a specific/technical critic I must say: this is great information (the whole series) for beginners. The comments of all articles are also very enlightening. Thanks!!! I’ll be waiting for your next!!! I’m just a beginner but keep on writing and I’ll get there;)))
Best Regards to you all.
Virneto

James Bruce

Thanks VirNeto. I’m taking a break from programming for a bit, but will be starting with PHP I expect, as that’s most likely to give immediate benefit to readers in terms of making webpages and playing with WordPress. 

Jack Cola

James, while writing for MUO for a year, over a year ago, on thing that was poorly done was authors couldn’t bounce topics/idea’s off other people before publishing. 

Reading the backlash you’ve got in this, having a platform where other MUO writers could have an input in the story (E.g finding websites that use Python), would be very beneficial.

Although I completely agree with you in your argument/point of view, other commenters actually do provide a valid argument.

James Bruce

Yep, they do have great input, which is why I love our commenters for the most part. 

Unfortunately, I dont think such a system would be feasible realistically. We know roughly what each other is wrong about, but I for one don’t want to start reading through all the articles we publish checking for something I dont agree with. I guess that’s the editors jobs, but they can’t be expected to be technical in everything we write about either. 

In this case, it’s my fault for asking more about python. I think overall the system works though. That’s why we have comments after all!

Jack Cola

Nothing to complex, something like a forum, or a Q and A style site where you can say “What do you think of this” Should I focus on this, or this”, “Am I right to say this” etc.

This way articles are more thorough, there’s less incorrect information, therefore, won’t get negative posts from expert readers.

10 people’s inputs are better than 1

Zanguinette

I am sorry but Python is not a strongly-typed language at all . 

The rest is just personal experience 

James Bruce

No, you’re right. There’s more python usage than I thought, so it’s a good we have comments on these articles that many users read through for extra info. 

However, I maintain that the infrastructure needed to run python puts it out of the hand of regular users, so I’m still not recommending it for a beginner. I’m well aware google is a heavy python user, but I wasnt aware yotube is too. But then, they are huge, huge entities that can afford to try something radical on their systems. 

You simply can’t go and get some cheap hosting and start easily running python. 

Martín Gaitán

James, thanks for reply . It’s nice to learn something new every day, right?

However your argument is a bit  weak, it’s like “millions of flies can t be wrong”.  PHP suffers of a lot (really, a lot: http://www.quora.com/What-are-the-horrors-of-PHP) of problems that turn doing things right a very difficult task. It’s possible be a good programmer despite PHP (and for that you need to know other languages), but not thanks to it.

Python is a  very easy to learn programming language, and hugely more powerful than PHP (and you wouldn’t be stucked to the web). Python web frameworks (like Ruby’s) encourage the creation of good web applications, although (of course) you could be a bad programmer despite Python. About the infraestructure, it’s true isn’t comparable with the availability of PHP , but  it’s no a real problem: http://wiki.python.org/moin/PythonHosting . Moreover, programming your web in Python you can enjoy Google’s infrastructure itself using GAE: http://code.google.com/intl/en-US/appengine/Couldn't be a good idea to update your article?

James Bruce

Hi Martin, I’m definitely agreeing with you here. Python may be a technically better language, but that doesn’t put it into the hands of small developers like myself who want to host our own code (not put it on google) with minimum of fuss. There is always a solution to the hosting problem with niche hosts, but having to search out a specific host for your website is not something I count as “for beginners”. 

Anyway, I won’t be updating the article because it would cause a discontinuation with the comment stream – but I think we’ve had a fantastic of valuable input from yourself and others in the comments here, so hopefully readers will be sure to read all this too.  

Marlon Davis

Hi James, I know this as been a long string but I get the point you are saying in that PHP allows one to be less dependent on the likes of the”big names”. Keep up the great work you are doing. Thank you.

Gary Johnson Jr

The language to learn depends on what you do.  I work in visual effects and CGI.  Python is the de-facto standard programming language.  Nothing else really matter but python in that realm.  As well as the scientific community ( which is similar to the visual effects community).  I would say most of the heavy number crunching apps use pythons somewhere.

E

Agreed, put some energy into learning PHP, MySQL and the basic web languages like CSS and HTML. Then proceed to learning Javascript, JQuery and those parts that focus on making the user experience more interactive.

Christopher Allen-Poole

It’s generally a good idea to avoid this type of post if you want to prevent flame wars — people stick to languages like they do religions. This does come across as being a little light on content too. You’re also missing Java. I don’t understand why.

If you want to work for Google, go with Java or Python, period.

muotechguy

Java was already mentioned in the first article on SOFTWARE development, since very few websites use java, and this article was all about web development. 

I know it’s high contentious, but for our readers who haven’t ever programmed before, it’s an important question to ask and explain about. 

As for being light on content, apologies but we have word limits set that we must work to. This usually means cutting out a vast amount of content to keep within publishing guidelines, but to split up the article into two would have been silly and caused even more problems (“why no python! …/… thats in part 2″ etc).. As it is , I chose to split content between web and software programming, and I think it was a fair split. 

You re right though, if working for google is your ultimate goal, then python would be a great choice. The tests are ridiculously hard though, so I doubt that any looking to start programming as a hobby would be able to realistically set that as a goal though. 

Will

Will they ever merge into one ‘super’ language? 

Jeff Fabish

Will,

I wouldn’t wait around for it. Each programming language has something that it brings to the table that no other language can come close to. It’s best to keep these separate so that you only have to learn the technology associated with the problem. 

– Jeff

noob1

Nice article,just looking for which programming languages i need to learn to become a good web developer. 
May be i’ll learn all of them soon ,one by one starting with PHP/mysql ,JS. I hope i’ll make it in 10 years .

D Sp

Thank you very much James for such an excellent post. I’ve been suffering from analysis paralysis for a long time even though another programmer friend suggested the same as yourself. I read all the negative stuff regarding PHP etc and assumed they were right. I’ve taken a look at PHP again due to your post and I will be starting with that. 

James Bruce

Glad to hear it D! Good luck, and I expect to see something great in a year, eh?

James Bruce

Great. Two huge sites with humongous dev teams. That’ll work for the beginner. 

Vivitech Ltd

I think if you’re serious about programming, you need to learn several languages. For example, you can have a website which is Programmed in PHP, but for form validation you need to know a little JavaScript & Regular Expressions least. If you will be using animation, then you need to know a little about jQuery also.

James Bruce

Absolutely. No one language is going to suffice – but thats a good pick there. 

James Bruce

I have a great respect for Perl , Joel. Please don’t get me wrong here. I chose that code because it’s damn beautiful, so I’m sorry if you took that to be misrepresenting something. 

I’ll let you in on a secret too – my first ever website, when I was like, 9 – was programmed in Perl script. I wrote a bunch of text files, and a primitive template, and made it run around creating all the HTML files, links, breadcrumbs etc. Incredible stuff it was. 

But realistically, it’s not for the beginner who wants to make a modern, interactive website. That’s great that you’re a fan of it, and that some major companies use it as a small part of their server stack – but let’s not delude ourselves. The average reader who wants to make a website, on some shared godaddy hosting for $5/month, with some skills that may then take them onto bigger things like working with wordpress – Perl is not for them. That’s why I can’t recommend it. 

Tobias

Thanks for this. I was also wondering if you could give advice on whether or not to learn HTML5 as the failsafe for the future.

I have one website (in PHP) that someone has kindly set up for me but I cannot do the simplest of things to adjust how it is viewed/used. I now feel it is time to learn.

Also, can you give me any advice regarding what sort of courses I should look at and how long it should take before I can expect to programme pages and make changes to my site. Ideally I’d like to learn a language thoroughly enough to design and build a site from scratch.

James Bruce

Hi Tobias. HTML5 isn’t really a failsafe option – its a natural progression of HTML, and even MakeUseOf is done in HTML5. If you are learning HTML – which you would need anyway to start playing with PHP for web development – then yes, HTML5 would be a good start. That encompasses a variety of other technologies though, like CSS and Javascript. You really need a little bit of everything. 

Is your PHP site custom programmed, or is it based upon an established system like WordPress? Obviously, if it’s bespoke then progress will be slow for you – you will have to learn the entirety of PHP before understand something custom made. If it’s an established system, you’ll be sure to find lots of material online to help you understand it bit by bit. That’s why I love WordPress really – you can customize and adjust it using PHP, without being a master of it. As you learn more, you can do more. 

I would honestly advise against building a site from scratch as the end goal. Use it as a playground to learn by all means, but don’t try to build a functional web app entirely from scratch. Learn what you need to get started, and use a framework such as CodeIgniter (http://codeigniter.com/) – thats PHP based, with a good learning curve and lots of tutorials. You’ll still be learning PHP, but you’ll be able to make use of that much earlier. I think if you were to start from scratch, you would probably get discouraged early on. I guess that depends on you though. 

Personally, I started with http://www.tizag.com/phpT/ , and they also do MySQL and Javascript. It’s great primer on the basics, and from there you can start playing with other systems and frameworks.  

kay

i have a question. i learned programming with java and i loved it. i delved into c# also and it was ok but i’m having a little difficulty with php because of the api documentation. i’m used to the javadoc style and microsoft but i cant find any php documentation in that format where i can easily peruse the classes, interfaces and methods. if there’s anywhere i can download such could u please send me a link.

muotechguy

Not as far as I’m aware.

Jonas

>but ultimately there’s very few real-world Python web applications

I think the team behind Google Code would like a word here.

php

Thank you for the good writeup. It in fact was a entertainment account it. Glance complex to more delivered agreeable from you! However, how can we be in contact?