Professional Documents
Culture Documents
Being A Full Stack Developer
Being A Full Stack Developer
2000 was a long time ago, in that year PHP 4.0 was released. Yes, 4.0. Back
then, a good web developer knew a little HTML, CSS and some procedural
PHP, because proper OOP didnt even exist until version 5.0.
The LAMP (Linux Apache MySQL Perl/PHP) stack was all the rage in
those years, with little or no alternative. In the early 2000s if somebody used
version control they were considered either technological heretics or wizards.
Today its unheard of and laughed at, not using one.
So, lets try to break down and categorize the main technology stacks that
are required from a full-stack developer today:
System administration:
1.
Linux and basic shell scripting
2.
Cloud computing: Amazon, Rackspace, etc.
3.
Background processing: Gearman, Redis
4.
Search: Elasticsearch, Sphinx, Solr
5.
Caching: Varnish, Memcached, APC / OpCache
6.
Monitoring: Nagios
Linux powering most of the Internet, its a de-facto operating system in web
development (not to dismiss .NET). In addition, a full-stack developer should
know how cloud hosting works, Amazon / Rackspace or other providers and
its APIs.
Search is an integral part of most websites a developer should know how to
set up and use search servers such as Sphinx or Elasticsearch.
Caching is also important, Varnish, reverse proxy, Memcached and opcode
caching. He needs to know what each of these is and how to use it.
Back-end tech:
1.
2.
3.
Apache and Nginx are the norm for web development. A full-stack developer
should know how to set up these applications and serve the contents of his
website.
PHP is what needs to be mastered on a high level, NodeJS, Ruby is nice to
know as well.
In addition to web server and programming languages, database
management is also a requirement for a full-stack developer which in itself is
another beast.
Relational (such as MySQL, PostgreSQL) vs non-relational databases (like
MongoDB, Redis or Cassandra) are differences the full-stack developer needs
to know, along with knowing the syntax of XML / JSON.
Front-end tech:
1.
HTML / HTML5: Semantic web
2.
CSS / CSS3: LESS, SASS, Media Queries
3.
JavaScript: jQuery, AngularJS, Knockout, etc.
4.
Compatibility quirks across browsers
5.
Responsive design
6.
AJAX, JSON, XML, WebSocket
Here comes the fun part. If you want to present your website, youd better
know these and all their quirks.
JavaScript was a joke in the early days, grown into one of the most popular
and powerful languages today. New methodologies and frameworks are
popping up each day, MVC, MVVM, MVP, Angular, Knockout, Ember, etc.
Alongside HTML, CSS, Javascript, a full-stack developer should also know
about responsive design and how to work with media queries and CSS
preprocessors like LESS and SASS.
One should also know how to communicate with the back-end via AJAX or
WebSockets.
Design:
1.
2.
3.
UX
In addition to front-end technologies, a full-stack developer also understands
what is possible and what not to create with the constraints of HTML / CSS /
Javascript and convert the design (Photoshop/Illustrator files) accordingly.
With many of the mentioned technologies a developer can get away with not
knowing to code or use, such as Ruby or specific JavaScript libraries, but all
these are interconnected in one way or another.
For example if you want to set up Vagrant you need to know Rubys syntax,
as simplified as it is or if you want to manipulate DOM elements, jQuery is a
good to know technology.
Is it better to be a full-stack
developer?