Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

My brother just started learning some html/css at school and he loves it. He asked me to give my advice on what languages to learn in order to build great web-apps by the time he leaves school. (2015 or something like that.)

I did some research, and right now I want to tell him (in this particular order):

  • HTML -> HTML5
  • CSS -> CSS3
  • Javascript -> jQuery -> AJAX
  • PHP -> Zend Framework
  • MySQL
  • Ruby -> RoR

I would like to know if this is correct before I waste his time. Stackoverflow seems like a place where people know the answer to these kind of questions ;).

Thanks!

share|improve this question
8  
Its better for your brother to learn about the fundamentals of computer science. Languages come and go. Algorithms and math skills have been around for centuries and will continue to be around for our lifetime. – P.Brian.Mackey May 26 '11 at 14:11
In about a year and a half we might face the end of the world so I wouldn't put much stock in planning for 2015. At least not yet. – user8685 May 26 '11 at 17:43
1  
Don't forget the fundamental architectures, protocols and designs of the web: client/server, HTTP, REST. – Rein Henrichs Jun 14 '11 at 19:59
@P.Brian.Mackey Agree, but "Algorithms ... have been around for centuries"? Maybe some of them, but certainly not many. – Rein Henrichs Jun 14 '11 at 20:04
@Rein Henrichs, have you looked at Sun Tzu's, "The Art of War"? Some of the strategies there could be considered algorithms depending on how broad of a definition you want to use. – JB King Jun 14 '11 at 20:11
show 3 more comments

migrated from stackoverflow.com May 26 '11 at 13:10

7 Answers

Well, you're asking for a far future prognosis and nobody knows what technologies will be used in 2015 and beyond.

But there are basic fields of knowledge that won't get obsolete in the nearest decade or two:

  • HTML
  • CSS
  • JavaScript (with frameworks like jQuery or Angular)
  • Server-side programming
    • There is a lot to learn here
  • Relational databases
  • Non-relational databases
  • AJAX
  • How HTTP works (GET, POST, cookies, sessions, PRG pattern etc.)
  • Common exchange formats, how to use and build an API (web service)
  • Performance optimization
  • Security

There is one thing which the future probably belongs to - server-side JavaScript (Node.js).

It's really important to understand how web works, learn how to program and get a lot of experience - learning further technologies is much easier since a developer has some foundation of knowledge to build on.

share|improve this answer
1  
+1 for "How HTTP works"! Should be fundametal for anyone who plans on doing more than basic, static HTML pages. – FrustratedWithFormsDesigner May 26 '11 at 15:13
I'd add a bullet-point for the 2 areas of programmable interaction: client side (jQuery) and server side (PHP/Python/Java/etc.) development. It's critical for a developer to understand where code is being evaluated. This confused me terribly badly when I was learning PHP 6 years ago. In addition to understanding how HTTP works, this would be a welcome addition. – TK Kocheran Jan 25 at 17:52

That looks like a pretty comprehensive list for being a web developer today. I'd say it's important for him to start learning those technologies while keeping an eye open for what's on the horizon. Who can say where those technologies will be in four years?

The one suggestion I'd make is learning something like NoSQL in addition to MySQL, as the current trend seems to be heading towards treating the database as a key/value store.

I personally would go the other way, and advise your brother to learn PostgreSQL and get a solid grounding in real relational database design. MySQL basically behaves like a key/value store by default and I seem to be the last hold-out Rails developer who demands actual constraints in my database. Ridiculous, but I feel sort of like an old man shaking his fist at progress when I say that.

share|improve this answer
  • Interface design: understanding and interacting with the user on all their senses.
  • Experience design: Building apps that showcase a certain ambiance and feel

I think learning how to program and code is systematic as you can learn it in school or on your own. Learning to build interfaces is something that you need to learn the hard way

share|improve this answer

Learn some/most of the administration and maintenance of various web servers. It still freaks me out that none of my "senior" engineers knows how to setup IIS.

If your brother wants to be a great web developer, he'll need to be fairly self sufficient. Sometimes problems with your web site aren't from bad code, but from "features" of the server it's running on. Getting those resolved quickly will help move you to great.

share|improve this answer

JavaScript is still on the rise, and will continue to grow in the years to come. The engines are getting faster and faster every day, and the position of a ubiquitous runtime gives it a huge leverage. Moreover, it's also gaining in popularity on the server-side (see NodeJS).

It's definitely something to watch for.

share|improve this answer
+1 Well said. JavaScript is being used to write so many layers of the stack, it is hard to think it would not be applicable in the future. – ClintNash Oct 6 '12 at 8:44

In addition to what has been stated.He should also look into learning EXT.js. http://www.sencha.com/examples/ has some examples of excellent web apps developed using the ext framework :)

share|improve this answer
+1. Agree completely. Go look at their examples. If you can set up one, you can set up all. Very robust. – ClintNash Oct 6 '12 at 8:42

JavaScript, JavaScript, JavaScript. Why?

Because it is Full-Stack. JavaScript is being used everywhere that it can be used and it is excelling in each environment in unique ways.

But don't take my word for it... look at the big companies; what are they doing?

Microsoft makes JS a first-class citizen in Windows 8. They are doing this for "The web Is The Operating System" perspective." Once you see it - you get it.

But they are not the only ones.

Mozilla is making a play for direct API interface to devices with JavaScript - as well. What does that mean? It means file access is JS to JS. And camera access is JS to JS. And Server, Database, even your Calendar Contacts - JS to JS.

Yes. Learn JavaScript.

For interesting visual stuff check out: CreativeJS.com and D3.js.

Also, John Resig, creator of jQuery, is starting an online school called Khan Academy, all in JavaScript.

Hope that helps.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.