Simply put, full stack developer is a kind of people who master a variety of skills and use these skills to complete a product independently. A full stack developer is an engineer who can handle all the work of databases, servers, systems engineering, and clients. Depending on the project, what customers need may be a mobile stack, a Web stack, or a native application stack.
In fact, “full stack” refers to the collection of a series of technologies needed to complete a project. “Stack” refers to a collection of sub-modules. These software sub-modules or components combined together to achieve the established function while without the need for other modules.
- Why has the full stack developer been controversially discussed?
As it mentioned above, the discussion about full stack developer is actually the debate on the depth and breadth of skills. Especially at the OSCON conference, a Facebook engineer said they only hired a “full stack developer.” This topic came as a result of a heated discussion about the strengths and weaknesses of being a full stack developer.
Advantages: The full stack developers involved in a horizontal technical requirement, so that he/she can make a prototype design for a product very rapidly with his wide range of techniques. With the full stackability, they have a broader angle of views and a more active mindset. Moreover, they will be more sensitive to techniques and products. So, this kind of people can always have his/her opinions towards the product or design.
From another aspect, he/she can provide help to everyone in the team and greatly reduce the time and technical costs of team communication, technology docking. So many of them become entrepreneurs or as technical partners in start-up companies.
Disadvantages: It is precisely because of the horizontal technology development, some of the full stack developers cannot be expert in one skill. Most of them who claim to be “full stacks developer” are only know a little about the multiple skills. As for how to make the architecture more suitable for the modular development, that’s a question.
- Even so, there are still people asking, how to become a full stack developer?
A qualified full stack developer should have functional knowledge and capabilities for all aspects involved in building the application.
1) Programming languages
You need to be proficient in multiple programming languages, such as JAVA, PHP, C #, Python, Ruby, Perl, etc. As most of your core business processes need to be written in these languages.Maybe not all need. But you also have to master the language grammar, and to be very familiar with how to structure, design, implementation, and testing of the project based on one language or more languages. For example, if you choose JAVA, then you need to master the object-oriented design and development, design patterns, J2EE-based components of the development and so on.
Where to learn: Git/GitHub — You have to know how to use Git to manage and share your code.
Database and cache
Any product or project needs a database to store data. As a full stack developer, you also need to have at least one or two databases and know how to interact with the database. Currently, the popular database is MySQL, MongoDB, Redis, Oracle, SQLServer and so on. As a document-type database, MongoDB is being used more widely in Internet products. As for larger projects, I also recommend using MySQL or commercial Oracle as the back-end database. While memory databases, such as Redis, can be used for caching to improve system performance.