In the first months of your career as a Full Stack Developer you will have to take key decisions that will condition your next years of career. Here we bring you four key decisions to succeed as a Full Stack Developer.
The Stack
The technological stack are the various pillars on which a technological product is based. In general, this means the frontend, the backend and the database. The frontend is the programmatic part with which the user interacts (the web page or the mobile application) and the backend is the programming that runs on the server and where the programmed business logic is normally. However, the stack does not have to stay in the classic frontend, backend and database.
Another common pillar is systems administration, which consists of configuring and maintaining servers, domains and other systems. In general, quality assurance, usability and user experience, graphic design, and team management are usually excluded from the concept of technological stack, although they are undoubtedly necessary for the success of any project.
A Full Stack Developer can have knowledge of management team or design that further enhances its flexibility. The decision here is to know which pillars will make up your stack as a Full Stack Developer. Naturally; frontend, backend and databases. But are you going to dare also with systems administration? Are you going to complement your profile with usability knowledge? It is essential to start at the beginning, but it is worth having the vision of what stack you are looking for beyond the minimum.
Vertical
Being a Full Stack Developer in a web project is very different from being in a mobile project. The main verticals are web development, mobile development, game development and multimedia development. These verticals have parts in common, such as backend and databases, whose technologies can overlap. However, what is important here are the differences. The clearest difference is frontend technologies. For example, in web development the frontend technologies will be HTML, CSS and JavaScript (or their family) and in mobile development they will be Android or IOS. This also leads us to think of subverticals, such as Android and IOS mobile development that have radical differences in terms of frontend programming.
Each vertical has its market, and the transfer of full stack programmers from one vertical to another is not something that happens every day. However, with due experience it is possible to be full stack in more than one vertical. For example, finding a Full Stack Developer that you can develop on both mobile and the web is not a fantasy, particularly since technologies like Flutter and React Native have been adopted (and indeed since their predecessors Cordova and Phonegap).
Maybe are you interested to reading “What is a Full Stack developer“
The Technologies
At the end of the day we must end up programming in some specific language, some particular database and some operating system. So it is not enough to choose the vertical one. Are we going to program the backend in Java or in Python? Will we use the classic MySql or will it be a MongoDB? In frontend we will use React or Angular? If the previous decisions they were decisive and there were few options to choose from, here opens up a world of possibilities difficult to list.
The first regulation is to use technologies that have active maintenance and they are specifically used. We can easily make the example with languages. According to the Github annual report of 2017 the languages that have more repositories are: JavaScript, Python, Java, Ruby and PHP. And if we go to the respective pages of versions of these languages we will see that they effectively have active maintenance. So any of these are a good decision.
It can be said that normally if a technology is widely used then it almost certainly has a good maintenance. However, a technology with a lot of maintenance does not have to be used very much, and at any time for lack of use stop being maintained. Why is this criterion of use and maintenance important? To ensure that we will have access to learning resources, support, community, a technology that grows and expands functionally, and above all to ensure that the investment of time we make in learning this technology is an investment that is unlikely to fall into a broken a few years later.
But not all technologies are covered by this criterion. For example, our project may need a database capable of analyzing graphs (for example, relationships between people, such as Facebook or LinkedIn). Then we have to add the question. And also this technology solves the problem that I need better than the others?. Finally, sometimes you can’t choose technology. The Internet works with HTML, and we cannot decide to learn an alternative to HTML if we want to program web.
The market
This, more than a decision is something to take into account and that conditions the previous decisions. Surely we want to be a Full Stack Developer to work as such in a company. And of course, not in any company. Each one has his own preferences. There will be those who want to work in Banking, others will prefer Startups, whatever, perhaps there is even a specific company with which you dream of going to work with.
Well, all these companies use technologies, there are even entire markets that use very similar technologies. So if you have a preference, you should investigate what technologies are used in that market. How is this investigated? It is very easy, you list a few companies in the sector you are interested in and look for them on LinkedIn, you click the tab “Jobs”, and there see what developer profiles they look for and the technologies they ask for. That’s maybe it’s tedious, but it’s effective. You can also take advantage and contact and ask some employees of these companies about the technological trends of the sector. It is not crazy, in general on LinkedIn if you are kind and respectful, they answer you with kindness.
In some sectors, the technological diversity is overwhelming and it is difficult to draw conclusions, as in the sector of Startups, very agile, very fast, the Startups come and go and the technologies with them. But in other sectors there is much less diversity. For example, in public administrations there are two dominant backend technologies: Java and .NET. The same also happens with databases, in large companies the Oracle and SqlServer databases are dominant. However, in the data analysis companies that dominates Python and R. These three examples are based on what I have seen and what those around me have seen in recent years, so it is possible that the public administrations that you do not know, not use Java and .NET, but master another language. So, you always have to investigate.
In short…
Take time to research and draw conclusions to decide the stack, the vertical and the technologies. Investing time in this phase can save you a lot of time later and will help you to be focused on learning those technologies you have chosen. And if we make a mistake, we can always rectify, but by following these tips we will be wrong a little less.
If in the end you have decided to be a web Full Stack Developer check out the Full Stack Development bootcamp at Nuclio Digital School.
If you want to know more, find out about the Master explained by the Director Guillermo Blasco.