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.
2. WHO IS A FULL STACK DEVELOPER
Full-stack development is about exposing yourself to a broad range of ideas. This
is a theme we’ll 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. It’s 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.