Web Development from beginner -> *expert*

P!rate

Move Like a MoFo
Joined
Mar 16, 2009
Messages
6,073
Hey all, i would like to learn pretty much all there is to know, at least try, about website development, i'm in the process of creating a website for my school, i used joomla last year, but i felt it was limiting and as i have learned a tiny bit of html and css before, i could tell I was limited in creativity and overall ease of use of the website. My question is, could anyone recommend me, or make a list of programming languages needed to make a basic website, and an interactive website, and possibly books/videos/websites recommended to learn the different programming languages. Im looking for something like...

Necessity
1. HTML
2. CSS (reference to book)

Recommended
3. Java (book/website)

something like that.. I already know java, but i doubt i'll need that in the beginning, thank you very much for the help.
 
Web design/development encompasses a lot of areas now, so it depends which area(s) you want to tackle. Front-end design, Front-end coding, back-end development, web application programming, etc

For basic front-end design, learn HTML and CSS well (later learn JavaScript/Ajax).

If you are starting out, I recommend this book, "HTML and CSS Web Standards Solutions: A Web Standardistas' Approach"

It'll cover both HTML & CSS and give you a good grounding on marking website with web standards. It'll put you ahead of all the front-end designer still using out-dated techniques and using tables rather than CSS for layout.

A good book for more advanced CSS is this one, "CSS Mastery: Advanced Web Standards Solutions, Second Edition". The books by Dan Cederholm on Web Standards are good too.

After that you can learn the more recent trends like using Cufon for image replacement over sIFR, using CSS grid frameworks like 960 Grid System, Blueprint & Yui Grids, etc.

Then you can move on to using various JavaScript libraries like Jquery, YUI etc. With those you can do animations, manipulate DOMs, validate input, etc. It is a must if you do any AJAX (you could do AJAX without those libraries and write them in pure Javascript, but that is too tedious). Many tutorials and docs online for these.

Then there is Flash/Flex. If you want to Flash/Flex programming, then learn ActionScript 3. The books on ActionScript by Colin Moock are a must-have reference, but can overwhelm the beginner. Something like "Learning ActionScript 3.0: A Beginner's Guide" is a good beginner book.

Backend-wise, pick your language and framework. If you know Java well, you could stick with that and use Apache Tomcat to serve JSP, but it's been rare (in my experience at least) that I've come across a situation or web hosting environment (via a client) that wanted or used JSP. If you are using your own server, then it's fine and use JSP, but if doing work for clients, they'll often have their own hosting, often unix/linux-based or Windows.

In that case, I'd recommend learning a scripting language like PHP or perhaps ASP.NET (with C#). Since you probably like Java and it's OOP principles, C#/ASP.NET may suit you better. I personally tend to prefer C# (or Python/Django) over PHP for my own projects, as I find OOP in PHP kind of clunky and I prefer dot notation syntax.

For PHP learning there are many books to choose from. I've liked the David Powers books. Start with "PHP Solutions: Dynamic Web Design Made Easy" to learn PHP and then learn PHP OOP with "PHP Object-Oriented Solutions". Be sure to refer to the online PHP manual though.

For ASP.NET, when I was learning several years ago, I found this book invaluable ASP.NET 3.5 Unleashed. Also lots of video and learning resources at ASP.NET. As far as learning C#, any of the books by Apress, Oreilly or Manning Press on it should be fine. It's an easy language to learn if you already know Java.

Then there are frameworks. Microsoft has the Dot NET framework so if learning C# and ASP.NET, then you are learning the Dot NET framework, so you're set. Look no further.

For PHP, it's a different world. You've got a wide-range of choices. After you've learning PHP and basic database interaction with MySQL (most beginner books with cover MySQL, including the PHP books I linked above), you'll want to speed up your web application development time and start using PHP frameworks.

You've got many, like CakePHP, Symfony, CodeIgniter, Zend, Yii and many others. All of them have tutorials and documention on their site. CodeIgniter is perhaps the easiest to learn, while CakePHP is arguably the most popular. Zend is backed by a large company so it's going to be around for a long time. Yii is gaining traction as a very light-weight and very fast framework (I started using it as per a recommendation here and is my current favorite, but it has a definite learning curve, perhaps more significantly steeper than others).

There is optional stuff like learning a good all-purpose language like Perl or Python, for server work, or utility scripts. I really like Python and its very clean syntax and the interactive shell is awesome. I'll use from anything from parsing xml, interacting with APIs, web scraping, etc. Of course you can use any other language, but Python really make it easy with its libraries. A good free online book for learning Python is Dive into Python. You can later use Python for web apps if using the Django framework.

Oh yeah, since you know Java. You can use Google App Engine to make web apps. It only supported Python (Google uses Python), but now it supports Java.

There other stuff, like detailed database learning if you make extensive use of databases. So you'll need to learn about MySQL and/or MSSQL, which is the Microsoft equivalent. There is PostgreSQL too. A lot of Python/Django web apps use PostgreSQL. And there is SQLite that is not only used for websites but is on many devices like the iPhone.

That's just the tip of the iceberg. There is also usability, making your site intuitive and easy to use for visitor. A whole bunch of books and blog devoted to usability.

You can't forget design and layout. Really good article on what makes a quality looking site from a poor site here. Also bookmark this site, Smashing Magazine, as it has nice round-ups of websites, techniques, and stuff like the best "coming soon" pages, or the sites that have a call to action, like buttons, etc.

Additional stuff is basic Photoshop knowledge. I took a course in Photoshop in college and it's been so useful. As I've grown my knowledge more over the years, I've learned more about network and server maintenance and coding, as I've had to manage and set-up web servers in both unix/linux and Windows, but you can ignore that for now and just stick to shared web hosts.

Also learn a good text editor. If doing C#/ASP.NET you'll use Visual Studio which is great. In the PHP world, you have many choices. You could stick with Eclipse since you know Java as it has PHP plugins and a PHP version of Eclipse. Python has Wings, IDLE, etc.

For myself, learning VIM has increased my coding capabilities significantly. Being able to SSH into a web server and make changes instantly via the command terminal has been very convenient. But VIM has a signification learning curve, and not for everyone but worth the effort if you learn it. Or Emacs, too. Again this is a matter of choice though.

I'm sure others will chime in with more advice. Hope that helps.
 
As an Amazon Associate, HardForum may earn from qualifying purchases.
Learning all about web design is a large area really, given you have everything from the content side like Copy-writing, Graphics, Front end design, Back-end coding, database design, etc. Plus throw in Project Management skills in and it's a long list of possible skills to learn. Not to mention the fact there are so many languages/frameworks to factor in.

For the basic html/css stuff I am fond of most of the SitePoint books. In particular the new jQuery book is outstanding and I really like some of their process books like Sexy Web Design. If video learning is your thing it's hard to beat getting a library subscription from Lynda.com. While I haven't always liked or agreed with a particular style they use for web design, they offer something on about every possible topic and there is a huge amount of content there. The material that Total Training does is fairly good too. I have purchased some of their stuff on Flex and ASP.Net and found it worth my money.

As for server technologies, depending on the client I use ASP.Net, PHP and a few that are just plain perl-cgi scripts I support. At times this was dictated by the fact I was redoing sites and they did not want to switch hosting services. Other cases it was where the client wanted to go with Microsoft because of the name and I am willing since I am familiar enough with it to make it reasonable. My suggestion is to pick one at first and learn to do certain things, CRUD interfaces, create custom pages from a database table (for instance, create an page that generates a css based according control populated from a database), learn how to parse external XML/REST/RSS data on a page. Learn about XSS exploits and how to secure your input/query strings. Once you are comfortable doing that in one language/framework. Do the same pages in another language. After awhile you will find that many requests you get are often variants of the above and you just have to modify your written code. Creating and maintaining a personal repository for doing these things, even when you are relying on frameworks is a good thing since you gain a lot of productivity.

I echo that you need to learn a good text editor, be it something like emacs, VIM/gVIM, HippoEdit, Sublime Text, e-Texteditor, Notpad++, PSPad etc. The visual tools like Dreamweaver, Expession Web, Visual Studio, PHP Designer, and Eclipse are all good tools too, you just need to find what suits you. My best advise is to try a few before spending money on something pricey.

As for productivity, learning a good text editor helps a bunch. Learn to use a Version Control System like GIT/Mercurial will do you a world of good, especially if you ever start to work with multiple people. When you run into a useful hack/fix that took you awhile to figure out, make a note of it in a Code Journal so you can later know what the fix was. Tools like TheJournal, OneNote or Evernote are great for that sort of thing.

I am sure others will have suggestions and advise for you too. I look forward to seeing some things suggested I don't use myself.

Good Luck
 
Last edited:
Back
Top