mirror of
https://github.com/foo-dogsquared/website.git
synced 2025-02-07 12:19:36 +00:00
PUBLISH: Monthly Resources and Learnings (January 2019)
This commit is contained in:
parent
0b56dc6b9e
commit
c59c96bac2
@ -20,216 +20,220 @@ Do keep in mind, most of them are related to computer programming but some of th
|
||||
stuff outside of programming (say [Khan Academy](https://khanacademy.org) for math).
|
||||
|
||||
## Other Resource Lists
|
||||
- [awesome](https://github.com/sindresorhus/awesome) — **(very much recommended)**; it's a curated list of lists; I guess you can say it's **awesome**, mwehehehehehehehe... 😎
|
||||
- [awesome](https://github.com/sindresorhus/awesome) — **(very much recommended)**; it's a curated list of lists; I guess you can say it's **awesome**, mwehehehehehehehe... 😎
|
||||
- [A Compilation of Useful, Free, Online Math Resources from /r/math](https://www.reddit.com/r/math/comments/2mkmk0/a_compilation_of_useful_free_online_math_resources/)
|
||||
- [List of websites, ebooks, downloads, etc. for mobile users and people too lazy to read the sidebar from /r/learnmath](https://www.reddit.com/r/learnmath/comments/8p922p/list_of_websites_ebooks_downloads_etc_for_mobile/)
|
||||
- [This list on Medium](https://medium.com/free-stuff/500-free-things-on-the-internet-to-start-your-new-year-11ae72266b66)
|
||||
- [List of the best free things online everyone can take advantage of on /r/BestOfSoftwares](https://www.reddit.com/r/BestofSoftwares/comments/6084vh/list_of_the_best_free_things_online_everyone_can/)
|
||||
- [This specialized list for programming on Reddit](https://www.reddit.com/r/learnprogramming/wiki/tools)
|
||||
- [Useful websites for programmers (by *sdmg15* on GitHub)](https://github.com/sdmg15/Best-websites-a-programmer-should-visit/) — also here's [an mirror article by *Sahil Rajput* on dev.to](https://dev.to/sahilrajput/useful-websites-for-programmers-36k#coding-practice-for-beginners)
|
||||
- [Useful websites for programmers (by *sdmg15* on GitHub)](https://github.com/sdmg15/Best-websites-a-programmer-should-visit/) — also here's [an mirror article by *Sahil Rajput* on dev.to](https://dev.to/sahilrajput/useful-websites-for-programmers-36k#coding-practice-for-beginners)
|
||||
- [Web Dev't Study Resources (by *dargaCode* on GitHub)](https://github.com/dargaCode/WebDevStudyResources)
|
||||
|
||||
## Online Education Resources
|
||||
- [Adobe Education Exchange](https://edex.adobe.com/en/professional-development/courses) — free courses offered by Adobe and its community
|
||||
- [Brilliant](https://brilliant.org) — kind of like those MOOC but they teach you through solving problems
|
||||
- [Adobe Education Exchange](https://edex.adobe.com/en/professional-development/courses) — free courses offered by Adobe and its community
|
||||
- [Brilliant](https://brilliant.org) — kind of like those MOOC but they teach you through solving problems
|
||||
- [Codecademy](https://www.codecademy.com/)
|
||||
- [Community College Consortium for Open Educational Resources](https://www.cccoer.org/) — you can find it [here](https://www.cccoer.org/learn/find-oer/) for the most part if you want the open educational resources (OER)
|
||||
- [Coursera](https://coursera.org) — **(recommended)**
|
||||
- [CS50 Course by Harvard University](http://cs50.harvard.edu/) — **(very much recommended)**; a very good introductory course on computer science in general, just take it easy and follow the schedule then you'll be fine; I also recommend to take it with friends or a study group too, much easier unlike the way I took 😥, but still doable with solo
|
||||
- [edX](https://edx.org) — **(recommended)**
|
||||
- [fast.ai](http://www.fast.ai/) — free courses on machine learning, ooooh yeah
|
||||
- [freeCodeCamp](https://freecodecamp.org) — **(recommended)**; project-based curriculum for web development
|
||||
- [IXL](https://www.ixl.com/) — an educational resource and learning site on K-12 curriculum
|
||||
- [Khan Academy](https://khanacademy.org) — **(recommended)**; there are also other topics outside of programming (i.e. mathematics, physics)
|
||||
- [Learn X in Y Minutes](https://learnxinyminutes.com) — a community-created repository of summaries for you to learn the X programming languages
|
||||
- [LinkedIn Learning](https://learning.linkedin.com/) — eLearning platform of LinkedIn
|
||||
- [Microsoft Virtual Academy](https://mva.microsoft.com/) — yup, Microsoft has their own learning platform
|
||||
- [MIT OpenCourseWare](https://ocw.mit.edu/index.htm) — **(recommended)**; contains courses from a lot of subjects; you also might want to check out their [OCW Scholar Courses](https://ocw.mit.edu/courses/ocw-scholar/) wherein they are essentially more in-depth versions of the usual courses
|
||||
- [MongoDB University](https://university.mongodb.com/) — official courses from MongoDB
|
||||
- [Community College Consortium for Open Educational Resources](https://www.cccoer.org/) — you can find it [here](https://www.cccoer.org/learn/find-oer/) for the most part if you want the open educational resources (OER)
|
||||
- [Coursera](https://coursera.org) — **(recommended)**
|
||||
- [CS50 Course by Harvard University](http://cs50.harvard.edu/) — **(very much recommended)**; a very good introductory course on computer science in general, just take it easy and follow the schedule then you'll be fine; I also recommend to take it with friends or a study group too, much easier unlike the way I took 😥, but still doable with solo
|
||||
- [edX](https://edx.org) — **(recommended)**
|
||||
- [fast.ai](http://www.fast.ai/) — free courses on machine learning, ooooh yeah
|
||||
- [freeCodeCamp](https://freecodecamp.org) — **(recommended)**; project-based curriculum for web development
|
||||
- [IXL](https://www.ixl.com/) — an educational resource and learning site on K-12 curriculum
|
||||
- [Khan Academy](https://khanacademy.org) — **(recommended)**; there are also other topics outside of programming (i.e. mathematics, physics)
|
||||
- [Learn X in Y Minutes](https://learnxinyminutes.com) — a community-created repository of summaries for you to learn the X programming languages
|
||||
- [LinkedIn Learning](https://learning.linkedin.com/) — eLearning platform of LinkedIn
|
||||
- [Microsoft Virtual Academy](https://mva.microsoft.com/) — yup, Microsoft has their own learning platform
|
||||
- [MIT OpenCourseWare](https://ocw.mit.edu/index.htm) — **(recommended)**; contains courses from a lot of subjects; you also might want to check out their [OCW Scholar Courses](https://ocw.mit.edu/courses/ocw-scholar/) wherein they are essentially more in-depth versions of the usual courses
|
||||
- [MongoDB University](https://university.mongodb.com/) — official courses from MongoDB
|
||||
- [Online Stanford Courses](https://online.stanford.edu/courses)
|
||||
- [Open Educational Resources](https://www.oercommons.org/) — self-explanatory as to what their content is about
|
||||
- [Open Educational Resources](https://www.oercommons.org/) — self-explanatory as to what their content is about
|
||||
- [Open Yale Courses](https://oyc.yale.edu/courses)
|
||||
- [Scrimba](https://scrimba.com/) — **(recommended)**; videos with interactive code
|
||||
- [Siyavula](https://everythingmaths.co.za/) — mathematics- and science-focused open educational resources
|
||||
- [SkillShare](https://www.skillshare.com/) — almost like Udemy, almost like Udemy
|
||||
- [Teach Engineering](https://www.teachengineering.org/) — well, it's a educational resources site containing engineering stuff
|
||||
- [The Odin Project](https://www.theodinproject.com/) — similar approach to freeCodeCamp
|
||||
- [Tutorials Point](https://www.tutorialspoint.com/index.htm) — **(recommended)**; a good overview on a bunch of programming languages
|
||||
- [TutPlus](https://tutsplus.com/) — a bunch of tutorials and courses
|
||||
- [Udacity](https://www.udacity.com/) —most, if not all courses are focused on technology
|
||||
- [Udemy](https://udemy.com) — HINT: they are discounted for almost all-year round; I also recommend to only look out for the top courses since there's a lot of cluttering stuff in there
|
||||
- [Scrimba](https://scrimba.com/) — **(recommended)**; videos with interactive code
|
||||
- [Siyavula](https://everythingmaths.co.za/) — mathematics- and science-focused open educational resources
|
||||
- [SkillShare](https://www.skillshare.com/) — almost like Udemy, almost like Udemy
|
||||
- [Teach Engineering](https://www.teachengineering.org/) — well, it's a educational resources site containing engineering stuff
|
||||
- [The Odin Project](https://www.theodinproject.com/) — similar approach to freeCodeCamp
|
||||
- [Tutorials Point](https://www.tutorialspoint.com/index.htm) — **(recommended)**; a good overview on a bunch of programming languages
|
||||
- [TutPlus](https://tutsplus.com/) — a bunch of tutorials and courses
|
||||
- [Udacity](https://www.udacity.com/) —most, if not all courses are focused on technology
|
||||
- [Udemy](https://udemy.com) — HINT: they are discounted for almost all-year round; I also recommend to only look out for the top courses since there's a lot of cluttering stuff in there
|
||||
- [W3Schools](https://www.w3schools.com/)
|
||||
- [Wolfram MathWorld](http://mathworld.wolfram.com/)
|
||||
|
||||
## Academics-focused Sites
|
||||
- [Academia.edu](https://www.academia.edu/)
|
||||
- [Brainly](https://brainly.com/) — **(recommended)**; for students and peer-to-peer engagement
|
||||
- [Brainly](https://brainly.com/) — **(recommended)**; for students and peer-to-peer engagement
|
||||
- [Mendeley](https://mendeley.com/)
|
||||
- [Google Scholar](https://scholar.google.com/)
|
||||
- [Researchgate](https://www.researchgate.net/) — most published studies under their platform are free to view
|
||||
- [Researchgate](https://www.researchgate.net/) — most published studies under their platform are free to view
|
||||
|
||||
## Documentations
|
||||
- [DevDocs](https://devdocs.io/) — **(very much recommended)**; a site wherein official documentation of different languages can be found; there's also an offline version of it if you are lacking of internet speed (like me)
|
||||
- [GitBook](https://www.gitbook.com/) — easier finding for documentations
|
||||
- [MDN Web Docs](https://developer.mozilla.org/en-US/) — **(very much recommended)**; if you're trying to learn web development and programming in general, this can be a hub for it
|
||||
- [DevDocs](https://devdocs.io/) — **(very much recommended)**; a site wherein official documentation of different languages can be found; there's also an offline version of it if you are lacking of internet speed (like me)
|
||||
- [GitBook](https://www.gitbook.com/) — easier finding for documentations
|
||||
- [MDN Web Docs](https://developer.mozilla.org/en-US/) — **(very much recommended)**; if you're trying to learn web development and programming in general, this can be a hub for it
|
||||
|
||||
## Books
|
||||
- [Algorithms (by *Jeff Erickson*)](http://algorithms.wtf/) — it's a good book on algorithms (though not recommended as a first book on data structures and algorithms)
|
||||
- [BC Campus Open Ed Open Textbook Database](https://open.bccampus.ca/)
|
||||
- [Bookboon](https://bookboon.com/) — offers premium books as well
|
||||
- [Bookboon](https://bookboon.com/) — offers premium books as well
|
||||
- [Building Blocks for Theoretical Computer Science](http://mfleck.cs.illinois.edu/building-blocks/) — self-explanatory title is self-explanatory
|
||||
- [Calculus (by *Kalid Azad* from *Better Explained*)](https://betterexplained.com/calculus/)
|
||||
- [Free Computer Books](http://freecomputerbooks.com)
|
||||
- [Free Programming Books](https://github.com/EbookFoundation/free-programming-books) — **(recommended)**; a GitHub repo by the E-Book Foundation
|
||||
- [Free Science Books](https://github.com/EbookFoundation/free-science-books) — another GitHub repo by the E-Book Foundation
|
||||
- [Green Tea Press](https://greenteapress.com/wp/) — free computer science-related ebooks
|
||||
- [Free Programming Books](https://github.com/EbookFoundation/free-programming-books) — **(recommended)**; a GitHub repo by the E-Book Foundation
|
||||
- [Free Science Books](https://github.com/EbookFoundation/free-science-books) — another GitHub repo by the E-Book Foundation
|
||||
- [Green Tea Press](https://greenteapress.com/wp/) — free computer science-related ebooks
|
||||
- [How to Design Programs, 2nd Edition (HTML version)](https://htdp.org/)
|
||||
- [Introduction to Embedded Systems, 2nd Edition (2017, Lee and Seshia)](https://ptolemy.berkeley.edu/books/leeseshia/download.html)
|
||||
- [Math Wiki](https://math.wikia.com/wiki/Math_Wiki) — well, it is structured like a textbook and it is said that the Math Wiki is a textbook so there's that
|
||||
- [MIT Press Open](https://mitpress.mit.edu/mit-press-open) — yes, free and open access books from MIT Press
|
||||
- [Notes for Professionals](http://book.goalkicker.com/) — **(very much recommended)**; made by folks at Stack Overflow from the Stack Overflow documentation for variety of languages and despite the title, it is quite helpful for beginners like me, as well; also, it is frequently updated like once per week
|
||||
- [OpenStax](https://openstax.org/) — **(very much recommended in sciences)**; a library of open-licensed expert-curated college textbook and resources
|
||||
- [OpenStax CNX](https://cnx.org/) — a database of open educational resources
|
||||
- [Math Wiki](https://math.wikia.com/wiki/Math_Wiki) — well, it is structured like a textbook and it is said that the Math Wiki is a textbook so there's that
|
||||
- [MIT Press Open](https://mitpress.mit.edu/mit-press-open) — yes, free and open access books from MIT Press
|
||||
- [Notes for Professionals](http://book.goalkicker.com/) — **(very much recommended)**; made by folks at Stack Overflow from the Stack Overflow documentation for variety of languages and despite the title, it is quite helpful for beginners like me, as well; also, it is frequently updated like once per week
|
||||
- [Open Data Structures](http://opendatastructures.org/) — offers book
|
||||
- [Open Library](https://openlibrary.org/)
|
||||
- [Open Textbook Library](https://open.umn.edu/opentextbooks) — **(recommended)**; same as OpenStax
|
||||
- [Open SUNY Textbooks](https://textbooks.opensuny.org/)
|
||||
- [Open Textbook Library](https://open.umn.edu/opentextbooks) — **(recommended)**; same as OpenStax
|
||||
- [OpenStax CNX](https://cnx.org/) — a database of open educational resources
|
||||
- [OpenStax](https://openstax.org/) — **(very much recommended in sciences)**; a library of open-licensed expert-curated college textbook and resources
|
||||
- [Scientific Programming and Computer Architecture](https://divakarvi.github.io/bk-spca/spca.html)
|
||||
- [Structure and Interpretation of Computer Programs, 2nd Edition (HTML version)](https://sarabander.github.io/sicp/) — unofficial (and prettier) version of [one of MIT's famous programming book (that can also be found online)](https://mitpress.mit.edu/sites/default/files/sicp/index.html)
|
||||
- [Structure and Interpretation of Computer Programs, 2nd Edition (HTML version)](https://sarabander.github.io/sicp/) — unofficial (and prettier) version of [one of MIT's famous programming book (that can also be found online)](https://mitpress.mit.edu/sites/default/files/sicp/index.html)
|
||||
- [The Feynman's Lectures on Physics](http://www.feynmanlectures.caltech.edu/)
|
||||
- [WikiToLearn](https://www.wikitolearn.org/)
|
||||
|
||||
## Katas (Practice Sites)
|
||||
- [/r/dailyprogrammer](https://old.reddit.com/r/dailyprogrammer/)
|
||||
- [Coderbyte](http://coderbyte.com)
|
||||
- [Codewars](http://codewars.com/) — **(recommended)**
|
||||
- [Euler Project](https://projecteuler.net/) — **(recommended, if you want to be more challenged)**; has more focus on applying mathematical concepts than programming
|
||||
- [Exercism](https://exercism.io) — a site that focuses improving you through the mentor-mentee model
|
||||
- [HackerRank](http://hackerrank.com/) — **(recommended, if you want to be more challenged)**
|
||||
- [Pramp](https://www.pramp.com/) — you get to practice some programming interview questions and it's free
|
||||
- [Codewars](http://codewars.com/) — **(recommended)**
|
||||
- [Euler Project](https://projecteuler.net/) — **(recommended, if you want to be more challenged)**; has more focus on applying mathematical concepts than programming
|
||||
- [Exercism](https://exercism.io) — a site that focuses improving you through the mentor-mentee model
|
||||
- [HackerRank](http://hackerrank.com/) — **(recommended, if you want to be more challenged)**
|
||||
- [Pramp](https://www.pramp.com/) — you get to practice some programming interview questions and it's free
|
||||
|
||||
## Articles
|
||||
- [Brain Pickings](https://www.brainpickings.org) — it's about whatever your brain might be piqued to
|
||||
- [Brain Pickings](https://www.brainpickings.org) — it's about whatever your brain might be piqued to
|
||||
- [Dev.to](https://dev.to/)
|
||||
- [Explain That Stuff](https://www.explainthatstuff.com/)
|
||||
- [GeeksforGeeks](https://www.geeksforgeeks.org/) — **(recommended)**; a computer science portal (for geeks)
|
||||
- [GeeksforGeeks](https://www.geeksforgeeks.org/) — **(recommended)**; a computer science portal (for geeks)
|
||||
- [Medium](https://medium.com/)
|
||||
- [Preadr](https://preadr.com/) — an article link collector collecting articles related to your configured interests
|
||||
- [Scratch A Pixel](http://scratchapixel.com/) — a list of articles on computer graphics
|
||||
- [Wikipedia](https://www.wikipedia.org/) — if you want to learn random things
|
||||
- [Preadr](https://preadr.com/) — an article link collector collecting articles related to your configured interests
|
||||
- [Scratch A Pixel](http://scratchapixel.com/) — a list of articles on computer graphics
|
||||
- [Wikipedia](https://www.wikipedia.org/) — if you want to learn random things
|
||||
|
||||
## Communities
|
||||
- [CodeNewbie](https://www.codenewbie.org/)
|
||||
- [Coding Blocks](https://www.codingblocks.net/) — they also have a podcast
|
||||
- [Dev.to](https://dev.to/) — **(recommended)**; beginner-friendly
|
||||
- [Coding Blocks](https://www.codingblocks.net/) — they also have a podcast
|
||||
- [Dev.to](https://dev.to/) — **(recommended)**; beginner-friendly
|
||||
- [freeCodeCamp Community](https://forum.freecodecamp.org)
|
||||
- [GitHub](https://github.com) **(of course)**
|
||||
- [HackerNews](https://news.ycombinator.com/)
|
||||
- [Reddit /r/coding](https://www.reddit.com/r/coding/)
|
||||
- [Reddit /r/learnprogramming](https://www.reddit.com/r/learnprogramming/)
|
||||
- [Stack Overflow](https://stackoverflow.com) — look for the whole Meta Exchange network if you want to visit more communities other than Stack Overflow
|
||||
- [Stack Overflow](https://stackoverflow.com) — look for the whole Meta Exchange network if you want to visit more communities other than Stack Overflow
|
||||
|
||||
## Podcasts
|
||||
- [BaseCS](https://www.codenewbie.org/basecs)
|
||||
- [CodeNewbie Podcast](https://www.codenewbie.org/podcast)
|
||||
- [Coding Blocks Podcast](https://www.codingblocks.net/category/podcast/) — great for beginners
|
||||
- [College Info Geek Podcast](https://collegeinfogeek.com/cast/) — not related to programming; a good refresher about a variety of stuff
|
||||
- [DevChat](https://devchat.tv/) — a list of podcast
|
||||
- [Coding Blocks Podcast](https://www.codingblocks.net/category/podcast/) — great for beginners
|
||||
- [College Info Geek Podcast](https://collegeinfogeek.com/cast/) — not related to programming; a good refresher about a variety of stuff
|
||||
- [DevChat](https://devchat.tv/) — a list of podcast
|
||||
- [Developer Tea](https://developertea.simplecast.fm/)
|
||||
- [Syntax](https://syntax.fm/) — **(recommended if you're into web dev't)**
|
||||
- [Programming Throwdown](https://www.programmingthrowdown.com/) — beginner-friendly
|
||||
- [Syntax](https://syntax.fm/) — **(recommended if you're into web dev't)**
|
||||
- [Programming Throwdown](https://www.programmingthrowdown.com/) — beginner-friendly
|
||||
- [Real Talk JavaScript](https://realtalkjavascript.simplecast.fm/)
|
||||
- [Soft Skills Engineering](https://softskills.audio/) — **(recommended)**; it's a podcast series about the things that relate to software engineering that are not mostly coding-related
|
||||
- [You Are Not So Smart](https://youarenotsosmart.com/podcast/) — it's a podcast series about exploring self-delusions and some psychological
|
||||
- [Soft Skills Engineering](https://softskills.audio/) — **(recommended)**; it's a podcast series about the things that relate to software engineering that are not mostly coding-related
|
||||
- [You Are Not So Smart](https://youarenotsosmart.com/podcast/) — it's a podcast series about exploring self-delusions and some psychological
|
||||
stuff and I really like psychological stuff so that's why it's here
|
||||
|
||||
## Blogs
|
||||
- ### Learning
|
||||
- [Cal Newport](https://calnewport.com/)
|
||||
- [College Info Geek](https://collegeinfogeek.com/)
|
||||
- [Scott Young](https://scotthyoung.com/) — a blog that mainly focuses on learning
|
||||
- [Scott Young](https://scotthyoung.com/) — a blog that mainly focuses on learning
|
||||
- ### Programming
|
||||
- [Coding Horror](https://blog.codinghorror.com/)
|
||||
- [CSS Tricks](https://css-tricks.com/) — a blog that focuses on front-end development
|
||||
- [Derek Sivers](https://sivers.org/) — a blog from a guy who had a lot of things to say on a lot of topics
|
||||
- [Flavio Copes](https://flaviocopes.com/) — another blog that focuses on front-end development
|
||||
- [Jeremy Kun](https://jeremykun.com/) — a programmer with a focus on mathematics
|
||||
- [Joel On Software](https://www.joelonsoftware.com) — a software-related blog from Joel Spolsky, the CEO from Stack Overflow
|
||||
- [Jon Skeet's Coding Blog](https://codeblog.jonskeet.uk/) — Jon Skeet's blog; \* insert Jon Skeet fact here \*
|
||||
- [CSS Tricks](https://css-tricks.com/) — a blog that focuses on front-end development
|
||||
- [Derek Sivers](https://sivers.org/) — a blog from a guy who had a lot of things to say on a lot of topics
|
||||
- [Flavio Copes](https://flaviocopes.com/) — another blog that focuses on front-end development
|
||||
- [Jeremy Kun](https://jeremykun.com/) — a programmer with a focus on mathematics
|
||||
- [Joel On Software](https://www.joelonsoftware.com) — a software-related blog from Joel Spolsky, the CEO from Stack Overflow
|
||||
- [Jon Skeet's Coding Blog](https://codeblog.jonskeet.uk/) — Jon Skeet's blog; \* insert Jon Skeet fact here \*
|
||||
- [Joshua Pullen](https://joshuapullen.com/blog/)
|
||||
- [Mozilla Hacks](http://hacks.mozilla.org/) — mainly focuses on web development progress
|
||||
- [Scott Logic](https://blog.scottlogic.com/) — it's a blog that focuses on a broad spectrum of stuff
|
||||
- [webapplog](https://webapplog.com/) — mainly focuses on Node.js
|
||||
- [Wes Bos](https://wesbos.com/blog/) — creator of several courses and some helpful posts along the way
|
||||
- [Mozilla Hacks](http://hacks.mozilla.org/) — mainly focuses on web development progress
|
||||
- [Scott Logic](https://blog.scottlogic.com/) — it's a blog that focuses on a broad spectrum of stuff
|
||||
- [webapplog](https://webapplog.com/) — mainly focuses on Node.js
|
||||
- [Wes Bos](https://wesbos.com/blog/) — creator of several courses and some helpful posts along the way
|
||||
|
||||
## Newsletter
|
||||
- [Frontend Focus](https://frontendfoc.us/) — another weekly newsletter about front-end development
|
||||
- [Gamedev.js Weekly](http://gamedevjsweekly.com/) — weekly newsletter about HTML5 Game Development
|
||||
- [Frontend Focus](https://frontendfoc.us/) — another weekly newsletter about front-end development
|
||||
- [Gamedev.js Weekly](http://gamedevjsweekly.com/) — weekly newsletter about HTML5 Game Development
|
||||
- [JavaScript Weekly](https://javascriptweekly.com/)
|
||||
- [Node Weekly](http://nodeweekly.com/)
|
||||
- [Official Node.js Weekly Newsletter](https://newsletter.nodejs.org/)
|
||||
- [Postanly](https://postanly.ongoodbits.com/) — a weekly digest of productivity life articles
|
||||
- [Pycoders Weekly](https://pycoders.com/) — a weekly newsletter on Python
|
||||
- [Postanly](https://postanly.ongoodbits.com/) — a weekly digest of productivity life articles
|
||||
- [Pycoders Weekly](https://pycoders.com/) — a weekly newsletter on Python
|
||||
|
||||
## YouTube Channel
|
||||
- [Crash Course](https://www.youtube.com/user/crashcourse/) — **(recommended)**; a YouTube channel that specializes in introducing you to a lot of concepts and subjects such as computers, sciences, and computer science
|
||||
- [DevTips](https://www.youtube.com/channel/UCyIe-61Y8C4_o-zZCtO4ETQ) — **(recommended)**; beginner-friendly
|
||||
- [Crash Course](https://www.youtube.com/user/crashcourse/) — **(recommended)**; a YouTube channel that specializes in introducing you to a lot of concepts and subjects such as computers, sciences, and computer science
|
||||
- [DevTips](https://www.youtube.com/channel/UCyIe-61Y8C4_o-zZCtO4ETQ) — **(recommended)**; beginner-friendly
|
||||
- [freeCodeCamp Talks](https://www.youtube.com/channel/UCVk8weS4S2kJfja72fTxh5A)
|
||||
- [freeCodeCamp](https://www.youtube.com/channel/UC8butISFwT-Wl7EV0hUK0BQ)
|
||||
- [Fun Fun Function](https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q) — **(recommended)**; your metaphorical caffeine every Monday
|
||||
- [Jarvis Johnson](https://www.youtube.com/channel/UCoLUji8TYrgDy74_iiazvYA) — comedy channel with a slight focus on tech
|
||||
- [Khan Academy](https://www.youtube.com/channel/UC4a-Gbdw7vOaccHmFo40b9g) — videos on various academic topics
|
||||
- [Fun Fun Function](https://www.youtube.com/channel/UCO1cgjhGzsSYb1rsB4bFe4Q) — **(recommended)**; your metaphorical caffeine every Monday
|
||||
- [Jarvis Johnson](https://www.youtube.com/channel/UCoLUji8TYrgDy74_iiazvYA) — comedy channel with a slight focus on tech
|
||||
- [Khan Academy](https://www.youtube.com/channel/UC4a-Gbdw7vOaccHmFo40b9g) — videos on various academic topics
|
||||
- [LearnCode.academy](https://www.youtube.com/channel/UCVTlvUkGslCV_h-nSAId8Sw)
|
||||
- [LevelUpTuts](https://www.youtube.com/user/LevelUpTuts/) — **(recommended)**; a beginner-friendly channel that mostly contains tutorials and introductions on various topics
|
||||
- [LevelUpTuts](https://www.youtube.com/user/LevelUpTuts/) — **(recommended)**; a beginner-friendly channel that mostly contains tutorials and introductions on various topics
|
||||
- [Majorprep](https://www.youtube.com/channel/UCpCSAcbqs-sjEVfk_hMfY9w)
|
||||
- [Mozilla Hacks](https://www.youtube.com/user/mozhacks) — web video series "Web Demystified"
|
||||
- [patrickJMT](https://www.youtube.com/channel/UCFe6jenM1Bc54qtBsIJGRZQ) — focuses on mathematics so if you want to learn math through YouTube, here is one channel that specializes on it
|
||||
- [Professor Leonard](https://www.youtube.com/channel/UCoHhuummRZaIVX7bD4t2czg) — a YouTube channel that focuses on giving topics on calculus
|
||||
- [Mozilla Hacks](https://www.youtube.com/user/mozhacks) — web video series "Web Demystified"
|
||||
- [patrickJMT](https://www.youtube.com/channel/UCFe6jenM1Bc54qtBsIJGRZQ) — focuses on mathematics so if you want to learn math through YouTube, here is one channel that specializes on it
|
||||
- [Professor Leonard](https://www.youtube.com/channel/UCoHhuummRZaIVX7bD4t2czg) — a YouTube channel that focuses on giving topics on calculus
|
||||
- [The Coding Train](https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw)
|
||||
- [Vsauce](https://www.youtube.com/user/Vsauce) — need to say more?
|
||||
- [Vsauce](https://www.youtube.com/user/Vsauce) — need to say more?
|
||||
- [Wes Bos](https://www.youtube.com/channel/UCoebwHSTvwalADTJhps0emA)
|
||||
|
||||
## Operating Systems (yes, some of them are free)
|
||||
- ### [Windows 10](https://www.microsoft.com/en-us/software-download/windows10ISO)**\*** **(I guess it is free now, also recommended)**
|
||||
- ### Linux — overwhelming majority of them are free and open source
|
||||
- [Arch Linux](http://archlinux.org/) — not recommended for beginners
|
||||
- [Fedora](https://fedoraproject.org/) — kind of similar to Ubuntu
|
||||
- [Linux Mint](https://www.linuxmint.com/) — **(recommended for beginners)**
|
||||
- [Manjaro](https://manjaro.org/) — another one of the beginner-friendly distro
|
||||
- [OpenSUSE](https://www.opensuse.org/) — available in two distinct versions: Tumbleweed and Leap
|
||||
- ### Linux — overwhelming majority of them are free and open source
|
||||
- [Arch Linux](http://archlinux.org/) — not recommended for beginners
|
||||
- [Fedora](https://fedoraproject.org/) — kind of similar to Ubuntu
|
||||
- [Linux Mint](https://www.linuxmint.com/) — **(recommended for beginners)**
|
||||
- [Manjaro](https://manjaro.org/) — another one of the beginner-friendly distro
|
||||
- [OpenSUSE](https://www.opensuse.org/) — available in two distinct versions: Tumbleweed and Leap
|
||||
- [Solus](https://getsol.us/)
|
||||
- [Ubuntu](http://ubuntu.com/) — **(recommended for beginners)**
|
||||
- [Ubuntu](http://ubuntu.com/) — **(recommended for beginners)**
|
||||
|
||||
## Programming Tools
|
||||
- ### Offline IDE
|
||||
- [Eclipse](https://www.eclipse.org/) — Linux alternative; also has Windows version
|
||||
- [Jetbrains](https://www.jetbrains.com/) — **(recommended)**; has an assortment of tools for different programming languages and environment; also has support for students so you can apply for an educational pack, if you're eligible
|
||||
- [Visual Studio (IDE)](https://www.visualstudio.com/) — **(recommended)**; Windows-only
|
||||
- [Eclipse](https://www.eclipse.org/) — Linux alternative; also has Windows version
|
||||
- [Jetbrains](https://www.jetbrains.com/) — **(recommended)**; has an assortment of tools for different programming languages and environment; also has support for students so you can apply for an educational pack, if you're eligible
|
||||
- [Visual Studio (IDE)](https://www.visualstudio.com/) — **(recommended)**; Windows-only
|
||||
- ### Online IDE
|
||||
- [Codeanywhere](http://codeanywhere.com/)
|
||||
- [CodeSandbox](https://codesandbox.io/) — **(recommended)**; really acts as a solid online alternative in case you want to work on the go (mostly, for JavaScript-oriented web development)
|
||||
- [Codepen](https://codepen.io) — focuses on the front-end dev't
|
||||
- [Repl.it](https://repl.it/) — has stronger support for a back-end dev't
|
||||
- [CodeSandbox](https://codesandbox.io/) — **(recommended)**; really acts as a solid online alternative in case you want to work on the go (mostly, for JavaScript-oriented web development)
|
||||
- [Codepen](https://codepen.io) — focuses on the front-end dev't
|
||||
- [Repl.it](https://repl.it/) — has stronger support for a back-end dev't
|
||||
- ### Text Editors
|
||||
- [Atom](https://atom.io/)
|
||||
- [Vim](https://www.vim.org/) — I have no words for this, yet
|
||||
- [Visual Studio Code](https://code.visualstudio.com/) — **(very much recommended)**; platform-agnostic (found on Windows, Mac, & Linux)
|
||||
- [Vim](https://www.vim.org/) — I have no words for this, yet
|
||||
- [Visual Studio Code](https://code.visualstudio.com/) — **(very much recommended)**; platform-agnostic (found on Windows, Mac, & Linux)
|
||||
- ### Web Browsers
|
||||
- [Firefox Developer Edition](https://www.mozilla.org/en-US/firefox/developer/all/)
|
||||
- [Firefox](https://www.mozilla.org/en-US/firefox/all/)
|
||||
- [Google Chrome Beta](https://www.google.com/chrome/browser/beta.html) — slight alternative for Google Canary
|
||||
- [Google Chrome Canary](https://www.google.com/chrome/browser/canary.html) — Windows-only
|
||||
- [Google Chrome Beta](https://www.google.com/chrome/browser/beta.html) — slight alternative for Google Canary
|
||||
- [Google Chrome Canary](https://www.google.com/chrome/browser/canary.html) — Windows-only
|
||||
- [Google Chrome](https://www.google.com/intl/en/chrome/)
|
||||
- ### Communication
|
||||
- [Discord](https://discordapp.com/) — client messenger
|
||||
- [Pidgin](https://pidgin.im/) — also a client messenger
|
||||
- [Slack](https://slack.com/) — **(recommended)**; a very good chat client between teams
|
||||
- [Thunderbird](https://www.thunderbird.net/en-US/) — **(recommended)**; e-mail client
|
||||
- [Discord](https://discordapp.com/) — client messenger
|
||||
- [Pidgin](https://pidgin.im/) — also a client messenger
|
||||
- [Slack](https://slack.com/) — **(recommended)**; a very good chat client between teams
|
||||
- [Thunderbird](https://www.thunderbird.net/en-US/) — **(recommended)**; e-mail client
|
||||
- ### Productivity Tools
|
||||
- [A Soft Murmur](https://asoftmurmur.com/) — an ambient noise generator with a lot more sounds than rain
|
||||
- [LastPass](https://lastpass.com) — cloud password manager
|
||||
- [MedleyText](https://medleytext.net/) — Evernote but targeted towards developers
|
||||
- [Notion](https://www.notion.so/?r=ed358a0e3f6d4e47a5db21a17beaa7dd) — distraction-free app for taking notes in Markdown
|
||||
- [Rainy Mood](http://www.rainymood.com/) — lets you focus through the ambience (if you're the type who find rain to be relaxing)
|
||||
- [Trello](https://trello.com) — a project management tool
|
||||
- [A Soft Murmur](https://asoftmurmur.com/) — an ambient noise generator with a lot more sounds than rain
|
||||
- [LastPass](https://lastpass.com) — cloud password manager
|
||||
- [MedleyText](https://medleytext.net/) — Evernote but targeted towards developers
|
||||
- [Notion](https://www.notion.so/?r=ed358a0e3f6d4e47a5db21a17beaa7dd) — distraction-free app for taking notes in Markdown
|
||||
- [Rainy Mood](http://www.rainymood.com/) — lets you focus through the ambience (if you're the type who find rain to be relaxing)
|
||||
- [Trello](https://trello.com) — a project management tool
|
||||
- ### Others
|
||||
- [Calibre](https://calibre-ebook.com/) — an e-book library management tool
|
||||
- [Calibre](https://calibre-ebook.com/) — an e-book library management tool
|
||||
|
||||
## Mathematical Tools
|
||||
- [fxSolver](https://www.fxsolver.com/)
|
||||
@ -239,12 +243,12 @@ stuff and I really like psychological stuff so that's why it's here
|
||||
|
||||
## Platforms For Your Future Apps
|
||||
- [BitBucket](https://bitbucket.org/)
|
||||
- [Amazon Web Services (AWS) — Free Tier](https://aws.amazon.com/free/)
|
||||
- [GitHub](https://github.com/) — **(recommended)**; yeah
|
||||
- [GitLab](https://gitlab.com/) — **(recommended)**;
|
||||
- [Heroku](http://heroku.com/) — **(recommended, if you're starting)**; pretty much free
|
||||
- [Microsoft Azure — Free Tier](https://azure.microsoft.com/en-us/free/)
|
||||
- [Netlify](http://netlify.com/) — **(recommended)**; their free options is pretty much amazing
|
||||
- [Amazon Web Services (AWS) — Free Tier](https://aws.amazon.com/free/)
|
||||
- [GitHub](https://github.com/) — **(recommended)**; yeah
|
||||
- [GitLab](https://gitlab.com/) — **(recommended)**;
|
||||
- [Heroku](http://heroku.com/) — **(recommended, if you're starting)**; pretty much free
|
||||
- [Microsoft Azure — Free Tier](https://azure.microsoft.com/en-us/free/)
|
||||
- [Netlify](http://netlify.com/) — **(recommended)**; their free options is pretty much amazing
|
||||
|
||||
## Stock Resources
|
||||
- ### Images
|
||||
@ -256,35 +260,35 @@ stuff and I really like psychological stuff so that's why it's here
|
||||
- [Font Squirrel](https://www.fontsquirrel.com/)
|
||||
- [Lost Type](http://www.losttype.com/)
|
||||
- ### Other Stuff
|
||||
- [Canva](https://www.canva.com/) — why not create your own creative designs
|
||||
- [Coolors](https://coolors.co/) — **(recommended, if you are in design)**; color scheme generator
|
||||
- [Creative Market](https://creativemarket.com/) — free creative stuff weekly
|
||||
- [Canva](https://www.canva.com/) — why not create your own creative designs
|
||||
- [Coolors](https://coolors.co/) — **(recommended, if you are in design)**; color scheme generator
|
||||
- [Creative Market](https://creativemarket.com/) — free creative stuff weekly
|
||||
|
||||
## Content Delivery Networks (CDN)
|
||||
- [cdnjs](https://cdnjs.com/) — **(recommended, if you're in web dev't)**; CDN for web-related libraries
|
||||
- [Cloudinary](https://cloudinary.com/) — mostly images and video CDN; also has image and video manipulation
|
||||
- [Staticaly](https://www.staticaly.com/) — CDN that serves files from different repo (BitBucket, GitLab, GitHub, and even GitHub gists) with the proper headers
|
||||
- [UploadCare](https://uploadcare.com/) — image CDN with image manipulation on-the-fly
|
||||
- [cdnjs](https://cdnjs.com/) — **(recommended, if you're in web dev't)**; CDN for web-related libraries
|
||||
- [Cloudinary](https://cloudinary.com/) — mostly images and video CDN; also has image and video manipulation
|
||||
- [Staticaly](https://www.staticaly.com/) — CDN that serves files from different repo (BitBucket, GitLab, GitHub, and even GitHub gists) with the proper headers
|
||||
- [UploadCare](https://uploadcare.com/) — image CDN with image manipulation on-the-fly
|
||||
|
||||
## Student Packs
|
||||
- [Autocad](https://www.autodesk.com) — offers free years of the premium version of their products
|
||||
- [GitHub Educational Pack](https://education.github.com/pack/) — assortment of benefits like unlimited private repositories on their own site, free domain name for a year, and free premium boosts on more sites
|
||||
- [JetBrain Student Pack](https://www.jetbrains.com/student/) — offers free licenses for their tools like [CLion](https://www.jetbrains.com/clion), [WebStorm](https://www.jetbrains.com/webstorm), and [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea)
|
||||
- [Autocad](https://www.autodesk.com) — offers free years of the premium version of their products
|
||||
- [GitHub Educational Pack](https://education.github.com/pack/) — assortment of benefits like unlimited private repositories on their own site, free domain name for a year, and free premium boosts on more sites
|
||||
- [JetBrain Student Pack](https://www.jetbrains.com/student/) — offers free licenses for their tools like [CLion](https://www.jetbrains.com/clion), [WebStorm](https://www.jetbrains.com/webstorm), and [IntelliJ IDEA Ultimate](https://www.jetbrains.com/idea)
|
||||
- [Microsoft Student Pack](https://www.microsoft.com/en-us/education/students)
|
||||
|
||||
## Miscellaneous
|
||||
- [A Pragmatic Quick Reference](https://blog.codinghorror.com/a-pragmatic-quick-reference/) — it's a collection of wisdoms put together in a list from the Coding Horror
|
||||
- [Archive](https://archive.org/) — it's an archive site for everything, it seems; you can find a lot of stuff in there
|
||||
- [Class Central](https://www.class-central.com/) — a search engine for courses at different MOOC sites
|
||||
- [Developer Roadmap (by kamranahmedse)](https://github.com/kamranahmedse/developer-roadmap) — **(very much recommended)**; your reference in case you want to choose a specific role in software development (mine is more on the back-end development)
|
||||
- [DevTube](https://dev.tube) — YouTube for developers
|
||||
- [Distrowatch](https://distrowatch.com/) — **(recommended, if you're into Linux)**; website watching for updates around Linux distros
|
||||
- [A Pragmatic Quick Reference](https://blog.codinghorror.com/a-pragmatic-quick-reference/) — it's a collection of wisdoms put together in a list from the Coding Horror
|
||||
- [Archive](https://archive.org/) — it's an archive site for everything, it seems; you can find a lot of stuff in there
|
||||
- [Class Central](https://www.class-central.com/) — a search engine for courses at different MOOC sites
|
||||
- [Developer Roadmap (by kamranahmedse)](https://github.com/kamranahmedse/developer-roadmap) — **(very much recommended)**; your reference in case you want to choose a specific role in software development (mine is more on the back-end development)
|
||||
- [DevTube](https://dev.tube) — YouTube for developers
|
||||
- [Distrowatch](https://distrowatch.com/) — **(recommended, if you're into Linux)**; website watching for updates around Linux distros
|
||||
- [Keep A Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
- [keyvalues](https://www.keyvalues.com/) — it's a engineering job finder
|
||||
- [Local Hackday MLH (Major League Hacking)](https://localhackday.mlh.io/) — it's a global hackathon (that are related to MLH) finder
|
||||
- [MOOC List](https://www.mooc-list.com/) — similar to Class Central
|
||||
- [Open Culture](http://www.openculture.com/) — a site that provides open content and resources
|
||||
- [Open Source](https://opensource.com/) — a site that talks all open source things
|
||||
- [keyvalues](https://www.keyvalues.com/) — it's a engineering job finder
|
||||
- [Local Hackday MLH (Major League Hacking)](https://localhackday.mlh.io/) — it's a global hackathon (that are related to MLH) finder
|
||||
- [MOOC List](https://www.mooc-list.com/) — similar to Class Central
|
||||
- [Open Culture](http://www.openculture.com/) — a site that provides open content and resources
|
||||
- [Open Source](https://opensource.com/) — a site that talks all open source things
|
||||
|
||||
**\*** - *if you're on a Windows OS, probably you're locked out of the option to download the ISO
|
||||
directly, to download it directly, you have to change the user profile from your browser
|
||||
|
@ -0,0 +1,123 @@
|
||||
---
|
||||
author: foo-dogsquared
|
||||
categories: "self-learning"
|
||||
date: 2019-01-30 15:10:05 +0800
|
||||
layout: post
|
||||
tags: ["monthly-learnings", "learning"]
|
||||
title: Monthly Resources and Learnings (January 2019)
|
||||
---
|
||||
|
||||
## What I've learned
|
||||
### Cookies and session management
|
||||
There are quite a lot of resources of what is cookies and session management but I'll try my best on explaining that.
|
||||
|
||||
The internet is made up of servers that listen for requests coming from a device and respond accordingly. There are a lot of ways on how to make two (or more) devices to communicate between each other but the web mainly uses [HTTP](https://developer.mozilla.org/en-US/docs/Web/HTTP), a stateless application-layer protocol. Being stateless means that requests does not relate to one another and incoming (and previously occured) requests will get the same response no matter what. In other words, no information is retained between the two machines. The client request a page, the server responds with the webpage, and the client receives the page sent by the server. Repeat that a thousand times and the process and the result will be the same no matter what.
|
||||
|
||||
With web applications that needed stuff like user accounts wherein the server has to remember the state of the user, how do we solve this?
|
||||
|
||||
As you can tell from the header, with cookies and sessions!
|
||||
|
||||
Web cookies (for clarification) is a small piece of information sent by the server that is stored by the client. In the next requests, the client will send a request with the cookie attached and that is where the server will be able to keep track of it (although not securely keep track of it).
|
||||
|
||||
<img src="{{ 'assets/pictures/self-learning-series/january-2019/server-client-diagram-model.png' | relative_url }}" alt="Simple client-server model with cookies">
|
||||
*Simple client-server model with cookies*{: .caption}
|
||||
|
||||
Basically, think of the web cookies as an ID for your school. When your application request for the school has been accepted (and passed the prerequisite tests), you're now a student of the school/university/college/whatever-educational-institution-that-may-be and you'll granted a student ID as part of recognizing you as a student of the school/university/college/whatever-educational-institution-that-may-be. The next time you'll visit the school, you may be get checked for your ID in order to validate that you're a student of the school/university/college/whatever-educational-institution-that-may-be and continue your way in to do school-related stuff such as checking for your fees, entering classes, and other school shenanigans that requires the previlege of being a validated student of the school/university/college/whatever-educational-institution-that-may-be.
|
||||
|
||||
Cookies can contain pretty much any information. You can go and send a cookie that contains a link to [your website](http://foo-dogsquared.github.io/), [your YouTube channel](https://www.youtube.com/channel/UCuMiU9bzATu5oTp-vhOlL2Q), [your GitHub account](https://github.com/foo-dogsquared), pretty much anything. It has one problem though and that it is visible for your client. Not only visible but also editable. What if you don't want to let your smart visitors to edit certain data?
|
||||
|
||||
That's where sessions will come in.
|
||||
|
||||
A session is basically a way to hide those very precious data. A session also lets a request to relate to other requests. As previously mentioned, HTTP is a stateless protocol which means that the information between client and server does not retain. With sessions, the server may remember that you visited the same page under the same IP address. Or the server may remember that you logged in as user `DEFINITELY_NOT_A_SPAM_ACCOUNT` for your ~~spam~~ activities.
|
||||
|
||||
One basic implementation of a session is with a database. Let's say that you have a database of users with their username, email address, and their password (hashed, of course). Then a visitor tried to log in and entered their account credentials (their username and password, for example) and it hit a jackpot with one of the user in the users database. In order to make that request with the correct credentials associate with the user from that point. You can generate a random string and store it in the session database then send that generated string as the session ID cookie to the client. As long as the visitor has the valid session ID, they would continue to explore the website as a user.
|
||||
|
||||
<img src="{{ 'assets/pictures/self-learning-series/january-2019/session-store-implementation.png' | relative_url }}" alt="Basic implementation of server-sided sessions">
|
||||
*Basic implementation of server-sided sessions*{: .caption}
|
||||
|
||||
There's one thing with sessions, though. They're designed to be temporary. Sessions need to have an expiration. In cases that you didn't set an expiration for a session means that a hacker may just get a session ID and hijack the user. While the chances may be low (also depends on a lot of factors), it's still a possibility. You may just set the age of a session to be shorter though that will affect the user experience. Overall, it's a decision that you (and your team, if you have any) should consider to balance the security and the UX.
|
||||
|
||||
Back to the school/university/college/whatever-educational-institution-that-may-be analogy, the session store/database here will be the student database that got accepted in the current academic year. Your student information will not be in the database and will "expire" until the next academic year. Of course, you can still make your session not expire by enrolling for the next year.
|
||||
|
||||
When you've enrolled and accepted as a student of the school in the next academic year, you'll be granted a school ID (remember what that represents?) that'll serve as a way for the school to verify you as a student. Now, you think you're safe and all but you still have potential issues to encounter as a verified student since the school only verifies you as a student as long as you have the ID (stupid, I know).
|
||||
|
||||
If somebody stole that ID and entered the school trying to pose as you, it may get problematic. They may intentionally drop your grades, do malicious things, get you ostracized, and basically ruining your experience in the school. And now you find yourself miserable seeing the school from the distance, teary-eyed from thinking that your dreams may be crushed — but let's not get too far with the analogy, shall we.
|
||||
|
||||
In summary, cookies and sessions are things that make HTTP stateful. Web cookies is like your school ID to verify that you're a student of the school/university/college/whatever-educational-institution-that-may-be and the sessions is like the status that you got accepted and it what makes you granted the school ID in the first place. Without these two things, user tracking would not be possible (or at least very hard to do so).
|
||||
|
||||
### More about databases
|
||||
My January project (which I'll post about it soon) utilizes a database that'll be filled with user information and a database for sessions. The prototype of the app uses a SQL-based DBMS called [SQLite](https://sqlite.org/) (which is quite stupid, I know) but I eventually found a not-stupider solution which is [MongoDB](https://mongodb.com/) but I found it very clunky to use since MongoDB is not that strict; it does not require a structure or a schema and it embodies of being dynamic (though it is the purpose of NoSQL databases, after all).
|
||||
|
||||
So I used [Mongoose](https://mongoosejs.com/), an object relational modelling library (or rather object document modelling) for MongoDB. I used it because MongoDB is the easiest database that I found to get started on the go and because I need those boilerplate features like the validation, middleware, population, etc.
|
||||
|
||||
At that point, that's where I understood a bit more on the overall database. Basically, different databases have different data models that serve different purposes. In the case of SQL-based database management systems like SQLite and the more prominent examples for developing web apps such as [MySQL](https://www.mysql.com/) and [PostgreSQL](https://postgresql.org/), they are more suitable for querying large quantities of data.
|
||||
|
||||
What's so cool with databases is that it's like any other tool — you can use two or more, if you want to.
|
||||
|
||||
If you go with a multi-database setup, you can put low-value but high-in-quantity data like logs (not this [log](https://images.pexels.com/photos/109568/pexels-photo-109568.jpeg?auto=compress&cs=tinysrgb&h=650&w=940)) in SQL-based DBMS and you can put high-value and big-sized data like user information and user images in NoSQL databases like MongoDB. Like I said before, different databases have different purposes. If you like to quickly prototype and make it up and running, you can go with MongoDB or other NoSQL databases with dynamic schemas. If you like consistency among your handled data, you would probably go with MySQL or another SQL-based DBMS.
|
||||
|
||||
## What I've been reading
|
||||
### [25 years of coding, and I'm just beginning by *DeChamp*](https://dev.to/dechamp/25-years-of-coding-and-im-just-beginning-442n)
|
||||
It's a [dev.to](https://dev.to/) post about putting your fears and perfectionism aside that has gone viral on the dev.to community and [other communities (or rather, community)](https://news.ycombinator.com/item?id=18946712), as well. It's quite fitting that the post about putting your fears aside by a person who mostly put his fear aside to post about this stuff has gone viral. Speaks a lot about ourselves (including me), doesn't it? Anyways, you should read both the discussion threads from [dev.to](https://dev.to/dechamp/25-years-of-coding-and-im-just-beginning-442n/comments) and [Hacker News](https://news.ycombinator.com/item?id=18946712). IDK, I picked up a lot of perspective (and reminders) there. It's just good to see these perspectives coming out from other people. It's a perspective-fest, I must say.
|
||||
|
||||
### [Algorithms by *Jeff Erickson*](https://algorithms.wtf/)
|
||||
A casual book along with a casual redirecting hyperlink. What could go wrong? It's a book on algorithms and data structure. Yeah, that's all I need I say but it does have some attractive points. First and foremost is its writing. I already mentioned what it is — it's (mostly) casual. Second, it offers challenging problems (at least to me) and I hate/love it. Casual + challenging = much love and recommendation from me, 'nuff said.
|
||||
|
||||
## What I've been listening to
|
||||
### [Self-Awareness and Intellectual Honesty from *Developer Tea*](https://developertea.simplecast.fm/0c32d85b)
|
||||
Another [Developer Tea](https://developertea.simplecast.fm/) podcast episode. This time it's about, well, self-awareness and intellectual honesty (and dishonesty). I absolutely think that this is a good listening moment (also it's only about 15 minutes long so...).
|
||||
|
||||
## What I've been watching to
|
||||
### [CS50 Web Programming](https://www.youtube.com/playlist?list=PLhQjrBD2T382hIW-IsOVuXP1uMzEvmcE5)
|
||||
Yeah... It's another YouTube playlist. This time, it's from CS50's course on web programming with Python and JavaScript. You can also find this in MOOC format as a [HarvardX course on edX](https://www.edx.org/course/cs50s-web-programming-with-python-and-javascript). Anyways, it continues where CS50 has left off. Even though I technically finished the prerequisite course, I still decided to give it a try since I've been web developing for a bit and see more perspectives on it. Here you'll learn to program web apps with Python and JavaScript (obviously coming from the edX course) but you'll also learn some things along the way like continuous integration, version control, scalability, security, and a bunch of bread-and-butter when it comes to web development. This course really takes the cake when it comes to a course of breadth, specifically on web development.
|
||||
|
||||
If you're truly new to the world of programming, may I recommend you to a MOOC course on [Harvard's CS50](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x), arguably their most famous MOOC. Like the aforementioned Harvard's web development course, this mostly has a focus on breadth when it comes to computer science concepts which I think it'll help very well especially if you want to pick up at a quick and good rate (if you put effort, obviously).
|
||||
|
||||
### [My First Line of Code: Linus Torvalds](https://www.youtube.com/watch?v=S5S9LIT-hdc)
|
||||
It's a short video about the first lines of code made by Linus Torvalds (the answer may suprise you!), you know the guy that made [Linux](https://linux.com/) and [Git](https://git-scm.com/). It's quite cool to see how influential figures like him firstly go into what them into the hall of known names, seeing these types of videos is quite relaxing for some reason. Ehh... I just want to note about it.
|
||||
|
||||
## What tools I want to share
|
||||
### [Cygwin](https://cygwin.com/)
|
||||
I generally look out for platform-agnostic tools but I make exceptions from time to time (I think). This one is a Windows-exclusive tool so if you're not an affected audience then freely skip this one unless you have other reasons. Anyways, it's a program that lets you have a Unix-like environment for your Windows machine.
|
||||
|
||||
Yes, there are options like the [Linux Subsystem for Windows](https://docs.microsoft.com/en-us/windows/wsl/install-win10), virual machines, containers, and the good 'ol Linux installation on your machine but if you're lazy like me that doesn't want to fully migrate their OS for various reasons and have a slow internet connection, well here's a good option. Though like any other balancing options, there are things that you have to keep in mind:
|
||||
|
||||
- First and foremost, as one of the first things that the site says, Cygwin is not a way to run native Linux apps. You have to build the source by yourself (which is a cool experience in it of itself).
|
||||
- Second, it's not a way for Windows app to make use of Linux functionalities.
|
||||
- Lastly, it's not a full-time Unix environment. Even though I'm not sure but a part of me tells that there are going to be differences between a native Unix environment and the Cygwin environment. Whatever that is, you just have to keep that in mind.
|
||||
|
||||
### [Entr](http://eradman.com/entrproject/)
|
||||
Big shoutout to [Emgo, an acquintance and colleague of mine](https://github.com/Emgo-Dev) introduced it to me. *ENTR*, stands for "Event Notify Test Runner", is a CLI tool/utility that watches for immediate updates for your files. It sounds like any other file watcher programs but what's so great about it that it's not a package for some software that you have to install first, it's a standalone program (although you have to build it for yourself). Which means you can integrate pretty much everything with it as long as the program allows. Want to autocompile some C++ after immediate saving? You can do that! Want to reload automatically to see immediate feedback of the changes you've made in a CSS file? See if you can, my man! But let's not limit ourselves to programming-related task, you can do a bunch of stuff outside of that. Want to notify your changes? Yes way, Jose! Want to autocompile your TeX files into a PDF after each save (sounds CPU-heavy, though)? Yeah, why not. Want to automatically echo the results of a calculation from a prompt? Maybe, IDK... You'd be the judge.
|
||||
|
||||
Anyways, I think it's not wise to follow the words of someone whose newly using this tool (READ: me) so I'll introduce you to a [more proper introduction video on the tool](https://www.youtube.com/watch?v=9KAp_zWeI34) (which is also where Emgo introduced it to me) by [Luke Smith](https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA).
|
||||
|
||||
## What sites I've been visiting
|
||||
### [Old Book Illustrations](https://www.oldbookillustrations.com/)
|
||||
It's a site that contains illustrations with the style from old publications from the 18th century or less (well, there are still copyright to deal with). Heck, I think most of the illustrations here are legitimately came from the old books as a lot of them do come with the scan of the illustration (I mean that's what indicated by their [About section](https://www.oldbookillustrations.com/about/)). Aside from old book illustrations, they also provide biographies, articles, and other relevant information with the illustrations. So yeah, this is not only a image collection of illustrations of the distant centuries but it is a preservation site for it.
|
||||
|
||||
### [iconmonstrs](https://iconmonstr.com)
|
||||
This is a site that offers more than 4000 free icons that are designed and created by one creator. That's quite a project right there. This is such a high quality site right here. Icons can be downloaded in various formats or just copied as an SVG or in base64 encoded text. Aside from general icons, it also contains popular brands like Twitter, GitHub, Instagram, and so much more. Aside from all of that, the site also looks cool.
|
||||
|
||||
## Who are the content creators I've been following
|
||||
### [CS50](https://www.youtube.com/user/cs50tv)
|
||||
If you're trying to learn programming with online resources, you've most likely heard of CS50. It's the name of the introductory computer science course that Harvard University offers over on [their site](https://cs50.harvard.edu/) (or on [edX](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x)). It eventually became one of the famous online course out there especially when it comes to computer science. Anyways, the CS50 staff also maintains a YouTube channel (which is the link provided for this section). This is where most of their content goes first. Their newly revised [CS50 course content](https://www.youtube.com/playlist?list=PLhQjrBD2T382eX9-tF75Wa4lmlC7sxNDH), for example, came out on their YouTube channel for so long way before it was release on the edX site on New Year. Aside from that, it also contains exclusive YouTube goodies to incentivize you on subscribing, probably. They have the pre-release version of the latest lectures, Twitch streams, and extra stuff along the way.
|
||||
|
||||
### [LOOK MUM NO COMPUTER](https://www.youtube.com/channel/UCafxR2HWJRmMfSdyZXvZMTw)
|
||||
It's a YouTube channel with a weird channel name but very interesting content. You can get an impression of the channel by the name alone, that's all I can say. Anyways, it's being managed by an inventor and musician who's content all about creating crazy musical inventions and machineries. You have creating a [electronic keyboard made up of Furbies](https://www.youtube.com/watch?v=GYLBjScgb7o), [a machine that lets you play eight Tetris games simultaneously](https://www.youtube.com/watch?v=G1MsFDIWOqQ), and [circuit bending](https://www.youtube.com/watch?v=ChF10feen04), one of the rarest forms of bending in this day and age. Do I need to describe more?
|
||||
|
||||
### [Luke Smith](https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA)
|
||||
Another YouTube channel that focuses on tech. This time lead by the titular [Luke Smith](https://lukesmith.xyz/), a developer or something. Anyways, here are some of the 💯🔥 legit 🔥💯 reasons you should subscribe to him:
|
||||
|
||||
- occasional memes
|
||||
- listed [PewDiePie](https://www.youtube.com/user/PewDiePie) as one of the good channels
|
||||
- tech channul
|
||||
|
||||
Seriously speaking, this guy has good content related to tech. He does have occasional profound content, tool tutorials, and discussion about issues that are caused by or affected from the modern technology. I recommend to at least give a peek (not that, you pervs! 🤨) to his channel and another shoutout to [Emgo](https://michael.goldspinner.me/) for introducing this channel to me.
|
||||
|
||||
-----
|
||||
|
||||
Welcome to the extra stuff portion of this post! 😁
|
||||
|
||||
Right now, I'm trying to make a blog post on my January project and discuss the very underlying concept that I'm trying to learn from the project (which is sessions and cookies). Stay tuned for that, if you want to know more about it.
|
||||
|
||||
Also, I have another project that I'm currently working on. This time, it's all about service workers which is also a future topic of mine to be discussed in a blog post. I'm more excited to work on this one, honestly. Nonetheless, I'll try to get my January project post to be out first.
|
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Binary file not shown.
After Width: | Height: | Size: 111 KiB |
Loading…
Reference in New Issue
Block a user