Getting Up to Speed
I learned XHTML and CSS in the mid-late 90s, back when Zeldman.com, K10k.com and Waferbaby.com were really popular. I got into systems software engineering not long after that, and haven't really looked back. Now, the web has come a long way since the pre-Ajax days, and I feel it would be smart to develop at least a working knowledge of the fundamental web technologies.
So, what, in your opinion, are those fundamental technologies, and in what order do you propose they be learned?
6 comments
[ 1.8 ms ] story [ 23.9 ms ] threadWould take one of the paths for web developer.
I would have thought HTML5 -> CSS3 -> Javascript
Get the markup right, then make it look nice, then make it functional. Basically learning in order of how pages are created.
I'm sure others will have great suggestions, so I'll pitch a few to start with (I don't have a particular ordering in mind):
Frontend:
Javascript (tons of great books and online resources out there, e.g. MDN and Douglas Crockford: http://javascript.crockford.com/javascript.html); HTML5 (http://www.html5rocks.com/en/); CSS3
Backend:
SQL (yes, this isn't really new technology); NoSql or something similar; Some kind of web framework, e.g. Ruby on Rails, which will provide you the interface between database and frontend (and much more); Some familiarity with web servers (just because you have to worry about that for your web framework)
Apologies in advance if I put the technologies in the wrong group...
- prefer https://developer.mozilla.org/en-US/ over w3schools
- Get to know Bootstrap / Zorb / grid base layouts
- Understand responsive design
- the 2 above combined means - no more table layout (http://giveupandusecss.com/)
- DOCTYPE really matters - don't go into quirks mode (no more table height="100%"...
- jQuery of course, and then Angular.js / React.js / Ember.js (and perhaps also Backbone.js)
- Any of the following back end stacks - Rails, Django, Play, Node.js/express (depending on which language you prefer, Ruby, Python, Scala/Java, JavaScript)
- SQL (Postgre / MariaDB / MySQL) and MongoDB won't hurt
- Tooling - Get to know Github, Heroku, AWS etc...
- Understand that you can do almost anything with JavaScript nowadays, it can get to about 1/2 the speed of native code now and improving every day.
- Understand that you can do almost anything with pure CSS nowadays, animations, drawing, 3D. e.g. no more image buttons.
- Flash and Applets are dead (de facto) HTML5 can do everything you needed one of these before (cameras, sound, video, chats, sockets, animation, 3D, really, anything)
- You can use any font you want (webfonts)
- XML / SOAP / XSD stayed in the enterprise world, the web / SaaS world seems to have favored the less strict / more dynamic REST / JSON approach
- Speaking of REST. learn REST, the HTTP verbs and how to design an API
- Understand JS templates, and client side MVC, and that your backend is becoming more of an API (that can serve both mobile apps and web apps as one). e.g. no more JSP / PHP mess of business logic bundled with presentation logic.
- Understand that your JS code base is going to be much bigger, and learn technologies that will help you such as - TypeScript / CoffeeScript / Dart, AMD / CommonJS / Browserify, Bower / Ender. Grunt / Yeoman. I know it sounds like a big mess of buzzwords, but there are tons of tools out there to help you organize your client side code (also look at SCSS and Compass to help with organizing your CSS and reduce boilerplate)
this is my short list, but in the end as other said, it's all boils down to HTML5, CSS3, JavaScript and HTTP... the rest are just syntactic sugars...