Web development is fun!
Like really fun. The more you know how to make something with code the more you enjoy building stuff with it.
To be honest I don't know anybody who hates doing it, and most people really love it. For me it sometimes feels like I’m playing a game or I’m building something with LEGO.
You’ll love it too.
I assume I don’t have to explain what a web developer does too much. Obviously, a web dev makes websites. Those can be anything from static websites with a single purpose of displaying some unchanging information, to complex web applications with servers, databases, APIs and other stuff.
Back-end is the part you can’t see. Back-end creates functionality. When you send an email or submit a post it’s the backend that makes sure your email is sent and your post is saved to a database.
There’s also devOps or system administration which takes care of automation, monitoring systems and running servers where backend code lives. A full-stack means having skills to do both front-end and back-end (sometimes also devOps). I personally don’t do devOps related work, but it could be interesting for someone who is more into servers and back-end.
Because you started doing web applications it doesn’t mean you can’t focus on something else later. You may switch to making iOS and Android apps. Or making games. Regardless of your current preferences, be open-minded and don’t be afraid to try new things outside of your current scope of knowledge.
If you know one programming language then it’s far easier to learn another. This is true with code libraries and tools as well.
I was personally interested in both front-end and back-end web development from the start. Maybe you already know which parts are best suited for you. And maybe you don’t but that’s alright.
But even though you think you’d like to do only front-end, I suggest at least trying to read more about back-end languages or about how servers work. It could give you better understanding of some parts of front-end technology.
In this section I’ll mention libraries. A library is basically bunch of code put together to serve some functionality so you don’t have to write it yourself.
I won’t go into details too much for each technology explaining what is what. At the end of each part I left you a few links to articles you should read.
Now I’m going to tell you what skills you need to learn. Obviously if you aspire to become a front-end developer you should focus on the relevant parts only for now.
It could differ depending on your preferences, a job or other stuff, but necessary skill sets are following:
It’s better to think about them in terms of what you want to know and what you want to do. Then pick up the skills you need. If working with servers sounds interesting for you, don’t say “but that’s just not for me, I’m a front-end developer”. And even if you can call yourself a full-stack developer it doesn’t mean you have to be exactly great at every skill.
You can see more complex roadmap here.
Also take a look at the list of free resources full of links to free courses, books and tons of other stuff.
So obviously you’ll have to know how internet and computers work. If you already know some basics then that's a good start for you. If you don’t, it'll take a bit longer, but no worries.
Some most important stuff you should read about and understand what they’re for:
You don’t have to remember every single thing right from the beginning. In the age of Google you can always find out details quickly when you need them. But before you move to learning coding you need to have a good understanding of how this stuff works together.
As a software developer you’ll work with bunch of different software. To work effectively you’ll have to know them well. They’ll consist mainly from:
HTML (HyperText Markup Language) is used to structure a web page and its content. Although it has a language in its name, it’s not a programming language. You’ll use HTML code to display some text or information in a certain format. For example in paragraphs, headings, tables etc. Or you can display images.
CSS (Cascading Style Sheets) is used to style your webpage. CSS describes visual aspects of HTML elements. With CSS you can define color, size, position of text and many other attributes.
To make your life easier you can use some of many CSS libraries like Bootstrap or Foundation. You should also read about responsive design, user interface (UI) and user experience (UX).
Although it’s the only language option for doing front-end, it can be also used for back-end (Node.js).
JQuery is a good start and it’s still widely used. But in recent years there’s ever growing user base of JS libraries and frameworks like Ember, Angular, React, Vue and others.
New libraries are made quite often and their popularity changes. If you want to do a lot of stuff with JS during your career than you’ll eventually have to learn some of them. Keep in mind having solid understanding of JS is essential for learning more advanced JS libraries. You won’t help yourself skipping it.
Some are used almost exclusively for web development, some have a bigger scope. Ruby is mainly used in web development (thanks to Ruby on Rails). Python is more broadly used and has dominance in machine learning. For mobile apps you’d use Swift or Java.
Every language has some advantages and disadvantages. Some languages are designed with certain ideas that could be different from other languages. That’s why learning a language isn’t just about learning the syntax.
Understand the concepts and culture of the language. For example Ruby was created to make a programmer happier. But it isn’t the fastest language, so if a speed is a priority for you then there are better options.
With back-end languages you'll probably work with frameworks. What is a framework? And how it’s different from a library?
Library is a collection of functions. It’s just a file with some code. Library gives you code and you decide in what way and where it’ll be used. So you can take a library function for playing videos and use it in your app. With framework it a little bit different.
Framework is a quite vague term. But for the simplicity think about it in this way. You don’t have to worry about how some parts of your application communicate with each other. You give code to various places of the framework, but the framework sets patterns and conventions how that code is supposed to be used.
When you make a new web application with a framework you already have a skeleton. You just need to add missing parts to have a full body.
A few examples of programming languages using frameworks:
That’s why if you’re choosing a programming language for web development you’re not choosing only the language itself. You’re choosing framework. You’re choosing libraries for particular language made by other developers. You’re choosing community and culture.
If you want to make a web application that’ll enable people to create some information and keep it for later use, you’ll have to store that information in a database. All your tweets and all your pictures on Instagram are records stored in databases.
For communicating with database you’ll have to learn a language made specifically for that purpose. It’s called SQL (Structured Query Language). There are specific commands for searching, creating, updating and deleting databases and records.
To make using SQL more advanced you’ll use relational database management systems like PostgreSQL and MYSQL.
I know it looks like a lot of stuff to learn and maybe it feels intimidating. Once you start it will get better. Every success will encourage you to do more.
Very likely you’ll get a bit unsure what technology or language to choose. Of course you want to find the one that has prosperous future and growing demand from employers.
Scrolling forum posts with battles over the best language doesn’t have to help. So many battles have been fought to find the best language/library/framework/tool.
When I was an absolute beginner I thought programmers are super rational people. Well. Soon I found out they can be sometimes very biased. Two groups of programmers can tell you the other language is garbage and won’t be even used in 5 years. And after 5 years both languages grow their user base and keep improving.
First understand a programming language isn’t a religious belief. It’s a tool. It’s a hammer. Using it will have some pros and cons. First decide what you want to make.
Only after that find a tool best suited for the job. Not the newest tool. Not only because it’s popular right now.
If you’re more excited about your tools than the stuff you’re going to make, than find better stuff to make.
Don’t be too worried about what language or technology will make you more money for now. Most front-end and back-end developers are paid pretty well. If you do what you love, you’ll get better far quicker. Which means your salary will grow faster too.
If you haven’t started to write code yet, you maybe won’t understand some stuff in this part. That’s alright. Give it a try and if you don’t understand anything then just skip it. You can always read it later. But I highly recommend getting back to this section later because it’s quite essential.
Knowing how to write code is obviously a necessity for a programmer. What many newcomers don’t realize at the beginning is you have to think in a certain way in order to be a real professional. Code is just a way how to make something happen. You can write terrible code that works, but it might be confusing and it’s a nightmare to maintain.
What really makes you a programmer is thinking like one. You have to adopt certain practices.
Some basic rules you should keep in mind:
When you’ll be stuck or you’ll need to research something – just Google it. It’s not cheating. It’s not a lazy work. This is how it’s being done. But it absolutely doesn’t mean you should just mindlessly copy-paste the first answer you’ll find.
You need to understand the code you want to use. You need to know if and how it applies to your problem. And if it does, it may need some customization to fit your code properly. Take only relevant parts. Think about the right names for functions and variables. Make it simpler, shorter and more readable.
Most of your Google suggestions will probably lead to Stackoverflow.Free resources