How to start becoming a web developer
#####################################

:date: 2012-09-07T18:12:12Z
:category: blog
:tags: development,technology
:url: blog/2012/9/7/how-to-start-becoming-a-web-developer.html
:save_as: blog/2012/9/7/how-to-start-becoming-a-web-developer.html
:status: published
:author: Gergely Polonkai

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.
