About Full-Stack Developer - The Versatile Developer
Most developers spend the majority of their careers professionalizing themselves in a certain area. As for Full-Stack Developer, they are knowledgeable from server, data, front-end to back-end, UI, UX, ... So whether they are technology geniuses in the whole team or not.
The Definition of Full-Stack Developer
Full-Stack is a combination of knowledge, visual and deep understanding of both front-end and back-end, as well as having a thorough understanding of best practices and concepts. Front-End is generally the component for the user to see and interact with, the Back-End is the part of the application with processing logic, database interaction, user authentication, server configuration.
Obviously, Full-Stack Developer is the person having the capability to work in both the front-end and the back-end of the product, concurrently code for all components of the system. It requires a large number of skills as well as experience.
In general, Full-Stack Developer is usually responsible for designing the interface and the database behind it until the product runs smoothly.
Although assuming responsibilities for both the front-end and the back-end of an application, a full stack developer will not be as good as a front-end expert in processing the front-end, this is similar to the back-end. However, they will have a broad understanding of many different components, how to interact between them in the development process and combine them into a complete product.
As a Full-Stack Web Developer, you don't necessarily have to do all the tasks that are delivered from the front-end to the back-end, but that means you can work on both front-end and back-end, understand what is happening when building an application.
The main tasks of a Full-Stack Developer
Set up the system environment to deploy the application.
Analyzing and designing databases through database management systems such as MySQL, SQLServer, writing data query script.
Must know to use one or more different programming languages such as PHP, C #, Java, ... for the purpose of writing web applications, web services, or Back-end.
Creating technical requirements and document instruction for customers.
Classification of the required key technologies from a Full-Stack Developer
Linux and basic scripting shell
Linux is ubiquitous in the Internet world, which is an operating system playing an important role in web development.
Cloud hosting: Amazon, Rackspace, etc.
In addition, a full-stack programmer should know about cloud hosting, Amazon / Rackspace or other providers and how its APIs work.
Background processing: Gearman, Redis
Search: Elasticsearch, Sphinx, Solr
Searching is integral to most sites - a web developer should know how to set up and use search servers like Sphinx or Elasticsearch.
Caching: Varnish, Memcached, APC / OpCache
Caching is also very important, Varnish, reverse proxy, Memcached and opcode caching. Full-Stack Developer needs to know what these technologies are and how to use them.
Web development tools
Version control: Git, Mercurial, SVN
Today, it would be unacceptable without using version control, even if you are a single developer. In there, Git is a version control system that allows developers to work on a group to keep track of all changes being made on the codebase. It is important to have some basic knowledge regarding Git, so that you understand how to recognize the latest code you missed, update parts of the code, fix bugs and change the code of others without infringe.
Virtualization: VirtualBox, Vagrant, Docker
With virtualization tools, having separate development environments for each basic project is really necessary, and easy to set up with at least using VirtualBox and Vagrant.
Besides, if you want to work with Vagrant you also need to know Ruby's basic syntax and shell script.
Web servers: Apache, Nginx
Programming languages: PHP, NodeJS, Ruby
Database: MySQL, MongoDB, Cassandra, Redis, SQL / JSON
HTML / HTML5: Semantic web
CSS / CSS3: LESS, SASS, Media Queries
Compatibility between browsers
AJAX, JSON, XML, WebSocket
Convert website design into Front-End code
Another category that deserves mention is mobile technology. It is a very dynamic industry and closely related to web development:
Hybrid: PhoneGap, Appcelerator
One of the biggest differences today is development on web and mobile devices, but the distance between them is narrowing rapidly.
Some resources are useful for becoming Full-Stack Developer:
- About front-end: For the initiates, should read:
Head First HTML & CSS
HTML5 & CSS3 for Dummies
For doing Tutorials and exercises you can go to Codeacademy or Freecodecamp.
- About UI / UX: Although you know front-end code, you still have to learn UI / UX to make the design easy to use. UX books are worth reading:
Don't Make Me Think
User Interface Design for Programmers
Alternatively, go to Medium to refer to the UX articles.
- About back-end: Some books on system architecture and code organization include:
Refactoring: Improving the Design of Existing Code
Head First Design Pattern
Patterns of Enterprise Application Architecture
-- You are worrying whether to choose a reputable address to look for IT jobs or intend to apply for Full-Stack Developer vacancies at top IT companies in Vietnam and Southeast Asia? Please don’t hesitate to click for explore more information about Full-Stack Developer positions at: https://www.jt1.vn/top-it-jobs
-- You are an IT Company or IT Employer finding experienced IT candidates but have some difficulties in recruiting. JT1 - IT Recruitment Agency has been providing IT specialists in Full-Stack Developer positions from our database with 20.000+ qualified candidate profiles completely in IT. JT1 has cooperated and satisfied the demand of professionals IT Recruitment for more than 1000 employers all over Vietnam, including leading companies in the IT market. If you have any further questions, please follow and don't hesitate to contact us at: https://www.jt1.vn
Xem thêm bài viết: QA Engineer in IT Market - Concept and Career path
JT1 - IT Recruitment Agency
Phone: +8428 6675 6685