├── LICENSE ├── README.md ├── blogs.md ├── game-programming.md ├── ios.md ├── javascript.md ├── photography.md ├── ruby-to-js-enumerables.md ├── ruby.md └── testing-reactjs-components.md /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014 Josh Branchaud 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of 4 | this software and associated documentation files (the "Software"), to deal in 5 | the Software without restriction, including without limitation the rights to 6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 7 | of the Software, and to permit persons to whom the Software is furnished to do 8 | so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 15 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 16 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 17 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 18 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Resources 2 | 3 | > A collection of online resources for various technologies, languages, and 4 | tools. 5 | 6 | *If you see something that is missing, submit a pull request!* 7 | 8 | ## Contents 9 | 10 | - [General](#general) 11 | - [3D Graphics Programming](#3d-graphics-programming) 12 | - [Accessibility](#accessibility) 13 | - [Android](#android) 14 | - [AngularJS](#angularjs) 15 | - [API](#api) 16 | - [Artificial Intelligence](#artificial-intelligence) 17 | - [Assembly](#assembly) 18 | - [Atom (Editor)](#atom-editor) 19 | - [Bash](#bash) 20 | - [Bootstrap](#bootstrap) 21 | - [C](#c) 22 | - [C++](#c++) 23 | - [Category Theory](#category-theory) 24 | - [Clojure](#clojure) 25 | - [ClojureScript](#clojurescript) 26 | - [CoffeeScript](#coffeescript) 27 | - [Colors](#colors) 28 | - [Compilers](#compilers) 29 | - [Cryptography](#cryptography) 30 | 31 | ## General 32 | 33 | - [Free Programming Books](https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md) 34 | - [The Architecture of Open Source Applications](http://aosabook.org/en/index.html) 35 | - [Computer Science *Papers We Love*](https://github.com/papers-we-love/papers-we-love) 36 | - [Hipster Dev Stack](http://hipsterdevstack.tumblr.com/) 37 | - [Codecademy](http://www.codecademy.com/) 38 | - [Become a Programmer, Motherfucker](http://programming-motherfucker.com/become.html) 39 | - [Dash - offline API documentation](http://kapeli.com/dash) 40 | - [Google Style Guides](https://code.google.com/p/google-styleguide/) 41 | - [bentobox.io](http://www.bentobox.io/) 42 | - [Frontend Development Bookmarks](https://github.com/dypsilon/frontend-dev-bookmarks) 43 | - [Big List of Static Web Servers](https://gist.github.com/willurd/5720255) 44 | - [searchcode - a source code search engine](https://searchcode.com/) 45 | - [sourcegraph](https://sourcegraph.com/) 46 | - [r/programming](http://www.reddit.com/r/programming) 47 | - [r/dailyprogrammer](http://www.reddit.com/r/dailyprogrammer) 48 | - [r/coding](http://www.reddit.com/r/coding) 49 | - [The Nature of Code](http://natureofcode.com/book/introduction/) 50 | - [How To Write A README Worth Reading](http://orchestrate.io/blog/2014/07/16/how-to-write-a-readme-worth-reading/) 51 | - [A Curated List of Awesome Lists](https://github.com/sindresorhus/awesome) 52 | - [A curated list of amazingly awesome awesomeness](https://github.com/bayandin/awesome-awesomeness) 53 | - [Tech Talks](http://phatak-dev.github.io/techtalks/) 54 | - [Guides: A guide for programming in style](https://github.com/thoughtbot/guides) 55 | - [IntroLearn: Programming](http://introlearn.com/programming-main.php) 56 | - [Structure and Interpretation of Computer Programs](http://xuanji.appspot.com/isicp/index.html) 57 | - [Great Works in Programming Languages](http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml) 58 | - [Programming and Programming Languages](http://papl.cs.brown.edu/2014/index.html) 59 | - [UX Checklist](http://uxchecklist.github.io/) 60 | - [Web Designer Checklist](http://webdesignerschecklist.com/) 61 | - [Usability Checklist](https://userium.com/) 62 | - [Interaction Design Checklist](http://ixdchecklist.com/) 63 | - [Awesome CS Courses](https://github.com/prakhar1989/awesome-courses) 64 | - [Frontend Developer Interview Questions](https://github.com/h5bp/Front-end-Developer-Interview-Questions) 65 | - [Git and GitHub Cheat Sheet](https://github.com/tiimgreen/github-cheat-sheet) 66 | - [The Art of Command Line](https://github.com/jlevy/the-art-of-command-line) 67 | - [Logic, Languages, Compilation, and Verification](http://www.cs.uoregon.edu/research/summerschool/summer12/curriculum.html) 68 | - [CS For All](http://www.cs.hmc.edu/csforall/) 69 | - [From Nand to Tetris: Building a Modern Computer From First Principles](http://www.nand2tetris.org/) 70 | - [Fledgling Languages List](http://fll.presidentbeef.com/) 71 | - [Pow](http://pow.cx/) 72 | - [DBWrench](http://www.dbwrench.com/) 73 | - [Programming From The Ground Up](http://savannah.nongnu.org/projects/pgubook/) 74 | 75 | ## 3D Graphics Programming 76 | 77 | - [Learning Modern 3D Graphics Programming](http://www.arcsynthesis.org/gltut/#) 78 | 79 | ## Accessibility 80 | 81 | - [An Alphabet of Accessibility Issues](https://the-pastry-box-project.net/anne-gibson/2014-july-31) 82 | 83 | ## Android 84 | 85 | - [Guide to Getting Started with Android for Engineers and Designers](https://github.com/nstevens/androidguide/wiki) 86 | 87 | ## AngularJS 88 | 89 | - [AngularJS.org Tutorial](https://docs.angularjs.org/tutorial) 90 | - [AngularJS Learning - all the things](https://github.com/jmcunningham/AngularJS-Learning) 91 | - [Learn Angular](http://www.learn-angular.org/) 92 | - [How to Learn AngularJS](http://www.ng-newsletter.com/posts/how-to-learn-angular.html) 93 | - [A JavaScript Feed Reader in Under 10 Minutes Using AngularJS](http://csharperimage.jeremylikness.com/2014/04/video-javascript-feed-reader-in-under.html) 94 | - [Introduction to AngularJS in 50 Examples](https://www.youtube.com/watch?v=TRrL5j3MIvo&feature=youtu.be) 95 | - [Testing with AngularJS](http://nebraskajs.com/2013/angularjs/) [video] 96 | - [AngularJS Git Commit Message Conventions](https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit) 97 | - [AngularJS Style Guide](https://github.com/mgechev/angularjs-style-guide) 98 | 99 | *many of these resource come from [this 100 | post](http://michaelcrump.net/angularjs-learning-materials)* 101 | 102 | ## API 103 | 104 | - [HTTP API Design Guide](https://github.com/interagent/http-api-design) 105 | 106 | ## Artificial Intelligence 107 | 108 | - [Behavior Trees for AI: How They Work](http://outforafight.wordpress.com/2014/07/15/behaviour-behavior-trees-for-ai-dudes-part-1/) 109 | 110 | ## Assembly 111 | 112 | - [Whirlwind Tour of ARM Assembly](http://www.coranac.com/tonc/text/asm.htm) 113 | - [x86 Disassembly](http://en.wikibooks.org/wiki/X86_Disassembly) 114 | 115 | ## Atom (Editor) 116 | 117 | - [Official Atom Docs](https://atom.io/docs/latest/) 118 | - [Splitting Atoms](https://github.com/jbranchaud/splitting-atoms) 119 | - [Defining Atom Commands in Your Init Script](http://jasonrudolph.com/blog/2014/03/02/defining-atom-commands-in-your-init-script/) 120 | - [Exploring the Power of Atom Init Scripts](http://joshbranchaud.com/blog/2014/03/02/Exploring-The-Power-Of-Atom-Init-Scripts.html) 121 | - [Modularizing Atom Init Scripts](http://joshbranchaud.com/blog/2014/03/03/Modularizing-Atom-Init-Scripts.html) 122 | 123 | ## Bash 124 | 125 | - [Bash Guide for Beginners](http://www.tldp.org/LDP/Bash-Beginners-Guide/html/) 126 | - [Defensive Bash Programming](http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/) 127 | - [Google's Shell Style Guide](https://google-styleguide.googlecode.com/svn/trunk/shell.xml) 128 | - [Bash Pitfalls](http://mywiki.wooledge.org/BashPitfalls) 129 | - [What I learned from other's shell scripts](http://www.fizerkhan.com/blog/posts/What-I-learned-from-other-s-shell-scripts.html) 130 | - [Filenames and Pathnames in Shell: How to do it correctly](http://www.dwheeler.com/essays/filenames-in-shell.html) 131 | 132 | ## Blogging 133 | 134 | - [Hugo](https://gohugo.io/) 135 | - [Jargon](http://jargon.io/) 136 | 137 | ## Bootstrap 138 | 139 | - [Bootstrap 3 Tips and Tricks You Might Not Know](http://scotch.io/bar-talk/bootstrap-3-tips-and-tricks-you-might-not-know) 140 | 141 | ## C 142 | 143 | - [Learn C The Hard Way](http://c.learncodethehardway.org/) 144 | - [The C Programming Language (the K&R book)](http://www.amazon.com/C-Programming-Language-2nd-Edition/dp/0131103628) - you can buy it, but there are plenty of copies floating around on the internet 145 | - [The Basics of C Programming](http://computer.howstuffworks.com/c23.htm/printable) 146 | - [The Descent to C](http://www.chiark.greenend.org.uk/~sgtatham/cdescent/) 147 | - [Learn C and Build Your Own Lisp](http://www.buildyourownlisp.com/) ([github](https://github.com/orangeduck/BuildYourOwnLisp)) 148 | - [Guide to Advanced Programming in C](http://pfacka.binaryparadise.com/articles/guide-to-advanced-programming-in-C.html) 149 | - [C++ Patterns Using Plain C](http://blog.noctua-software.com/cpp-patterns-using-plain-c.html) 150 | - [C Programming Notes](http://www.eskimo.com/~scs/cclass/int/top.html) 151 | - [What Every C Programmer Should Know About Undefined Behavior](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html#) 152 | - [Building C Projects](http://nethack4.org/blog/building-c.html) 153 | - [Compiler Design in C](http://www.holub.com/software/compiler.design.in.c.html) 154 | - [A Guide to Undefined Behavior in C and C++](http://blog.regehr.org/archives/213) 155 | - [What Every C Programmer Should Know About Undefined Behavior](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html?m=1) 156 | - [How to Get Started with the LLVM C API](https://pauladamsmith.com/blog/2015/01/how-to-get-started-with-llvm-c-api.html) 157 | - [Modern C](http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf) [pdf] 158 | - [Everything You Need To Know To Write Good C Code](https://github.com/btrask/stronglink/blob/master/SUBSTANCE.md) 159 | - [Object-Oriented Techniques in C](http://dmitryfrank.com/articles/oop_in_c) 160 | - [Bit Hacks](http://www.graphics.stanford.edu/~seander/bithacks.html) 161 | - [How To C in 2016](https://matt.sh/howto-c) 162 | 163 | ## C++ 164 | 165 | - [Common C++ Gotchas](http://vickychijwani.me/cpp-gotchas/) 166 | - [Functional Programming in C++](http://gamasutra.com/view/news/169296/Indepth_Functional_programming_in_C.php) 167 | - [Five Popular Myths about C++, Part 1](http://isocpp.org/blog/2014/12/myths-1) 168 | - [Five Popular Myths about C++, Part 2](http://isocpp.org/blog/2014/12/myths-2) 169 | 170 | ## Category Theory 171 | 172 | - [An Introduction to Category Theory](http://ncatlab.org:8080/nlab/show/category+theory) 173 | - [Category Theory by Tom LaGatta](https://www.youtube.com/watch?v=o6L6XeNdd_k) [video] 174 | 175 | ## Clojure 176 | 177 | - [Functional Programming in Clojure](http://iloveponies.github.io/120-hour-epic-sax-marathon/index.html) 178 | - [Understanding Clojure's Persistent Vectors, pt. 1](http://hypirion.com/musings/understanding-persistent-vector-pt-1) ([pt. 2](http://hypirion.com/musings/understanding-persistent-vector-pt-2), [pt. 3](http://hypirion.com/musings/understanding-persistent-vector-pt-3)) 179 | - [Clojure Cheatsheet](http://clojure.org/cheatsheet) 180 | - [Clojure for the Brave and True](http://www.braveclojure.com/) 181 | - [Clojure From The Ground Up](https://aphyr.com/posts/301-clojure-from-the-ground-up-welcome) 182 | - [The Caves of Clojure](http://stevelosh.com/blog/2012/07/caves-of-clojure-01/) 183 | - [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide) 184 | - [SCIP Distilled](http://www.sicpdistilled.com/section/welcome) 185 | - [Clojure By Example](http://kimh.github.io/clojure-by-example/) 186 | - [Clojure, The Good Parts](https://rasterize.io/blog/clojure-the-good-parts.html) 187 | 188 | ## ClojureScript 189 | 190 | - [ClojureScript Syntax in 15 Minutes](https://github.com/shaunlebron/ClojureScript-Syntax-in-15-minutes) 191 | - [ClojureScript Quick Start](https://github.com/clojure/clojurescript/wiki/Quick-Start) 192 | - [ClojureScript Tutorial](http://www.niwi.be/cljs-workshop/) 193 | - [CLJS-Bootstrap](http://kanaka.github.io/cljs-bootstrap/) 194 | - [Modern ClojureScript](https://github.com/magomimmo/modern-cljs) 195 | - [Tetris in ClojureScript](http://shaunlebron.github.io/t3tr0s-slides) 196 | - [T3TR0S](https://github.com/imalooney/t3tr0s) 197 | - [Om Next Quick Start](https://github.com/omcljs/om/wiki/Quick-Start-%28om.next%29) 198 | - [Om Tutorial](http://awkay.github.io/om-tutorial/) 199 | - [Introduction To Reagent](https://reagent-project.github.io/) 200 | 201 | ## CoffeeScript 202 | 203 | - [CoffeeScript.org](http://coffeescript.org/) 204 | - [CoffeeScript Basics](http://railscasts.com/episodes/267-coffeescript-basics) 205 | - [CoffeeScript Cookbook](http://coffeescriptcookbook.com/) 206 | - [CoffeeScript Style Guide](https://github.com/polarmobile/coffeescript-style-guide) 207 | 208 | ## Colors 209 | 210 | - [Colors: A nicer color palette for the web](http://clrs.cc/) 211 | - [Flat UI Colors](http://flatuicolors.com/) 212 | - [Basic Color Theory for Programmers](http://polymathprogrammer.com/2008/08/04/basic-colour-theory-for-programmers/) 213 | - [Generating Omnichromatic Images](http://blog.jverkamp.com/2015/01/01/generating-omnichromatic-images/) 214 | 215 | ## Compilers 216 | 217 | - [Want To Write A Compiler? Just Read These Two Papers](http://prog21.dadgum.com/30.html) 218 | - [An Incremental Approach To Compiler Construction](http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf) 219 | - [Compiler Design in C](http://www.holub.com/software/compiler.design.in.c.html) 220 | - [Metacompilers Part 1 - Build a Compiler in JavaScript](http://www.bayfronttechnologies.com/mc_tutorial.html) 221 | - [Bootstrapping a Simple Compiler From Nothing](http://rano.org/bcompiler.html) 222 | - [Learn C and Build Your Own Lisp](http://www.buildyourownlisp.com/) ([github](https://github.com/orangeduck/BuildYourOwnLisp)) 223 | - [Write You a Haskell: Building a modern functional compiler from first principles](http://dev.stephendiehl.com/fun/) 224 | 225 | ## Cryptography 226 | 227 | - [A collection of hash functions, ciphers, tools, libraries, and materials related to cryptography.](https://github.com/MaciejCzyzewski/retter) 228 | 229 | ## CSS 230 | 231 | - [CSS - Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/CSS) 232 | - [CSS3 - Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS3) 233 | - [Code Guide by @mdo - CSS](http://codeguide.co/#css) 234 | - [Idiomatic CSS](https://github.com/necolas/idiomatic-css) 235 | - [SMACSS - Scalable and Modular Architecture for CSS](http://smacss.com/book/) 236 | - [WTF, HTML and CSS?](http://wtfhtmlcss.com/) 237 | - [Must Watch CSS](https://github.com/AllThingsSmitty/must-watch-css) 238 | - [CSS Protips](https://github.com/AllThingsSmitty/css-protips/blob/master/README.md) 239 | - [Bulma](http://bulma.io/) 240 | 241 | ## Factor 242 | 243 | - [Beginning Factor - Shufflers & Combinators](http://elasticdog.com/2008/12/beginning-factor-shufflers-and-combinators/) 244 | - [A Panoramic Tour of Factor](http://andreaferretti.github.io/factor-tutorial/) 245 | 246 | ### Flexbox 247 | 248 | - [A Complete Guide to Flexbox](http://css-tricks.com/snippets/css/a-guide-to-flexbox/) 249 | - [Flexbox Adventures](http://chriswrightdesign.com/experiments/flexbox-adventures/) 250 | - [Tinkering With Flexbox](http://css-tricks.com/video-screencasts/131-tinkering-flexbox/) 251 | - [Solved by Flexbox](http://philipwalton.github.io/solved-by-flexbox/) 252 | 253 | ## D3.js 254 | 255 | - [d3js.org: Data Driven Documents](http://d3js.org/) 256 | - [Interactive Data Visualization, Scott Murray](http://alignedleft.com/tutorials/d3/) 257 | - [Interactive Data Visualization for the Web, Scott Murray](http://chimera.labs.oreilly.com/books/1230000000345/index.html) 258 | - [D3.js Wiki Tutorials](https://github.com/mbostock/d3/wiki/Tutorials) 259 | - [Dashing D3.js](https://www.dashingd3js.com/table-of-contents) 260 | - [D3.js Step by Step](http://zeroviscosity.com/category/d3-js-step-by-step) 261 | 262 | ### Maps 263 | 264 | - [Let's Make a Map](http://bost.ocks.org/mike/map/) 265 | - [Let's Make a Bubble Map](http://bost.ocks.org/mike/bubble-map/) 266 | - [Planetary.js: Awesome interactive globes for the web](http://planetaryjs.com/) 267 | - [SmallWorld.js](http://mikefowler.me/smallworld.js/) ([github](https://github.com/mikefowler/smallworld.js)) 268 | - [Geography of Jobs: animated mapping with D3](http://www.axismaps.com/blog/2014/10/geography-of-jobs-animated-mapping-with-d3/) 269 | 270 | ## Data Visualization (in the browser) 271 | 272 | - [d3js.org: Data Driven Documents](http://d3js.org/) 273 | - [Raphael](http://raphaeljs.com/) 274 | - [Chart.js](http://www.chartjs.org/) 275 | - [Dashing D3.js](https://www.dashingd3js.com/table-of-contents) 276 | - [Reusable D3 Charts and Components](https://github.com/bugzu/reD3) 277 | - [Chartist.js](http://gionkunz.github.io/chartist-js/) 278 | - [Data Visualization with JavaScript](http://jsdatav.is/intro.html) 279 | - [Bokeh - Interactive Web Plotting for Python](http://bokeh.pydata.org/) 280 | - [MetricsGraphics.js](http://metricsgraphicsjs.org/) 281 | 282 | ## Data Mining 283 | 284 | - [12 Free (as in beer) Data Mining Books](http://christonard.com/12-free-data-mining-books/) 285 | 286 | ## Editors 287 | 288 | - [Atom](https://atom.io/) 289 | - [Sublime Text](http://www.sublimetext.com/) 290 | - [Textmate](http://macromates.com/) 291 | - [Brackets](http://brackets.io/) 292 | - [Cloud9](https://c9.io/) 293 | - [Zed](http://zedapp.org/) 294 | - [Ace](http://ace.c9.io/build/kitchen-sink.html) ([github](https://github.com/ajaxorg/ace)) 295 | 296 | ### Sandboxes 297 | 298 | - [codepen](http://codepen.io/) 299 | - [JSFiddle](http://jsfiddle.net/) 300 | 301 | ## Emacs 302 | 303 | - [Master Emacs in One Year](https://github.com/redguardtoo/mastering-emacs-in-one-year-guide/blob/master/guide-en.org) 304 | - [Emacs Mini Manual](http://tuhdo.github.io/emacs-tutor.html) 305 | 306 | ## Ember 307 | 308 | - [Ember.js Official Guides](http://emberjs.com/guides/) 309 | - [Vic Ramon's Ember Tutorial](http://ember.vicramon.com/) 310 | 311 | ## Erlang 312 | 313 | - [Learn You Some Erlang For Great Good](http://learnyousomeerlang.com/content) 314 | 315 | ## Flask 316 | 317 | - [Explore Flask](http://exploreflask.com/) 318 | 319 | ## Front-end Web Development 320 | 321 | - [Front-end Development Bookmarks](https://github.com/dypsilon/frontend-dev-bookmarks) 322 | - [Front-end Development Guidelines](http://taitems.github.io/Front-End-Development-Guidelines/) 323 | - [Front-end Tooling Workflows](https://speakerdeck.com/addyosmani/front-end-tooling-workflows) 324 | - [Dev Tool Secrets](http://devtoolsecrets.com/) 325 | - [Frontdesk - community driven list of useful things for front end developers](https://github.com/miripiruni/frontdesk) 326 | - [Web Fundamentals: Best Practices for Modern Web Development](https://developers.google.com/web/fundamentals/) 327 | - [Web Starter Kit](https://developers.google.com/web/starter-kit/) 328 | - [Front-end Developer Handbook](http://www.frontendhandbook.com/) 329 | 330 | ## Front-end Web Performance 331 | 332 | - [Front-end performance for web designers and front-end developers](http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers/) 333 | - [High Performance Browser Networking](http://chimera.labs.oreilly.com/books/1230000000545) 334 | - [Performance Planet](http://calendar.perfplanet.com/) 335 | - [Ilya Grigorik's Blog](http://www.igvita.com/archives/) 336 | - [Optimizing Web Font Rendering](http://www.igvita.com/2014/01/31/optimizing-web-font-rendering-performance/) 337 | - [CSS-Perf by @mdo](https://github.com/mdo/css-perf) 338 | - [JavaScript Performance for Madmen](https://github.com/sq/JSIL/wiki/JavaScript-Performance-For-Madmen) 339 | - [List of Performance Analysis and Monitoring Tools](https://github.com/stefanjudis/perf-tooling) 340 | - [Awesome Web Performance Optimization](https://github.com/davidsonfellipe/awesome-wpo) 341 | - [Tips for Authoring Fast-Loading HTML Pages](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Tips_for_authoring_fast-loading_HTML_pages) 342 | - [Delivering the Goods - Paul Irish](https://www.youtube.com/watch?v=R8W_6xWphtw) [video] 343 | 344 | ## Functional Programming 345 | 346 | - [A Practical Introduction to Functional Programming](http://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming) 347 | - [Functional Programming Patterns](http://www.slideshare.net/ScottWlaschin/fp-patterns-buildstufflt) [slides] 348 | 349 | ## Game Programming 350 | 351 | - [Game Programming Patterns](http://gameprogrammingpatterns.com/) 352 | - [List of Game Development Resources](https://github.com/ellisonleao/magictools) 353 | 354 | ## Git 355 | 356 | - [Git Docs](http://git-scm.com/docs) 357 | - [Pro Git - Scott Chacon](http://git-scm.com/book) 358 | - [Git Cheat Sheet](https://na1.salesforce.com/help/pdfs/en/salesforce_git_developer_cheatsheet.pdf) 359 | - [Git Workflows - Atlassian](https://www.atlassian.com/git/workflows) 360 | - [Git Tutorials - Atlassian](https://www.atlassian.com/git/tutorial) 361 | - [Git tips from the trenches](https://ochronus.com/git-tips-from-the-trenches/) 362 | - [Think Like a Git](http://think-like-a-git.net/) 363 | - [git-flow](http://nvie.com/posts/a-successful-git-branching-model/) 364 | - [github-flow](http://scottchacon.com/2011/08/31/github-flow.html) 365 | - [Git Magic](http://www-cs-students.stanford.edu/~blynn//gitmagic/) 366 | - [A Practical Git Introduction](http://mrchlblng.me/2014/09/practical-git-introduction/) 367 | - [Introduction to Git and GitHub](http://www.gotealeaf.com/books/git) 368 | - [Git Ready](http://gitready.com/) 369 | - [Git From The Bottom Up](http://ftp.newartisans.com/pub/git.from.bottom.up.pdf) 370 | 371 | *I dump all things git-related in 372 | [man-git](https://github.com/jbranchaud/man-git).* 373 | 374 | ## Go 375 | 376 | - [An Introduction to Programming in Go](http://www.golang-book.com/) 377 | - [Go: a simple programming environment](http://vimeo.com/69237265) [video] 378 | - [Get Your Development Team Started With Go](https://www.digitalocean.com/company/blog/get-your-development-team-started-with-go/) 379 | - [Concurrency is Not Parallelism](http://blog.golang.org/concurrency-is-not-parallelism) 380 | - [When in Go, Do as Gophers Do](http://talks.golang.org/2014/readability.slide#1) 381 | - [Advanced Go Concurrency Patterns](http://talks.golang.org/2013/advconc.slide#1) 382 | - [Ten Useful Techniques in Go](http://arslan.io/ten-useful-techniques-in-go) 383 | 384 | ## Haskell 385 | 386 | - [Try Haskell](http://tryhaskell.org/) 387 | - [Learn You a Haskell for Great Good](http://learnyouahaskell.com/chapters) 388 | - [A Gentle Introduction to Haskell](http://www.haskell.org/tutorial/) 389 | - [Haskell Tutorial for C Programmers](http://www.haskell.org/haskellwiki/Haskell_Tutorial_for_C_Programmers) 390 | - [Real World Haskell](http://book.realworldhaskell.org/read/) 391 | - [List of Haskell Tutorials](http://www.haskell.org/haskellwiki/Tutorials) 392 | - [What I Wish I Knew When Learning Haskell](http://dev.stephendiehl.com/hask/) 393 | - [Architecture of a Real World Haskell Application](http://www.onikudaki.net/blog/archives/6) 394 | - [Haskell Packages for Development](https://wunki.org/posts/2014-05-17-haskell-packages-development.html) 395 | - [Ninety-Nine Haskell Problems](http://www.haskell.org/haskellwiki/99_questions) 396 | - [Getting It Done With Haskell](https://app.doxiq.com/d/rbczklzyvgczkfgh/Getting-it-Done-with-Haskell-pdf) 397 | - [How I Start: Haskell](http://howistart.org/posts/haskell/1) 398 | - [The Evolution of a Haskell Programmer](http://www.willamette.edu/~fruehr/haskell/evolution.html) 399 | 400 | *includes both Hugs and GHC tutorials* 401 | 402 | ## HTML 403 | 404 | - [HTML - Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/HTML) 405 | - [HTML5 - Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5) 406 | - [Code Guide by @mdo - HTML](http://codeguide.co/#html) 407 | - [WTF, HTML and CSS?](http://wtfhtmlcss.com/) 408 | 409 | ## Images and Photos 410 | 411 | - [Unsplash: High Resolution Creative Commons Photos](https://unsplash.com/) 412 | - [Fred's ImageMagick Scripts](http://fmwconcepts.com/imagemagick/) 413 | 414 | ## Io 415 | 416 | - [Io Language](http://iolanguage.org/) 417 | 418 | ## iOS 419 | 420 | - [iOS Dev Center](https://developer.apple.com/devcenter/ios/index.action) 421 | - [Ray Wenderlich - Tutorials for iOS Developers and Gamers](http://www.raywenderlich.com/) 422 | - [NSHipster](http://nshipster.com/) 423 | - [objc - a periodical about best practices and advanced techniques in Objective-C](http://www.objc.io/) 424 | - [Subjective-C: a study of innovative iOS interfaces](http://subjc.com/) 425 | - [Autolayout Examples](https://github.com/justin/AutoLayoutZen) 426 | - [Awesome iOS](https://github.com/vsouza/awesome-ios) 427 | 428 | ## J 429 | 430 | - [Functional Programming and the J Programming Language](http://www.cs.trinity.edu/~jhowland/math-talk/functional1/) 431 | 432 | ## Java 433 | 434 | - [An Opinionated Guide to Modern Java Development, Part 1](http://blog.paralleluniverse.co/2014/05/01/modern-java/) 435 | - [An Opinionated Guide to Modern Java Development, Part 2](http://blog.paralleluniverse.co/2014/05/08/modern-java-pt2/) 436 | - [Java Garbage Collection Distilled](http://mechanical-sympathy.blogspot.com/2013/07/java-garbage-collection-distilled.html) 437 | 438 | ## JavaScript 439 | 440 | - [Superhero.js](http://superherojs.com/) ([github](https://github.com/superherojs/superherojs)) 441 | - [JavaScript - Mozilla Developer Network](https://developer.mozilla.org/en-US/docs/Web/JavaScript) 442 | - [Eloquent JavaScript 2nd Edition](http://eloquentjavascript.net/contents.html) 443 | - [Eloquent JavaScript 1st Edition](http://eloquentjavascript.net/1st_edition/) 444 | - [Learning JavaScript Design Patterns](http://addyosmani.com/resources/essentialjsdesignpatterns/book/) 445 | - [Douglas Crockford on JavaScript](http://javascript.crockford.com/) 446 | - [Speaking JavaScript](http://speakingjs.com/es5/) 447 | - [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) 448 | - [Unit Testing in JavaScript with Jasmine](http://www.matthew-steele.com/unit-testing-in-javascript-with-jasmine/) [video] 449 | - [Human JavaScript](http://read.humanjavascript.com/) 450 | - [JavaScript Modules](http://jsmodules.io/) 451 | - [JS Must Watch](https://github.com/bolshchikov/js-must-watch) 452 | - [Awesome JavaScript](https://github.com/sorrycc/awesome-javascript) 453 | - [Advanced objects in JavaScript](http://bjorn.tipling.com/advanced-objects-in-javascript) 454 | - [You Don't Know JS](https://github.com/getify/You-Dont-Know-JS) 455 | - [Google JavaScript Style Guide](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml) 456 | - [Understanding JavaScript Inheritance](https://alexsexton.com/blog/2013/04/understanding-javascript-inheritance/) 457 | - [Must Watch JavaScript](https://github.com/AllThingsSmitty/must-watch-javascript) 458 | - [Metacompilers Part 1 - Build a Compiler in JavaScript](http://www.bayfronttechnologies.com/mc_tutorial.html) 459 | - [idiomatic.js](https://github.com/rwaldron/idiomatic.js/) 460 | - [Functional Programming using JavaScript](http://scott.sauyet.com/Javascript/Talk/2014/01/FuncProgTalk/) 461 | - [JavaScript Regular Expression Visualizer](http://jex.im/regulex/) 462 | - [JavaScript Equality Table](http://dorey.github.io/JavaScript-Equality-Table/) 463 | - [Programming JavaScript Applications](http://chimera.labs.oreilly.com/books/1234000000262/index.html) 464 | - [JS Books](http://jsbooks.revolunet.com/) 465 | - [ECMAScript 6 Compatibility Table](http://kangax.github.io/compat-table/es6/) 466 | - [JavaScript Garden](http://bonsaiden.github.io/JavaScript-Garden/) 467 | - [The Refactoring Tales](http://javascriptplayground.com/the-refactoring-tales/) 468 | 469 | ### ES6 470 | 471 | - [ES6 Succinctly](http://kamranahmed.info/blog/2016/04/04/es6-in-depth/) 472 | 473 | ## jQuery 474 | 475 | - [You Might Not Need jQuery](http://youmightnotneedjquery.com/) 476 | 477 | ## Julia 478 | 479 | - [Official Manual](http://docs.julialang.org/en/release-0.3/manual/introduction/) 480 | - [Julia and lambdas and maps, oh my!](https://blog.psychomario.com/2014/12/05/Julia-and-lambdas-and-maps-oh-my/) 481 | - [Julia by Example](http://www.scolvin.com/juliabyexample/) 482 | 483 | ## JVM 484 | 485 | - [JVM Internals](http://blog.jamesdbloom.com/JVMInternals.html) 486 | 487 | ## Kotlin 488 | 489 | - [Kotlin Docs](http://kotlinlang.org/docs/reference/) 490 | 491 | ## LESS 492 | 493 | - [LESSCSS.org](http://lesscss.org/) 494 | - [LESS Language Features](http://lesscss.org/features/) 495 | 496 | ## Linux 497 | 498 | - [Linux Insides](https://github.com/0xAX/linux-insides) 499 | 500 | ## Lisp 501 | 502 | - [Learn Lisp the Hard Way](http://learnlispthehardway.org/book/) 503 | - [Ninety-Nine Lisp Problems](http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html) 504 | - [It is not hard to edit Lisp code](http://yoo2080.wordpress.com/2014/07/20/it-is-not-hard-to-edit-lisp-code/) 505 | - [Awesome Common Lisp](https://github.com/kozross/awesome-cl) 506 | - [Paul Graham's On Lisp](http://dunsmor.com/lisp/onlisp/onlisp.html) 507 | - [Modern On Lisp Companion](https://github.com/DalekBaldwin/on-lisp) 508 | - [A Brief Guide to the Common Lisp Object System](http://www.aiai.ed.ac.uk/~jeff/clos-guide.html) 509 | 510 | ## Machine Learning 511 | 512 | - [Basics of Machine Learning](http://homepages.inf.ed.ac.uk/vlavrenk/iaml.html) 513 | - [What Does a Neural Network Actually Do?](http://moalquraishi.wordpress.com/2014/05/25/what-does-a-neural-network-actually-do/#) 514 | - [Awesome Machine Learning](https://github.com/josephmisiti/awesome-machine-learning) 515 | - [Hacker's Guide to Neural Networks](http://karpathy.github.io/neuralnets/) 516 | - [UCIrvine Machine Learning Dataset Repository](http://archive.ics.uci.edu/ml/datasets.html) 517 | - [Machine Learning Course from Tom Mitchell](http://www.cs.cmu.edu/~tom/10701_sp11/) 518 | - [Deep Learning Reading List](http://jmozah.github.io/links/) 519 | 520 | ## Math 521 | 522 | - [BetterExplained Math Cheatsheets](http://betterexplained.com/cheatsheet/) 523 | - [An Intuitive Guide to Linear Algebra](http://betterexplained.com/articles/linear-algebra-guide/) 524 | - [Eigenvectors and Eigenvalues: Explained Visually](http://setosa.io/ev/eigenvectors-and-eigenvalues/) 525 | - [An Interactive Guide To Fourier Transforms](http://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/) 526 | - [Free Spring Math Books (PDFs)](https://gist.github.com/bishboria/8326b17bbd652f34566a) 527 | 528 | ## Markdown 529 | 530 | - [Markdown by John Gruber](http://daringfireball.net/projects/markdown/) 531 | - [Markdown Cheatsheet](http://markdown.chibi.io/) 532 | 533 | ## Meteor.js 534 | 535 | - [Your First Meteor Application](https://leanpub.com/meteortutorial/read) 536 | - [Getting Started with Meteor.js](http://joshowens.me/getting-started-with-meteor-js/) 537 | 538 | ## Misc 539 | 540 | - [Simple CPU](http://www.simplecpu.com/Binary.html) 541 | - [Let's Build a Browser Engine](http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) 542 | - [Bootstrapping a Simple Compiler From Nothing](http://rano.org/bcompiler.html) 543 | - [Sorting Algorithm Animations](http://www.sorting-algorithms.com/) 544 | - [Visualizing Data Structures and Algorithms](http://visualgo.net/) 545 | - [Game Theory](http://plato.stanford.edu/entries/game-theory/) 546 | - [Fundamentals of Compression](http://bertolami.com/index.php?engine=blog&content=posts&detail=fundamentals-of-data-compression) 547 | - [Scsh Reference Manual](http://scsh.net/docu/html/man.html) 548 | - [Awk in 20 Minutes](http://ferd.ca/awk-in-20-minutes.html) 549 | - [Open Data Structures](http://opendatastructures.org/) 550 | - [Alligator Eggs: A Puzzle Game](http://worrydream.com/AlligatorEggs/) 551 | - [A Gentle Introduction to Algorithm Complexity Analysis](http://discrete.gr/complexity/#) 552 | 553 | ## Nim 554 | 555 | - [Nim Tutorial](http://nim-lang.org/tut1.html) 556 | 557 | *formerly known as Nimrod* 558 | 559 | ## Node.js 560 | 561 | - [The Art of Node](https://github.com/maxogden/art-of-node#the-art-of-node) 562 | - [Node.js in Production](http://blog.carbonfive.com/2014/06/02/node-js-in-production/) 563 | - [Awesome Node.js](https://github.com/sindresorhus/awesome-nodejs) 564 | - [Top 10 Mistakes Node.js Developers Make](https://www.airpair.com/node.js/posts/top-10-mistakes-node-developers-make) 565 | 566 | ## OAuth 567 | 568 | - [OAuth.net Documentation](http://oauth.net/documentation/) 569 | - [OAuth Guide](http://hueniverse.com/oauth/) 570 | - [OAuth Security Cheatsheet](http://www.oauthsecurity.com/) 571 | 572 | ## Objective-C 573 | 574 | - [objc - a periodical about best practices and advanced techniques in Objective-C](http://www.objc.io/) 575 | - [Ray Wenderlich Objective-C Style Guide](https://github.com/raywenderlich/objective-c-style-guide) 576 | - [NYTimes Objective-C Style Guide](https://github.com/NYTimes/objective-c-style-guide) 577 | 578 | ## OCaml 579 | 580 | - [Unix System Programming in OCaml](https://ocaml.github.io/ocamlunix/) 581 | - [OCaml for the Skeptical](http://www2.lib.uchicago.edu/keith/ocaml-class/class-01.html) 582 | 583 | ## OpenGL 584 | 585 | - [Learning Modern 3D Graphics Programming](http://www.arcsynthesis.org/gltut/#) 586 | - [Learning Modern OpenGL](http://www.codeproject.com/Articles/771225/Learning-Modern-OpenGL) 587 | 588 | ## Operating Systems 589 | 590 | - [Think OS: A Brief Introduction to Operating Systems](http://www.greenteapress.com/thinkos/html/index.html) 591 | - [The Little Book about OS Development](http://littleosbook.github.io/book.pdf) [pdf] 592 | - [Operating Systems: Three Easy Pieces](http://pages.cs.wisc.edu/~remzi/OSTEP/) 593 | 594 | ## Physics 595 | 596 | - [The Feynman Lectures on Physics](http://www.feynmanlectures.caltech.edu/) 597 | 598 | ## PostgreSQL 599 | 600 | - [Postgres Guide](http://www.postgresguide.com/) 601 | - [Postgresql: A Full Text Search Engine](http://shisaa.jp/postset/postgresql-full-text-search-part-1.html) 602 | - [Sample Databases](https://wiki.postgresql.org/wiki/Sample_Databases) 603 | - [psql meta-commands](https://momjian.us/main/writings/pgsql/aw_pgsql_book/node142.html) 604 | 605 | ## Product Design 606 | 607 | - [Building SoundCloud](http://www.michaelevensen.com/building-soundcloud/introduction/) 608 | - [Proving Taste](http://cobyism.com/blog/proving-taste/) 609 | 610 | ## Programming Challenges 611 | 612 | - [Google Code Jam archives](https://code.google.com/codejam/archive.html) 613 | - [Project Euler](http://projecteuler.net/) 614 | - [Rosetta Code](http://rosettacode.org/wiki/Rosetta_Code) 615 | - [/r/dailyprogrammer](http://www.reddit.com/r/dailyprogrammer) 616 | - [Coffee Time Challenges](http://www.datagenetics.com/blog/june22014/index.html) 617 | - [CodeChef](http://www.codechef.com/) 618 | - [UVa Online Judge Programming Challenges](http://uva.onlinejudge.org/) 619 | - [ACM ICPC Past Problems](http://icpc.baylor.edu/worldfinals/problems) 620 | - [Rosalind Bioinformatics Problems](http://rosalind.info/problems/list-view/) 621 | - [Mega Project List](https://github.com/karan/Projects) 622 | - [Ninety-Nine Haskell Problems](http://www.haskell.org/haskellwiki/99_questions) 623 | - [Ninety-Nine Lisp Problems](http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html) 624 | - [Ninety-Nine Prolog Problems](https://sites.google.com/site/prologsite/prolog-problems) 625 | 626 | ## Programming Languages 627 | 628 | - [Hyperpolyglot](http://hyperpolyglot.org/) 629 | - [7 Part Implement Your Own Programming Language Guide](https://github.com/kvalle/diy-lisp) 630 | - [The Early History of Smalltalk](http://worrydream.com/EarlyHistoryOfSmalltalk/) 631 | - [DIY: Make Your Own Programming Language](http://blog.ppelgren.se/2015-01-03/DIY-Make-Your-Own-Programming-language/) 632 | - [Write Yourself a Scheme in 48 Hours](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) 633 | - [Write You a Haskell: Building a modern functional compiler from first principles](http://dev.stephendiehl.com/fun/) 634 | - [Implementing a JIT Compiled Language with Haskell and LLVM](http://www.stephendiehl.com/llvm/) 635 | 636 | ## Prolog 637 | 638 | - [Ninety-Nine Prolog Problems](https://sites.google.com/site/prologsite/prolog-problems) 639 | - [Prolog Programming Language](http://groups.engin.umd.umich.edu/CIS/course.des/cis400/prolog/prolog.html) 640 | - [Learn Prolog Now](http://www.learnprolognow.org/lpnpage.php?pageid=online) 641 | 642 | ## Python 643 | 644 | - [Learn Python the Hard Way](http://learnpythonthehardway.org/book/) 645 | - [How to Think Like a Computer Scientist: Learning with Python](http://openbookproject.net/thinkcs/python/english2e/) 646 | - [Full Stack Python](http://www.fullstackpython.com/) 647 | - [Top 10 Mistakes that Python Programmers Make](http://www.toptal.com/python/top-10-mistakes-that-python-programmers-make) 648 | - [Anti-Patterns in Python Programming](http://lignos.org/py_antipatterns/) 649 | - [30 Python Language Features and Tricks You May Not Know About](http://sahandsaba.com/thirty-python-language-features-and-tricks-you-may-not-know.html) 650 | - [How to Write a Lisp Interpreter in Python](http://norvig.com/lispy.html) 651 | - [Python Practice Book](http://anandology.com/python-practice-book/index.html) 652 | - [The Invent with Python Bookshelf](http://inventwithpython.com/bookshelf/) 653 | - [Python Tips and Traps](https://www.airpair.com/python/posts/python-tips-and-traps) 654 | - [Problem Solving with Algorithms and Data Structures](http://interactivepython.org/runestone/static/pythonds/index.html) 655 | - [Intermediate Python](http://book.pythontips.com/en/latest/) 656 | 657 | ## R 658 | 659 | - [R Language for Programmers](http://www.johndcook.com/blog/r_language_for_programmers/) 660 | - [Introduction to Data Analysis with R](http://f.briatte.org/teaching/ida/index.html) 661 | - [Starting data analysis/wrangling with R: Things I wish I'd been told](http://reganmian.net/blog/2014/10/14/starting-data-analysiswrangling-with-r-things-i-wish-id-been-told/) 662 | 663 | ## Reactive Programming 664 | 665 | - [The Introduction to Reactive Programming You've Been Missing](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) 666 | 667 | ## React.js 668 | 669 | - [React Primer](https://github.com/mikechau/react-primer-draft) 670 | - [Learning React.js: Getting Started and Concepts](http://scotch.io/tutorials/javascript/learning-react-getting-started-and-concepts) 671 | - [Build a Real-Time Twitter Stream with Node and React.js](http://scotch.io/tutorials/javascript/build-a-real-time-twitter-stream-with-node-and-react-js) 672 | - [Getting to Know Flux, the React.js Architecture](http://scotch.io/tutorials/javascript/getting-to-know-flux-the-react-js-architecture) 673 | - [Build a Simple Shopping Cart Using React.js and Flux](http://scotch.io/tutorials/javascript/creating-a-simple-shopping-cart-with-react-js-and-flux) 674 | - [Awesome React](https://github.com/enaqx/awesome-react) 675 | - [React JS Tutorial and Guide to the Gotchas](https://zapier.com/engineering/react-js-tutorial-guide-gotchas/) 676 | - [React.js Stuff](https://github.com/mindreframer/reactjs-stuff) 677 | - [3 Ways to Integrate Ruby on Rails + React + Flux](http://www.openmindedinnovations.com/blogs/3-ways-to-integrate-ruby-on-rails-react-flux) 678 | - [React Native Playground](https://rnplay.org/) 679 | - [How To Structure A React Project](http://reactjsnews.com/structuring-react-projects/) 680 | - [9 Things Every React.js Beginner Should Know](https://camjackson.net/post/9-things-every-reactjs-beginner-should-know) 681 | 682 | ## Ruby 683 | 684 | - [ruby-lang.org](https://www.ruby-lang.org/en/) 685 | - [Try Ruby](http://tryruby.org/levels/1/challenges/0) 686 | - [Why's Poignant Guide to Ruby](http://mislav.uniqpath.com/poignant-guide/) 687 | - [Programming Ruby: The Pragmatic Programmer's Guide](http://phrogz.net/programmingruby/frameset.html) 688 | - [Ruby Koans](http://rubykoans.com/) 689 | - [Ruby Monk](https://rubymonk.com/) 690 | - [Understanding Ruby blocks, Procs, and lambdas](http://www.reactive.io/tips/2008/12/21/understanding-ruby-blocks-procs-and-lambdas/) 691 | - [Ruby Trick Shots: 24 Ruby Language Tips and Tricks](http://youtu.be/gIEMKOI_Y-4) 692 | - [Some Ruby Gotchas](http://blog.elpassion.com/ruby-gotchas/) 693 | - [A Community-driven Ruby Coding Style Guide](https://github.com/bbatsov/ruby-style-guide) 694 | - [GitHub's Ruby Style Guide](https://github.com/styleguide/ruby) 695 | - [Practical Object-Oriented Design in Ruby: Examples](https://github.com/skmetz/poodr) 696 | - [How I Start: Ruby with Steve Klabnik](http://www.howistart.org/posts/ruby/1) 697 | - [Awesome Ruby](https://github.com/markets/awesome-ruby) 698 | - [Ruby Bookmarks](https://github.com/dreikanter/ruby-bookmarks) 699 | - [5 Killer Ruby Talks of 2014](http://przemekmroczek.com/post/106717411075/5-killer-ruby-talks-of-2014) 700 | - [Fast Ruby](https://github.com/JuanitoFatas/fast-ruby) 701 | 702 | ## Ruby on Rails 703 | 704 | - [Ruby on Rails Guides](http://guides.rubyonrails.org/) 705 | - [Ruby on Rails Tutorial: Learn Web Development with Rails](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book) 706 | - [RailsCasts](http://railscasts.com/) - free and subscription-based screencasts 707 | - [ASCIIcasts](http://asciicasts.com/) - transcription and code to follow RailsCasts 708 | - [Rails Apps](http://railsapps.github.io/) 709 | - [User Authentication in Ruby on Rails](http://www.codeproject.com/Articles/575551/User-Authentication-in-Ruby-on-Rails) 710 | - [A Curated List of Resources for Ruby and Rails Learning](http://www.learnrubyandrails.com/) 711 | - [Top Rails Resources](http://railsapps.github.io/best-recommended-learning-rails-books-resources.html) 712 | - [Good open source Ruby on Rails projects to learn from?](http://stackoverflow.com/questions/248371/good-open-source-ruby-on-rails-projects-to-learn-from) 713 | - [Simple RailsCasts projects to learn from](https://github.com/railscasts) 714 | - [Rails Style Guide](https://github.com/bbatsov/rails-style-guide) 715 | - [Awesome Rails Gems](https://github.com/hothero/awesome-rails-gem) 716 | 717 | ### Testing 718 | 719 | - [Testing CoffeeScript for Rails with Jasmine](http://www.derekhammer.com/2012/02/18/testing-coffeescript-for-rails-with-jasmine.html) 720 | - [Testing JavaScript in Rails](http://codecuriosity.com/blog/2012/09/25/testing-javascript-in-rails/) 721 | - [How I Sped Up Our Rails Test Suite by 267%](http://blog.codeship.com/faster-rails-tests/) 722 | 723 | ## Rust 724 | 725 | - [A 30-Minute Introduction to Rust](http://doc.rust-lang.org/master/intro.html) 726 | - [The Rust Lang Tutorial](http://doc.rust-lang.org/tutorial.html) 727 | - [The Rust Reference Manual](http://doc.rust-lang.org/rust.html) 728 | - [Rust Note Research](https://github.com/rust-lang/rust/wiki/Note-research) 729 | - [Rust for Rubyists](http://www.rustforrubyists.com/book/index.html) 730 | - [Rust by Example](http://rustbyexample.com/) 731 | - [A Quick Intro to Rust Macros](https://danielkeep.github.io/quick-intro-to-macros.html) 732 | - [Awesome Rust](https://github.com/kud1ing/awesome-rust) 733 | - [Roguelike Tutorial in Rust](http://jaredonline.svbtle.com/roguelike-tutorial-table-of-contents) 734 | - [Getting Rusty](http://pzol.github.io/getting_rusty/) 735 | - [This Week in Rust](http://this-week-in-rust.org/) 736 | - [Rust Examples](https://github.com/eliovir/rust-examples) 737 | - [Rustlings](https://github.com/carols10cents/rustlings) 738 | 739 | ## SASS 740 | 741 | - [SASS Documentation Reference](http://sass-lang.com/documentation/file.SASS_REFERENCE.html) 742 | 743 | ## Scala 744 | 745 | - [Scala Best Practices](https://github.com/alexandru/scala-best-practices/) 746 | 747 | ## Sed 748 | 749 | - [Sed - An Introduction and Tutorial](http://www.grymoire.com/Unix/Sed.html) 750 | 751 | ## Sinatra 752 | 753 | - [Let's Build a Sinatra App](http://matt.weppler.me/2013/07/19/lets-build-a-sinatra-app.html) 754 | 755 | ## Smalltalk 756 | 757 | - [GNU Smalltalk User's Guide](http://www.gnu.org/software/smalltalk/manual/gst.html#Using-GNU-Smalltalk) 758 | - [The Early History of Smalltalk](http://worrydream.com/EarlyHistoryOfSmalltalk/) 759 | - [Basic Aspects of Squeak and the Smalltalk-80 Programming Language](http://www.cosc.canterbury.ac.nz/wolfgang.kreutzer/cosc205/smalltalk1.html) 760 | - [Pharo by Example](http://www.pharobyexample.org/) 761 | 762 | ## SVG 763 | 764 | - [A Compendium of SVG Information](http://css-tricks.com/mega-list-svg-information/) 765 | - [A Guide to SVG Animations](http://css-tricks.com/guide-svg-animations-smil/) 766 | 767 | ## tmux 768 | 769 | - [tmux manual pages](http://www.openbsd.org/cgi-bin/man.cgi?query=tmux&sektion=1) 770 | - [A tmux Crash Course](http://robots.thoughtbot.com/a-tmux-crash-course) 771 | - [tmux cheatsheet](https://gist.github.com/henrik/1967800) 772 | 773 | ## Typography 774 | 775 | - [Butterick's Practical Typography](http://practicaltypography.com/) 776 | - [Beautiful Web Type](https://github.com/ubuwaits/beautiful-web-type) 777 | 778 | ## Unix 779 | 780 | - [Unix Tips and Tricks](http://cfenollosa.com/misc/tricks.txt) 781 | 782 | ## Vagrant 783 | 784 | - [Vagrant Docs](http://docs.vagrantup.com/v2/getting-started/index.html) 785 | 786 | ## Vim 787 | 788 | - [Vim Tips Wiki](http://vim.wikia.com/wiki/Vim_Tips_Wiki) 789 | - [Use Vim](http://usevim.com/) 790 | - [Learn Vimscript the Hard Way](http://learnvimscriptthehardway.stevelosh.com/) 791 | - [Best of Vim Tips](http://zzapper.co.uk/vimtips.html) 792 | - [Vim Regex](http://vimregex.com/) 793 | - [Vim Text Objects: The Definitive Guide](http://blog.carbonfive.com/2011/10/17/vim-text-objects-the-definitive-guide/) 794 | - [What are the dark corners of Vim your mom never told you about?](http://stackoverflow.com/questions/726894/what-are-the-dark-corners-of-vim-your-mom-never-told-you-about?rq=1) 795 | - [VimAwesome - Awesome Vim Plugins from Across the Universe](http://vimawesome.com/) 796 | - [Learning Vim in 2014: Getting More from Vim with Plugins](http://benmccormick.org/2014/07/21/learning-vim-in-2014-getting-more-from-vim-with-plugins/) 797 | - [Vim After 11 Years](http://statico.github.io/vim.html) 798 | - [Vim Cheat Sheet](http://vim.rtorr.com/) 799 | - [Seven Habits of Effective Text Editing](http://www.moolenaar.net/habits.html) 800 | - [A Good Vimrc](http://dougblack.io/words/a-good-vimrc.html) 801 | - [Vim Galore](https://github.com/mhinz/vim-galore) 802 | 803 | ## Web Apps 804 | 805 | - [Static Web Apps](http://www.staticapps.org/) ([github](https://github.com/staticapps/staticapps.org/)) 806 | - [Developing Backbone.js Applications](http://addyosmani.github.io/backbone-fundamentals/) ([github](https://github.com/addyosmani/backbone-fundamentals/)) 807 | 808 | ## Web Components 809 | 810 | - [Web Components The Right Way](https://github.com/mateusortiz/webcomponents-the-right-way) 811 | - [Polymer Project](https://www.polymer-project.org/) 812 | - [WebComponents.org](http://webcomponents.org/) 813 | - [Polymer and Web Components change everything you know about web development](https://www.youtube.com/watch?v=8OJ7ih8EE7s) [video] 814 | - [Web Components the Right Way](https://github.com/mateusortiz/webcomponents-the-right-way) 815 | - [Google Web Components Style Guide](https://github.com/GoogleWebComponents/style-guide) 816 | 817 | ## License 818 | 819 | Copyright © 2014-2016 Josh Branchaud 820 | 821 | Released under the MIT license. See LICENSE for details. 822 | -------------------------------------------------------------------------------- /blogs.md: -------------------------------------------------------------------------------- 1 | # Blogs 2 | 3 | - [Addy Osmani's Blog](http://addyosmani.com/blog/) 4 | - [Aphyr's Blog](http://aphyr.com/posts) 5 | - [Coding Horror](http://blog.codinghorror.com/) 6 | - [DailyJS](http://dailyjs.com/) 7 | - [David Walsh Blog](http://davidwalsh.name/) 8 | - [Filament Group's Articles](http://filamentgroup.com/lab/) 9 | - [Giant Robots Smashing into Other Giant Robots](http://robots.thoughtbot.com/) 10 | - [Ilya Grigorik's Blog](https://www.igvita.com/archives/) 11 | - [Joel on Software](http://www.joelonsoftware.com/) 12 | - [John Resig's Blog](http://ejohn.org/category/blog/) 13 | - [The Pastry Box Project](https://the-pastry-box-project.net/) 14 | - [Paul Graham's Essays](http://www.paulgraham.com/articles.html) 15 | - [PlayfulJS](http://www.playfuljs.com/) 16 | - [Position Absolute](http://www.position-absolute.com/) 17 | - [Serious Pony](http://seriouspony.com/blog/) 18 | - [Six Revisions](http://sixrevisions.com/) 19 | - [Smashing Magazine](http://www.smashingmagazine.com/) 20 | - [SpeckyBoy](http://speckyboy.com/) 21 | - [Steve Hanov's Blog](http://stevehanov.ca/blog/index.php) 22 | - [Stevey's Blog Rants](http://steve-yegge.blogspot.com/) 23 | - [Stevey's Drunken Blog Rants](https://sites.google.com/site/steveyegge2/blog-rants) 24 | - [Stuff With Stuff](http://journal.stuffwithstuff.com/) 25 | - [Vanilla Java](http://vanillajava.blogspot.ro/) 26 | - [WebAppers](http://www.webappers.com/) 27 | -------------------------------------------------------------------------------- /game-programming.md: -------------------------------------------------------------------------------- 1 | # Game Programming 2 | 3 | ## Getting Started 4 | 5 | ## General 6 | 7 | - [Game Programming Patterns](http://gameprogrammingpatterns.com/) 8 | - [Rooms and Mazes: A Procedural Dungeon Generator](http://journal.stuffwithstuff.com/2014/12/21/rooms-and-mazes/) 9 | - [Hexagonal Grids](http://www.redblobgames.com/grids/hexagons/) 10 | 11 | ## JavaScript Game Development 12 | 13 | - [PlayfulJS](http://www.playfuljs.com/) 14 | - [Physics for the lazy](http://www.playfuljs.com/physics-for-the-lazy/) 15 | - [Realistic terrain in 130 lines](http://www.playfuljs.com/realistic-terrain-in-130-lines/) 16 | - [A first-person engine in 265 lines](http://www.playfuljs.com/a-first-person-engine-in-265-lines/) 17 | 18 | - [voxel.js](http://voxeljs.com/) 19 | 20 | - [JavaScript Game Development - The Game Loop](http://nokarma.org/2011/02/02/javascript-game-development-the-game-loop/) 21 | - [JavaScript Game Development - Keyboard Input](http://nokarma.org/2011/02/27/javascript-game-development-keyboard-input/index.html) 22 | 23 | - [Processing.js: The Basics](http://processingjs.nihongoresources.com/test/PjsGameEngine/docs/tutorial/basic.html) 24 | - [Processing.js: Let's Make a Mario game](http://processingjs.nihongoresources.com/test/PjsGameEngine/docs/tutorial/mario.html) 25 | 26 | ## Unity Game Development 27 | 28 | - [Game Development with Unity 2D - part 1: The Battle of the Teutoburg 29 | Forest](http://designagame.eu/2014/01/game-development-unity-2d-part-1-battle-teutoburg-forest/) 30 | - [Game Development with Unity 2D - part 2: Javelins & Battle 31 | Cries](http://designagame.eu/2014/01/game-development-unity-2d-part-2-javelins-battle-cries/) 32 | - [Game Development with Unity 2D - part 3: GUI, or No Text is an 33 | Island](http://designagame.eu/2014/02/game-development-unity-2d-part-3-gui/) 34 | - [Game Development with Unity 2D - part 4: Oplites, Back to 35 | Basics!](http://designagame.eu/2014/02/game-development-unity-2d-part-4-oplites-back-basics/) 36 | - [Game Development with Unity 2D - part 5: A grid of Roman 37 | centuriae](http://designagame.eu/2014/06/game-development-unity-2d-part-5-grid-roman-centuriae/) 38 | -------------------------------------------------------------------------------- /ios.md: -------------------------------------------------------------------------------- 1 | # iOS 2 | 3 | ## Interesting Libraries 4 | 5 | - [Pop](https://github.com/facebook/pop) - extensible animation engine for iOS 6 | and OS X. 7 | 8 | [Popping](https://github.com/schneiderandre/popping) is a collection of 9 | animation examples for iOS using Pop. 10 | -------------------------------------------------------------------------------- /javascript.md: -------------------------------------------------------------------------------- 1 | # JavaScript 2 | 3 | ## Concepts 4 | 5 | - [Understanding JavaScript Inheritance](https://alexsexton.com/blog/2013/04/understanding-javascript-inheritance/) 6 | - [Self-Executing Anonymous Functions or How to Write Clean JavaScript](http://esbueno.noahstokes.com/post/77292606977/self-executing-anonymous-functions-or-how-to-write) 7 | - [Back to Basics: Anonymous Functions and Closures](http://robots.thoughtbot.com/back-to-basics-anonymous-functions-and-closures) 8 | 9 | ## Design Patterns 10 | 11 | - [Learning JavaScript Design Patterns](http://addyosmani.com/resources/essentialjsdesignpatterns/book/) 12 | - [Patterns for Large-Scale JavaScript Application Architecture](http://addyosmani.com/largescalejavascript/) 13 | 14 | ## Functional JavaScript 15 | 16 | - [Functional Programming](http://eloquentjavascript.net/1st_edition/chapter6.html) 17 | - [An Introduction to Functional Programming in JavaScript](http://www.srirangan.net/2011-12-functional-programming-in-javascript) 18 | 19 | ## Testing 20 | 21 | - [How we test client-side JavaScript: Setup and Patterns](http://informatics.unep-wcmc.org/post/86302609060/how-we-test-client-side-javascript-setup-and-patterns) 22 | - [Testable JavaScript - Architecting Your Application for Testability](https://www.youtube.com/watch?v=JjqKQ8ezwKQ) (video) 23 | 24 | ## Web Components 25 | 26 | - [Web Components the Right Way](https://github.com/mateusortiz/webcomponents-the-right-way) 27 | -------------------------------------------------------------------------------- /photography.md: -------------------------------------------------------------------------------- 1 | # Photography 2 | 3 | - [How to become a decent photographer in five years](https://gist.github.com/sjl/aef0aad2b18bff582d39) 4 | - [Strobist: Learn How To Light](http://www.strobist.blogspot.com/) 5 | - [Gregory Heisler - Companion to "50 Portraits"](https://www.youtube.com/watch?v=rZ42PeHtqfo&feature=youtu.be) (video) 6 | -------------------------------------------------------------------------------- /ruby-to-js-enumerables.md: -------------------------------------------------------------------------------- 1 | # Ruby To JavaScript Enumerables 2 | 3 | Every language needs to have a different set of names for the 4 | functions/methods that they use with collections. This document seeks to 5 | draw parallels between similar functions in [Ruby's Enumerable 6 | module](http://ruby-doc.org/core-2.2.3/Enumerable.html) and JavaScript's 7 | [LoDash library](https://lodash.com/). 8 | 9 | - [`#all?` → `.every`](#all--every) 10 | - [`#any?` → `.some`](#any--some) 11 | - [`#chunk` → `???`](#chunk--) 12 | - [`#collect` → `.map`](#collect--map) 13 | - [`#collect_concat` → `???`](#collect_concat--) 14 | - [`#count` → `.size`](#count--size) 15 | - [`#cycle` → `???`](#cycle--) 16 | - [`#detect` → `.find`](#detect--find) 17 | 18 | --- 19 | 20 | ### `#all?` → `.every` 21 | 22 | [`#all?`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-all-3F) (Ruby) 23 | 24 | > Passes each element of the collection to the given block. The method 25 | > returns true if the block never returns `false` or `nil`. 26 | 27 | ```ruby 28 | > [1,2,3].all? { |item| item > 0 } 29 | => true 30 | > [1,2,3].all? { |item| item.even? } 31 | => false 32 | ``` 33 | 34 | [`.every`](https://lodash.com/docs#every) (JavaScript) 35 | 36 | > Checks if predicate returns truthy for **all** elements of collection. 37 | 38 | ```javascript 39 | > _.every([1,2,3], function(item) { return item > 0; }); 40 | => true 41 | > _.every([1,2,3], function(item) { return item % 2 === 0; }); 42 | => false 43 | ``` 44 | 45 | --- 46 | 47 | ### `#any?` → `.some` 48 | 49 | [`#any?`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-any-3F) 50 | (Ruby) 51 | 52 | > Passes each element of the collection to the given block. The method 53 | > returns true if the block ever returns a value other than `false` or `nil`. 54 | 55 | ```ruby 56 | > [1,2,3].any? { |item| item < 0 } 57 | => false 58 | > [1,2,3].any? { |item| item.even? } 59 | => true 60 | ``` 61 | 62 | [`.some`](https://lodash.com/docs#some) (JavaScript) 63 | 64 | > Checks if predicate returns truthy for **any** element of collection. 65 | 66 | ```javascript 67 | > _.some([1,2,3], function(item) { return item < 0; }); 68 | => false 69 | > _.some([1,2,3], function(item) { return item % 2 === 0; }); 70 | => true 71 | ``` 72 | 73 | --- 74 | 75 | ### `#chunk` → `???` 76 | 77 | [`#chunk`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-chunk) 78 | (Ruby) 79 | 80 | > Enumerates over the items, chunking them together based on the return 81 | > value of the block. Consecutive elements which return the same block 82 | > value are chunked together. 83 | 84 | ```ruby 85 | > [1,2,3].chunk { |item| item > 0 }.to_a 86 | => [[true, [1, 2, 3]]] 87 | > (1..10).chunk { |item| item % 3 == 0 }.to_a 88 | => [[false, [1, 2]], 89 | [true, [3]], 90 | [false, [4, 5]], 91 | [true, [6]], 92 | [false, [7, 8]], 93 | [true, [9]], 94 | [false, [10]]] 95 | ``` 96 | 97 | `???` (JavaScript) 98 | 99 | --- 100 | 101 | ### `#collect` → `.map` 102 | 103 | [`#collect`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-collect) 104 | (Ruby), 105 | *also known as 106 | [`#map`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-map)* 107 | 108 | > Returns a new array with the results of running block once for every 109 | > element in enum. 110 | 111 | ```ruby 112 | > [1,2,3].collect { |item| item + 1 } 113 | => [2, 3, 4] 114 | > [1,2,3].collect { |item| item * item } 115 | => [1, 4, 9] 116 | ``` 117 | 118 | [`map`](https://lodash.com/docs#map) (JavaScript) 119 | 120 | > Creates an array of values by running each element in collection through 121 | > iteratee. 122 | 123 | ```javascript 124 | > _.map([1,2,3], function(item) { return item + 1; }); 125 | => [2, 3, 4] 126 | > _.map([1,2,3], function(item) { return item * item; }); 127 | => [1, 4, 9] 128 | ``` 129 | 130 | --- 131 | 132 | ### `#collect_concat` → `???` 133 | 134 | [`#collect_concat`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-collect_concat) (Ruby), 135 | *also known as 136 | [`#flat_map`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-flat_map)* 137 | 138 | > Returns a new array with the concatenated results of running block once 139 | > for every element in enum. 140 | 141 | ```ruby 142 | > [1,2,3].collect_concat { |item| (1..item).to_a } 143 | => [1, 1, 2, 1, 2, 3] 144 | > ["one", "two", "three"].collect_concat { |item| [item, item.upcase] } 145 | => ["one", "ONE", "two", "TWO", "three", "THREE"] 146 | ``` 147 | 148 | `???` (JavaScript) 149 | 150 | There is no direct equivalent provided by LoDash, however the `.map` and 151 | `.flatten` functions can be combined to achieve the same effect. 152 | 153 | ```javascript 154 | > _([1,2,3]) 155 | .map(function(item) { return _.range(1,item+1); }) 156 | .flatten() 157 | .value(); 158 | => [1, 1, 2, 1, 2, 3] 159 | > _(["one","two","three"]) 160 | .map(function(item) { return [item, item.toUpperCase()]; }) 161 | .flatten() 162 | .value(); 163 | => ["one", "ONE", "two", "TWO", "three", "THREE"] 164 | ``` 165 | 166 | --- 167 | 168 | ### `#count` → `.size` 169 | 170 | [`#count`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-count) 171 | (Ruby) 172 | 173 | > Returns the number of items in enum through enumeration. 174 | 175 | ```ruby 176 | > [1,2,3].count 177 | => 3 178 | > {a: 1, b: 2}.count 179 | => 2 180 | ``` 181 | 182 | [`.size`](https://lodash.com/docs#size) (JavaScript) 183 | 184 | > Gets the size of collection by returning its length for array-like values 185 | > or the number of own enumerable properties for objects. 186 | 187 | ```javascript 188 | > _.size([1,2,3]) 189 | => 3 190 | > _.size({a: 1, b: 2}) 191 | => 2 192 | ``` 193 | 194 | *Note: `.size` does not have all the capabilities of `#count`. For instance, 195 | `#count` can be used for a particular value or the evaluation of a Ruby 196 | block. Similar behavior can be achieved with LoDash by using `.filter` 197 | combined with `.size`.* 198 | 199 | --- 200 | 201 | ### `#cycle` → `???` 202 | 203 | [`#cycle`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-cycle) 204 | (Ruby) 205 | 206 | > Calls block for each element of enum repeatedly n times or forever if none 207 | > or nil is given. If a non-positive number is given or the collection is 208 | > empty, does nothing. Returns nil if the loop has finished without getting 209 | > interrupted. 210 | 211 | ```ruby 212 | > [1,2,3].cycle(2) { |x| puts x } 213 | 1 214 | 2 215 | 3 216 | 1 217 | 2 218 | 3 219 | ``` 220 | 221 | `???` (JavaScript) 222 | 223 | --- 224 | 225 | ### `#detect` → `.find` 226 | 227 | [`#detect`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-detect) 228 | (Ruby) 229 | *also known as 230 | [`#find`](http://ruby-doc.org/core-2.2.3/Enumerable.html#method-i-find)* 231 | 232 | > Passes each entry in enum to block. Returns the first for which block is 233 | > not false. 234 | 235 | ```ruby 236 | > [1,2,3].detect { |item| item.even? } 237 | => 2 238 | > ['foo','bar','baz'].detect { |item| item =~ /ba/ } 239 | => "bar" 240 | ``` 241 | 242 | [`.find`](https://lodash.com/docs#find) (JavaScript) 243 | 244 | > Iterates over elements of collection, returning the first element 245 | > predicate returns truthy for. 246 | 247 | ```javascript 248 | > _.find([1,2,3], function(item) { return item % 2 === 0; }) 249 | => 2 250 | > _.find(['foo','bar','baz'], function(item) { return /ba/.test(item); }); 251 | => "bar" 252 | ``` 253 | -------------------------------------------------------------------------------- /ruby.md: -------------------------------------------------------------------------------- 1 | # Ruby 2 | 3 | > Ruby and Ruby on Rails resources 4 | 5 | ## Official Guides 6 | 7 | - [ruby-lang.org](https://www.ruby-lang.org/en/) 8 | - [Ruby on Rails Guides](http://guides.rubyonrails.org/) 9 | 10 | ## Style Guides 11 | 12 | - [A Community-driven Ruby Coding Style Guide](https://github.com/bbatsov/ruby-style-guide) 13 | - [GitHub's Ruby Style Guide](https://github.com/styleguide/ruby) 14 | - [Rails Style Guide](https://github.com/bbatsov/rails-style-guide) 15 | -------------------------------------------------------------------------------- /testing-reactjs-components.md: -------------------------------------------------------------------------------- 1 | # Testing React.js Components 2 | 3 | ## Blog Posts 4 | 5 | - [How We Unit Test React Components Using expect-jsx](https://blog.algolia.com/how-we-unit-test-react-components-using-expect-jsx/) 6 | - [Testing React Components With Enzyme and Mocha](https://semaphoreci.com/community/tutorials/testing-react-components-with-enzyme-and-mocha) 7 | - [Testing React Components with Enzyme](http://codeheaven.io/testing-react-components-with-enzyme/) 8 | - [Automated React Component Testing with Jest](https://www.distelli.com/docs/tutorials/test-your-react-component-with-jest) 9 | - [React Recipe for AVA](https://github.com/adriantoine/ava/blob/master/docs/recipes/react.md) 10 | 11 | ## Videos 12 | 13 | - [Unit Testing a React Component Using Jasmine and Webpack](https://egghead.io/lessons/react-unit-testing-a-react-component-using-jasmine-and-webpack) 14 | 15 | ## Libraries and Tools 16 | 17 | - [airbnb/enzyme](https://github.com/airbnb/enzyme) 18 | - [mjackson/expect](https://github.com/mjackson/expect) 19 | - [algolia/expect-jsx](https://github.com/algolia/expect-jsx) 20 | - [facebook/jest](https://github.com/facebook/jest) 21 | - [QubitProducts/react-driver](https://github.com/QubitProducts/react-driver) 22 | --------------------------------------------------------------------------------