Recent Posts

banner-top-it-job-right.gif

Archive

Tags

Related Posts

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.

Full-Stack Developer

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.

  • Know how to use HTML, CSS, Javascript, ... to create Front-end.

  • Creating technical requirements and document instruction for customers.

Classification of the required key technologies from a Full-Stack Developer


System Administration

  • 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.

  • Monitoring: Nagios

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.

Back-end technology

  • Web servers: Apache, Nginx

  • Programming languages: PHP, NodeJS, Ruby

  • Database: MySQL, MongoDB, Cassandra, Redis, SQL / JSON

Front-end technology

  • HTML / HTML5: Semantic web

  • CSS / CSS3: LESS, SASS, Media Queries

  • JavaScript: jQuery, AngularJS, Knockout, etc.

  • Compatibility between browsers

  • Responsive design

  • AJAX, JSON, XML, WebSocket

Design

  • Convert website design into Front-End code

  • UI

  • UX

Mobile

Another category that deserves mention is mobile technology. It is a very dynamic industry and closely related to web development:

  • iOS

  • Android

  • Hybrid: PhoneGap, Appcelerator

One of the biggest differences today is development on web and mobile devices, but the distance between them is narrowing rapidly.

Full-Stack Developer

Some resources are useful for becoming Full-Stack Developer: