Published on Jul 12, 2018
You may have heard the term “Full Stack Developer” quite a times. But what exactly is a full stack developer? How to become a full stack developer?
A full stack developer is someone who can develop all the stacks of web applications. There are two (major) stacks of web applications: Frontend and Backend.
I am assuming you have zero experience in web development.
There are two types of websites: Static and Dynamic.
Dynamic Websites have backend. Web pages are generated in real time in a dynamic website.
Okay. So I think this is enough for a beginner Frontend Web Developer.
What? Just beginner? Are you kidding?
Oh come’on man, it’s 2018. We are not in 2011. In 2018, we have really awesome front-end frameworks and libraries to build awesome User Interfaces.
In the era of modern web, it is important to build good looking interactive User Interface. Using AJAX we can do that. But there are frameworks and libraries that make this easier and more efficient. I am talking about Single Page Application Frameworks/Library Angular, React, and Vue. There are many more such as Ember and Backbone but these three are the leaders of SPA development. Okay, so now the question is:
What the heck is Single Page Application?
Single page application stands for a web application, that only loads a single HTML page and updates the page dynamically without reloading it. But does that mean an SPA can have only one page? Well, the answer is Yes and No. Yes, because SPAs have one HTML page. No, because you can make as many pages as you want using app level routing. In simple words this means you can think of a HTML page that has multiple sections and only one section is visible at a route.
Which framework or library to choose: Angular or React or Vue.
If you want to build a complete web app, you need to write the server side too. There are many options for which language you wan to choose. So here are the languages options:
Python: Sweet and easiest of all to learn.
Go: Simple, fast, efficient. Built by Google.
Java: Fast but have to write too much code.
Ruby: Again simple, easy and productive.
PHP or .NET(C#): Both of the languages used to dominate the backend industry once. But PHP is losing the edge.
Erlang, elixir are other languages that you can also learn for backend.
Choose a Framework according to a language: After choosing a language and learning it, you can choose a framework to build the backend because frameworks make it a lot easy to build things.
If you choose Python: Flask and Django are two great options. Flask is easy and minimalist. It’s easy to make backend API with it. On the other hand Django is a MVC (model-view-controller) framework that provides tons of the features out of the box.
If you choose Node.js: Express, Sails and Hapi are some of the famous frameworks that you can use. With Node.js, people generally use MongoDB which is a NoSQL database. MongoDB has great API that makes the development really easy.
If you choose Ruby: Ruby on Rails and Sinatra are two great options. Ruby on Rails once ruled the era of web development. Twitter, Airbnb and many other great apps are built with Ruby on Rails.
Spring for Java, Laravel for PHP. Pheonix for Exilir and the list goes on…
In addition to these frameworks you should also have knowledge about databases. MongoDB, MySQL and DynamoDB are some of the popular databases that you should learn about.
Okay so I wanna ask you one question here.
How many minimum programming language(s) is(are) required to build a Web, Android, iOS, Windows, Mac OS X, and Linux app?
Answer is: ONE.
If you had chosen React above in advanced frontend section, you can use React Native to build cross-platform apps that run on Android and iOS. Other options are Ionic and Cordova. Ionic uses Angular to build mobile apps. Apps built with Ionic or Cordova are hybrid apps. That means those apps are just web views created with HTML, CSS and JS wrapped in a native view container. They don’t perform well on devices. On the other hand, React Native uses Native components of phones so it gives almost native performance. If you are good in React, React Native is just a piece of cake. And framework like Expo make React Native app development even easier. Framework for a framework FTW! There is one other framework NativeScript, it also uses native components for better performance. You can use Angular and Vue to build NativeScript apps.
Coming to Desktop app development, Electron is a framework that allows you to write cross-platform applications just using HTML, CSS and JS. They are just Web View wrapped in native windows. But many popular apps are actually built with Electron. For example my favourite code editor VS Code is built with it. Atom, Slack, Github, Skype, Now are other popular apps that are built with Electron. You can also use React, Angular or Vue in Eectron for building app UI. It’s web view after all. Recently, I found one other framework for building desktop apps that uses native UI component. It’s Proton Native. It uses React for building desktop apps.
Surprised? Earlier I said there are 2 major stacks in web or app development. Yeah 2 major but there is a third optional stack if you are interested in learning it. It is getting popular over the years. It’s called DevOps. With development you should also know how would you deploy your application. AWS and Heroku are two great options. AWS gives you infrastructure as a service (IaaS) that means you can launch virtual machines and run your application as you want. You can configure OS, RAM, Cores of the machine. While Heroku gives you platform as a service. That means you can deploy your application without worrying about anything else. Heroku will take care of underlying machines, OS, RAM, cores etc. In addition, you can also learn about Docker and Kubernetes.
Web and App development is a domain where things change quickly. Today React is the most popular frontend framework, may be tomorrow there will be a new framework. Just like React did with jQuery. So the most important part is keep learning and keep exploring new libraries and languages. There is so much to learn.
Data Analytics and Machine Learning are also really demanding skills. If you have time and you want to learn more you should explore NumPy, Pandas, Sklearn, and Tensorflow. All these are Python’s scientific libraries. Recently, Tensorflow.js was released, which allows JS developers to build and train Neural Networks in the browser and the server. You can try that out too.
That’s it for now.
Thank you for your time.
Feel free to reach out if you have any questions.
Back to All Posts