General Question

nononoyesno's avatar

In what order should I learn web design languages?

Asked by nononoyesno (204 points ) February 16th, 2010

Where should I start? Obviously, HTML, right? Then what? What are the top 3 or 5 languages every decent web developer should know, and listed in the order that they should learn them?

I’m guessing:

1) HTML
2) XHTML
3) CSS
4) PHP
5) Java

?

Observing members: 0 Composing members: 0

18 Answers

Cruiser's avatar

Web design First…River Dancing Second!! Good luck!

jrpowell's avatar

I would start with XHTML and CSS first. There is no reason to not learn them at the same time. And you could sprinkle a little JavaScript in there.

Then I would learn PHP and MySQL. Both go hand in hand. It isn’t hard to tackle them at the same time.

And Java is not the same as JavaScript. You want to learn JavaScript.

wenn's avatar

xhtml/css > php & mysql > javascript (jquery)

thats how i learned it, plus actionscript 2 & 3 sprinkled in everywhere…(hate flash)

and yeah Java and Javascript are not the same. only similarity are the letters “j a v a” in the names.

phoenyx's avatar

It depends on what kind of web development you’d like to do. If you want to write Flash games you’ll need to learn ActionScript. If you want to store/retrieve data you’ll want to learn SQL. If you want to learn cool UI behavior you might want to learn javascript. If you like Microsoft products, you might want to learn ASP.NET. If you want to do “enterprise” stuff you might want to learn Java.

For the stuff I like to do I’d recommend:
1. (X)HTML
2. CSS
3. Ruby or Python or Perl (nope, I never recommend PHP)
4. SQL and a database to use it with (my preferences are postgresql and sqlite)
5. The basics of running a webserver (like Apache)
6. Javascript

(First two are important, the order probably isn’t as important for the rest)

stevenelliottjr's avatar

You should have a strong grasp of HTML and CSS before getting into any server side languages. For that though I’d recommend python or ruby (not PHP). Then I’d learn about relational database theory… It’s so important to understad set theory and the algebra behind it all. Then learn SQL (though if you’re using something like rails or django you’re not going To use a “ton” of SQL like you would with say php (most reprehensible language ever). When all that other stuff is solid learn ajax.

jrpowell's avatar

I don’t get the PHP hate. It is well documented and pretty fast. And it is portable to damn near any host. The same can’t be said for Rails or Django. PHP isn’t a bad place to start out. Ducks

noyesa's avatar

@johnpowell I suppose it’s because it’s easier to hate the language than embrace it, much the same reason there’s a strong legion of C++ haters. When people learn “secondary” languages, they tend to hate them for all they ways the differ from what’s reasonable or that they expected it to do, i.e., in what ways it differs from their choice langauge. There’s nothing wrong with PHP, but if you’re coming from the perspective of a Ruby or Python programmer, you’re going to be annoyed with all the curly braces, the vast number of built-in functions, and seemingly obscure idioms.

Python and Ruby have much cleaner syntax than PHP, but syntax that reads like a book is something used to entice beginning programmers by showing them how similar Python code can look to pseudocode. People need to learn to see beyond the visual cleanliness of the syntax and be able to interpret the semantics of the code, which is just as strong in PHP as it is in Python, Java, or C++.

I think the best way to think about web development is to start with XHTML, with a concentration on semantics—focus on marking up your data in a logical fashion, since JavaScript/DOM and CSS are layered on top of that framework. You can learn the following two in either order, but JavaScript is more useful if you know CSS. The next level is learning a server-side programming language. PHP is a great choice as its syntax won’t be too much to choke on once you’ve got a handle on JavaScript (Python and Ruby are a wild departure form PHP), it’s fast, and contains a plethora of built-in functions that allow even a novice user to do some remarkable things with very little code.

erichw1504's avatar

Your list looks pretty good. I would also learn some Javascript. Also, be sure to learn the new HTML5 tags. They are our future.

J3's avatar

If you’re just starting out it might be better to begin with the (still being worked on, but pretty much done but the details) HTML5 so that is second nature to you, rather than having to adapt to it as us old-timers will!

wenn's avatar

@johnpowell My disllike for PHP, however useful it can be, is that is the code(especially more complicated scripts) is shit nasty to look at and work with.

But I am also more into design than front-end/programming.

phoenyx's avatar

@noyesa
I did C and Java programming before I did PHP programming; I have no problems with curly braces. Every language has idioms. Every languages has some surprises. Every language has its warts. Most of the time, once I’ve learned the language it starts to make sense and I can accept the warts. The reason I dislike PHP is because the longer I used it the less sense it made, the more warts I came across and the more I felt like I was fighting against the language. It is the only language I’ve used where the more I learned it, the more frustrated I got.

“w”+“t”+“f” == “PHP language”
=> true

noyesa's avatar

@phoenyx I was really just making reference to the fact that PHP syntax is often cluttered and the code voluminous. Again, to each their own. Nobody is going to learn, understand, and use every possible language. You own the ones you’re good at, and those are your frame of reference. But nonetheless, PHP is a usable, perfectly good alternative, and if you knew its warts, however many there may be, as well as you know your language of choice, you wouldn’t have a problem working with PHP. It’s not my language of choice either, but in terms of practicality, applicability, and ease of use, it’s difficult to recommend anything other than PHP. The things that make it so traumatizing to any disciplined programmer (spaghetti code, mixed presentation and logic, strange arrays, messy standard library) are the very things that make it so easy for someone to get over that initial barrier and be able to think about how a web application works, which is the most sensible explanation for PHP’s popularity in the first place.

I think my favorite inexplicable PHP wart (or least favorite, if you will) is that if you use the comparison operator on any SplFileInfo object, it always returns true, no matter what the other object is. That cost me about ten billable hours. It’s ridiculous, but true. =)

stevenelliottjr's avatar

@noyesa you are totally right; PHP is great for the first 6 months that you are using it. Once you get deeper and deeper into big projects the more confusing it gets. The guy that developed the language himself said that he never intended for it to be language… he used it to count hits on his online resume.

noyesa's avatar

@stevenelliottjr Absolutely, but something that is so important in PHP is to learn which parts of the language you should probably avoid altogether, lol. Every language has this. There are lots of things that aren’t clear, don’t yield maintainable code, or are ill-defined. Another example language is JavaScript. Douglas Crockford wrote “JavaScript: The Good Parts” to emphasize those parts of that language which are worth knowing and using and those which should be avoided, revealing a subset of the JavaScript language that, when used properly, is quite elegant and nice to work with.

PHP is very similar in that regard, except there are a lot of parts of the standard library and the ever improving SPL that just don’t smell right. If I see “Spl” prefixing the type of any object that I don’t remember the origin of, I don’t immediately trust it without looking it up and researching the quirks of that data type. I’m not arguing that PHP is just as good as Python or Ruby because there are a lot of things that make PHP difficult, but it has its redeeming qualities.

PHP works very well for a simple approach to creating a dynamic website. However, web development with Python or Ruby requires a lot of high-level scientific programming discipline to even understand. Rails, for example, isn’t going to make any sense to someone who doesn’t understand object-oriented programming, software development, databases, CGI, etc. Frameworks like that are a response to the deficiencies that procedural, low level web app development presented, like in PHP, and are difficult to understand or appreciate without first understanding web development, which on that level is harder to use and understand with Python or Ruby than with PHP. They factor out the tedium and complications that arise in the course of developing a web app from scratch and are very automagical, but leaky abstractions always rear their head and when they do, if you don’t understand the principles, it isn’t so easy to dig yourself out.

phoenyx's avatar

It doesn’t have to be that complicated. Consider the following:

# hello_world.rb
require ‘rubygems’
require ‘sinatra’

get ’/’ do
“Hello world, it’s #{Time.now} at the server!”
end

noyesa's avatar

If you’re using Sinatra…

nononoyesno's avatar

So…I’m thinking first I’ll learn XHTML or HTML5 to get a hang of it, then start incorporating some CSS in there. Then I’ll get a hang of JavaScript. Then move on to either Python or Ruby and MySql? The MySql scares me a bit because I suck at math and database-y stuff…I can’t even figure out MS Access.

I should note that I already now HTML in a sense that I can make EXTREMELY amateur looking HTML pages, but they are very “my-first-website” looking pages. I want to make attractive, sleek, interactive layouts.

superjuicebox's avatar

I am a web developer so i would say :

1) html – for basic page design
2) CSS – for more advanced page design and formatting
3) Javascript (not java they are not the same which is a common mistake) – for interactivity
4)PHP and on to all the other server side languages so you can make a dynamic site. Technically a site with just html and css is dynamic but not really.

Answer this question

Login

or

Join

to answer.

This question is in the General Section. Responses must be helpful and on-topic.

Your answer will be saved while you login or join.

Have a question? Ask Fluther!

What do you know more about?
or
Knowledge Networking @ Fluther