

Ask HN:What should i learn after html/css? - Stan_Tsarevskiy

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.<p>what other languages could i learn in under 3(edit:basics in 3-5 weeks) weeks, that will be useful?<p>edit: later with this background, i want to go into iPhone / Android development.
======
anujkk
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.

~~~
Stan_Tsarevskiy
is java still a useful language to learn or is it considered outdated?

~~~
anujkk
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....](http://www.readwriteweb.com/hack/2011/07/twitter-java-scala.php)

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.

------
beatpanda
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.

~~~
Stan_Tsarevskiy
what is python specifically used for? just web development, or programming?

~~~
anujkk
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.

------
coryl
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.

~~~
Stan_Tsarevskiy
right , i want to continue and going into moblile app development.

~~~
anujkk
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.

~~~
Stan_Tsarevskiy
also instead of learning css, should I just learn CSS3 , since its the newest
one?

~~~
anujkk
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.

------
davidxc
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.

~~~
Stan_Tsarevskiy
should I learn css and or css3 ? if i learn css3 will i know everything that's
in css?

------
dylanhassinger
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.

~~~
Stan_Tsarevskiy
i know wordpress already.

------
venturebros
if you want to go into mobile look at this <http://mobile.tutsplus.com/>

------
ktizo
Under three weeks.. hmm.

haxe - <http://www.haxe.org>

lua - <http://www.lua.org>

processing - <http://www.processing.org>

smalltalk - <http://www.smalltalk.org/main>

puredata - <http://puredata.info>

arduino - <http://arduino.cc/en>

~~~
Stan_Tsarevskiy
thanks, for the useful links.

~~~
ktizo
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)

