How to become a Web Developer

H

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.

  1. XHTML
  2. CSS
  3. very little XML
  4. Your love and ability for Problem Solving and Finding better ways to do things πŸ˜‰

1. One Web Programming(Scripting) Language

Me: PHP

Other Options:
ASP.NET
JSP
Ruby

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.

Learn PHP

2. A Relational Database(SQL)

Me: MySQL

Other Options:
Postgres(free)
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.

Learn MySQL with PHP

3. A Web Application Framework

Me: CakePHP (And i suck at it)

Other Option

Symfony
Zend Framework
Kohana PHP
RubyOnRails

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!

Learn Symfony

4. Javascript & A Javascript Library & Ajax

Me: Jquery

Other Options:
DOJO
Prototype
Moo Tools…etc

You’ve been putting this off for long enough. Your excuses of “What if some users have their Javascript turned off?” will not work for very long. You are becoming an endangered species. 95% of people have their Javascript turned on according to the w3Schools stats. The other 5% can go to hell. Besides if the know where to turn it off(Since its on by default) then they can turn it on right? Besides there ways to use Javascript without alienating people that have it turned off. So LEARN Javascript. USE it.

Jquery is probably the most popular library out there and with good reason. It is freaking awesome. Plus it has a lot of built in Ajax functionality. which means you don’t have to know that much Javascript anyways(Write less do more).

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 πŸ˜€

Learn Jquery(Video Tutorials)

5. A Templating Engine

Me: Smarty

Other Options:
TinyButStrong
Dwoo
Savant

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.

Learn Smarty

6. A CMS(And Developing for that CMS)

Me: Drupal, Joomla, WordPress & others(in order of preference)

Other Options:
SilverStripe
Cushy CMS
FrogCMS

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.

Learn Drupal
Learn Joomla
Learn WordPress

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.

10. Conclusion

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
Tali

About the author

Talifhani Luvhengo

A collection of particles named Tali Luvhengo

31 comments

  • I prefer PostgreSQL, read these articles (disclaimer, I didn’t read them fully because I already know that PostgreSQL is better :D). One big point is PostgreSQL follows the SQL standard, and supports foreign keys (some versions of MySQL don’t.. can you believe that!)

    http://www.devx.com/dbzone/Article/29480

    http://wiki.postgresql.org/wiki/Why_PostgreSQL_Instead_of_MySQL_2009

    Patterns are nice. MVC is definitely one to learn. The Singleton pattern is dangerous because it sometimes isn’t implemented correctly and can lead to more than one instance – done it myself! Still learning patterns myself πŸ™‚ The Observer Pattern (a.k.a Publish-Subscribe) is also a useful one.

  • Why bother becoming a developer if you have a love for design? Just design and build your website, then use something like Surreal CMS to let people maintain them. There are lots of pre-built options out there, so why reinvent the wheel and learn everything from scratch if developing isn’t your passion?

    • Hey Jared, if you look at “6. A CMS(And Developing for that CMS)” you will see that i partly agree with you, there is no need to reinvent the wheel but sometimes you dont need a wheel, sometimes you want to build a spaceship. And sometimes the rigidity of a CMS(like SurrealCMS) tends to make simple tasks complicated. I’m not sure how SurrealCMS works but I Assume you might at some point need to do some customisation, which means you have to have some understanding of Programming.

      My article was more targeted at people that actually want to be Web Developers(as a Career). There nothing wrong with designing. But i also think at the same time most of the stuff on the list is a good idea to have a basic understanding off regardless.

      Jared says Developers are Obsolete, lets flog him. Kidding. Thanks for reading guy.

  • You put Joomla infront of WordPress… shame on you.

    I’m working on a project right now that I hope to have finished by the end of the weekend; based on Wordpres. Guaranteed you won’t believe it’s WordPress πŸ˜›

    Will link it up when I’m done πŸ˜‰

  • I thought Django was a proper web framework, not a template engine.

    I have been working with PHP CMS tool since 2005 and have seen how useful they are to developers. Mambo was my first big one, then it was Joomla.

    I had to write lots of custom plugins and hacks to support some of my stuff. I also hated the table structure that it had. I would code tables templates and have them ruined by the system’s tables. It got better with 1.5.

    I worked on my last PHP site a month ago and I am not using Umbraco. Its an open source .Net CMS. It is totally amazing, no plug and play madness and those strange templating tags and attributes..

    Otherwise, ndi takalela kunwalele kwa athikili ino. Nda! πŸ™‚

  • Being a project administrator currently, would I be in a better position to learn programming? I would like to be a developer. Please advise.

    • As a Web Developer having Project Management skills is usually a big plus, besides your Development skills it is one of the skills that will separate a Web Developer From Senior Developer. But this is not me saying you should become a web developer, that’s a decisions only you can make. Also it is not overly difficult but being a developer requires a passion and some skills for the subject. I guess what I’m saying is you need to be sure its something you are prepared to do day in and day out.

      Good luck. You can mail me if you need any more help.

  • frameworks: i wud bet a gud framework ever developed for php is codeigniter. wat abt framworks for other languages, e.g. dojo not included ??

    7. oo programming. php is not there yet. wen it is transmitted over the web, oo makes php slow. that’s including the frameworks also, they make php suck. anyway, as developer, oo is the way to go. but the system sucks, web engineers clear the way for us.

    • OO makes all languages slow. Its a case of scalability/maintainability of OO vs Speed of non-OO. And I’ll take the first one any day. The overhead is not that hectic, about 10% slower. Codeignite is nice, just never got into it, I’m more comfortable with Symfony. When it comes to frameworks its a matter of taste really(and i guess a little of what you are trying to achieve), I think.

      If i had to list all frameworks, I would run out of pixels. RubyOnRails is also not a php framework πŸ˜‰

      Also what would you say is missing for PHP, to be full OO. Except for it not being strongly typed?

      Thanks for reading Jaff

    • Tsk tsk tsk indeed. Thank for the heads. Also half the wordpress templates don’t validate. Seing as
      1. Most of the browsers don’t 100% stick to the standards anyways, IE being obviously the worst of them all. I don’t hold validation to the same standards you do. So 100% validation doesn’t mean your site display the same on every browser. So what I’m saying is, build for browsers.
      2. I don’t have time to build a template.
      3. “moronic idiotic Microsoft Certified Double Clicker” => that made me laugh. Thanks πŸ™‚
      4. Relax man. Smoke a joint.

  • I’ll smoke plenty of joints, but fact still remains that 100% validation is the correct thing to do, no wonder most of the web is broken.

    Browser makers make they browsers intelligently put back a page together & render it like it should be rendered, even though there would be no doctype, scripts outside the html tag & many such silly things people that make websites do. That still doesn’t mean that you shouldn’t care about standards.

    The web can be accessed by various specialized devices that are made available to people with disabilities. Things like screen-readers, braille-readers & text based browsers. Now can you imagine how confused those devices would be if they encountered a page that uses the tag for layout?

    I suggest you have a look at WCAG, and just ’cause Microsoft doesn’t care about standards that doesn’t mean that standards are useless.

    I hope you do realize that the whole internet is built upon standards & protocols (Requests For Comments). So how can you say that standards don’t matter?

    • Good on you on the joints. So let me make this clear. I did not say Validation doesn’t matter. All i said was that i don’t see validation as the holy grail of web development. As long as you HTML is syntactically correct. There is no excuse for broken HTML. Sites that i personally do generally validate.

      My personal site for example http://validator.w3.org/check?uri=http%3a%2f%2fstudio.semicolon.co.za%2f I got my little badge there, but what does it mean? WCAG is a whole separate story.

      THE WEB IS NOT BROKEN. You know who cares about Validation? WEB DEVELOPERS. That’s it. We are the only people who could be bothered. So what if my site doesn’t validate because XHTML 1.0 strict doesn’t like target=”_blank”. Still works just fine.

      When last did you here your nana say i cant use your site cause well, it doesn’t validate. Never and you will never here it. Most of the time we don’t have control over the content on the site. It could be user created. Or broken by the wysiwyg. Wysiwyg’s do this all the time where they add their own attributes to tags that don’t even exist.,

      I think this a topic for a whole ‘nother post. Which i will write. There are plenty of HUGE sites that don’t validate Stackoverflow for one, which I’m sure you use all the time doesnt validate. Google doesn’t validate. This is just to name a few. YOUR SITE DOESNT VALIDATE

      The obsession with validation is a crippling thing. I get that VALIDATION IS IMPORTANT but it should not be used as a measurement of the quality of work. Also i sent you a Linkedin invite. Thanks for the feedback.

  • dash.za.net had a lil’ php template error on it, thx for the heads up, xHtml is all valid now:)

    Another thing each and EVERY web developer SHOULD know is how the underlying protocols such as HTTP, SSL/TLS, FTP, SSH…etc.

    The more LOW-LEVEL knowledge a developer has, the better he will be at:
    -making sound decisions
    -write better code
    -understand his/her code better
    …etc.

    In any case, hope this helps people who would like to get into web development.

  • Hello there! I could have sworn I’ve been to this website before but after checking through some of the post I realized it’s new
    to me. Nonetheless, I’m definitely happy I found it and I’ll be bookmarking and checking back
    often!

Categories

Page optimized by WP Minify WordPress Plugin