├── CONTRIBUTING.md ├── LICENSE └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## The Goal 2 | Our goal is not to have the biggest list of stuff. 3 | Our goal is to have a **comprehensible** list of most valuable things any programmer should know about. 4 | 5 | ## Contributing 6 | 7 | Your contributions to this repo are always welcome! 8 | Bear in mind, that this repo is *highly opinionated* and *curated*. 9 | Your opinion on value of any resource may not match the opinion of curator. 10 | 11 | **No PR will be discarded without explanations!** 12 | 13 | 14 | ## Core Values 15 | *Values are clickable* 16 | 17 |
Less is more! :muscle:

18 | 19 | We :heart: simplicity.
20 | We :heart: essential stuff.
21 | We strive to have a smaller list of more valuable resources, quality over quantity. 22 |

23 | 24 |
We :heart: widely applicable knowledge/skills.

25 | 26 | The world is not static. Everything changes.
27 | This is why we prioritize strategically valuable skills/knowledge.
28 | This is why there are so many philosophical resources in that list. 29 |

30 | 31 |
We do not add to stress/hype level :zap:

32 | 33 | There are enough stress sources in everybody's lifes.
34 | We strive to be helpful without adding to the stress and creating hype.
35 | Most endless stream resources (forums, newsletters, blogs, communities) are noisy and create questionable value.
36 | Be mindful of that fact when adding resources. 37 |

38 | 39 |
Technology is always about human beings :man: :woman: :baby:.

40 | 41 | We do not code in sake of coding. We code to solve other people's problems.
42 | This is why resources on soft skills are an essential part of that list. 43 |

44 | 45 | ## Guidelines 46 | *Guidelines are clickable* 47 | 48 |
Do not add things you have not evaluated personally!

49 | 50 | Use your critical thinking to filter out non-essential stuff. 51 | Give honest arguments for why the resource should be included. 52 | Have you read this book? 53 | Can you give a short article? 54 |

55 | 56 |
Use reasoning based on our values.

57 | 58 | Before adding any resource, answer this questions to yourself: 59 | - Will it make every programmer a better human being? 60 | - Will it change the quality of programmer's work? 61 | - Will it change the quality of programmer's life? 62 | - Would you personally recommend this resource to your friend, starting on software development career? 63 | 64 |

65 | 66 |
One item per Pull Request.

67 | 68 | There may be a discussion related to an item you want to add. 69 | Adding just a single item per pull request makes it much easier for everyone involved. 70 |

71 | 72 |
Do not open issues with resources, create a Pull Request instead!

73 | 74 | It is just easier to discuss and decide on a resource within a Pull Request. 75 |

76 | 77 |
Use consistent set of resource type emoji

78 | 79 | 🎥 - Video/Talk 80 | 📖 - Book 81 | 📄 - Online article 82 | 📜 - Paper/Document 83 | ✅ - Checklist 84 | 85 |

86 | 87 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Alexey Migutsky (https://github.com/mr-mig) 2 | 3 | Attribution 4.0 International 4 | 5 | ======================================================================= 6 | 7 | Creative Commons Corporation ("Creative Commons") is not a law firm and 8 | does not provide legal services or legal advice. Distribution of 9 | Creative Commons public licenses does not create a lawyer-client or 10 | other relationship. Creative Commons makes its licenses and related 11 | information available on an "as-is" basis. Creative Commons gives no 12 | warranties regarding its licenses, any material licensed under their 13 | terms and conditions, or any related information. Creative Commons 14 | disclaims all liability for damages resulting from their use to the 15 | fullest extent possible. 16 | 17 | Using Creative Commons Public Licenses 18 | 19 | Creative Commons public licenses provide a standard set of terms and 20 | conditions that creators and other rights holders may use to share 21 | original works of authorship and other material subject to copyright 22 | and certain other rights specified in the public license below. The 23 | following considerations are for informational purposes only, are not 24 | exhaustive, and do not form part of our licenses. 25 | 26 | Considerations for licensors: Our public licenses are 27 | intended for use by those authorized to give the public 28 | permission to use material in ways otherwise restricted by 29 | copyright and certain other rights. Our licenses are 30 | irrevocable. Licensors should read and understand the terms 31 | and conditions of the license they choose before applying it. 32 | Licensors should also secure all rights necessary before 33 | applying our licenses so that the public can reuse the 34 | material as expected. Licensors should clearly mark any 35 | material not subject to the license. This includes other CC- 36 | licensed material, or material used under an exception or 37 | limitation to copyright. More considerations for licensors: 38 | wiki.creativecommons.org/Considerations_for_licensors 39 | 40 | Considerations for the public: By using one of our public 41 | licenses, a licensor grants the public permission to use the 42 | licensed material under specified terms and conditions. If 43 | the licensor's permission is not necessary for any reason--for 44 | example, because of any applicable exception or limitation to 45 | copyright--then that use is not regulated by the license. Our 46 | licenses grant only permissions under copyright and certain 47 | other rights that a licensor has authority to grant. Use of 48 | the licensed material may still be restricted for other 49 | reasons, including because others have copyright or other 50 | rights in the material. A licensor may make special requests, 51 | such as asking that all changes be marked or described. 52 | Although not required by our licenses, you are encouraged to 53 | respect those requests where reasonable. More_considerations 54 | for the public: 55 | wiki.creativecommons.org/Considerations_for_licensees 56 | 57 | ======================================================================= 58 | 59 | Creative Commons Attribution 4.0 International Public License 60 | 61 | By exercising the Licensed Rights (defined below), You accept and agree 62 | to be bound by the terms and conditions of this Creative Commons 63 | Attribution 4.0 International Public License ("Public License"). To the 64 | extent this Public License may be interpreted as a contract, You are 65 | granted the Licensed Rights in consideration of Your acceptance of 66 | these terms and conditions, and the Licensor grants You such rights in 67 | consideration of benefits the Licensor receives from making the 68 | Licensed Material available under these terms and conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. Copyright and Similar Rights means copyright and/or similar rights 88 | closely related to copyright including, without limitation, 89 | performance, broadcast, sound recording, and Sui Generis Database 90 | Rights, without regard to how the rights are labeled or 91 | categorized. For purposes of this Public License, the rights 92 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 93 | Rights. 94 | 95 | d. Effective Technological Measures means those measures that, in the 96 | absence of proper authority, may not be circumvented under laws 97 | fulfilling obligations under Article 11 of the WIPO Copyright 98 | Treaty adopted on December 20, 1996, and/or similar international 99 | agreements. 100 | 101 | e. Exceptions and Limitations means fair use, fair dealing, and/or 102 | any other exception or limitation to Copyright and Similar Rights 103 | that applies to Your use of the Licensed Material. 104 | 105 | f. Licensed Material means the artistic or literary work, database, 106 | or other material to which the Licensor applied this Public 107 | License. 108 | 109 | g. Licensed Rights means the rights granted to You subject to the 110 | terms and conditions of this Public License, which are limited to 111 | all Copyright and Similar Rights that apply to Your use of the 112 | Licensed Material and that the Licensor has authority to license. 113 | 114 | h. Licensor means the individual(s) or entity(ies) granting rights 115 | under this Public License. 116 | 117 | i. Share means to provide material to the public by any means or 118 | process that requires permission under the Licensed Rights, such 119 | as reproduction, public display, public performance, distribution, 120 | dissemination, communication, or importation, and to make material 121 | available to the public including in ways that members of the 122 | public may access the material from a place and at a time 123 | individually chosen by them. 124 | 125 | j. Sui Generis Database Rights means rights other than copyright 126 | resulting from Directive 96/9/EC of the European Parliament and of 127 | the Council of 11 March 1996 on the legal protection of databases, 128 | as amended and/or succeeded, as well as other essentially 129 | equivalent rights anywhere in the world. 130 | 131 | k. You means the individual or entity exercising the Licensed Rights 132 | under this Public License. Your has a corresponding meaning. 133 | 134 | 135 | Section 2 -- Scope. 136 | 137 | a. License grant. 138 | 139 | 1. Subject to the terms and conditions of this Public License, 140 | the Licensor hereby grants You a worldwide, royalty-free, 141 | non-sublicensable, non-exclusive, irrevocable license to 142 | exercise the Licensed Rights in the Licensed Material to: 143 | 144 | a. reproduce and Share the Licensed Material, in whole or 145 | in part; and 146 | 147 | b. produce, reproduce, and Share Adapted Material. 148 | 149 | 2. Exceptions and Limitations. For the avoidance of doubt, where 150 | Exceptions and Limitations apply to Your use, this Public 151 | License does not apply, and You do not need to comply with 152 | its terms and conditions. 153 | 154 | 3. Term. The term of this Public License is specified in Section 155 | 6(a). 156 | 157 | 4. Media and formats; technical modifications allowed. The 158 | Licensor authorizes You to exercise the Licensed Rights in 159 | all media and formats whether now known or hereafter created, 160 | and to make technical modifications necessary to do so. The 161 | Licensor waives and/or agrees not to assert any right or 162 | authority to forbid You from making technical modifications 163 | necessary to exercise the Licensed Rights, including 164 | technical modifications necessary to circumvent Effective 165 | Technological Measures. For purposes of this Public License, 166 | simply making modifications authorized by this Section 2(a) 167 | (4) never produces Adapted Material. 168 | 169 | 5. Downstream recipients. 170 | 171 | a. Offer from the Licensor -- Licensed Material. Every 172 | recipient of the Licensed Material automatically 173 | receives an offer from the Licensor to exercise the 174 | Licensed Rights under the terms and conditions of this 175 | Public License. 176 | 177 | b. No downstream restrictions. You may not offer or impose 178 | any additional or different terms or conditions on, or 179 | apply any Effective Technological Measures to, the 180 | Licensed Material if doing so restricts exercise of the 181 | Licensed Rights by any recipient of the Licensed 182 | Material. 183 | 184 | 6. No endorsement. Nothing in this Public License constitutes or 185 | may be construed as permission to assert or imply that You 186 | are, or that Your use of the Licensed Material is, connected 187 | with, or sponsored, endorsed, or granted official status by, 188 | the Licensor or others designated to receive attribution as 189 | provided in Section 3(a)(1)(A)(i). 190 | 191 | b. Other rights. 192 | 193 | 1. Moral rights, such as the right of integrity, are not 194 | licensed under this Public License, nor are publicity, 195 | privacy, and/or other similar personality rights; however, to 196 | the extent possible, the Licensor waives and/or agrees not to 197 | assert any such rights held by the Licensor to the limited 198 | extent necessary to allow You to exercise the Licensed 199 | Rights, but not otherwise. 200 | 201 | 2. Patent and trademark rights are not licensed under this 202 | Public License. 203 | 204 | 3. To the extent possible, the Licensor waives any right to 205 | collect royalties from You for the exercise of the Licensed 206 | Rights, whether directly or through a collecting society 207 | under any voluntary or waivable statutory or compulsory 208 | licensing scheme. In all other cases the Licensor expressly 209 | reserves any right to collect such royalties. 210 | 211 | 212 | Section 3 -- License Conditions. 213 | 214 | Your exercise of the Licensed Rights is expressly made subject to the 215 | following conditions. 216 | 217 | a. Attribution. 218 | 219 | 1. If You Share the Licensed Material (including in modified 220 | form), You must: 221 | 222 | a. retain the following if it is supplied by the Licensor 223 | with the Licensed Material: 224 | 225 | i. identification of the creator(s) of the Licensed 226 | Material and any others designated to receive 227 | attribution, in any reasonable manner requested by 228 | the Licensor (including by pseudonym if 229 | designated); 230 | 231 | ii. a copyright notice; 232 | 233 | iii. a notice that refers to this Public License; 234 | 235 | iv. a notice that refers to the disclaimer of 236 | warranties; 237 | 238 | v. a URI or hyperlink to the Licensed Material to the 239 | extent reasonably practicable; 240 | 241 | b. indicate if You modified the Licensed Material and 242 | retain an indication of any previous modifications; and 243 | 244 | c. indicate the Licensed Material is licensed under this 245 | Public License, and include the text of, or the URI or 246 | hyperlink to, this Public License. 247 | 248 | 2. You may satisfy the conditions in Section 3(a)(1) in any 249 | reasonable manner based on the medium, means, and context in 250 | which You Share the Licensed Material. For example, it may be 251 | reasonable to satisfy the conditions by providing a URI or 252 | hyperlink to a resource that includes the required 253 | information. 254 | 255 | 3. If requested by the Licensor, You must remove any of the 256 | information required by Section 3(a)(1)(A) to the extent 257 | reasonably practicable. 258 | 259 | 4. If You Share Adapted Material You produce, the Adapter's 260 | License You apply must not prevent recipients of the Adapted 261 | Material from complying with this Public License. 262 | 263 | 264 | Section 4 -- Sui Generis Database Rights. 265 | 266 | Where the Licensed Rights include Sui Generis Database Rights that 267 | apply to Your use of the Licensed Material: 268 | 269 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 270 | to extract, reuse, reproduce, and Share all or a substantial 271 | portion of the contents of the database; 272 | 273 | b. if You include all or a substantial portion of the database 274 | contents in a database in which You have Sui Generis Database 275 | Rights, then the database in which You have Sui Generis Database 276 | Rights (but not its individual contents) is Adapted Material; and 277 | 278 | c. You must comply with the conditions in Section 3(a) if You Share 279 | all or a substantial portion of the contents of the database. 280 | 281 | For the avoidance of doubt, this Section 4 supplements and does not 282 | replace Your obligations under this Public License where the Licensed 283 | Rights include other Copyright and Similar Rights. 284 | 285 | 286 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 287 | 288 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 289 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 290 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 291 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 292 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 293 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 294 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 295 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 296 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 297 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 298 | 299 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 300 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 301 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 302 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 303 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 304 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 305 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 306 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 307 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 308 | 309 | c. The disclaimer of warranties and limitation of liability provided 310 | above shall be interpreted in a manner that, to the extent 311 | possible, most closely approximates an absolute disclaimer and 312 | waiver of all liability. 313 | 314 | 315 | Section 6 -- Term and Termination. 316 | 317 | a. This Public License applies for the term of the Copyright and 318 | Similar Rights licensed here. However, if You fail to comply with 319 | this Public License, then Your rights under this Public License 320 | terminate automatically. 321 | 322 | b. Where Your right to use the Licensed Material has terminated under 323 | Section 6(a), it reinstates: 324 | 325 | 1. automatically as of the date the violation is cured, provided 326 | it is cured within 30 days of Your discovery of the 327 | violation; or 328 | 329 | 2. upon express reinstatement by the Licensor. 330 | 331 | For the avoidance of doubt, this Section 6(b) does not affect any 332 | right the Licensor may have to seek remedies for Your violations 333 | of this Public License. 334 | 335 | c. For the avoidance of doubt, the Licensor may also offer the 336 | Licensed Material under separate terms or conditions or stop 337 | distributing the Licensed Material at any time; however, doing so 338 | will not terminate this Public License. 339 | 340 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 341 | License. 342 | 343 | 344 | Section 7 -- Other Terms and Conditions. 345 | 346 | a. The Licensor shall not be bound by any additional or different 347 | terms or conditions communicated by You unless expressly agreed. 348 | 349 | b. Any arrangements, understandings, or agreements regarding the 350 | Licensed Material not stated herein are separate from and 351 | independent of the terms and conditions of this Public License. 352 | 353 | 354 | Section 8 -- Interpretation. 355 | 356 | a. For the avoidance of doubt, this Public License does not, and 357 | shall not be interpreted to, reduce, limit, restrict, or impose 358 | conditions on any use of the Licensed Material that could lawfully 359 | be made without permission under this Public License. 360 | 361 | b. To the extent possible, if any provision of this Public License is 362 | deemed unenforceable, it shall be automatically reformed to the 363 | minimum extent necessary to make it enforceable. If the provision 364 | cannot be reformed, it shall be severed from this Public License 365 | without affecting the enforceability of the remaining terms and 366 | conditions. 367 | 368 | c. No term or condition of this Public License will be waived and no 369 | failure to comply consented to unless expressly agreed to by the 370 | Licensor. 371 | 372 | d. Nothing in this Public License constitutes or may be interpreted 373 | as a limitation upon, or waiver of, any privileges and immunities 374 | that apply to the Licensor or You, including from the legal 375 | processes of any jurisdiction or authority. 376 | 377 | 378 | ======================================================================= 379 | 380 | Creative Commons is not a party to its public 381 | licenses. Notwithstanding, Creative Commons may elect to apply one of 382 | its public licenses to material it publishes and in those instances 383 | will be considered the “Licensor.” The text of the Creative Commons 384 | public licenses is dedicated to the public domain under the CC0 Public 385 | Domain Dedication. Except for the limited purpose of indicating that 386 | material is shared under a Creative Commons public license or as 387 | otherwise permitted by the Creative Commons policies published at 388 | creativecommons.org/policies, Creative Commons does not authorize the 389 | use of the trademark "Creative Commons" or any other trademark or logo 390 | of Creative Commons without its prior written consent including, 391 | without limitation, in connection with any unauthorized modifications 392 | to any of its public licenses or any other arrangements, 393 | understandings, or agreements concerning use of licensed material. For 394 | the avoidance of doubt, this paragraph does not form part of the 395 | public licenses. 396 | 397 | Creative Commons may be contacted at creativecommons.org. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > *[Join our community](https://metadevelopment.io/)* for professional Software Developers and get more control over your life and career! 2 | 3 | ---- 4 | 5 | # Every Programmer Should Know :thinking: 6 | A collection of (mostly) technical things every software developer should know. 7 | 8 | :point_up: *These are resources I can recommend to every programmer regardless of their skill level or tech stack* 9 | 10 | Highly opinionated :bomb:. Not backed by science. 11 | Comes in no particular order :recycle: 12 | 13 | U like it? :star: it and [share](https://twitter.com/mr_mig_by/status/900735231552098306) with a friendly developer! 14 | U don't like it? [Watch the doggo](https://twitter.com/RespectfulMemes/status/900147758845308930) :dog: 15 | 16 | *P.S. You [don't need to know](https://xkcd.com/1050/) all of that by heart to be a programmer. 17 | But knowing the stuff will help you become better! :muscle:* 18 | 19 | *P.P.S. [Contributions](CONTRIBUTING.md) are welcome!* 20 | 21 | ---- 22 | 23 | ### Introduction 24 | - :movie_camera: [Map of Computer Science](https://www.youtube.com/watch?v=SzJ46YA_RaA) 25 | - :movie_camera: [40 Key Computer Science Concepts Explained In Layman’s Terms](http://carlcheo.com/compsci) 26 | - :page_facing_up: [Computer Science Roadmap](https://roadmap.sh/computer-science) 27 | 28 | ### Falsehoods 29 | - [Awesome Falsehoods](https://github.com/kdeldycke/awesome-falsehood) 30 | 💊 Curated list of falsehoods programmers believe in. 31 | Check for things you do not know about Strings, Addresses, Names, Numbers, Emails, Timezones and Dates and more. 32 | 33 | ### Algorithms 34 | - [Big O Cheatsheet](http://bigocheatsheet.com/) 35 | - :book: [Computer Science Distilled](https://www.goodreads.com/book/show/34189798-computer-science-distilled) 36 | - :book: [Grokking Algorithms](https://www.goodreads.com/book/show/22847284-grokking-algorithms-an-illustrated-guide-for-programmers-and-other-curio) 37 | - :book: [Introduction to Algorithms](https://www.goodreads.com/book/show/108986.Introduction_to_Algorithms?from_search=true&from_srp=true&qid=8mUglV9uZ1&rank=1) 38 | - [Algorithms Visualization](https://www.cs.usfca.edu/~galles/visualization/Algorithms.html) 39 | - [Algorithms for Competitive Programming](https://cp-algorithms.com/) 40 | 41 | ### Data Structures 42 | - :movie_camera: [UC Berkeley, Data Structures Course](https://sp19.datastructur.es/) 43 | - [Foundations of Data Structures - EDX](https://www.edx.org/course/foundations-data-structures-iitbombayx-cs213-1x-0#!) 44 | - [Data Structures - Coursera](https://www.coursera.org/learn/data-structures) 45 | - [Mathematics for Computer Science - Eric Lehman](https://courses.csail.mit.edu/6.042/spring17/mcs.pdf) 46 | 47 | ### Numbers 48 | - :book: [How to Count](https://www.goodreads.com/book/show/12093869-how-to-count) 49 | - :page_facing_up: [Floating Point Guide](http://floating-point-gui.de/) 50 | - :page_facing_up: [What Every Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html#680) 51 | - :page_facing_up: [Basic Number Theory Every Programmer Should Know...](https://www.codechef.com/wiki/tutorial-number-theory/) 52 | 53 | ### Strings 54 | - :page_facing_up: [Unicode and Character Sets](https://www.joelonsoftware.com/articles/Unicode.html) 55 | - [Homoglyphs](https://github.com/codebox/homoglyph/) 56 | - [Unicode Common Locale Data Repository](http://cldr.unicode.org/) 57 | - :movie_camera: [ASCII](https://www.youtube.com/watch?v=B1Sf1IhA0j4) 58 | - :movie_camera: [UTF-8](https://www.youtube.com/watch?v=vLBtrd9Ar28) 59 | 60 | ### Latency 61 | - [Interactive Latency Infographics](https://people.eecs.berkeley.edu/~rcs/research/interactive_latency.html) 62 | - :page_facing_up: [Latency Numbers Every Programmer Should Know](https://gist.github.com/jboner/2841832) 63 | 64 | ### Time 65 | - :page_facing_up: [Some notes about time](https://unix4lyfe.org/time/) 66 | - :movie_camera: [The Problem with Timezones](https://www.youtube.com/watch?v=-5wpm-gesOY) 67 | 68 | ### Memory 69 | - :page_facing_up: [What every Programmer should know about memory](https://lwn.net/Articles/250967/) 70 | 71 | ### Distributed Systems 72 | - :book: [Understanding Distributed Systems](https://www.goodreads.com/book/show/56977420-understanding-distributed-systems) 73 | - :book: [Designing Data-Intensive Applications](https://www.goodreads.com/book/show/23463279-designing-data-intensive-applications) 74 | - :scroll: [Designs, Lessons and Advice from Building Large Distributed Systems](https://www.cs.cornell.edu/projects/ladis2009/talks/dean-keynote-ladis2009.pdf) 75 | - :scroll: [Time, Clocks and the Ordering of Events in a Distributed System](https://www.microsoft.com/en-us/research/publication/time-clocks-ordering-events-distributed-system/?from=http%3A%2F%2Fresearch.microsoft.com%2Fen-us%2Fum%2Fpeople%2Flamport%2Fpubs%2Ftime-clocks.pdf) 76 | - :page_facing_up: [There is No Now](https://queue.acm.org/detail.cfm?id=2745385) 77 | - :page_facing_up: [Jepsen: how different databases behave under partition](https://aphyr.com/tags/jepsen) 78 | - :scroll: [Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/~zuyu/files/fallacies.pdf) 79 | 80 | ### RegExp 81 | - [RegexHQ](https://github.com/regexhq) 82 | - [Learn regex the easy way](https://github.com/ziishaned/learn-regex) 83 | 84 | ### Security 85 | - :book: [Security Programming](https://www.dwheeler.com/secure-programs/) 86 | - :page_facing_up: [Rolling Your Own Crypto](http://loup-vaillant.fr/articles/rolling-your-own-crypto) 87 | - :page_facing_up: [Cryptographic Right Answers](https://gist.github.com/tqbf/be58d2d39690c3b366ad) 88 | - :page_facing_up: [An Open Letter to Developers Everywhere (About Cryptography)](https://gist.github.com/paragonie-scott/e9319254c8ecbad4f227) 89 | - :book: [Foundations of Security: What Every Programmer Needs to Know ](https://www.goodreads.com/book/show/128003.Foundations_of_Security) 90 | - [OWASP Top 10](https://owasp.org/www-project-top-ten) 91 | - [Web Application Exploits and Defenses](https://google-gruyere.appspot.com/part1) 92 | - :page_facing_up: [Hashing, Encryption and Encoding](https://www.integralist.co.uk/posts/hashing-and-encryption/) 93 | 94 | ### UX/Usability 95 | - :book: [Don't Make Me Think: A Common Sense Approach to Web Usability](https://www.goodreads.com/book/show/18197267-don-t-make-me-think-revisited) 96 | - :movie_camera: [Inventing on Principle](https://vimeo.com/36579366) 97 | 98 | 99 | ### SEO 100 | - :page_facing_up: [What Every Programmer Should Know About SEO](https://katemats.com/blog/what-every-programmer-should-know-about-seo) 101 | 102 | ### Architecture 103 | - :scroll: [A Field Guide to Boxology](https://web.cs.wpi.edu/~cs562/s98/pdf/Boxology.pdf) 104 | - :scroll: [Out of the Tar Pit](https://github.com/papers-we-love/papers-we-love/blob/master/design/out-of-the-tar-pit.pdf?raw=true) 105 | - :scroll: [No Silver Bullet — Essence and Accidents of Software Engineering](http://www.cs.unc.edu/techreports/86-020.pdf) 106 | - :movie_camera: [Growing a Language](https://www.youtube.com/watch?v=_ahvzDzKdB0) 107 | - :movie_camera: [CQRS and Event Sourcing](https://www.youtube.com/watch?v=JHGkaShoyNs) 108 | - :book: [Practical Object Oriented Design in Ruby](https://www.poodr.com/) 109 | - :movie_camera: [Evolutionary Software Architectures](https://www.youtube.com/watch?v=CglSFhwbI3s) 110 | - [System Design: A Primer](https://github.com/donnemartin/system-design-primer) 111 | - :page_facing_up: [How JavaScript works: part-1](https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cf), [2](https://blog.sessionstack.com/how-javascript-works-inside-the-v8-engine-5-tips-on-how-to-write-optimized-code-ac089e62b12e), [3](https://blog.sessionstack.com/how-javascript-works-memory-management-how-to-handle-4-common-memory-leaks-3f28b94cfbec), [4](https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5) 112 | - :movie_camera: [Entity-Component-System Architecture with Unity by example](https://www.youtube.com/watch?v=lNTaC-JWmdI&t=166s&list=PLZlJZzHmx31XvgT96DfbXQ4IMb1ryztbp&index=33) 113 | 114 | ### Code Design 115 | - :page_facing_up: [Programming Principles Wiki](http://www.principles-wiki.net/) 116 | 117 | ### Engineering Philosophy 118 | - :movie_camera: [Category Theory in Life](https://www.youtube.com/watch?v=ho7oagHeqNc) 119 | - :movie_camera: [Simple Made Easy](https://www.infoq.com/presentations/Simple-Made-Easy) 120 | - :page_facing_up: [Speed In Software Development](https://www.targetprocess.com/articles/speed-in-software-development/) 121 | - :movie_camera: [#NoEstimates](https://www.youtube.com/watch?v=QVBlnCTu9Ms) 122 | - :movie_camera: [The Myth of the Genius Programmer](https://www.youtube.com/watch?v=0SARbwvhupQ&feature=youtu.be) 123 | - :movie_camera: [Making Badass Developers](https://www.youtube.com/watch?v=FKTxC9pl-WM&t=2s) 124 | - :page_facing_up: [The Ten Rules of a Zen Programmer](https://www.zenprogrammer.org/en/10-rules-of-a-zen-programmer.html) 125 | - :page_facing_up: [The mythical 10x programmer](http://antirez.com/news/112) 126 | - :page_facing_up: [The Debugging Mindset](https://queue.acm.org/detail.cfm?id=3068754) 127 | - :movie_camera: [The Future of Programming](http://worrydream.com/dbx/) 128 | - :page_facing_up: [The Good Software Development Manifesto](https://www.infoworld.com/article/3214481/application-development/the-good-software-development-manifesto.html) 129 | - :movie_camera: [All the Little Things](https://www.youtube.com/watch?v=8bZh5LMaSmE) 130 | - :page_facing_up: [Teach Yourself Programming in Ten Years](http://norvig.com/21-days.html) 131 | 132 | 133 | ### Practices 134 | - :book: [Working Effectively with Legacy Code](https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code) 135 | - :book: [The Art of Readable Code: Simple and Practical Techniques for Writing Better Code](https://www.goodreads.com/ru/book/show/8677004-the-art-of-readable-code) 136 | - :book: [Code Complete](https://www.goodreads.com/book/show/4845.Code_Complete) 137 | - :book: [Clean Code: A Handbook of Agile Software Craftsmanship](https://www.goodreads.com/book/show/3735293-clean-code) 138 | - :book: [Test Driven Development: By Example](https://www.goodreads.com/book/show/387190.Test_Driven_Development) 139 | - :white_check_mark: [Going To Production Checklist](https://github.com/mr-mig/going-to-production) 140 | - :book: [Release It!](https://www.goodreads.com/book/show/1069827.Release_It_) 141 | - :book: [Professor Frisby's Mostly Adequate Guide to Functional Programming](https://mostly-adequate.gitbook.io/mostly-adequate-guide/) 142 | - :book: [SICP: Structure and Interpretation of Computer Programs](https://www.goodreads.com/book/show/43713.Structure_and_Interpretation_of_Computer_Programs) 143 | - :page_facing_up: [Thirteen Ways of Looking at a Turtle](https://fsharpforfunandprofit.com/posts/13-ways-of-looking-at-a-turtle-3/) 144 | - :scroll: [Programming Paradigms for Dummies: What Every Programmer Should Know](https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf) 145 | - [Learn X in Y Minutes](https://learnxinyminutes.com/) 146 | Learn the basics of a language in a highly condensed way. 147 | - [Hyperpolyglot](http://hyperpolyglot.org/) 148 | Compare commonly used features of more or less similar languages side-by-side. Helps you to jump Python<->Ruby, Ocaml<->Haskell, etc. 149 | - :page_facing_up: [Pomodoro for Programmers](https://medium.com/@mr_mig_by/pomodoro-for-programmers-d6568dd1e6fc) 150 | - :book: [Site Reliability Engineering](https://landing.google.com/sre/sre-book/toc/index.html) 151 | 152 | ### Career 153 | - :moneybag: [Levels FYI](https://www.levels.fyi) 154 | Salary stats for various tech companies. Better than Glassdoor. 155 | - :page_facing_up: [10 Things Every Programmer Should Know For Their First Job](http://www.applematters.com/article/10-things-every-programmer-should-know-for-their-first-job/) 156 | - :page_facing_up: [How Much Do Software Engineers Really Make in Each City?](https://www.codementor.io/blog/best-cities-software-engineer-earnings-271vpf599k) 157 | - :page_facing_up: [Software Engineers Tenure in San Francisco](https://hackerlife.co/blog/san-francisco-large-corporation-employee-tenure) 158 | - [Software Engineering 101](https://slides.com/mr-mig/se101) 159 | - :book: [The Passionate Programmer](https://www.goodreads.com/book/show/6399113-the-passionate-programmer) 160 | - :book: [Soft Skills: The software developer's life manual](https://www.goodreads.com/book/show/23232941-soft-skills) 161 | - :book: [The Complete Software Developer's Career Guide](https://www.goodreads.com/book/show/35674293-the-complete-software-developer-s-career-guide) 162 | - :book: [Programming Beyond Practices: Be More Than Just a Code Monkey](https://www.goodreads.com/book/show/29895093-programming-beyond-practices) 163 | - [A list of European Investors](https://docs.google.com/spreadsheets/d/1hfl67rI0Pk_hSm0GIX0QByW4NgfAH-cEmMa4N6UoO1w/edit#gid=1203141194) 164 | - :page_facing_up: [Ten Rules for Negotiating a Job Offer](https://medium.com/free-code-camp/ten-rules-for-negotiating-a-job-offer-ee17cccbdab6) 165 | - :page_facing_up: [How To Interview As a Developer Candidate](https://medium.freecodecamp.com/how-to-interview-as-a-developer-candidate-b666734f12dd) 166 | - :page_facing_up: [How To Get a Tech Job Abroad Faster](https://relocate.me/blog/job-relocation/landing-a-tech-job-abroad-7-simple-tips/#more-514) 167 | - :book: [How To Be A STAR Engineer](http://vlsicad.ucsd.edu/Research/Advice/star_engineer.pdf) 168 | - :page_facing_up: [TL;DR; Stock Options](https://tldroptions.io/) 169 | - :page_facing_up: [Equity 101 for Startup Employees](https://blog.carta.com/equity-101-stock-option-basics/) 170 | - :book: [Cracking the Coding Interview: 189 Programming Questions and Solutions](https://www.goodreads.com/book/show/25707092-cracking-the-coding-interview) 171 | - :fire: [Everything you need to know to get the job](https://github.com/kdn251/interviews) 172 | - :book: [Tech Interview Handbook](https://github.com/yangshun/tech-interview-handbook) 173 | - :page_facing_up: [Teach Yourself Programming in Ten Years](https://norvig.com/21-days.html) 174 | - :page_facing_up: [What you should know as a founder of a software company](https://qotoqot.com/blog/founder-skills/) 175 | - :movie_camera: [Code Interview Prep & Programming Questions | Pramp](https://www.pramp.com/) 176 | - :book: [97 things every programmer should know](https://github.com/97-things/97-things-every-programmer-should-know) 177 | - :movie_camera: [A Philosophy of Software Design | John Ousterhout | Talks at Google](https://www.youtube.com/watch?v=bmSAYlu0NcY&t=403s) 178 | 179 | ### Fine-tune Your Resume 180 | - :hammer: [CV Compiler](https://cvcompiler.com/) 181 | 182 | ### Open Source 183 | - :globe_with_meridians: [Learn how to use Git and GitHub](https://www.deployhq.com/git) 184 | 185 | ### Remote Work 186 | - :globe_with_meridians: [Remotive.io: Startups hiring remotely](https://docs.google.com/spreadsheets/d/1TLJSlNxCbwRNxy14Toe1PYwbCTY7h0CNHeer9J0VRzE/htmlview?sle=true#gid=1279011369) 187 | - :globe_with_meridians: [Remote Work List for Developers](https://github.com/georgemandis/remote-working-list) 188 | - :zap: [NomadList](https://nomadlist.com/) 189 | - :book: [The Ultimate Guide to Remote Work](https://zapier.com/learn/remote-work/) 190 | - :house: [Awesome Remote Job](https://github.com/lukasz-madon/awesome-remote-job) 191 | 192 | ### Problem Solving 193 | - :book: [The Art and Craft of Problem Solving](https://www.goodreads.com/book/show/593458.The_Art_and_Craft_of_Problem_Solving) 194 | - :book: [How to Solve It: A New Aspect of Mathematical Method](https://www.goodreads.com/book/show/192221.How_to_Solve_It) 195 | 196 | ### Soft Skills 197 | - :book: [Difficult Conversations](https://www.goodreads.com/book/show/774088.Difficult_Conversations) 198 | - :book: [Crucial Conversations](https://www.goodreads.com/book/show/15014.Crucial_Conversations) 199 | - :book: [How to Win Friends and Influence People](https://www.goodreads.com/book/show/4865.How_to_Win_Friends_and_Influence_People) 200 | 201 | ### Mental Health 202 | - [Awesome Mental Health](https://github.com/dreamingechoes/awesome-mental-health) 203 | A curated list of awesome articles, websites and resources about mental health in the software industry. 204 | 205 | ### Papers on Programming 206 | - :heart: [Papers We Love](https://github.com/papers-we-love/papers-we-love) 207 | - :newspaper: [The Morning Paper](https://blog.acolyer.org/) 208 | - 📜 [What Every Programmer Should Know About Memory](https://akkadia.org/drepper/cpumemory.pdf) 209 | - 📜 [Go To Statement Considered Harmful](https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf) 210 | - :newspaper: [Arxiv](https://arxiv.org/) 211 | - :newspaper: [Sci-hub](https://sci-hub.se/) 212 | 213 | ### Free Books on Programming 214 | - :books: [Free Programming Books](https://github.com/EbookFoundation/free-programming-books) 215 | 216 | ### Services :zap: 217 | - 🤖 [Abstract API's](https://www.abstractapi.com) 218 | - [Free For Dev](https://github.com/ripienaar/free-for-dev/blob/master/README.md) 219 | - [Public APIs](https://github.com/abhishekbanthia/Public-APIs) 220 | - [The Noun Project](https://thenounproject.com/) 221 | - [Without Coding](https://www.producthunt.com/@jurica87/collections/without-coding) 222 | - [Simpleicons](https://simpleicons.org/) 223 | - [Learn Anything](https://learn-anything.xyz/) 224 | - [repl.it](https://repl.it/) 225 | 226 | ### Licenses 227 | - [Choose An Open Source License](https://choosealicense.com/) 228 | - [Well-explained Software licenses in TLDR version](https://tldrlegal.com/) 229 | - [How open source licenses work and how to add them to your projects](https://medium.freecodecamp.org/how-open-source-licenses-work-and-how-to-add-them-to-your-projects-34310c3cf94) 230 | 231 | ### Where To Look For Further Info 232 | - [freeCodeCamp Guide](https://guide.freecodecamp.org/) 233 | - [GeeksForGeeks](https://www.geeksforgeeks.org/) 234 | - [Dev.To](https://dev.to/) 235 | - [Stack Overflow](https://stackoverflow.com/) 236 | - [Dzone](https://dzone.com/) 237 | 238 | ### Coding Practice Sites :zap: 239 | - :link: [CodeForces](http://codeforces.com/) 240 | - :link: [CodeChef](https://www.codechef.com) 241 | - :link: [Coderbyte](https://coderbyte.com/) 242 | - :link: [CodinGame](https://www.codingame.com/) 243 | - :link: [Cs Academy](https://csacademy.com/) 244 | - :link: [HackerRank](https://hackerrank.com/) 245 | - :link: [Spoj](https://spoj.com/) 246 | - :link: [HackerEarth](https://hackerearth.com/) 247 | - :link: [TopCoder](https://www.topcoder.com/) 248 | - :link: [Codewars](https://codewars.com/) 249 | - :link: [Exercism](http://www.exercism.io/) 250 | - :link: [CodeSignal](https://codesignal.com/) 251 | - :link: [Project Euler](https://projecteuler.net/) 252 | - :link: [LeetCode](https://leetcode.com/) 253 | - :link: [Firecode.io](https://www.firecode.io/) 254 | - :link: [InterviewBit](https://www.interviewbit.com/) 255 | - :link: [uCoder](https://ucoder.com.br) 256 | - :link: [LintCode](https://www.lintcode.com/) 257 | - :link: [CodeCombat](https://codecombat.com/) 258 | - :link: [InterviewCake](https://www.interviewcake.com/) 259 | - :link: [At Coder](https://atcoder.jp/) 260 | - :link: [Codility](https://www.codility.com/) 261 | - :link: [ICPC Problem Archive](https://icpc.kattis.com/) 262 | - :link: [Codemia](https://codemia.io/) 263 | --------------------------------------------------------------------------------