Books to Dive in into Fullstack Development
Hello,I want to start learning fullstack but I’m afraid of getting too confused with so many languages and frameworks.I’m looking forward to find some ordered set of books that would introduce me to this topic
Books are ok but I think it's better to learn with websites that use live coding examples and exercises.
https://www.freecodecamp.org/ is good, the Responsive Web Design and JavaScript courses are a good place to start, there's a great community of learners and tutors to help.
The MDN developer resources is a useful site to keep open while you learn. https://developer.mozilla.org
Now pick a framework to start learning and building with. React is the most used but I chose Svelte because it is powerful yet has simpler syntax and is easier to learn, also supposed to be more performant.
The Svelte tutorial is an excellent learning resource, nicely detailed and structured. I also found it to be a useful refresher for JavaScript in a more practical real world context. https://svelte.dev/
While doing the Svelte tutorial, and in fact all the time now, I have a tab open for an AI chat bot. I find Perplexity to be particularly useful for explaining syntax and code snippets.
If you want to get more into JavaScript then a good book is Eloquent JavaScript https://eloquentjavascript.net/
Other posters have pointed out the complexity of the back end stuff and devops, etc. You can simplify this aspect by using a service like Supabase or Firebase.
Thank you for the reply,after rethinking my post I understood that the question is very imprecise but after some insight from here and another post I've been shown,I think I will start Fundamentals of Web Development 3rd Edition and decide what to do after reading that (and gaining more insight about web dev hopefully)
Currently I'm reading Python's crash course along with CLRS,planning to start reading that book after those.
Gonna need all the MOOPs I've seen here too for sure!
Also check https://roadmap.sh/ for, well, (developer) roadmaps.
Please, people need to stop recommending eloquent JavaScript. It’s fine for 6 chapters then it becomes absolute garbage, with the worst explanation for promises and async that I have ever seen in my life. “Crow networks” wtf! Stupid contrived example, I own the bloody book and it’s one of the only programming books I own that I NEVER RECOMMEND TO ANYONE
Full stack? Well, I suggest you start off with HTML/CSS/JavaScript, move on to databases and typical web backend languages. Then you will need to learn C, C++ and similar languages to understand the databases and backend languages properly. Don't forget to learn some networking, as without it you'll be sol quickly. You shouldn't skip out on learning how the Linux kernel works, and you should also focus on learning the ropes with assembly a little bit. Moving a little deeper, you should know your chips. First the digital chips and how they interact. You should be able to build your own chips, at least in theory. Don't forget the analog components, the power supply, the physical layers of ethernet, wifi, fiberoptic communication, and LTE.
You know, you also have the option of not replying if you disagree with the premise of the post instead of just being facetious.
While I perceive the sarcasm in the comment and I really appreciate it, these 'full-stack' job listings are sometimes very concise. I once was asked in an interview how the computer represented a character on screen from the moment I pressed a key.
That's a terrible question to ask in a full stack developer interview.
That's a nice general question where you can show off. However, in the context of the so-called full-stack web development, I guess it means a key has been pressed on a website so I would pass over drivers and focused over the HTTP exchange including TLS, with multiple variants like what if gzip compression is enabled, what if the server and browser support HHTP/2 etc. or one doesn't, and then of course you have so much to talk about once you get to how the input can be handled by JavaScript. So a nice question overall.
I like to say that a true full stack developer needs to start with sand.
https://fullstackopen.com/en/
This is one of MOOCs offered by the University of Helsinki. There are more at https://mooc.fi. It also acts as a proper, credit-bearing university course. It is the best thing socialism has ever produced.
Socialism is where workers control the means of production. I think you mean social policies, not actual socialism.
Teaching how to code for free checks the "workers controlling the means of production" for me.
If you learn to turn a lathe then work in standard corporation (a dictatorship, military-like organization that produces profits by extracting surplus value from labor) that's not a democratically controlled workplace, hence the workers having skills does not make for socialism. For that matter, only having democratic control of a single workplace (a worker cooperative) does not make for socialism either as you will still have to extract surplus labor to compete in an unplanned marketplace.
Yeah, you definitely need the famines and gulags before you can seriously call it Real Socialism, not that it’s ever been tried.
No, lol.
The Soviets wrote some of the best Maths book, ever.
Build a simple application that requires you to persist data. Reading a book will help get you started, but it will have so much more value if you've actually encountered the problems or situations the books discuss.
Honestly, trying to even figure out and decide what that means will take you down so many different rabbit holes. Then starting to build out the thing will take you down more.
Timebox a bunch of key parts so you don't spend forever in analysis paralysis. If you can't decide, randomly pick an option that appeals to you.
Once you have the thing working, start again and revisit every key decision and technology choice you made. Things will be much clearer this time.
For added benefits, blog about it in public, which will act as a great learning tool for yourself, and help others in the same boat as you.
Good luck, and remember it should be fun. If it becomes not fun, its time to revisit the key decisions :-)
These are all paid courses (not books) but for reference:
- Beginner: https://frontendmasters.com/courses/web-development-v3/
- Intermediate: https://frontendmasters.com/courses/fullstack-app-next-v3/
- Advanced: https://frontendmasters.com/courses/svelte-v2/ and https://frontendmasters.com/courses/sveltekit/
Honorable mentions:
- https://www.joyofreact.com/
- https://css-for-js.dev/
- https://www.learnui.design/ for getting started designing yourself.
Just start building a thing. Any thing. It doesn't really matter what.
Any time you don't know how to do something, google it (or chat gpt mostly works these days).
Michael Hartl's Rails Tutorial is still among the best https://www.railstutorial.org/
Rails is opinionated but its opinions are often correct!
Yes indeed! This is the course/tutorial that introduced me to Rails around a decade ago. Mentioning Hartl and linking the course is better than just saying “learn rails” in general re: full stack.
Surprisingly in (ruby/rails) interviews I’ll mention the Hartl text and often people are not familiar.
I would recommend these two courses by Harvard in order:
1. CS50's Introduction to Computer Science
2. CS50's Web Programming with Python and JavaScript
Even if you know programming, you should still go through the first course. You can choose watch the lectures on 1.5x or 2x but definitely do the assignments. The assignment and project based approach of these courses will definitely make you learn the stuff deeply and will make you a good full-stack developer. All the best!
Links:
1. https://www.edx.org/learn/computer-science/harvard-universit...
2. https://www.edx.org/learn/web-development/harvard-university...
Book learning is pre-internet era. Things change so fast and books cannot catch up. Books do not interactively test the readers (even with CDs it is not enough).
Also as much as I don't like the current state of Ai assisted programming, they are superior to any book out there.
Once in a while I buy bunch of books to see what the new books everybody is talking about and end up getting frustrated after realizing important parts are either skipped or explained without details. In my opinion, book learning (especially programming or other IT related stuff) is dead. I have so many books collecting dust and even the latest ones won't be relevant in 3-4 years.
There are a lot of bad books but there are many good ones too, like 'Designing Data-Intensive Applications'
But when starting you're better with something like a youtube tutorial
I wish there were "live books" which got updated every few months or something to keep things fresh.
Yes, they are called websites.
Whatever happened to Hacker News, is it eternal September already?
Despite the efforts people will not stick to HN for long unless they are really into technology. I am inclined to create an a script to see user activity after registration and drop out rates.
First you gotta decide what kind of software you want to develop. Or if you are doing it to get a job. The answers will vary a lot.
As a general recommendation easy to follow, I would recommend to learn JavaScript and only JavaScript. And you can go just for the most modern version of it without need to worry about things that make javascript complex: compiling, bundling, commonjs vs ES modules, etc.
JavaScript is a joyful language to work with and can get you very, very far in the software development landscape.
IMO full stack dev isn't just about any one (or several) languages but also all the in between stuff.
On the backend that could mean databases, scaling, containers, GraphQL, auth, scaling, etc.
On the frontend there's a lot of UX, styling, testing, responsiveness, races, waterfalls, async and lazy loads, parallelization, asset optimizations, etc.
In between, there's all the networking, CI/CD, permissions/IAM stuff, encryption, serverless, backups, Typescript...
The programming is actually some of the easiest stuff to learn, IMO, and not necessarily the most critical. You can't guarantee you'll end up working in a full stack JS environment. Often the backend is something else. I think Node backends are still relatively rare for older or bigger companies. But all the other adjacent skills are still just as (if not more) relevant.
Choose, if you prefer data/database/APIs/server, look for youtube.com 'golang HTML server'
If you prefer UI/user interaction/visuals, look in youtube.com for 'nodejs JavaScript HTML website'
Don't use frameworks just try something simple first
Instead of books, I'd go with Laracasts and start off with a simple tutorial using Blade. Once you get a hang of MVC and Blade/HTML/CSS. Then, I would jump into a course that goes heavier into a front end library.
"JavaScript and JQuery: Interactive Front-End Web Development" by Jon Duckett takes a visual approach, making it easier to understand.
check out https://roadmap.sh/
Good place to start
Do you have any experience with programming?
Yes,I'm a 2nd year computer science student
Couple of Recos:
O'Reilly's "Learning SQL" is probably the best intro to relational databases I've seen.
While old, Reissig's "Secrets of the Database Ninja" is fantastic for understanding what the heck's going in that weird franken-language.
Re the comments on books vs courses and videos.... buying a good library is IMHO a much better investment. You learn where things are in your shelf and can find further info in seconds. This becomes even more valuable as searching for technical stuff gets worse every year. Also, good books teach you what you don't know you need to know, rather than what everyone knows they are looking for.
If you know how to program in general, and are not chasing some company deadlines, I'd try to master CSS (and HTML), and leave javascript to chatgpt et al.
I’m afraid of getting too confused with so many languages and frameworks.
Javascript + HTML + CSS avoids this and will provide a solid foundation.
Alternatively, picking a mature framework like Laravel or Rails also avoids the issue.
Make a strategic decision first, then pick a book.
Good luck.
Some advice here as a self taught web developer noob. This has been my journey in a nutshell so I hope it is helpful.
1. HTML / CSS (1-2 Months) as already mentioned here, the Responsive Web Design course on the https://www.freecodecamp.org/ is really good. https://netninja.dev/ also has some really good free content on youtube. Don't rush this step. Make some cool static websites and share with your friends. Learn git and become a Github Pro member so you can serve private repo's on the web for free (via github pages).
2. Javascript (3-6 Months) I highly recommend "Javascript & Jquery" by Jon Duckett. In the web development world it is by no means the latest book but I do believe learning how javascript was used 10 years ago relevant to how javascript became what it is today. I'd be happy to give you my copy! Spend the time learning javascript, make something cool and share it with your friends. Get to a stage where you can think about how you could make something in javascript. If you're dreaming in Javascript then you've taken this step too far.
3. Backend (Eternity) At this point it really depends which way you want to go as a developer. Do you prefer Python as a language? Look into Django. Are you a DHH fan boy? Ruby on Rails. Are you too scared to take on another language (like me) then use expressJs. I highly recommend reading Hypermedia Systems https://hypermedia.systems/ to give you a high level background and understanding how a web 1.0 style application is built.
Enjoy!!
The Agile development with Rails series is a great full stack book. They come out with a new book when rails comes out with a new version. The latest book is below.
https://www.amazon.com/Agile-Web-Development-Rails-7/dp/1680...