Full stack developer is someone who is able to work on both font-end and back-end of application. Front-end refers to the pat of application where end user will see or interact, and back end is refer to applications authentication, security, business logic, data access logic, database interaction and server configuration.
According to Stack Overflow Developer Survey 2016, full stack development is most popular occupation. Hence developers across the globe searching how to become a full stack developer?
In this article, I will explain what things you should know to become full stack developer.
In my personal opinion being a full stack developer doesn’t mean that you have to be master on everything required to work with front-end and back-end, but it means that you are able to work both front and back end. Below are couple of points (but not limited to) that I have compiled from various sources that could help you to become a full stack developer.
- HTML, CSS, Bootstrap CSS, Color Picker
- JSP, PHP, ASP.NET, MVC, MVC Core, 3rd Party Tools like Kendo, Infragistics and Open Source tools for grids and charts
- Created layout designs
- Experience of working closely with visual designers
- Knows user experience like look and feel, number of clicks
Business Logic and API Layers
- Experience on writing business logic using C#, JAVA, ColdFusion, Python, PHP etc
- Implementation of service oriented applications using SOAP and REST based services
- Http request and response pipeline
- Http sessions and cookies
- Experience in Security implementation like Secured Websites, Cryptography, Authorization and Authentications
- Designed and implemented logging and caching components
- Content and document repositories or servers
- Dependency Injection
- SSL Certificates, Http1.0 and Http2.0
- Relational database like SQL Server, Oracle etc
- NoSql databases like MongoDB, Redis, Amazon DynamoDB, DocumentDB, Cassandra etc
- SQLite database for mobile and PDA’s
- Understanding of which database is better in which scenarios
- Knows how to use In-memory database like Redis
- Scaling database, ACID properties and different ORM’s available in market
- Test driven development for services, controllers and views
- Developer tools for browsers like Chrome and Firefox
- Color picker, firebug
Source Control Version and DevOps
- Setting up source control repository like Git, TFS and SVN
- Continuous Integration and Continuous Deployment using DevOps tools like Jenkins, TeamCity, VSTS etc
- Docker container
Design and Architecture
- OOPS Concepts, SOLID Principles and Design Patterns
- Designed web application end to end with many loosely coupled components
- Application performance, CPU and Memory Utilization
- Best Practices for SOA, Coding Standards
- Experience/knowledge on different cloud platforms like Windows Azure, Amazon Web Services , Google Cloud and IBM Bluemix
- Good knowledge on IaaS, PaaS and FaaS models
- Aware of cloud security
If you have anything to add this kindly add those points in comments section. I will update it.