13
FULL STACK DEVELOPER FSD and my favourite FSD stack

Full stack developer: An Opinionated View

Embed Size (px)

DESCRIPTION

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.