Books to Dive in into Fullstack Development

49 points by pkrzysiek 8 days ago

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

fallinditch 7 days ago

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.

  • pkrzysiek 7 days ago

    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!

  • purple-leafy 7 days ago

    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

qiqitori 5 days ago

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.

  • GuardianCaveman 5 days ago

    You know, you also have the option of not replying if you disagree with the premise of the post instead of just being facetious.

  • ainiriand 5 days ago

    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.

    • aurareturn 5 days ago

      That's a terrible question to ask in a full stack developer interview.

      • dvfjsdhgfv 4 days ago

        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.

  • ahartmetz 4 days ago

    I like to say that a true full stack developer needs to start with sand.

tsingy 8 days ago
  • admissionsguy 8 days ago

    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.

    • satvikpendem 7 days ago

      Socialism is where workers control the means of production. I think you mean social policies, not actual socialism.

      • meiraleal 7 days ago

        Teaching how to code for free checks the "workers controlling the means of production" for me.

        • tehjoker 5 days ago

          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.

          • philwelch 5 days ago

            Yeah, you definitely need the famines and gulags before you can seriously call it Real Socialism, not that it’s ever been tried.

    • __rito__ 5 days ago

      The Soviets wrote some of the best Maths book, ever.

hi_hi 5 days ago

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 :-)

kloop 5 days ago

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).

_m_p 4 days ago

Michael Hartl's Rails Tutorial is still among the best https://www.railstutorial.org/

Rails is opinionated but its opinions are often correct!

  • 12thhandyman 4 days ago

    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.

daggerdrone 5 days ago

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...

system2 5 days ago

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.

  • guilhas 4 days ago

    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

  • ilrwbwrkhv 5 days ago

    I wish there were "live books" which got updated every few months or something to keep things fresh.

    • system2 5 days ago

      Yes, they are called websites.

      • MonkeyClub 4 days ago

        Whatever happened to Hacker News, is it eternal September already?

        • system2 3 days ago

          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.

meiraleal 8 days ago

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.

  • solardev 8 days ago

    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.

guilhas 4 days ago

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

charlie0 5 days ago

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.

Steffajos 5 days ago

"JavaScript and JQuery: Interactive Front-End Web Development" by Jon Duckett takes a visual approach, making it easier to understand.

devopsian 4 days ago

Do you have any experience with programming?

  • pkrzysiek 4 days ago

    Yes,I'm a 2nd year computer science student

iainctduncan 4 days ago

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.

barrenko 7 days ago

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.

brudgers 6 days ago

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.

bpiroman 5 days ago

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!!