Hacker News new | ask | show | jobs
Ask HN:What should i learn after html/css?
8 points by Stan_Tsarevskiy 5025 days ago
Well a web developer told me to learn html css javascript, but is there a specific reason there 3 are used in web. dev. ? i also notice google code university recommends those 3.

what other languages could i learn in under 3(edit:basics in 3-5 weeks) weeks, that will be useful?

edit: later with this background, i want to go into iPhone / Android development.

7 comments

Web Sites/Applications usually consists of two parts :

1) Front-End: This is the User Interface, the part you actually see and interact with. HTML, CSS, and Javascript are the core technologies used to develop front-end. As you must have noticed, HTML/CSS/Javascript files are served by a web server and are rendered by browser(client) to display the UI. These files can be served statically or it can be generated dynamically using Back-End technologies.

Once you have mastered the fundamentals of HTML,CSS, Javascript, which is all you basically need to develop front-end, you may want to learn javascript libraries like jquery/angular.js/backbone.js etc and css frameworks like twitter bootstrap. These technologies will make your web development task easier.

2) Back-End: This is where the core business logic resides. Typically a back-end application consists of a programming language, a framework and a database. Its role is to perform the business logic, save the information in database and send the changes in UI to client as HTML. If the back-end is a REST API it can serve JSON/XML instead of HTML and Javascript can update HTML after parsing JSON/XML.

Some of the popular back-end language/framework combinations used are PHP/CodeIgniter, Python/Django, Ruby/Rails, C#/Asp.net MVC, Javascript(node.js) etc. Databases used are either relational (MySQL, PostgreSQL) or NoSQL(MongoDB, CoucheDB).

My suggestion : After leaning HTML/CSS/Javascript, learn jquery and twitter bootstrap. Then learn any one of Python/Django or Ruby/Rails while using MySQL as database.

is java still a useful language to learn or is it considered outdated?
It depends on whether you are looking for its usage in startups or in enterprise.

In the startup world very few are using Java for web development. They are using either Ruby, PHP, Python or Node.js. Java is mainly being used to develop Android applications. However, some companies like Twitter shifted to Scala after starting with Ruby. From wikipedia - Scala is a multi-paradigm programming language designed as a "better Java" — building on top of the Java virtual machine (JVM) and maintaining strong interoperability with Java, while at the same time integrating functional programming along with Java's object-oriented programming model. Here is a related article - http://www.readwriteweb.com/hack/2011/07/twitter-java-scala....

When it comes to enterprise, Java and .Net are still most used technology platforms.

If you want to start your own startup or if you want to work in a startup think about learning web development using HTML5, CSS3, JavaScript and any one of Python/Django/Flask, Ruby/Rails or PHP/CodeIgniter/Symfony. I would suggest to go with python/django. If you want to get into mobile application development learn Objective-C/ios for apple devices and Java/Android for Android based devices.

If it is all about getting a job in high profile software companies that makes softwares for big banks go for .Net or Java.

The reason you learn those three is that every web browser understands HTML, CSS, and JavaScript, and you will use all three in almost everything you make for the web.

Next you should learn to program on a server. If you already know JavaScript, node.js might be a good thing to learn, but it's a little hard to get it working on your computer.

PHP (the language WordPress is written in) is really easy to get working on your computer, so that might also be a good place to start.

Both are popular and very useful. Ruby or Python would also be good choices.

what is python specifically used for? just web development, or programming?
Python is a general purpose programming language and it is not for just web development. You can develop Desktop GUI applications, games, web crawlers, command line utilities, computer vision apps, machine learning programs, web servers and much more.

Web development using python is now generally done using frameworks such as django, flask, tornado, bottle etc. but in early days it was used as cgi scripts for generating web pages. Youtube is one great example of a web application developed using python.

HTML + CSS + Javascript are suggested because they are the core languages websites use for visual display and interactivity.

After that, PHP + MySQL is fairly popular choice for beginning web programmers. But the point isn't just to "learn" the languages, make something cool and useful out of it.

right , i want to continue and going into moblile app development.
If you want to develop cross-platform mobile applications using HTML, CSS, and Javascript, try PhoneGap - http://phonegap.com

If you want to develop native mobile applications you need to learn platform specific technologies:

1. Objective-C/ios for iphone/ipad

2. Java/Android for android phones and tablets.

3. Windows Phone 7/8 for new windows based phones of Nokia and other manufacturers.

also instead of learning css, should I just learn CSS3 , since its the newest one?
It's not that CSS and CSS3 are entirely different. CSS3 brings in some new features in addition to existing features of older CSS versions. However, keep in mind that not all browsers fully supports CSS3 at the moment. If you are developing a web application for a target audience that may be using older browsers like IE 6/7/8 you must check that the new CSS3 features works for them or not, so that you don't lose users. So, learn CSS3 but make sure the CSS3 feature you are using works in browser of your target audience. If not, make sure it degrades gracefully for users with old browsers.
I recommend learning Python. It's a very expressive language with libraries for almost everything. It's used for web development, scientific computing, desktop applications, etc. It's an easy language to learn but also powerful.

Some people here are recommending Ruby. Ruby is also a great language, and probably a little more expressive than Python. However, Ruby lacks libraries for some areas (numerical and scientific computing, machine learning..). Ruby tends to have a more web-focused community.

I would recommend Python.

should I learn css and or css3 ? if i learn css3 will i know everything that's in css?
I'd go for WordPress.

Then you'll be able to set up your own marketing sites/blogs, work as a freelancer, and know a little php too.

i know wordpress already.
if you want to go into mobile look at this http://mobile.tutsplus.com/
thanks, for the useful links.
No problem. Also, if you are mucking about with javascript and HTML5, some really useful APIs for doing crazy things are;

three.js - http://mrdoob.github.com/three.js/

kinetic.js - http://kineticjs.com/

d3.js - http://d3js.org/

and then there is always the ubiquitous jquery for reducing the amount of browser stupidness - http://jquery.com/

And if you want to do apps, you could do worse than trying out unity3d - http://unity3d.com/ (It has a free version for learning it, though it will cost you a lot to do proper commercial work with it)