What does it mean to be a full stack developer? What could be a good full stack one should be learning to work with to turn themselves into a full stack developer. Here is an opinionated view from my eyes.
Citation preview
1. FULL STACK DEVELOPER FSD and my favourite FSD stack
2. WHO IS A FULL STACK DEVELOPER Full-stack development is
about exposing yourself to a broad range of ideas. This is a theme
well see repeatedly in the coming years. Forbes So being a
full-stack developer you expose yourself to different ideas and
processes involved in taking an application from idea to
production. Though judging if one is a Full Stack Developer is
hard. Although the commonalities are well listed at this page. User
Interface Middleware Backend Full stack means all this and
more.
3. WHO IS A FULL STACK DEVELOPER Factors that make it hard to
judge a full stack developer No one stack, but so many stacks. JAVA
Based
4. WHO IS A FULL STACK DEVELOPER Second problem is how much
expertise in a particular stack layer is needed for someone,
claiming to be a full stack developer. UI & UX Middleware and
Services Infrastructure Data Model & Architecture Requirements
Full Stack Developer
5. WHO IS A FULL STACK DEVELOPER - ANSWER The first problem can
be solved by using a generic stack which captures properties of the
layers of different stacks mentioned before. The second problem
cannot be solved that easily but only by seeing these capabilities
in action. So for full stack developer it is important to
demonstrate these capabilities in action. The capability
demonstration can be in form of a completed project. After all,
nothing beats the feeling of getting hands on .
6. FIXING A TECHNOLOGY STACK It is highly likely that you would
need to make this choice. Personal preference for programming
languages, availability of a tailor made stack etc. may influence
your decision. After quite a bit of experimenting with different
stacks I figured my favourite technology stack to be Angular JS
& Bootstrap Java with Spring Any DB even NoSQL ones Infra
utilities like Linux, Chef, Travis etc.
7. MY FAVOURITE STACK THE TOOLS These tools shall be the most
common thing that you will find in different technology stacks.
Linux, Chef, Travis etc. are the utilities that come handy in
handling the infrastructure part of our needs. Hosting, automation
of dev-ops can be done with ease with them. These are open source
and (mostly) mature tools, so one can trust that they will work
well.
8. MY FAVOURITE STACK ANY DB Seriously speaking I do not have
favourites in the DB side. It is mostly according the needs of the
application that a decision on DB is made. Since my interaction
with DB is via Spring/Hibernate combination so I care more about my
data model instead of my DB. Relational DBs are my first choice to
go with if there are no application constraints forcing me to go
other way, as they have most mature support in upper layers.
9. MY FAVOURITE STACK JAVA WITH SPRING Ah! This is my favourite
layer of my favourite stack. This layer packs the biggest punch for
a developer. For the language here, I like Java. Its the clarity of
Java code that wins me over(even though there is a boilerplate code
problem with Java). Java 8 which was released recently packs new
features for higher developer productivity.
10. MY FAVOURITE STACK JAVA WITH SPRING On framework side, I
have tried both SPRING and JAVA EE 7 . Both come off as equally
powerful for most of the use cases. But by a narrow margin, SPRING
is winner for me here. I tend to favour SPRING in my new projects.
It allows web application development in a quick and clean fashion.
SPRING provides DI, MVC, Security, ORM(with Hibernate), Rest
Services(quickly prototype-able with Spring Data REST) and many
other goodies off the shelf. So moving from nothing to something
can be done quite quickly here, especially with the help of SPRING
Boot And the best thing on top of this, is that SPRING is being
very actively developed and new features become available to
developers sooner than elsewhere.
11. MY FAVOURITE STACK ANGULAR AND BS On the UI and UX side
AngularJS by Google and Bootstrap are my favourites. AngularJS
works well with REST APIs and that is what I love about it.
Bootstrap is plain and simple for a developer and a UX person can
easily embellish it with more quaint designs.
12. CHOOSING YOUR TECHNOLOGY STACK I believe becoming a full
stack developer is about learning the different patterns and idioms
of developed that are followed in the more abstract application
design and development realms as mentioned in slide 4. You can
choose any technology stack, but you will learn similar patterns of
design in all of them. There can be differences in the learning
related to languages and libraries, and they can be significant so
you have to choose wisely.