The big road to become a great Web Developer
Hello! i also did a Spanish version of this article.
You can follow me on my Github Account.
When you enter in the wonderful world of the web, you realize that development is not just a one technology, in fact, exist a ton of languages, frameworks, libraries that we can use day a day in our development.
Right now, I’m going to introduce you in what order is recommended learn the great mass of technologies that are presented to us.
Before beginning, we are going to define in a short way two basics points and keys to understand that, surely, in a future, im going to make a new article talking more about of each tecnology.
So, we are going to explain two main-roles in development.
Front-End Developer: Is the responsible of the visual part of the site. This is not mean that is only a designer, rather the front-end is responsible to joining the information flow so that it is finally visible to the user.
Back-End Developer: Is the responsible to set a communication with the Front-End. He do all the process the incoming information for do operations that converts a site to a merely functional app.
Although there are many more roles, like, Full Stack Developer, Ninja Developer, etcetera, but we are not going to explain all roles in this article.
Now we can start!
HTML5: With him we build all the site structure, this means, that by using tags we make all the layout and the template. Is not a programming language, is a Markup Language.
CSS3: With him we set the design or the style of our web site. At equals that Html, Css is not a programming language, rather is a stylesheets language.
Right now we are good, this three languages are fundamentals for us and his utilization is essential.
Maybe this recommendation is not the most purest, however, is still relatively used.
if you know a lot of this, now you can create static sites, this mean, sites that the information is not changing all ther time. The most important thing is that you know how to program, so, now, we can go the better practises.
SMACSS: Smacss is not a language or a preprocessor, is a style guide for our organize Css code. I’m going to write a whole new article talking about this technique.
Others methods to organize your Css:
A Css preprocessor is a tool that permits us writing pseudo-code Css that then is gonna to be converted to a native Css with using a tool or program.
They are technologies that try to facilitate various tasks, from minify code, to compress images.
Live Reload: Is a tool/extension that detects your website changes and permits you a real time visualization.
Prepros: Is a program that allows you do a lot of actions in a automatic way with not programming necesary, for example compile Sass, minify your code, and more. At Prepros exist others programs, personally, i use a lot a program called Koala.
So now we can choose a framework to get more speed development.
A framework is a set of libraries that we must respect the context for the correct use of them.
Bootstrap: Is the Css framework most popular and used. It is a framework that focuses on the mobile role at development time, prioritizes and facilitates the possibility of realizing a totally Responsive site, that is, adaptable to different screen resolutions, which is not only a detail.
Foundation: Like Bootstrap, exist a framework called Foundation. It is very recommended but is not so used like Bootstrap. My recommendation is that you test both and choose the framework that more likes you.
I use Bootstrap. Now im trying another called Skeleton.
Exist another like Semantic UI, Kube, Sussy, blueprint, purecss, etcetera…
Before choosing a Js framework, i recommend you to have a great
Angular: Is a very popular framework for the Front-End development. Was created by Google, and allows you create Simple Page Applications.
The same that i said before, test each framework and choose your favourite.
React.Js: I strongly recommend that you use your time in learning it. React is not a framework, it is a library created and maintained for Facebook for component creations, focused on creating user interfaces (UI).
Now we can go to the Back-End: In this case is not necessary to know all the languages or frameworks that I am going to show you, you can test each technology and choose the one who more passion you.
PHP: Is a interpreted programming language that works in the server side for the creation of dynamic websites. Right now it is on the 7 version, so is a good language to follow. When you have a good knowledge you can try and go to a framework like CodeIgniter, Phalcon, Yii, Symfony or the most recommended: Laravel.
Python: Python is not a web-oriented language, but exist very cool frameworks to develop our backend. When you have a good knowledge you can try and go to a framework like Flask, Pyramid, Web2Py or the most recommended: Django.
Java: Hated by many, loved by others, is certainly a very powerful and used language. When you have a good knowledge you can try and go to a framework like Grails, Play or the most recommended: Spring MVC.
Go: It is a relatively new language created by Google. It is a language that seems to have a future.
DataBases: When talking about web applications, and especially back-end, you should consider the use of database.
MySQL: It is a used relational database management system.
MariaDB: It is a database management system derived from MySQL.
PostgreSQL: It is an object-oriented and free relational database management system.
MongoDB: It is the leading NoSQL database allowing sites to be more agile and scalable.
Redis: It is an in-memory database engine, based on hashed table storage.
Firebase: It is a mobile platform developed by Google that allows you to develop apps of high quality and speed.
GraphQL: It is a query language to establish a communication by the server.
Learn to consume Api’s, invest your time in learning programming paradigms, for example: Object-oriented, Functional, Reactive, techniques or methods such as: MVC, among others.
And a long Etcetera.
If you read all, you maybe are you like this right now:
However, do not rush into learning everything, in learning you can’t skip stages. Go slow, practise every day, and choose the the tecnologies that you love. improve every day and devote yourself to the technologies you like and help you develop your sites. You do not have to try to learn everything, it’s very difficult, very few people, to say nothing, embrace everything.
For my part I will try to explain in a simple way several of these technologies so you understand them!
Here I leave you a repository of GitHub with a lot of material on the subject!
Please share it!