└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Important Notice 2 | 3 | Since creating this repo back in April (2018), Andela has revamped and improved their homestudy curriculum, adding more resources which they believe will help one level up enough to become fit for the fellowship's bootcamp. Please endevour to make use of the [updated Homestudy Curriculum](http://github.andela.com/homestudy/). 4 | 5 | _Deprecated curriculum continued below ..._ 6 | 7 | # Andela (Nigeria) Cycle 32 Home Study Curriculum (Javascript). 8 | 9 | This md contains the Javascript-centric version of the Andela Nigeria Homestudy Curriculum for cohort recruitment cycle 32. 10 | 11 | I created this repo for two main reasons: 12 | 13 | - To always have access to the homestudy resources -- this is due to the fact that Andela's curriculum [homepage online](http://github.andela.com/homestudy/) is not always accessible (_especially when I need it the most_), and I tried saving for offline use, but to no avail. 14 | 15 | - To track my progress as I work my way down the curriculum -- ticking each checkbox as I complete each element in each module. 16 | 17 | As previously stated, this is the Javascript-focussed version of the curriculum. To see the full curriculum (python inclusive version), visit the [Andela Online Homestudy Curriculum Page](http://github.andela.com/homestudy/) -- that is, of course, if it is accessible. 18 | 19 | ## Intro to Computer Science 20 | 21 | In this module, we will introduce basic computer science concepts. We will cover all the areas required to get you to the point of understanding what a computer scientist does. 22 | 23 | - [x] [What is Comp. Sci.](http://interactivepython.org/courselib/static/pythonds/Introduction/WhatIsComputerScience.html) 24 | - [x] [40 key Computer Science Concepts Explained in Layman Terms](http://carlcheo.com/compsci) 25 | 26 | ## Intro to Programming 27 | 28 | Computer programming is the act of writing a sequence of instructions to a computer to perform a specific task. This module will cover the basics of programming and provide an overview of computer programming. 29 | 30 | - [x] [What is Programming](http://interactivepython.org/courselib/static/pythonds/Introduction/WhatIsProgramming.html) 31 | 32 | - [x] [Computer Programming Overview](http://www.tutorialspoint.com/computer_programming/computer_programming_overview.htm) 33 | 34 | - [x] [Computer Programming Basics](http://www.tutorialspoint.com/computer_programming/computer_programming_basics.htm) 35 | 36 | - [x] [Computer Programming Environment](http://www.tutorialspoint.com/computer_programming/computer_programming_environment.htm) 37 | 38 | - [x] [Codecademy JavaScript Course](https://www.codecademy.com/learn/learn-javascript) 39 | 40 | - [x] [MDN JavaScript Introduction](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Introduction) 41 | 42 | - [x] [JavaScript First Steps](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps) 43 | 44 | - [ ] [JavaScript Building Blocks](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Building_blocks) 45 | 46 | ## Object Oriented Programming 47 | 48 | Object oriented programming is a paradigm and a way of thinking that helps programmers effectively model real-life scenarios. In this module, we will cover general OOP concepts and OOP in Python / JavaScript. 49 | 50 | - [x] [What is Object Oriented Programming](http://teknadesigns.com/what-is-object-oriented-programming/) 51 | 52 | - [x] [Introducing JavaScript Objects](https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects) 53 | 54 | - [x] [JavaScript Classes](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes) 55 | 56 | - [x] [A Deep Dive Into ES6 Classes](https://www.sitepoint.com/object-oriented-javascript-deep-dive-es6-classes/) 57 | 58 | ## Data Structures 59 | 60 | A data structure is a logical concept that introduces a way to organize data so the data can be immediately available to the processor for required calculations. This module will cover ways in which data is stored for efficient search and retrieval. 61 | 62 | - [x] [Introduction to Data Structures](http://www.studytonight.com/data-structures/introduction-to-data-structures) 63 | 64 | - [x] [Why Study Data Structures and Abstract Data Types?](http://interactivepython.org/courselib/static/pythonds/Introduction/WhyStudyDataStructuresandAbstractDataTypes.html) 65 | 66 | - [x] [Introduction to Basic Data Structures & Algorithms](http://cs-fundamentals.com/data-structures/introduction-to-data-structures.php) 67 | 68 | - [x] [JavaScript Data Types & Data Structures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures) 69 | 70 | - [ ] `dud link`[Data Structures in JavaScript](http://blog.benoitvallon.com/data-structures-in-javascript/data-structures-in-javascript/) 71 | 72 | ## Algorithms 73 | 74 | Computer scientists learn by experience. We learn by seeing other people solve problems and by solving problems ourselves. Exposing us to different problem-solving techniques and seeing how algorithms are designed helps us take on challenging problems. 75 | 76 | - [x] [Learning Algorithms from Scratch](http://adrianmejia.com/blog/2011/12/22/learning-algorithms-from-scratch-algorithms-for-dummies/) 77 | 78 | - [x] [Algorithms for Beginners](https://medium.com/yay-its-erica/algorithms-for-beginners-bubble-sort-insertion-sort-merge-sort-29bd5506cc48) 79 | 80 | - [ ] [The Importance of Algorithms](https://www.topcoder.com/community/data-science/data-science-tutorials/the-importance-of-algorithms/) 81 | 82 | - [ ] [What Is Algorithm Analysis?](http://interactivepython.org/runestone/static/pythonds/AlgorithmAnalysis/WhatIsAlgorithmAnalysis.html) 83 | 84 | ## Recursion 85 | 86 | Recursion is a method where the solution to a problem depends on solutions to smaller instances of the same problem. We have seen that functions are named procedures which perform distinct tasks or services. This module will address recursion as a technique involving the use of functions. 87 | 88 | - [ ] [An Introduction to Recursion](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-recursion-part-1/) 89 | 90 | - [ ] [Multiple Related Decisions](https://www.topcoder.com/community/data-science/data-science-tutorials/an-introduction-to-recursion-part-2/) 91 | 92 | - [ ] [Recursion and Applicative Programming](http://courses.cs.washington.edu/courses/cse341/03wi/scheme/recursion.html) 93 | 94 | - [ ] [Recursive Functions](http://pages.cs.wisc.edu/~calvin/cs110/RECURSION.html) 95 | 96 | - [ ] [Understanding Recursion in JavaScript](http://www.integralist.co.uk/posts/js-recursion.html) 97 | 98 | - [ ] [Iteration vs Recursion](http://www2.hawaii.edu/~tp_200/lectureNotes/recursion.htm) 99 | 100 | ## Sorting and Searching 101 | 102 | In this module, we will introduce algorithms for sorting and searching. 103 | 104 | - [ ] [Searching and Sorting](http://spector.io/computer-science-fundamentals-searching-and-sorting/) 105 | 106 | - [ ] [Sorting Algorithms in JavaScript](https://github.com/benoitvallon/computer-science-in-javascript/blob/master/sorting-algorithms-in-javascript/README.md) 107 | 108 | - [ ] [JavaScript Sorting Algorithms](http://blog.benoitvallon.com/sorting-algorithms-in-javascript/sorting-algorithms-in-javascript-all-the-code/) 109 | 110 | ## Software Engineering 111 | 112 | This module will cover all the phases of software development. Starting from software requirement analysis, to design, to implementation, to testing, to deployment and finally to maintenance. 113 | 114 | - [x] [Software Engineering Overview](http://www.tutorialspoint.com/software_engineering/software_engineering_overview.htm) 115 | 116 | - [x] [What Does A Computer Software Engineer Do?](http://tryengineering.org/ask-expert/what-does-computer-software-engineer-do-could-you-give-me-description-field) 117 | 118 | - [x] [Software Development Life Cycle Overview](http://www.tutorialspoint.com/sdlc/sdlc_quick_guide.htm) 119 | 120 | ## The Internet 121 | 122 | In this module, we will cover what the internet is and how it works. 123 | 124 | - [x] [What is The Internet](https://www.computerhope.com/jargon/i/internet.htm) 125 | 126 | - [x] [How The Internet Works](https://blog.hubspot.com/marketing/how-the-internet-works#sm.0000i8dcdo167uepfr7g8tvppgibd) 127 | 128 | - [x] [How The Internet Works (Simpler)](http://adrianland.uk/howto/how-does-the-internet-work/) 129 | 130 | - [x] [What Is Email](http://searchexchange.techtarget.com/definition/e-mail-electronic-mail-or-email) 131 | 132 | - [x] [Introduction to Computer Networks](http://www.ohio.edu/people/piccard/mis300/netintro.htm) 133 | 134 | - [x] [How The World Wide Web Works](http://www.explainthatstuff.com/howthewebworks.html) 135 | 136 | ## Web Programming 137 | 138 | This module will cover the fundamentals of web programming and technologies used in programming web pages. 139 | 140 | - [x] [HTTP: The Protocol Every Web Developer Must Know](https://code.tutsplus.com/tutorials/http-the-protocol-every-web-developer-must-know-part-1--net-31177) 141 | 142 | - [x] [HTML5 Tutorial](https://www.w3schools.com/html/) 143 | 144 | - [x] [CSS Tutorial](https://www.w3schools.com/css/default.asp) 145 | 146 | - [x] [HTML / CSS Tutorial](https://www.codecademy.com/learn/web) 147 | 148 | - [ ] [The Modern JavaScript Tutorial](https://javascript.info/) 149 | 150 | - [x] [Codecademy JavaScript Course](https://www.codecademy.com/learn/learn-javascript) 151 | 152 | - [ ] [Model-View-Controller (MVC) Explained](https://realpython.com/blog/python/the-model-view-controller-mvc-paradigm-summarized-with-legos/) 153 | 154 | ## Understanding Andela's EPIC Values 155 | 156 | At Andela, our values can be sumarized as EPIC - Excellence, Passion, Integrity, and Collaboration. This module covers the fundamental principles of being EPIC. 157 | 158 | - [x] [Understanding Andela’s EPIC Values](https://docs.google.com/document/d/1Cb1YLA19BEQh2v0yLYtCsZ1Uz352Sa_f-vNZzgzKiYI/) 159 | --------------------------------------------------------------------------------