1
$\begingroup$

If you have taught a course on MongoDB, Express, React and Node, what textbook would you recommend? I'm particularly interested in open source textbooks authored on Github. But I'm open to anything.

$\endgroup$
5
  • 5
    $\begingroup$ You're correct that the norms are (slightly) different, since many of the choices we face are more oriented towards tradeoffs than towards strictly "correct" answers -- there are rarely strictly correct or strictly incorrect approaches to teaching, since it is ultimately about creating patterns in highly variable wetware instead of highly regularized hardware :) We do still close questions for being opinion-based, but more rarely. $\endgroup$
    – Ben I.
    May 1, 2021 at 19:23
  • 1
    $\begingroup$ Reminds me of Neil Postman's first rule in "Five Things We Need To Know About Technological Change": "The first idea is that all technological change is a trade-off. I like to call it a Faustian bargain. Technology giveth and technology taketh away." web.cs.ucdavis.edu/~rogaway/classes/188/materials/postman.pdf $\endgroup$
    – Luke
    May 1, 2021 at 19:47
  • $\begingroup$ Hi new contributor! I hope you enjoy this site. I am not familiar with any of the TLAs or word salad you mentioned although I am sure it is tasty. Textbooks on Github? Didn't know about that. I have used exactly one library from Github for one small but important project. I guess I am thinking that a textbook might best be about something really basic and fundamental. Starting with most of the hundreds of languages, frameworks, toolsets and so on available today seems to me like taking off way beyond the starting line, but perhaps I have misunderstood. Good luck! $\endgroup$
    – Scott Rowe
    May 2, 2021 at 12:24
  • $\begingroup$ There are lots of open source books around, even ones with full source on github. Two examples are "Beej's Guide to C" and Downey's "Think Python", 2nd edition. Search for "open textbook". $\endgroup$
    – vonbrand
    May 3, 2021 at 23:59
  • $\begingroup$ Hi, I provided an answer based on my own experience, including an "ill-attitude" toward mongodb, so if anyone downvotes my answer I am totally fine. lol $\endgroup$ Jul 1, 2021 at 8:22

1 Answer 1

3
$\begingroup$

Back in 2017 I faced the exactly the same problem, except that it was MEAN. So I bought the book "Getting MEAN". It had good reviews, probably the best review about MEAN. But then I found I didn't actually read the book too much because javascript changes so much every year that many things I read from the book may be obsoleted.

Every time I read this article "How it feels to learn JavaScript in 2016" I share the same feeling with the author "it is insane" and I keep coming back this article!

But I will try to answer this question through my experience.

  1. express is relative stable, express remains in 4.x for couple of years, which is quite unusual in js world. I don't recommend books for express. Its website is good enough. Other knowledge about express may just gain from programming.

  2. To know express well, knowing node.js and its ecosystem is a must. When I learned nodejs back then I did buy the book "Node.js 8 the Right Way" and borrowed the book "Node.js in Action" But I will argue that no books about nodejs can keep up with the changes in nodejs world. So maybe just read the articles you google. But I notices I read a lot from https://dev.to/ , https://2ality.com/ & https://blog.logrocket.com/

  3. Though my limited experience with MongoDB, I didn't like it at all, to me it is a poor product. There is old article called "Don't use MongoDB" which I resonate a lot "if you're writing a toy site, or a prototype, something where developer productivity trumps all other considerations,it basically doesn't matter what you use. Use whatever gets the job done." On quora there is a topic called "How much credibility does the post "Don't use MongoDB" have?" One of answers was provided by a guy called Gaëtan Voyer-Perrault. He answered a lot question about MongoDB, for example you may check his answer "Which companies have moved away from MongoDB and why? What did they move to?"

  4. Having said that I need to emphasize that it was based on my experience in 2017 & 2018. I don't how much has changed since then.

  5. Knowing the concept of no-sql, key value store is probably equally important if someone wants to know mongo. So maybe you can teach your student redis. To learn redis I will recommend "redis in action", it is free ebook you can read here https://redislabs.com/ebook/redis-in-action/

  6. Knowing modern javascript is the foundation, which I recommend https://javascript.info/. When I started to learn js I remembered I thought about buying the book "JavaScript: The Definitive Guide" But that book has 700 pages I remembered after seeing the page number I just gave it up. Reading 700 pages book to learn js is "just insane". "eloquent javascript" is another popular book I see people recommend https://eloquentjavascript.net/ but I only read "modern javascript"

  7. A project not too simple and not complicated to tinker with is important. I remembered I played with this https://github.com/OmarElGabry/chat.io a lot, "A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis." I also tried meteor but I find it is too complicated for beginner and maybe not a good choice for a full stack app. But that is just my assessment.

--- update ---

Some afterthought, to make a web app / website presentable, knowing CSS is a must but when people talk about web programming I feel they mostly focus on javascript and don't pay enough attention to CSS. CSS requires a quite different skill set and I still don't have a clear idea about how much CSS knowledge is enough for a programmer (but not for pro designers), programmer as defined in https://en.wikipedia.org/wiki/Programmer

Using a CSS framework is probably another must in 2021, but there are so many CSS frameworks out there it is hard to choose an appropriate one. I don't have an answer for CSS.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.