From c59c96bac2a6530ec5b16c46910ca5012105e5e1 Mon Sep 17 00:00:00 2001 From: foo-dogsquared Date: Mon, 4 Feb 2019 18:46:39 +0800 Subject: [PATCH] PUBLISH: Monthly Resources and Learnings (January 2019) --- _posts/2018-05-1-free-resource-list.markdown | 290 +++++++++--------- ...ly-resources-and-learnings-january-2019.md | 123 ++++++++ .../server-client-diagram-model.png | Bin 0 -> 19816 bytes .../session-store-implementation.png | Bin 0 -> 113344 bytes 4 files changed, 270 insertions(+), 143 deletions(-) create mode 100644 _posts/2019-01-30-monthly-resources-and-learnings-january-2019.md create mode 100644 assets/pictures/self-learning-series/january-2019/server-client-diagram-model.png create mode 100644 assets/pictures/self-learning-series/january-2019/session-store-implementation.png diff --git a/_posts/2018-05-1-free-resource-list.markdown b/_posts/2018-05-1-free-resource-list.markdown index 3366094..681a2f6 100644 --- a/_posts/2018-05-1-free-resource-list.markdown +++ b/_posts/2018-05-1-free-resource-list.markdown @@ -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 diff --git a/_posts/2019-01-30-monthly-resources-and-learnings-january-2019.md b/_posts/2019-01-30-monthly-resources-and-learnings-january-2019.md new file mode 100644 index 0000000..643e9bb --- /dev/null +++ b/_posts/2019-01-30-monthly-resources-and-learnings-january-2019.md @@ -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). + +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. + +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. diff --git a/assets/pictures/self-learning-series/january-2019/server-client-diagram-model.png b/assets/pictures/self-learning-series/january-2019/server-client-diagram-model.png new file mode 100644 index 0000000000000000000000000000000000000000..6b381a17f34cc5ff0794237f4b8f8bc1038f11df GIT binary patch literal 19816 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 literal 0 HcmV?d00001 diff --git a/assets/pictures/self-learning-series/january-2019/session-store-implementation.png b/assets/pictures/self-learning-series/january-2019/session-store-implementation.png new file mode 100644 index 0000000000000000000000000000000000000000..522f360793d795ab221bd6fb4d35ad844f8ada54 GIT binary patch literal 113344 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%0DW>ktgf+G58k^BsIUqq326Fd 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 Lq?>#A^p$@D