Wednesday, June 2, 2010

How long does it take to become a web developer

This is almost like the question 'how long is a piece of string', because in my experience you can never stop learning.
The real question is how long does it take to become proficient as a web developer and my answer, in my opinion is about 2 years. This is obviously not a definitive answer and is subject to change, especially if you know a programming language for another discipline. The 2 year time frame should not put you off, but it will take you this amount of time to really truly understand all the ins and outs of web programming.
First let's take a look at what you technologies have to learn to become a web developer. When you start down this road, you need to understand how the web works and why it does what it does. What happens when a request is made by the user, how a server responds and how the output is generated by the browser.
The basic model for this piece of user interaction is like so:
The User Requests data via their browser -> The web server responds and sends HTML (Hypertext Markup Language - the language your browser understands) to your computer/device which then in turns displays it to you. That is it, the basic web request. A few other bits and pieces are sent but we'll look at those a little later.
So let's look at the above and break it down. The HTML this is the basic building block of the web and you cannot create a web page without knowing how write HTML. So this is obvious place to start, learning HTML is not that hard and you should be able to start knocking pages together within a week or so. The other part of learning how to write HTML is the ability to learn something called Cascading Style Sheets (CSS). CSS is a technology that allows a page's content (the HTML) and the page's design to be separated in to different elements. This allows for a more structured site, easier design updates and less cluttered mark up. Learning CSS can take a little longer to learn HTML as it has many different aspects to it. There are great many tutorials and books out there and any decent book that teaches you HTML should teach you CSS, if it doesn't, pick a different book. I have already written different post regarding books for beginners, so please take a look there for my recommendations. You should be able to grasp a good amount of CSS in a few weeks/months for you to be able to start knocking web pages together, it can take a couple of years to master CSS as there are so many ways of doing things. i.e. using different methods to solve different issues, different properties for different elements and coupled with the fact that it is constantly being updated by the W3c, it gives CSS and long a drawn out learning curve.
The previous paragraphs, really dealt with the browser/client side of what websites and how they work. The next sections really deal with how a server sends a page to the user. At a basic level a server responds with HTML based on a request from the user. These pages can be static - where a page's content is hard coded in to the request page or dynamic - where a page is constructed and delivered according to a set of parameters. Dynamic pages are still served in HTML, this is the only language a browser can intepret, the difference with a dynamic page is that the page's content can be manipulated by the server when it sends the information.
This is where you really start to become a 'web developer', when you start to learn a language that runs on a web server and is executed at run time. There are a great many choices when it comes to choosing the language, my personal preference is PHP, many others like ASP.net or Java - all work in a similar way and all perform similar tasks though PHP allows you to code using both procedural and object oriented approaches (see other posts of mine regarding this). This part of the learning curve is going to be the longest. You should be able, once you have grabbed the principles of programming, to start programming in PHP and even start creating some dynamic pages within a couple of months, even less if you are doing it full time. Believe me, if you stick with it and you like coding, when you start creating programs, see people using them, then you really feel an excellent sense of worth. However to truly understand the language of PHP is going to take a while, you may be able to create some decent scripts quickly, but like I said before it will probably take you a couple of years, before you get to the point where you are truly comfortable with language. An example of this is where you get to the point that you know that no matter what a customer/colleague asks you to do, you know that you will be deliver what ever they need.
Once last thing, before I sign off. People often ask 'Am I am scripter or a programmer ?' This is a large can of worms and I do not wish to reopen it as it has been argued to and fro by many people. In my opinion, a script is something that runs on a single page, an application is something that runs across many pages and does multiple tasks geared towards a set of goals or objectives.


Labels: , , , , , , ,

Thursday, July 9, 2009

On the road to becoming a PHP developer

My Learning Curve on the road to becoming a web developer living in Burnley, Lancashire...

When I came to web programming my background primarily lied in SEO, but thanks to the requests of my employer I found myself having to learn (Classic) ASP using VBScript as he needed a specific application to be built in-house. This was a bold step from my employer but he must have seen that I had the ability to learn this [archaic] language and allow me the time to start down the programming/scripting road. I felt I was up to the challenge as I had played with a couple of languages at University including C++, JavaScript and HTML and therefore proceeded on to the aforementioned project.

Fortunately, prior to this I had already become proficient in the use of the application Dreamweaver by Macromedia. When I started to create server side apps using Dreamweaver it became apparent that, whilst Dreamweaver was excellent at creating server scripts for beginners it was creating extremely bloated scripts. Now this is not, I repeat not, a slur on Macromedia/Adobe as I realised that the scripts had to be like this to make sure they worked on nearly all servers/machines as a newbie wouldn't have the know-how to fix and issues that cropped up.

In conjunction with the ASP VBScript server, I learnt MS Access - one of many the many choices you can use with DW. Again I had a little knowledge of SQL and of RDBMS (Relational Database Management Systems) from university when I used a very old language called clipper. As a result I found it to be no real problem using the comparatively ultra modern MS Access. After a few weeks of creating this in-house application I was creating session based pages, login scripts and many other components all based around common programming techniques i.e. if, else, then etc. etc. It was also at this point I noticed that ASP/VB used a small number of Objects/classes to build its server connections and saw the obvious benefits they offered - but more on Object Oriented Programming (OOP) later.

I decided to learn a new language and really try develop my skills as a developer. I also knew at this point that Classic ASP was never going to cut it as a language to take my forward in my career (especially as one of my friends was raving about .NET) and I had to make a decision on which language to use for my web development projects. I looked at the options and chose PHP (which was being championed by a colleague) which was standing at version 5. I looked at all the articles I could find and made my decision and decided to use PHP rather .NET. There were reasons for this and they are listed below:

1. It was open source and cheap to create a working server using Linux/Apache at home compared to IIS/Windows Server.
2. The language - Most of my prior knowledge had been in writing procedural code instead of using OOP and I thought PHP was a better choice as it gave me the choice to do both. PHP was at version 4.xx and did have a limited support for OOP and with PHP 5 (which had much better support for OOP) on the horizon it became the deciding factor.
3. The PHP manual - a complete and definitive source for every function in the PHP language with user contributed notes. From my ASP/VB script days I knew that whilst Microsoft did its best to maintain its support, pages were often moved and I found myself going round in cirlces.
4. I could step up to using OOP when I felt I was ready and not from the outset.
5. SEO was in grained in me and I knew that PHP was proven when it came to creating more Search Engine friendly pages.
6. MySQL was free and MS SQLServer was (back then) very, very expensive and cost way beyond what I was earning. -- Edit -- In fairness to MS you can now download free (albeit limited) versions of Visual Studio and the MS SQL server interface.

These are only a few of reasons I chose PHP over .NET, but over the rest of my posts you will see how I moved on and I hope that my posts can try and help you become more than you are at the moment. I will list books, resources and a few other snippets to try and make your career/hobby that little bit better :-)

For people who are a little more interested in how PHP and how OOP and developing re-usable sites/models can contribute towards a more profitable business there will be plenty here for you too. After all, a large majority of websites are used to create profits and the more you can squeeze out of them the better.

Labels: , , , ,