Recommended Steps In A Web Development Career

Asked recently on Yahoo! Answers:

What sequence should i follow to learn Web Development?
Hi there,
I knew by going through various answers in yahoo that to learn web developing as a totally new person,one should learn basic web designing [dreamweaver & html]. And after that, one should move forward to Web Developing.
But in Web Developing, there are lots of programming languages. I can start from C but what after that and then what and then what ?
And how important it is to follow sequence to become good web developer?
I am really expecting good answers in detail and I thank to all in advance for their valuable time and valuable advices.
Thanx again. 🙂

I wouldn’t go about getting into the game the way I did.

When I started back in 1996, it was largely by accident. I had been playing with HTML but really wasn’t interested in a programming career; I was happy with newspaper reporting. But my sister, who was working with an ad agency at the time, couldn’t get any service out of the one Web design firm that was available to her — coincidentally, the newspaper group for which I worked.

So, she asked if I could do a site. And that became more sites, then became a regular gig that I did on the side, until I had so much work that I had to decide between the two jobs.

I had no formal training. Everything I learned I picked up on the fly because the client needed it. There was no rhyme to it. Mostly, if I didn’t know how to do something, I looked around on the Web until I could find something close to what I needed, and figured out how to get it to work for me.

Perl, PHP, SQL, ASP — every bit of it I picked up in a hurry. And I believe it stunted my learning because I never looked at programming as a process, as a natural flow from one concept to another; I looked at it as an end, not a means.

So it’s good to find someone who wants a more orderly path. If I had to do it all over again the path I would follow would be something like this:

Learn good graphic-design skills

A good sense of the aesthetic is the first step in any Web development career.

Anyone can write HTML, CSS, etc. Making a Web page look good is hard. A graphic designer who can make an attractive Web site or convert existing collateral (print ads, flyers, etc.) into a Web site will find far more demand for his services than someone who knows PHP or ASP.NET inside and out.

To that end, you must have a command of Photoshop and you should have a command of Illustrator, Fireworks or a similar drawing program. Being able to make attractive designs is first.

Learn and fully understand HTML and CSS

It is far more important that your sites look correct in all browsers than having the ability to do server-side stuff. To ensure your pages work in every browser, you must know how to write HTML properly and how to use CSS to manipulate the way that HTML appears.

Familiarize yourself with JavaScript, especially its DOM manipulation aspects

You can often accomplish with JavaScript tasks that were programmed server-side when the Web was young. And because JavaScript is processed client-side, using it means less work for your server and better response times for your visitors.

You will need to learn a server-side language to be fully skilled, but a good, working knowledge of JavaScript, especially the parts you can use to change what is displayed on the page, will be of great use.

Learn SQL

Almost every interactive Web site requires the storing or retrieval of information that is either specific to the user or constantly changing. The most efficient and convenient way to store information is a database, and every major database platform uses a variation of SQL to operate.

Each major relational database management system (RDBMS) has its subtle variations on SQL; however, basic operations — selecting, inserting, updating and deleting records — are pretty much the same for SQL Server, Oracle and MySQL, to name the big three.

A second part of this is understanding how relational databases work and being able to think about data in an object-oriented sense.

In short, you have to be able to look at your data and understand, from what it contains versus what your application needs to draw from or put into it, the proper way to design your application’s database.

This is a learned skill that will eventually become natural. But not having a good sense of how to properly structure your tables and queries to efficiently retrieve and manipulate your data will be a major impediment to your growth.

And that’s why I advocate a classroom to learn this skill.

Most Web development skills you can learn from tutorials and textbooks. You can read all about SQL and databases in books, but a good introductory course in database structure will be worth every cent you spend on it. You really need to have someone who knows how to design a database present you with a real-world set of data, real-world needs for that data and the methodologies that best make the data meet its needs.

Learn PHP

Before I get into this, let me reiterate something I’ve often said: There is plenty of work in every programming discipline. You should learn to program in things you find interesting and fun, because your success is going to be measured by your attitude and drive. If you don’t like what you do or don’t want to do it, you are not going to be successful.

That said, PHP enjoys a number of advantages over other scripting languages:

  1. It’s everywhere. Virtually every Web host is going to provide PHP and MySQL.
  2. PHP is free. Therefore, price-sensitive businesses will generally be more interested in PHP than, say, ASP.NET, which requires the payment of licensing fees.
  3. There is nothing new under the sun as far as PHP development is concerned; whatever you need to do, someone has written a solution in PHP and is giving it away for free on the Web. Or, at the very least, whatever they made is something you can easily tinker with to solve your problem.
  4. Because of its popularity, there are plenty of peers available to help you when you’re stuck.
  5. While you can write object-oriented PHP applications, PHP allows you to break free of the object-oriented methodology. For a beginner, that basically means you can more easily write PHP: You need to follow fewer formal rules, you can place your code just about anywhere, and depending on your security considerations, you can get away with more bad habits.
  6. PHP shares many functions and other attributes with *nix, and is very similar to C++ and JavaScript in terms of syntax, control and operators. Because of that, it is easy to transition between PHP, JavaScript and the shell.

Learn ASP.NET

As much as I like PHP, there are some things that ASP.NET simply does better; namely, working with data, handling application state and application / environment security.

Also, if you work primarily with Windows-based applications on a Windows network for your job, there are certain efficiencies you can achieve by using ASP.NET versus PHP for a given application.

Again, the primary drawback for new programmers when it comes to ASP.NET is that writing it requires a very formal structure.

Also, ASP.NET is highly abstracted, which basically means there are often 10 or 15 different ways to accomplish a given task; which way is best is often a case of personal preference, but in some cases, a specific methodology is required.

That’s different from PHP, for example, in the sense that with PHP, if you haven’t made a custom class to solve a problem, there are usually only a handful of built-in classes or functions that can solve a given problem.

I find programming in ASP.NET preferable to PHP because of its more rigid coding requirements and its extensive collections of objects that allow you to be very specific about what you want to accomplish in an application.

However, it took me far longer to learn ASP than it did PHP, and even longer to grasp ASP.NET versus ASP.

Learn *nix / Windows Server

As your applications become more involved and complex, the more you’ll need to be able to configure and control the servers on which your applications run.

I’m not talking about a simple .htaccess edit or console switch here; I’m talking about being able to tune your server to perform well for your application. Understanding what your server needs to do in order for your code to render the desired result is key to going from hobbyist to developer.

Leave a Reply

  • Check out the Commenting Guidelines before commenting, please!
  • Want to share code? Please put it into a GitHub Gist, CodePen or pastebin and link to that in your comment.
  • Just have a line or two of markup? Wrap them in an appropriate SyntaxHighlighter Evolved shortcode for your programming language, please!