“The following article has been completed for a long time, so the article mentioned a few old technologies.”
The Full Stack Developer theme is one of the hottest topics currently in existence, leading to controversies that often have no end.
On LinkedIn and Facebook, there are many people who record the current job as Full Stack Developer . The articles on this issue on Medium also received many mixed comments from readers. Some argue that it should focus on personal skills and in-depth understanding of technology, rather than aiming for something vague like Full Stack Developer .
From a personal point of view, I see mainly debates aimed at comparing an almighty worker with a skilled expert in the IT industry. These are the two “wide” and “deep” properties when referring to the technological capacity of each person.
“A job for nine is more than nine occupations” – my father once taught his children and grandchildren that “be truly proficient in one thing, rather than just a little one”. However, a Full Stack Developer (or Full Stack Designer ) needs to go against that advice, when challenging yourself to be adept not only one technique, but many techniques at a time.
What is Full Stack Developer?
The Quora explains how a Full Stack Developer :
A Full Stack Developer is an engineer who can handle all tasks related to databases, servers, systems engineering, clients. Depending on the requirements of the project when customers need a mobile stack, the web stack or native application stack, that engineer can be completed independently.
In fact, full stack is a collection of a series of technologies needed for a project. A Full Stack Developer is someone who has the ability to coordinate their knowledge in many different areas to implement the project, without additional assistance.
Advantages and disadvantages of Full Stack Developer
At the OSCON conference, a Facebook engineer said that they only recruited full stack developers , bringing debate about the strengths and weaknesses of those who chose this path.
With a broad technical understanding, full stack developers can quickly complete product prototypes, have a more open and proactive look than other engineers. These people also contribute many useful ideas for the product thanks to their technology sensitivity.
In another perspective, full stack developers can help people in the team, minimize the time and cost for tech or communication issues.
Many full stack developers later became founders or technology consultants of start-up companies.
When choosing to develop skills horizontally, they have to accept in exchange for a lack of depth. Some full stack developers cannot master a certain skill. Even, many people claim to be full stack developers, but each field only knows by speakers.
How to become a Full Stack Developer?
A Full Stack Developer needs knowledge to meet all areas related to building a software program.
First, you need to know a lot of programming languages, like Java, PHP, C #, Ruby, Python and so on. Of course you don’t need to know all, but at least you have to master at least one language. language, must understand how to design, code, test with projects using that language. For example, if you choose Java, then you need to master object-oriented design, design patterns, J2EE-based components etc.
Frameworks and external libraries
Popular programming languages all have good frameworks, such as Java Spring, MyBatis, Hibernate, Python Django, etc. You must know how to flexibly use these frameworks with support libraries from the side. The third depends on the project requirements.
Front-end is becoming increasingly important in the current software industry. User experience is one of the leading factors for evaluating product success or failure.
As a full stack developer , you can’t ignore the front-end knowledge like HTML5, CSS, JS and popular frameworks like JQuery, AngularJS, REACT etc.
Every program needs a database to store data. You need to understand how to communicate with at least 1-2 different databases, such as MySQL, MongoDB, Redis, Oracle etc.
MongoDB with high flexibility, is often used in Internet services. Meanwhile, for large projects, I recommend using MySQL or Oracle. Redis can also be used to store cache, improve system performance.
Most debates about Full Stack Developer do not mention design, but in my opinion this is also a necessary skill for anyone who wants to become an almighty engineer. You should add knowledge of how to design a simple prototype, UI / UX design.
- Have open thinking, covering all aspects of the product
- Good communication
- Always curious, ready to learn new knowledge
- Control time well
Applying Gladwell’s 10,000-hour rule, it may take 10 years to master front-end, back-end, and client-oriented knowledge to become a Full Stack Developer. However, it is still not the final goal, because you need to continually learn new knowledge and delve into the existing skills, to really power all the maps (j / k).