3 answers
Asked
1535 views
How to get the first step towards becoming a full stack web developer I want to learn it from the scratch and do projects it the full stack web development using that I want to get a job as soon as possible That is why I am seeking experts guidance. ?
I am B.Sc(CS) graduate passed out on 2022 I want to get my job in web development but due to the It reassertion the vacancy are too low I need to enhance my skill to get the job so I am looking for a mentor where I would able to learn full stack web development from the very scratch.
Login to comment
3 answers
Updated
Apurba’s Answer
If you've completed a BSc in Computer Science or Information Technology, you're already on the right track. Here's a step-by-step guide to make it even simpler:
1. Begin with the basics: HTML, CSS, and JavaScript. These are the building blocks of web development.
2. Once you're comfortable with these, move on to a JavaScript framework. React is a great choice.
3. After mastering React, learn a scripting language to broaden your skill set.
4. Finally, familiarize yourself with the MERN stack (MongoDB, Express.js, React, and Node.js).
With these skills under your belt, you'll be all set to dive into the world of web development.
1. Begin with the basics: HTML, CSS, and JavaScript. These are the building blocks of web development.
2. Once you're comfortable with these, move on to a JavaScript framework. React is a great choice.
3. After mastering React, learn a scripting language to broaden your skill set.
4. Finally, familiarize yourself with the MERN stack (MongoDB, Express.js, React, and Node.js).
With these skills under your belt, you'll be all set to dive into the world of web development.
Updated
Robert’s Answer
This is right in my wheelhouse. I can tell you how to start, but finding a mentor is really the wrong approach, and that tells me part of the reason why you are having trouble finding a job in the field.
Post university, with the B.Sc of CSc in your hand, pretty much most jobs will expect you to be able to do the job without much assistance. Yes, they know they will have to onboard you, give you the passwords, and tell you where the databases are, and which tables have the data you need, etc. But they are not expecting to teach you how to do the job, on the job.
Pre-pandemic a lot of companies were offering mentoring, as it was hard to find candidates, and companies were willing to train. Those days are currently over. And this situation also shows the weak training that is provided at the University level (an argument I had with my CSc department many times). As a university CSc degree generally teaches you around the edges of many topics, and even lets you dive medium way deep in some with your electives, but it is generally only for your senior project/capstone project that you are expected to complete a full project from scratch -- and you can still graduate even if the project is a disaster, so long as your write up is good.
In the real, working, world -- that doesn't fly.
So, to answer your question, the way to start learning how to be a full stack developer is simple: start doing it.
It is similar to learning how to roller skate or do distance running, or even how to build a shed. You can take all of the classes you like, but eventually you are going to have to be out there on those skates, or lacing up those shoes, or swinging that hammer, and learning as you go. NOTHING will prepare you for actually being out and doing something. Eventually you have to just be doing it and learning as you go.
What a lot of CSc programs fail to teach is the reason WHY software engineers (full stack or not) command those higher salaries. A misconception many people have is that programming is hard, and therefore if someone learns to program they should be able to get a job, and earn a high salary.
Nope.
The reason SUCCESSFUL software engineers command higher salaries, is because they are PROBLEM SOLVERS FIRST, and CODERS SECOND.
Software engineers will FREQUENTLY be called upon to come up with a solution to some problem the business is having (and by frequently, I mean that will be your main job). A successful software engineer will look at the problem, ask the business people what they are trying to do (respectfully, and with patience -- remember, you can't do what they can do, and they can't do what you can do -- just because your skills involve coding doesn't give you a license to be impatient with people, be rude to them, or explain things condescendingly simply because they don't understand coding lingo. I GUARANTEE you those same business people can rattle off pages of business jargon you wouldn't understand either!) and then come up with a SOLUTION to their PROBLEM.
THAT'S what will get you hired, and those high salaries.
Often times business people will try to take a process that was a paper process 50 years ago, and digitize it. That will almost always involve: Excel, SharePoint, Word, and maybe (if you are unlucky) an Access database. Then the people who built that digitized process eventually leave or promote out of their role, and eventually everyone who knows how it was built and how it works is gone, and the remaining staff will eventually come knocking on your door seeking a solution for their problem (which is the no longer working digitized thing their predecessors built).
The software engineer who is NOT GOING TO BE HIRED will proceed to complain about what the business people built, mock it, make fun of it, criticize them for doing it the "wrong" way, etc. The software engineer who will ABSOLUTELY BE HIRED will patiently smile and sit everyone down in a conference (real or online, doesn't matter), and ask them to explain what they are trying to accomplish (here is where the full stack knowledge is about to pay off).
A practiced full stack developer will listen to what the business people say, and then realize the whole thing they have built can be replaced with a simple database and a web service, or a simple database and a desktop app, or maybe a simple website that sends e-mails, and doesn't use a database at all. Then you go build that for them, show it to them, they are thrilled, ask for 17 changes they didn't mention in your first meeting with them (be patient, many people are visual and won't think of things until they see what you have built), then you add 13 of those changes (skipping the 4 that were overlaps, or unreasonable, or technically impossible, etc.) give them the revised app, and suddenly you are a hero, and everyone loves you (they will never stop asking for those other 4 things though, so brace yourself).
Rinse and repeat. That will be your job, day in, and day out, if you work in the corporate world. (If you go to work for a startup, it will be roughly the same thing, but they will also ask you to run network cable, help with mailings, clean the bathrooms, and work 16 hour days).
So, how do you learn to be a full stack developer? Do it.
Also note, I am EXTREMELY SKEPTICAL about anyone fresh out of college calling themselves a "full stack developer." Most fresh graduates don't really know what that term means, and try to use it to get hired. That doesn't work out well for them.
Understand that a full stack developer can handle the FULL DEVELOPMENT STACK, **ON THEIR OWN**. That means you, and you alone, can setup the database. Setup the hosting. Setup the network config. The security. The frontend of an application, and the backend. By. Your. Self.
If you cannot do that (and are seeking a mentor), you are NOT a full stack developer -- and interviewers will throw your resume in the garbage if you are calling yourself that.
The best way to learn is by doing. Build a website that uses a database, by yourself. You WILL run into problems doing that. Solve them. Find answers on the web, and figure it out. Remember, those high salaries are for problem SOLVERS. Once you have a website up and running that uses a database, switch to a project that uses a web service (RESTful if possible). Once you have that working, build a console app. Then build a GUI app that runs on a desktop. Now get two of those prior apps able to talk to each other, etc.
With each project completed, you will be further along the path of being a "full stack developer." Ideally those projects would have been done while still in university (and/or as intern projects), but as you have already graduated, just crack them out as fast as you can, and build your experience.
Companies aren't really hiring junior developers who will need mentoring and on-the-job training right now. There are plenty of coders ready willing and able to work as consultants, out-sourced teams, in-house teams, etc. You are competing with them. They already know how to code the full stack (usually as a team, but that team will still cost a company less than your salary + benefits). So, you have to get up to that level. Build up a body of work with your name on it that you can point to and say, "I did that." Put those projects into a github and include that in your resume. You will get there, you just need to be able to be solving problems on day one.
OR, apply for a front-end dev, or back-end dev, or database dev role instead, and take a lower salary, and build your way up to full stack development.
There is nothing wrong with wanting a mentor, and receiving mentoring. I had mentors myself when I was working my way up from Junior dev to Mid, to Senior. Many of my managers took me under their wing and showed me tips and tricks. But that was AFTER I already had the job and had shown than I could do it. Mentors in most modern companies will help you refine your game, but they aren't going to teach you the game. They don't have time for that right now. The pandemic caused a large part of the soon-to-retire generation to go ahead and retire, and a lot of companies are running skeleton crews right now, and are barely able to afford their salaries due to inflation. A lot of outsourcing is still happening, and nobody has time to train Juniors and Mids right now.
If you want to be hired, you will need to be able to hit the ground running, and SOLVE PROBLEMS (patiently) from day one. You will be able to do that with experience. You can get that experience by building your own (working) projects.
Hope that helps you. Good luck :)
Post university, with the B.Sc of CSc in your hand, pretty much most jobs will expect you to be able to do the job without much assistance. Yes, they know they will have to onboard you, give you the passwords, and tell you where the databases are, and which tables have the data you need, etc. But they are not expecting to teach you how to do the job, on the job.
Pre-pandemic a lot of companies were offering mentoring, as it was hard to find candidates, and companies were willing to train. Those days are currently over. And this situation also shows the weak training that is provided at the University level (an argument I had with my CSc department many times). As a university CSc degree generally teaches you around the edges of many topics, and even lets you dive medium way deep in some with your electives, but it is generally only for your senior project/capstone project that you are expected to complete a full project from scratch -- and you can still graduate even if the project is a disaster, so long as your write up is good.
In the real, working, world -- that doesn't fly.
So, to answer your question, the way to start learning how to be a full stack developer is simple: start doing it.
It is similar to learning how to roller skate or do distance running, or even how to build a shed. You can take all of the classes you like, but eventually you are going to have to be out there on those skates, or lacing up those shoes, or swinging that hammer, and learning as you go. NOTHING will prepare you for actually being out and doing something. Eventually you have to just be doing it and learning as you go.
What a lot of CSc programs fail to teach is the reason WHY software engineers (full stack or not) command those higher salaries. A misconception many people have is that programming is hard, and therefore if someone learns to program they should be able to get a job, and earn a high salary.
Nope.
The reason SUCCESSFUL software engineers command higher salaries, is because they are PROBLEM SOLVERS FIRST, and CODERS SECOND.
Software engineers will FREQUENTLY be called upon to come up with a solution to some problem the business is having (and by frequently, I mean that will be your main job). A successful software engineer will look at the problem, ask the business people what they are trying to do (respectfully, and with patience -- remember, you can't do what they can do, and they can't do what you can do -- just because your skills involve coding doesn't give you a license to be impatient with people, be rude to them, or explain things condescendingly simply because they don't understand coding lingo. I GUARANTEE you those same business people can rattle off pages of business jargon you wouldn't understand either!) and then come up with a SOLUTION to their PROBLEM.
THAT'S what will get you hired, and those high salaries.
Often times business people will try to take a process that was a paper process 50 years ago, and digitize it. That will almost always involve: Excel, SharePoint, Word, and maybe (if you are unlucky) an Access database. Then the people who built that digitized process eventually leave or promote out of their role, and eventually everyone who knows how it was built and how it works is gone, and the remaining staff will eventually come knocking on your door seeking a solution for their problem (which is the no longer working digitized thing their predecessors built).
The software engineer who is NOT GOING TO BE HIRED will proceed to complain about what the business people built, mock it, make fun of it, criticize them for doing it the "wrong" way, etc. The software engineer who will ABSOLUTELY BE HIRED will patiently smile and sit everyone down in a conference (real or online, doesn't matter), and ask them to explain what they are trying to accomplish (here is where the full stack knowledge is about to pay off).
A practiced full stack developer will listen to what the business people say, and then realize the whole thing they have built can be replaced with a simple database and a web service, or a simple database and a desktop app, or maybe a simple website that sends e-mails, and doesn't use a database at all. Then you go build that for them, show it to them, they are thrilled, ask for 17 changes they didn't mention in your first meeting with them (be patient, many people are visual and won't think of things until they see what you have built), then you add 13 of those changes (skipping the 4 that were overlaps, or unreasonable, or technically impossible, etc.) give them the revised app, and suddenly you are a hero, and everyone loves you (they will never stop asking for those other 4 things though, so brace yourself).
Rinse and repeat. That will be your job, day in, and day out, if you work in the corporate world. (If you go to work for a startup, it will be roughly the same thing, but they will also ask you to run network cable, help with mailings, clean the bathrooms, and work 16 hour days).
So, how do you learn to be a full stack developer? Do it.
Also note, I am EXTREMELY SKEPTICAL about anyone fresh out of college calling themselves a "full stack developer." Most fresh graduates don't really know what that term means, and try to use it to get hired. That doesn't work out well for them.
Understand that a full stack developer can handle the FULL DEVELOPMENT STACK, **ON THEIR OWN**. That means you, and you alone, can setup the database. Setup the hosting. Setup the network config. The security. The frontend of an application, and the backend. By. Your. Self.
If you cannot do that (and are seeking a mentor), you are NOT a full stack developer -- and interviewers will throw your resume in the garbage if you are calling yourself that.
The best way to learn is by doing. Build a website that uses a database, by yourself. You WILL run into problems doing that. Solve them. Find answers on the web, and figure it out. Remember, those high salaries are for problem SOLVERS. Once you have a website up and running that uses a database, switch to a project that uses a web service (RESTful if possible). Once you have that working, build a console app. Then build a GUI app that runs on a desktop. Now get two of those prior apps able to talk to each other, etc.
With each project completed, you will be further along the path of being a "full stack developer." Ideally those projects would have been done while still in university (and/or as intern projects), but as you have already graduated, just crack them out as fast as you can, and build your experience.
Companies aren't really hiring junior developers who will need mentoring and on-the-job training right now. There are plenty of coders ready willing and able to work as consultants, out-sourced teams, in-house teams, etc. You are competing with them. They already know how to code the full stack (usually as a team, but that team will still cost a company less than your salary + benefits). So, you have to get up to that level. Build up a body of work with your name on it that you can point to and say, "I did that." Put those projects into a github and include that in your resume. You will get there, you just need to be able to be solving problems on day one.
OR, apply for a front-end dev, or back-end dev, or database dev role instead, and take a lower salary, and build your way up to full stack development.
There is nothing wrong with wanting a mentor, and receiving mentoring. I had mentors myself when I was working my way up from Junior dev to Mid, to Senior. Many of my managers took me under their wing and showed me tips and tricks. But that was AFTER I already had the job and had shown than I could do it. Mentors in most modern companies will help you refine your game, but they aren't going to teach you the game. They don't have time for that right now. The pandemic caused a large part of the soon-to-retire generation to go ahead and retire, and a lot of companies are running skeleton crews right now, and are barely able to afford their salaries due to inflation. A lot of outsourcing is still happening, and nobody has time to train Juniors and Mids right now.
If you want to be hired, you will need to be able to hit the ground running, and SOLVE PROBLEMS (patiently) from day one. You will be able to do that with experience. You can get that experience by building your own (working) projects.
Hope that helps you. Good luck :)
Updated
Chiranjib’s Answer
Hello Praveen , First of all Happy New Year ! Hope you will accelarate your career soon.
I , too started my career as a Full stack Developer ( That time it used to be regarded as an End-End Developer) . My main programming language was Java.
And had done hands-on programming Development in the same segment for more than 10+ years.
Anyway , Industry is focus towards No-code/low code development and rapid application development. Equally , User experience & design thinking skills are in high demand to convey the end user requirement in the right manner ( more of pictorial depiction than loads of text).
If you want to build a long term career in the Full-stack Web developer , there are few things you need to focus on in parallel.
a) Programming skills for UI/Front End ( React JS, Angular JS, Express JS (Hybrid Web App development/Single Page Application) or Java base languages like JSP along with Java script & CSS /SCSS , HTML 5/6, ASP .NET UI)
b) Programming skills for Backend End ( NodeJS , Java base backend framework - Spring Boot etc, .NET/C#)
c) Unit Testing Framework/Methodology -JEST, Mochha , WebDriver IO, Chai, Karma etc , JUnit , NUnit
d) Deployment Methodology/Tools - npm , Webpack , Ant/Maven with Jenkins , Git/Gitlab , Argo CD, Cloud solution (e.g AzureDevops), Terraform, YAML etc.
d) Design Pattern - It will build your foundation level to solve problems.
e) Tools/IDE to be used: Visual Studio Code , Microsoft Visual studio, Eclipse etc
Other things like :
1. User Experience - Focusing on Customer Journey Map/user Journey map , Empathy Map , User Persona, Value Stream Map etc - Tools : Sigma,Adobe XD.
2. SAST/DAST - Security Testing , Cross-site Scripting , SQL Injection. Tools : VeraCode, AppScan, SonarQubeChekmarx, ZAP
3. Performance Testing / Memory utilisation : Perf, Jprofiler etc
4. Content Management/Website development : Adobe experience Manager (AEM) , Liferay DXP
5. ChatBot Development : E.g Watsonx Assistant is a user-friendly technology to build personalized, AI chatbots, without writing code.
I hope it helps. Let me know your thought.
I , too started my career as a Full stack Developer ( That time it used to be regarded as an End-End Developer) . My main programming language was Java.
And had done hands-on programming Development in the same segment for more than 10+ years.
Anyway , Industry is focus towards No-code/low code development and rapid application development. Equally , User experience & design thinking skills are in high demand to convey the end user requirement in the right manner ( more of pictorial depiction than loads of text).
If you want to build a long term career in the Full-stack Web developer , there are few things you need to focus on in parallel.
a) Programming skills for UI/Front End ( React JS, Angular JS, Express JS (Hybrid Web App development/Single Page Application) or Java base languages like JSP along with Java script & CSS /SCSS , HTML 5/6, ASP .NET UI)
b) Programming skills for Backend End ( NodeJS , Java base backend framework - Spring Boot etc, .NET/C#)
c) Unit Testing Framework/Methodology -JEST, Mochha , WebDriver IO, Chai, Karma etc , JUnit , NUnit
d) Deployment Methodology/Tools - npm , Webpack , Ant/Maven with Jenkins , Git/Gitlab , Argo CD, Cloud solution (e.g AzureDevops), Terraform, YAML etc.
d) Design Pattern - It will build your foundation level to solve problems.
e) Tools/IDE to be used: Visual Studio Code , Microsoft Visual studio, Eclipse etc
Other things like :
1. User Experience - Focusing on Customer Journey Map/user Journey map , Empathy Map , User Persona, Value Stream Map etc - Tools : Sigma,Adobe XD.
2. SAST/DAST - Security Testing , Cross-site Scripting , SQL Injection. Tools : VeraCode, AppScan, SonarQubeChekmarx, ZAP
3. Performance Testing / Memory utilisation : Perf, Jprofiler etc
4. Content Management/Website development : Adobe experience Manager (AEM) , Liferay DXP
5. ChatBot Development : E.g Watsonx Assistant is a user-friendly technology to build personalized, AI chatbots, without writing code.
I hope it helps. Let me know your thought.