In the modern day application development, A full stack developer is not the one who just writes backend and front-end code for the application. A full stack developer is able to write the whole suite of the applications for the product. This includes writing code for Backend, Frontend, Android application and an iOS application. This can be seen to be the really daunting task for the developer to learn all the technologies required for coding the complete solution for the product. On the other hand, it adds to the cost of the companies trying to build a perfect solution for their product because they now need to maintain four teams instead of one, one each for Android application development, iOS application development, Backend development and the Frontend development. Managing the communication and getting each of the teams to might add to another level of complexity and more expenses on the team.
Traditionally, the above structure is how the Product development teams used to work. A product manager writes the product requirements for each of the flows and passes it to 4 different teams who work together to build the whole solution. The stack usually looked like as follows:
- PHP/Java/RoR or any of the popular web programming languages for the backend.
- A designer for the front end who designs the website and converts it to HTML(These may well be 2 different people as well).
- A designer for the mobile apps who designs the mobile app screens.
- An Android application developer who knows Java and knows android app development with Android SDK.
- An iOS application developer who knows Objective C / Swift and has worked with iOS application development
Since then, NodeJS has come a long way and is stable and scalable enough to be used with production level applications. Some of the popular apps that use NodeJS in full or in parts include but not limited to PayPal, eBay, LinkedIn, etc.
So a person aspiring to become a full stack developer must have NodeJS handy in his skill toolset. They learn any one of the popular frameworks like Express, HAPI, Koa and get started in the world of backend programming with NodeJS.
There it becomes very imperative for an aspiring developer to learn at least one of the modern day development frameworks like Angular/ReactJS/Vue.
Here are some of the salient features of Angular and ReactJS to help you chose one:
ReactJS: React is a front-end development framework like AngularJS. It’s not a complete MVC like Angular but is a very lightweight competitor. ReactJS uses ES6 and JSX and extensively and one must familiarise themselves with ES6 and JSX if they want to do development with ReactJS
Native Apps development with NativeScript: NativeScript is a similar framework like react native, but the underlying framework is Angular 2 and not react Native.
You can also choose to take a ready-made built theme from sites like creative-tim.com and get started up and quickly.
Finally Summing up the various options for the various components of the solution:
- Backend Programming: NodeJS frameworks like ExpressJS, HAPI, KOA
- Front End Programming: ReactJS/AngularJS/Vue
- Mobile Apps Development: React Native / Native Script / PhoneGap/Ionic
- Configuration: Webpack / Browserify
- Testing : Jest / Watir / selenium
About the Author
Ishwinder is a serial entrepreneur and is involved in various startups. He also writes at Techpikk in his free time.