This article focus on Fullstack web development. So, Don't blame me for the "anaconda article".
If you're not using React or using Angular/Vue. It's totally fine and will be compatible for you. You can start with idea and gist that I provide. Then Ladder up your skills with your taste ๐.
Fullstack web development
According to W3Schools:
A full stack web developer is a person who can develop both client and server software.
In addition to mastering HTML and CSS, he/she also knows how to:
- Program a browser (like using JavaScript, jQuery, Angular, or Vue)
- Program a server (like using PHP, ASP, Python, or Node)
- Program a database (like using SQL, SQLite, or MongoDB)
But If you ask me. An fullstack devloper is a "wizard" in web dev universe. Because you can do literally everything from backend to frontend. So, Enough about the inaugurals.
Learning Curve
There's a gotcha though i.e. the "Learning Curve". It's High if you look as a big picture. The first thing is to breakdown/compartmentalize your stack(Stack is nothing but like a stack of cards. But here each card is each tech e.g. React is an Tech in your tech Stack.)
People will usually tell don't start with library or framework. Just start with Plain HTML, CSS, JAVASCRIPT.
Of course, It's crucial to have a crisp knowledge on Fundamentals. Because the reason is very simple. End of the day you'll be working on a Enterprise. In which you probably work for your company on a budgeted project. So, All your knowledge will be compromised for their requirements. You may learn in way that suits you. But it won't fit on their belts and they'll shape it according to their needs. For example: You learn modern database system. But what if your project have that old SQL system. will you fit in?
The thing you missed probably is 'Standard'. The more standard you're, The more flexible you'll be. So, immediatly don't start from Assembly language๐. Just keep this in your mind. You'll know these in long run.
Checkpoint Reached
If you're this far. congratulations๐. You have the patience to master the full stack.
Frontend
If you're a beginner and new to programming world. Start with HTML, CSS, JavaScript.
w3schools is the best resource for newbies. But if you wanna be sassy๐ in it. Here are my recommendations.
Some CSS related link will help in learning process
For JavaScript
- JavaScript.info Beginner Friendly
- MDN Docs
Wanna get more sassy!
- use MDN for everything ๐ MDN Docs
- Learn TypeScript for making better JavaScript codes
Now you're strong enough to survive in web-dev-world. But that's not enough. why?
Frontend Framework
However we're going work with more and more pages and logics right?
So, we need some tools or heavy-lifters to get things done in a organized and maintainable way for long-run. So, we're going to use library/Framework in it.
Here comes the problem of 'This or That'.
- Which framework library should I learn?
- Which is best?
The question is more like Batman or Ironman, Superman or Thor. Each of them is best in their universe. So, It's not necessary to stick with one. Also remember, End of the Day it's all corporate.
Don't put all your apples in one basket! - EDWARD SNOWDEN
If you're beginner. Not in programming, But in web dev. Start with React. Since, it has good community and learning curve too simple. Once you got the hold. Try Vue, Svelte, Gatsby, Next.js, etc,.
Checkout this youtube channel. It's awesome "one stop shop" for React:
CODEVOLTION
Backend
oof! finally the second-half ๐kill me right!
Here's the another 'This or That'.
- which language for backend?
- Is node.js is secure like java, Python?
- SEO, ORM, blah blah.
๐ This is were I stuck myself for long time. It's a black hole if you're learning on your own.
The only way is start with one. Once you got the rhythm then learn new things. Have a standard knowledge about one thing(helps you in crucial scenario).
My recommended resource for NodeJS:
API is the most vital part
NOTE: You don't really need to learn Database side to learn BACKEND just know why's and what's. when you're doing things that you do!
Learn graphql because most of the enterprises moving from REST to GraphQL. It's more like JQuery thing!.
GraphQL is simple when you keep things simple.
Database side
I know it's killing you already. But com'on guys!
You may pick whatever you want. Unless or untill your boss thinks that you're a moron๐. Yeah that's true modern database can do anything.
For example: If you see SQLite. It store every data not as traditional table format but as files.
But If you proposed this idea to an enterprise which has terabytes of data!. you'll be kicked out of the office right away. I'm not trolling SQLite ๐
๐
๐
anyway some enterprise using SQLite.
My Recommendation is Go for MongoDB or PostgreSQL. Both awesome, beginner friendly, had good community support.
After learning all the above go for these link: https://fullstackopen.com/en/
It's an anaconda article, I know. But I need to make sure that the content I provide is pretty good and meaningful.
Have a blast๐. Never get tired. If you got just watch something that get you out of the box for sometime!
Top comments (8)
One thing I'd like to highlight is learn why behind the things as that will help you understand the choices you made.
For backend try to learn the general approach of a feature. For example, changing password ? User should be authenticated, use current password then , maybe confirm the new password and save to database .
Even more general will be understanding the flow, request , get input , validate , create model if not exist and then save to database.
Because once you know that you have to validate , finding out how to validate would be simple in any language or framework.
As you grow, you will find more complicated stuff like
I understand your feelings towards backend , I am kind of doing the reverse were I started with backend but now trying to improve my frontend skills.
Don't buy his book ๐
Please don't promote your stuffs in my comments section. This article only recommends free resources available.
If you're keen. Please I recommend to respect the post and delete the comments.
I like how you offer concepts on how to approach the mental barriers that come along with learning this stuff. I think it would be more affective if you stuck with that instead of product name dropping and recommending. None of that stuff matters when youโre a full stack developer. What matters is being able to truly visualize how youโre going to perform a task or feature utilizing the components as vehicles to make it happen. I like the card analogy, but I tend to think in ways of like an assembly line in a car factory. If everyone working the factory actually knows how to build a car regardless of the tools, then the objective gets done because no one is standing around saying itโs not in their job description. I can hop any where in the stack and contribute to the goal. It could be a language or product Iโve never heard before and when itโs go time Iโm gonna get it done. Not because Iโm a badass ass, I wish, I just like to build things. Legos, cars, apps, life, itโs all the same process at the end of the day.
Thin vertical slices, keep it small brain, compartmentalize each piece into testable, teachable, flexible, objects, until finally all the pieces are in their places. Then as you step back in wonder at your achievement you accept the fact that 3 months from now youโll see something you wrote and be like, what was I thinking?!! This is trash. ๐๐๐๐
What no mention of flutter or blazer? They seem like interesting alternatives to html css and javascript.
One code base and you compile to the web, windows mac and linux desktop, android and ios mobile.
Just started my trip down the flutter rabbit hole but so far it lives up to the hype
Good post!
Great post! Keep going ๐ช