Why Full Stack Development is Too Good For You in 2017
Namaste readers. It is always said that being a software
developer is a lifelong learning affair. Since the trends and technologies get
the expire ticket often in the software field, one should be ready to cope up
with a sudden change. It is a continuous treadmill where relaxing is seldom a
choice.
Many software development & engineering jobs are
flooding the current job market. If we analyze the trend, only a few of the
boxes will be ticked hardly while others have very less impact or significance.
Even though the need for Data Scientists & Analysts, Big Data experts, AI
is raising over past three years, it is not reaching the same demand level as a
full stack developer or a full stack engineer. There are few reasons for it.
Note: I also wrote a programming book. If you are a software
developer by chance, please do check it out.
Building RESTful Web services with Go
Explore the necessary concepts of REST API development by
building few real world services from scratch.Key…
www.amazon.com
Before, we all know these roles exists in software world
from a very long period and some of them are new ones:
System Analyst
Software Developer
Software Engineer
Database Analyst/ Admin
Data Analyst/ Scientist
Big Data Developer
Game developer
Network Security Professional
Operations Engineer
Front-end Developer
Web Developer
Full Stack Developer
Back-end Developer
DevOps Engineer
Out of these many specializations, only a few are very hot
right now in the beginning of 2017. What is the reason?. It is due to the
saturation of certain technologies and discovery of new businesses in form of
startups. The explosion of startups and micro-businesses caused a wide set of
skills to be needed as a benchmark. In those, full stack web development is
one.
If you consider the technology positions which are in demand
previously in various US states:
How Full Stack Development stands out in the group?
The common meaning of full stack developer is this
“The term full-stack means developers who are comfortable
working with both back-end and front-end technologies”
Technically speaking it is not a standard set by the
industry. It is an evolutionary facet of skills. A full stack developer always
tries to learn open source technologies to apply them in his/her job. In my
opinion, full stack development is a minimalistic(at least) combination of
following things
Front-end Development + Back-end Development + DevOps +
Design
Apart from building web applications comfortably, a full
stack developer should know how to deploy, optimize, automate the application.
Full Stack Development is a Breadth First Search (BFS)
If you study graph theory, there you might have encountered
graph traversal algorithms. Every computer science student knows them very
well.
BFS (Breadth First Search)
DFS (Depth First Search)
I am here going to produce an analogy which compares full
stack development to other specializations in terms of traversal of multiple
technologies and fields.
BFS is a traversal algorithm which in the first turn visits
all adjacent nodes to a root node and then starts digging deeper.
DFS is a traversal algorithm which first touches the bottom
of maximum depth of first child node and then returns backs and starts the
process from a second child.
How your learning should be? DFS or BFS?
The answer to this is a personal choice. A Ph.D. student
likes a depth first learning because he/she narrow down their work to a single
unit at a time. But as a working software professional in 2017, you don’t have
the luxury of time to build, test, and fix things. Consulting is a trivial
choice for corporates but for startups they cannot create a hundred roles for
hundred things.
A full stack development is a breadth first learning where
you first try to know how to operate things and then try to deepen your
knowledge in that by continuous work. From our school time, we implemented this
BFS by studying various subjects at the same time. There is nothing new in this
technique.
The picture shows the diversity of areas where a full stack
developer works and gains experience. Since he needs to take care everything
from the beginning to end of a web application, the developer should get
his/her hands dirty with top level nodes first and then dig deeper. The more
you learn, the stronger and useful you become to your organization.
In 2017, companies need people with wide range of skills.
They are not looking for conservative candidates who has experience in a tool
or technology no one knows. Embracing open source knowledge will make
recruiters queue for your interview(then consume your services).
Are you passionate about learning?
If you are a kind of developer who learns quickly and always
ardent to try new things somehow, this profession best suits you. Full stack
development is all about implementing things, knowing them and improving them.
Continuous work gives you the variety of insights of
development. As a full stack developer, to crack a problem you know where to
start, what to use and how to react for a new requirement.
Pushing the limits of a web developer
Have you ever thought in the game of Cricket 350+ scores are
possible in one day?. In Tennis game too, the serving speed and power hitting
are improved. Aggressiveness is doubling every decade to make the sport more
interesting. All professions are evolving too. Computer science and software
development are no exceptions. In the primitive era, people used to hire a
specialist to perform a task. But now, in the cloud computing age the
aggression in learning things and making changes is usual.
Like in children’s cartoon Pokemon, how a Pikachu evolves
into a Raichu, a normal web developer is evolving into a full stack developer.
There are few doubts about this particular area. I am going to clear them in
the next section.
Who is a full stack developer?
Full stack development is a relative term not ideal. As a
wavelength range in a color spectrum, skills to acquire the status of full
stack developer can vary according to the requirements. But in my opinion a
developer can become a successful full stack developer if he is:
Able to work with CSS & JS well (Media queries, Single
page applications & DOM, ES6). Knows streamlining tools like Grunt, Gulp
& Browserify
Knows web frameworks(at least one) in and out Ex: Django or
Node JS
Worked with SQL and NoSQL for a considerable amount of time
(MySQL, Mongo DB). Can model relations well. Can implement advanced queries and
SQL Joins
Knows how to deploy his/her code on AWS EC2 with Apache2 or
Nginx as a web server. Should have a working knowledge of Docker and
Virtualization.
Can design a web application end to end with many loosely
coupled components. Should be brave enough to suggest the architectural changes
if he has a valid reasoning to do so.
Choose the trivial good solution and improve it all the time
Can automate release cycles with the knowledge of Chef or
Ansible. Automate logging and failure retrieval.
Love to context switch from one domain to another, one
technology to another swiftly and be able to finish tasks in the time.
Having basic to medium level knowledge on hybrid mobile app
development with JS, Chrome extensions and progressive web apps.
Why should you go for Full Stack Development?
When there is a multitude of career options available, why
one should stretch his arms for full stack development. First, it makes you
learn new things all the time. Technology is changing briskly and sticking with
same work for ages may deprecate your career options. You are more valuable to
a team and can assess decisions related to any aspect.
Second, the role pays you more. If you are a full stack
developer, chances are more that your paycheck is fat. A salary study from
Indeed.com tells that an average full stack developer in San Francisco, CA
earns nearly $ 1,30,576 per annum where as a normal web developer makes about $
94,614
Even in India, the people with skills of full stack
development are in full demand in 2017. Indian startup market recognizing the
significance of full stack development lately and giving importance. Software
companies from major cities like Delhi, Mumbai, Chennai, Bengaluru are posting
jobs for full stack developer roles in linkedIn.
Negative points to ponder honestly
Full stack development can also bring few drawbacks and may
not suit all kinds of people. It has following disadvantages:
People may call you Jack of All Trades but Master of None.
Even though it is partially true, it is your responsibility to keep up with the
knowledge you gained. Writing a known technique in a blog, taking notes can
help you remember tricks of your current work for later course of time.
Your current working region may not yet adopt this full
stack style
For freshers, they need to work and prove in startups to be
a Full Stack Developer. Only a few are given freedom for what they do in the
beginning stage. So your company decides what you will work on at the starting
point of your career. So plot a clear plan before getting out of college
Coming to me :)
I proudly call myself a Full Stack Developer (with terms and
conditions). You may say no one is perfect. That is true. I am nowhere near to
perfection. I am traveling a long path to full stack development and finished
three years of journey with ups and downs. A lot of things have changed and
changing while I write this article or while you read this. As I told
previously, full stack development is not accurately defined, it is the
dedication and grasping things that takes you closer to it.
The mastery in the full stack development is a regulatory
knob, not a switch
I initially started my career working on Python & Flask.
Then explored Databases like Mongo DB and MySQL. Cached things with Redis.
Pushed code with Git. Worked on plain vanilla JavaScript. Got an understanding
on event processors and message queues like Celery and RabbitMQ. After that
moved to Django. Acquainted with AWS, Nginx web servers. Developed code in
CoffeeScript and Backbone JS. Played with Angular JS to create a chrome
extension for my company. Currently writing a lot of JS code (client and
server). Since I worked in few great startups, I got the freedom to work on all
these things. I thank them from the depth of my
heart.[Source]-https://medium.com/dev-bits/why-full-stack-development-is-too-good-for-you-in-2017-3fd6fe207b34
Training, MongoDB, Node JS and live Project Development. Demo Mean StackTraining available.
Comments
Post a Comment