To be a web developer, you will need to master quite a few concepts, such as user interface design, server side programming, client side programming, utilizing a database, etc.
Learning to develop web applications is hard. Don’t doubt it. Forget about all the outlets promising you to become a developer in 24 hours, a week, a month. Forget about the ones that tell you things like ‘this is the only thing you’ll need to learn’.
To cut the story short let me begin by asking this simple questions:
Where to start?
I find it easier to learn something if you have a concrete project in mind. This will let you apply the theory you learn in a real life context. If you don’t have one, I can propose you one: a web site that lets users post photos, vote on them and comment them. You’ll need to build an admin section as well where you can manage your site, your users and the content. Think of any other features you’d like to implement in your website: tagging, geolocation, applying filters on photos, … The only limit is your own creativity!
What to learn/know?
1. Decide your path and learn the language
- C#: The C# language, together with the Microsoft .NET platform and the ASP.NET MVC framework is especially well-suited if your main operating system is Microsoft Windows. C#, although possible, doesn’t run well on Mac OS X nor Linux. It is the language of choice for many established corporations.
- Ruby: Ruby together with the Ruby on Rails framework is a very popular framework for building web applications. Its community is wide and always helpful. You will find many resources online to help you with your learning.
- Python: Python is often seen as a competing language to Ruby. The language itself is very well-suited for learning how to code. When it comes to developing web applications, there’s the Django framework. I personally find that there are less resources available online for beginners but that is not a showstopper.
2. Know the “common knowledge”
- HTML and CSS
HTML stands for HyperText Markup Language. It is by using HTML that you instruct web browsers (Chrome, Safari, Firefox, etc…) which elements a web page will contain. A paragraph, a header, a bullet points list, an image and so on.CSS, the acronym for Cascading Style Sheets, is responsible for telling a browsers how HTML elements shouldlook. The font color, the size of images, the position of your paragraphs and much more.To learn both HTML and CSS at the same time, get the book Head First HTML and CSS.
- A version control system (Git)
Git is a version control system. It keeps track of changes in your code files and allows you to revert them at an earlier stage if you made a mistake. If you later plan to work with other coders, using a version control system is not an option. There are many different version control systems such as Microsoft Team Foundation Server, Mercurial, SVN or Git. Go with Git.Learn Git here: Learn to use Git and remote repositories in 15 minutes
In order to create dynamic web apps, at some point, you will need to store data. Any kind of data. Whether blog posts, user profiles, player scores and so on. That’s what databases are for. In order to navigate through a structured database, you make use of one language called Structured Query Language or SQL for short.Read: Sams Teach Yourself SQL in 10 Minutes (4th Edition).