Null Stack to Full Stack
OVERVIEW
Full stack technology refers to the entire depth of a computer system application, and full stack developers straddle two separate web development domains: the front end and the back end.
The front end includes everything that a client, or site viewer, can see and interact with. By contrast, the back end refers to all the servers, databases, and other internal architecture that drives the application; usually, the end-user never interacts with this realm directly.
The easiest way to put the full stack into perspective is to imagine a restaurant. The front end encompasses the well-decorated, comfortable seating areas where visitors enjoy their food. The kitchen and pantry make up the “back end” and are typically hidden away from the customer’s view. Chefs (developers) gather permanently stored materials from the pantry (the database) and perform operations on it in the kitchen (the server), and then serve up fully-prepared meals (information) to the user.
ADVANTAGES OF LEARNING FULLSTACK DEVELOPMENT
You can master all the techniques involved in a development project
You can make a prototype very rapidly
You can provide help to all the team members
You can reduce the cost of the project
You can reduce the time used for team communication
You can switch between front and back end development based on requirements
You can better understand all aspects of new and upcoming technologies
SKILLS NEEDED
In this case, you might find various things in the internet. They all might vary. But I am keeping things simple. Among the things I am going to share, you need to focus on one stack instead of all of them. So, here are some of the skills needed to be a fullstack developer.
Front-end programming technologies: HTML, CSS, JavaScript, Angular, ReactJS, Bootstrap, jQuery, SASS, Tailwind etc.
Back-end programming technologies:Python, NodeJS, Django, Express etc.
Database: PostgreSQL, MongoDB, MySQL, etc.
Version Control System: git, GitHub, GitLab, etc
HTTPS and REQUEST Methods (GET, POST, PUT, DELETE, OPTIONS)
Now, it iis important to understand that, the basics are same for all stacks but then the technologies vary. For example the frontend can be built with either React, Angular or Vue or any other framework/library. On the other hand, the backend can be built with either of Node.js, Django (Python) or Spring Boot (Java) or any other framework. I will go to that in the coming lines.
ROADMAP / PLAN FOR THE FIRST SIX MONTHS
About this, there might be multiple other roadmaps that you can follow on your path to become a fullstack developer. I came up with the idea that this path, that I am about to share, can be a planned start to your journey with all the content structured at the right time. So, let's see the plan for the first six months.
🔵 Month 1: HTML, CSS, Javascript
The basic skills required to create a website in HTML and CSS. Javascript adds functionalities to a website and makes the project responsive. HTML is for structure and CSS for Styling. DOM Manipulation and Responsive Web Design are important to practice. Learn about these from W3Schools.
🔵 Month 2: Web Design and Frameworks, Git, HTTPs
Work on Open Source Projects. Once you have good practice with HTML and CSS you can use frameworks like Bootstrap or Material CSS which makes it easy to create websites. Alongside that, it is very important to learn about version control systems (preferrably git) so that you can save and manage your code at GitHub, GitLab, BitBucket or any other similar tool. Also, it is important to learn about HTTPS and REQUEST METHODS (GET, POST, PUT, DELETE and OPTIONS).
🔵 Month 3: Javascript Programming Language
The most important skill and most asked in Interviews and Job portals for Web Development are Javascript. You can expect a lot of interview questions from Javascript, So it's important to learn how javascript works, data structures, and asynchronous javascript.
🔵 Month 4 & 5: Frontend and Backend
Once you are thorough with the above concepts then you can take your skills to the next level by learning Javascript frameworks/libraries like React and Node JS. Point to be noted, I am a big fan of MERN (Mongo, Express, React, Node) stack, so I am always talking about React and Node. But there are other options as well.
Other options:
Frontend: Angular, Vue or any other frontend technology
Backend: Django, Flask, Spring Boot, ASP.Net or any other backend technology
Please do some research in google about the 'FULLSTACK TECH STACKS' and choose the one that you are the most comfortable with. Just a reminder, if you want to be a Java Fullstack Developer, then you need to have Java knowledge before stepping on to learning Fullstack development. Same case goes for Python, C# or any other technologies.
Most importantly, when you start learning a new technology, please start by learning from the official documentation of each individual technology. Then maybe go for other resources from the internet.
🔵 Month 6: Database and Projects
In the final month, create a portfolio and create projects using frontend and backend technologies you’ve learnt. Also, an important skill to have is knowledge of Database Management Systems like PostgreSQL, MySQL and MongoDB. Also, you need to understand how to connect the Database to Server using the backend Framework.
LEARNING RESOURCES OF FULLSTACK DEVELOPMENT
In the internet today, you can find various courses and tutorials on Fullstack development. But I know for sure that Freecodecamp website as well as YouTube channel covers all stack, so you can easily learn from them. On the other hand, there is The Odin Project. You can learn about JavaScript Fullstack Developer or Ruby on Rails Fullstack Developer. Here are the links to them.
Freecodecamp Website
Freecodecamp YouTube Channel
The Odin Project
Of course, as I said, you can look for courses in other websites as well. Here are some of the best platforms to look for courses.
Codecademy
Coursera
EdX
PROJECT IDEAS
Here are some projects that you can try when you are learning or after you have gone through all the things needed.
E-commerce website
Food delivery app
Social media app
Chat messaging app
Content management system
Project management app
Gym Tracking System
Real-time Chat App
Bug Report App
Hotel Booking App
Staff Management System
Online Store
INTERVIEW PREPS AND RESOURCES
Remember that a fullstack developer job is a vast space and thus there are many things that you need to keep focus on to ace the interviews. Here are some points where you need to take special care of for the interviews.
Javascript Programming Language and Data Structures
CSS Concepts like Flexbox, Grid, Inheritance, Specificity, etc.
React JS and new features e.g: Context API and Hooks
REST API’s and SQL and DBMS
HTTPS, Requests, Response, Servers.
Of course there are more things to focus as well, so research about the most important topics from the internet and then take special care in preparing for those questions.
Here are a few links to resources which will help you preparing for the interviews.
Coding Interview University
Interview Cake
Interview Bit
Tech Interview Handbook
Fullstack Cafe
Word of advice for newbies
Please don’t wait for people to spoon-feed you with every single resource and teachings because you’re on your own in your learning path. So be wise and learn yourself.
About Me
I am Ishraq Haider Chowdhury from Bangladesh, currently living in Bamberg, Germany. I am a fullstack developer mainly focusing on MERN Stack applications with JavaScript and TypeScript. I have been in this industry for about 9 years and still counting. If you want to find me, here are some of my social links....
Instagram
TikTok
YouTube
Facebook
Twitter
GitHub
71 notes
·
View notes
Backend update
Had the most horrible time working with Sequelize today! As I usually do whenever I work with Sequelize! Sequelize is an SQL ORM - instead of writing raw SQL, ORM gives you an option to code it in a way that looks much more like an OOP, which is arguably simpler if you are used to programming that way. So to explain my project a little bit, it's a full stack web app - an online photo editor for dragging and dropping stickers onto canvas/picture. Here is the diagram.
I'm doing it with Next which I've never used before, I only did vanilla js, React and a lil bit of Angular before. The architecture of a next project immediately messed me up so much, it's way different from the ones I've used before and I often got lost in the folders and where to put stuff properly (this is a huge thing to me because I always want it to be organized by the industry standard and I had no reference Next projects from any previous jobs/college so it got really overwhelming really soon :/) . The next problem was setting up my MySQL database with Sequelize because I know from my past experience that Sequelize is very sensitive to where you position certain files/functions and in which order are they. I made all the models (Sequelize equivalent of tables) and when it was time to sync, it would sync only two models out of nine. I figured it was because the other ones weren't called anywhere. Btw a fun fact
So I imported them to my index.js file I made in my database folder. It was reporting an db.define() is not a function error now. That was weird because it didn't report that for the first two tables that went through. To make a really long story short - because I was used to an server/client architecture, I didn't properly run the index.js file, but just did an "npm run dev" and was counting on all of the files to run in an order I am used to, that was not the case tho. After about an hour, I figured I just needed to run index.js solo first. The only reasons those first two tables went through in the beginning is because of the test api calls I made to them in a separate file :I I cannot wait to finish this project, it is for my bachelors thesis or whatever it's called...wish me luck to finish this by 1.9. XD
Also if you have any questions about any of the technologies I used here, feel free to message me c: <3 Bye!
14 notes
·
View notes