Answers.Body: <p>Back in 2017 I faced the exactly the same problem, except that it was MEAN.
  So I bought the book <a href="https://rads.stackoverflow.com/amzn/click/com/1617294756" rel="nofollow noreferrer" rel="nofollow noreferrer">&quot;Getting MEAN&quot;</a>. 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.</p>
  <p>Every time I read this article <a href="https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f" rel="nofollow noreferrer">&quot;How it feels to learn JavaScript in 2016&quot;</a> I share the same feeling with the author &quot;it is insane&quot; and I keep coming back this article!</p>
  <p>But I will try to answer this question through my experience.</p>
  <ol>
  <li><p>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.</p>
  </li>
  <li><p>To know express well, knowing node.js and its ecosystem is a must. When I learned nodejs back then I did buy the book <a href="https://rads.stackoverflow.com/amzn/click/com/B079PZ2XY8" rel="nofollow noreferrer" rel="nofollow noreferrer">&quot;Node.js 8 the Right Way&quot;</a> and borrowed the book <a href="https://rads.stackoverflow.com/amzn/click/com/1617290572" rel="nofollow noreferrer" rel="nofollow noreferrer">&quot;Node.js in Action&quot;</a> 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 <a href="https://dev.to/" rel="nofollow noreferrer">https://dev.to/</a> , <a href="https://2ality.com/" rel="nofollow noreferrer">https://2ality.com/</a> &amp; <a href="https://blog.logrocket.com/" rel="nofollow noreferrer">https://blog.logrocket.com/</a></p>
  </li>
  <li><p>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 <a href="https://pastebin.com/raw/FD3xe6Jt" rel="nofollow noreferrer">&quot;Don't use MongoDB&quot;</a> which I resonate a lot &quot;if you're writing a toy site, or a prototype, something where developer productivity trumps all other considerations,it basically doesn't matter <em>what</em> you use.  Use whatever gets the job done.&quot; On quora there is a topic called <a href="https://www.quora.com/How-much-credibility-does-the-post-Dont-use-MongoDB-have/answer/Ga%C3%ABtan-Voyer-Perrault?srid=uDt8&amp;share=1" rel="nofollow noreferrer">&quot;How much credibility does the post &quot;Don't use MongoDB&quot; have?&quot;</a> One of answers was provided by a guy called <strong>Gaëtan Voyer-Perrault</strong>. He answered a lot question about MongoDB, for example you may check his answer <a href="https://www.quora.com/Which-companies-have-moved-away-from-MongoDB-and-why-What-did-they-move-to/answer/Ga%C3%ABtan-Voyer-Perrault?share=1&amp;srid=uDt8" rel="nofollow noreferrer">&quot;Which companies have moved away from MongoDB and why? What did they move to?&quot;</a></p>
  </li>
  <li><p>Having said that I need to emphasize that it was based on my experience in 2017 &amp; 2018. I don't how much has changed since then.</p>
  </li>
  <li><p>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 &quot;redis in action&quot;, it is free ebook you can read here <a href="https://redislabs.com/ebook/redis-in-action/" rel="nofollow noreferrer">https://redislabs.com/ebook/redis-in-action/</a></p>
  </li>
  <li><p>Knowing modern javascript is the foundation, which I recommend <a href="https://javascript.info/" rel="nofollow noreferrer">https://javascript.info/</a>. When I started to learn js I remembered I thought about buying the book <a href="https://rads.stackoverflow.com/amzn/click/com/1491952024" rel="nofollow noreferrer" rel="nofollow noreferrer">&quot;JavaScript: The Definitive Guide&quot;</a> 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 &quot;just insane&quot;. &quot;eloquent javascript&quot; is another popular book I see people recommend <a href="https://eloquentjavascript.net/" rel="nofollow noreferrer">https://eloquentjavascript.net/</a> but I only read &quot;modern javascript&quot;</p>
  </li>
  <li><p>A project not too simple and not complicated to tinker with is important. I remembered I played with this <a href="https://github.com/OmarElGabry/chat.io" rel="nofollow noreferrer">https://github.com/OmarElGabry/chat.io</a> a lot, &quot;A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, &amp; Redis.&quot;  I also tried <a href="https://www.meteor.com/" rel="nofollow noreferrer">meteor</a> 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.</p>
  </li>
  </ol>
  <p>--- update ---</p>
  <p>Some afterthought, to make a web app / website <strong>presentable</strong>, 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 <strong>enough</strong> for a programmer (but not for pro designers), <strong>programmer</strong> as defined in <a href="https://en.wikipedia.org/wiki/Programmer" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Programmer</a></p>
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-07-01T08:18:55.730Z
Answers.LastActivityDate: 2021-12-28T07:45:33.710Z
Answers.LastEditDate: 2021-12-28T07:45:33.710Z
Answers.UserDisplayName: Qiulang 邱朗
Body: <p>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.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-01T19:23:11.217Z
Comments.Text: 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.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-01T19:47:17.440Z
Comments.Text: 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." https://web.cs.ucdavis.edu/~rogaway/classes/188/materials/postman.pdf
Comments.UserDisplayName: Luke
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-02T12:24:48.720Z
Comments.Text: 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!
Comments.UserDisplayName: Scott Rowe
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-05-03T23:59:42.397Z
Comments.Text: There are lots of open source books around, even ones with full source on github. Two examples are ["Beej's Guide to C"](https://github.com7beejjorgensen/bgc) and Downey's ["Think Python", 2nd edition](https://github.com/AllenDowney/ThinkPython2). Search for "open textbook".
Comments.UserDisplayName: vonbrand
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-07-01T08:22:04.413Z
Comments.Text: 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
Comments.UserDisplayName: Qiulang 邱朗
Tags: <textbook>
Title: MERN - Which textbook to use?
ThreadText: # MERN - Which textbook to use?
  
  (Asked by: username_0 on 2021-05-01)
  
  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.
  
  **Tags:** textbook
  
  > **Comments:**
  > **username_1**: 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.  
  > **username_0**: 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." https://web.cs.ucdavis.edu/~rogaway/classes/188/materials/postman.pdf  
  > **username_2**: 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!  
  > **username_3**: There are lots of open source books around, even ones with full source on github. Two examples are ["Beej's Guide to C"](https://github.com7beejjorgensen/bgc) and Downey's ["Think Python", 2nd edition](https://github.com/AllenDowney/ThinkPython2). Search for "open textbook".  
  > **username_4**: 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  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_4 on 2021-07-01. Score: 3
  
  Back in 2017 I faced the exactly the same problem, except that it was MEAN.
  So I bought the book ["Getting MEAN"](https://rads.stackoverflow.com/amzn/click/com/1617294756). 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"](https://hackernoon.com/how-it-feels-to-learn-javascript-in-2016-d3a717dd577f) 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"](https://rads.stackoverflow.com/amzn/click/com/B079PZ2XY8) and borrowed the book ["Node.js in Action"](https://rads.stackoverflow.com/amzn/click/com/1617290572) 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"](https://pastebin.com/raw/FD3xe6Jt) 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?"](https://www.quora.com/How-much-credibility-does-the-post-Dont-use-MongoDB-have/answer/Ga%C3%ABtan-Voyer-Perrault?srid=uDt8&share=1) 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?"](https://www.quora.com/Which-companies-have-moved-away-from-MongoDB-and-why-What-did-they-move-to/answer/Ga%C3%ABtan-Voyer-Perrault?share=1&srid=uDt8)
  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"](https://rads.stackoverflow.com/amzn/click/com/1491952024) 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](https://www.meteor.com/) 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.
  
  
  ---
  
  