People usually ask me questions like “How do i become a web developer?”, “What do i need to know…?”. So here i am writing an article about that, cause I’m such a nice guy(My Mom will vouch for me). This is just a short list of what i think a web developer should know. Just My thoughts. I probably missed something. So don’t bite my head off. This is assuming you already know.
- very little XML
- Your love and ability for Problem Solving and Finding better ways to do things 😉
1. One Web Programming(Scripting) Language
This one is a no brainer. Learn your language, understand it, knows its limitations. Only then can you really be creative with your problem solving. Apparently, Allegedly, Rumour has it…okay i’ll stop. But psychologists believe it takes about 10 years you master something. That’s a decade ;). So no rush. Stick to one thing I say. obviously you wanna makes sure it will be relevant in 10 years. Choose a language you’d like to dedicate most time to and roll with it. But this does not mean don’t learn other languages. Its always a good idea to know as many languages/technologies as you can, but maintain one or two that you will focus most of your energy on. You can never stop learning.
By the way ASP.NET(Not ASP, NOT the same thing) is freaking awesome. It could also be a good alternative to PHP. Worth looking into. I’m more than happy to stick with PHP for now. It has a much bigger community, hence much more documentation. Good documentation goes a long way.
2. A Relational Database(SQL)
Microsoft SQL Server(not so free)
Oracle(Not so free either)
Relational databases are the driving force behind most web applications. Without them, the internet would be lost in the abyss of statelessness(that’s deep,write it down). Databases are where your Facebook profile is stored and such.
Nothing says peas in a pod quite like PHP & MySQL. I willing to bet(Only 10 bucks) that 95% of the websites/web applications online are database driven. So there is no excuse to not know how to intergrate your application in to a database, to save, update and retrieve information(better known as CRUD). You will hardly find a “Introduction to PHP” tutorial/book without a section in MySQL. Stop this Tom foolery and learn MySQL.
3. A Web Application Framework
Me: CakePHP (And i suck at it)
Frameworks are there to make your life as a web developer easier. There are many Web Development pieces of code you find yourself coding over and over again. For example database classes, login systems, session management and so forth. Frameworks come with most of this functionality done(or half done). And they force you to use MVC most of the time and use Object Orientated Programming. Which once you learn will make your life so easy. “Code Reuse”: Very important!
I love reading for fun, but hate reading for knowledge(Ignorant huh?), so the solution, Video Tutorials AKA Screencasts. I find it easier to sit and watch a video for 30 min, instead of read a book for days. Books are for reference bottom line. I try to avoid them until i can’t. I know Ignorant 😀
5. A Templating Engine
MVC(Model-View-Controller) is probably the most used design pattern of coding. It helps separate processing code(The code that does 1+1) from the view code(The code that prints 2 on the screen). Which means you can edit those two pieces of code independent of each other. The graphic designer can go and change the template without editing the files that contain the processing code.(Because we hate them, 😉 ). Template engines are generally a good. Though sometimes they’re way to bulky. So choose carefully.
6. A CMS(And Developing for that CMS)
NOBODY (should) ever start(s) and web development project from scratch(FINEPRINT: Unless they absolutley have to). You should either use a CMS or a Framework(Some times both of these are overkill, or they just don’t give you the flexibility(or power) you need. Read the FINEPRINT 😉 ). Which is why Drupal is so kick ass. The folks at Drupal.org like to refer to it as a CMF(Content Management Framework). Which means you get the ease of a CMS, and the power of a framework. CMSs are there to make your life easier, half the work is done for you, maybe even a little bit more depending on your goals. You already have a Login System, User Management, Content Management and all sorts of other goodies. For a basic system, you will hardly need to write any code(especially with Drupal).
Drupal or Joomla. My opinion?
Use Joomla if you want to put up a site quickly and easily which means you lose flexibility and sacrifice on functionality.
Use Drupal if you like to be in control of every little detail on your site. Want to be able to customise it to the last possible detail without needing to write custom extensions. And you don’t mind the steep learning curve.(Drupal is a bit harder to learn than Joomla, but you know what they say with great power comes great learning[i swear they say that.]). As for WordPress, i use it for blogging. Nothing else, i don’t know much about WordPress except for the fact that this blog is running WordPress. It’s got its place.
7. OO Programming
I don’t think i can stress enough how important Object Orientated Programming is. I’d love to give a nice short intro but i think this guys did it better. So take a look at that. If you take anything out of this, let it be that OOP is important.
8. Design Patterns
On the web the most used design pattern would have to be Model-View-Controller(MVC). It helps you separate the data(model), programme logic(Controller) from the template(view). Learn MVC. It will come up over and over again.
There are other patterns that you will start to use as your applications get more and more complex like the Singleton, Iterator, Observer, Factory and many more. I will write tutorials on this a bit later.
EDIT: 9. W3C Standards
Thank’s to Dash in his hate speech comment below for reminding me about this. Should have been the first thing on this list really. You can read up on it here.
This list is meant to point you in the right direction and get you started on your journey as a web developer. There is tons of other stuff i have not covered. But if you know the thing on this list then are well on your way.
Thanks and Good luck