---
layout:    post
title:     "How to start becoming a web developer"
date:      2012-09-07 18:12:12+00:00
tags:      [development, technology]
permalink: /blog/2012/9/7/how-to-start-becoming-a-web-developer
published: true
author:
    name: Gergely Polonkai
    email: gergely@polonkai.eu
---

A friend of mine asked me today how to become a web developer. It took me a
while, but I made up a checklist. It’s short, but it’s enough for the first
steps.

####  First of all, learn English

Well, if you read this, maybe this was a bad first point…

####  Choose a language and stick to it!

For the UN\*X/Linux line, there is PHP. It’s free, easy to learn, and has many
free tools and documentations available. It can be used in a functional or an
object-oriented way.

C# is another good way to start, but for the Windows line. It’s fully object-
oriented, and the web is full of tutorials, how-tos and other resources.

####  Learn the basics of the system you are working on

To become a good developer, learn at least the basics of the system you are
working on. Basic commands can always come in handy. Debugging (yes, you will
do tons of bugs for sure) can become much easier if you know the huge set of
tools provided by your OS. You should also try to develop in the chosen
environment. Chose PHP? Get a Linux desktop! ASP.NET? Get a Windows.
Everything will be much easier!

####  Learn the basics of the web server you are using

PHP can run on [Apache](http://httpd.apache.org/) (as a module), or any
CGI-capable webserver, like [lighttpd](http://www.lighttpd.net/) or
[nginx](http://nginx.org/) (well, it can also run on IIS, but trust me: you
don’t want that). ASP.NET is designed for IIS, and although some scripts can
be run under a mono-capable server, it should still stay there.

Whichever you choose, learn the basics! How to start and stop the service,
basic configuration methods, modules/extensions, and so on. It’s more than sure
that you will face some issues while developing, so it can never hurt.

####  Keep your versions under control

Version control is critical nowadays. It gives you a basic backup solution,
can come in handy with debugging, and if you ever want to work in a team, you
will badly need it.

Subversion is a bit out of date now, and it’s kind of hard to set up.

Git is no easy. You will have to learn a lot of stuff, but basicly it’s just
another version control system. Just choose if you want to stick to
merge-then-commit or rebase-then-commit, get a client, and get on the run.

Microsoft’s Team Foundation is another good way if you are working in a team.
It provides several other features besides version controlling, and is well
integrated into Visual Studio, which is highly recommended for Windows based
development.

####  Choose an environment to work in

There are so many good tools out there. You should choose according to the
language and OS on what you are working on. [Zend
Studio](http://www.zend.com/en/products/studio) or
[Netbeans](https://netbeans.org/) are both good tools for PHP development,
while [Visual Studio](http://www.visualstudio.com/) is a best buy for Windows
development. Both of these have many ups and downs, but once you get in touch
with their deeper parts, you will like them.
