# Programming ## Table of contents * [Programming challenges](#programming-challenges) * [API](#api) * [Assembly](#assembly) * [C/C++](#cc) * [Calm programming / Slow programming](#calm-programming--slow-programming) * [Clean code and best practices](#clean-code-and-best-practices) * [Naming conventions](#naming-conventions) * [Conferences](#conferences) * [Correctness](#correctness) * [Database](#database) * [Debugging](#debugging) * [Elixir](#elixir) * [Erlang](#erlang) * [Gamedev](#gamedev) * [Git :octocat:](#git-octocat) * [Dotfiles / Aliases](#dotfiles--aliases) * [GitHub](#github) * [Golang / Go](#golang--go) * [Groovy](#groovy) * [Haskell](#haskell) * [Java](#java) * [Java EE](#java-ee) * [JavaScript](#javascript) * [Kafka](#kafka) * [Kotlin](#kotlin) * [Lisp](#lisp) * [Machine learning](#machine-learning) * [Mobile development :iphone:](#mobile-development-iphone) * [PHP](#php) * [Productivity :computer:](#productivity-computer) * [Programmer humor](#programmer-humor) * [Prolog](#prolog) * [Python](#python) * [Reverse engineering](#reverse-engineering) * [Ruby](#ruby) * [Rust](#rust) > News * :unicorn: [**Lobsters**](https://lobste.rs/) - Lobsters is a technology-focused community centered around link aggregation and discussion * :fire: [**DEVURLS**](https://devurls.com/) - a developer news aggregator. * [InfoQ](https://www.infoq.com/) - news, videos, books for software developers * [SlideShare](https://www.slideshare.net/featured/category/software) - featured software related presentations on SlideShare * [DZone](https://dzone.com/) - programming & devops news * [/r/programming](https://www.reddit.com/r/programming/) - everything about programming on reddit * [Player FM](http://player.fm/featured/programming) - Programming podcasts * [Player FM](https://player.fm/podcasts/Software-Development) - Software Development Podcasts * [Devoxx](https://www.youtube.com/channel/UCCBVCTuk6uJrN3iFV_3vurg/playlists) - Devoxx Youtube Channel * [Stack Overflow Blog](https://stackoverflow.blog/podcasts/) - listen in on what’s new with the world’s largest developer community. * :star: [**Coding Blocks**](https://www.codingblocks.net/) - podcast and website for learning how to become a better software developer, covers a wide variety of programming best practices | the rhythm is sometimes slow * [Code as Craft](https://codeascraft.com/) - Etsy' blog for craftsmen * [feststelltaste (Markus Harrer)](http://www.feststelltaste.de/) - About Legacy Systems, Software Analytics and the Fundamental Problems of Software Engineering * [TIOBE Index](https://www.tiobe.com/tiobe-index/) * [Methods & Tools Editor Blog](http://blog.martinig.ch/) - Software Development Ideas + [links](http://blog.martinig.ch/category/links/) * [Zach Holman](https://zachholman.com/) - Blog of Zach Holman, Founder of During, previously at GitHub and Gild. * [Software Engineering Radio](http://www.se-radio.net/) - The Podcast for Professional Software Developers * [O'Reilly Media](https://www.oreilly.com/ideas) - Ideas | What's on the radar * [dev-books](http://www.dev-books.com/) - top of most mentioned books on stackoverflow * [hellerve/programming-talks](https://github.com/hellerve/programming-talks) - Awesome & Interesting Talks concerning Programming * [Itamar Turner-Trauring](https://codewithoutrules.com/career/) - Get a better job ; articles about health & work life balance, programmer productivity, problem solving, etc. * [Simple Programmer](https://simpleprogrammer.com/) - Robert Whitcomb's Blog about soft skills + health & work-life balance for programmers * [programming is terrible](https://programmingisterrible.com/) - Blog of Thomas Figg (tef) | lessons learned from a life wasted * [The Holy Java](https://theholyjava.wordpress.com/) - Building the right thing, building it right, fast * [Code Simplicity](https://www.codesimplicity.com/) - Max Kanat-Alexander's Blog. Code Simplicity focuses on the idea of simplicity: simple things, simple thoughts, and simple ideas that can make the world of computing a better place. * [The Changelog](https://changelog.com/podcast) - [Podcast] Conversations with the hackers, leaders, and innovators of open source. * [Industrial Logic Blog](https://www.industriallogic.com/blog/) - leveraging safety wisdom in workspace from manufacturing, psychology, culture change and Agile and Lean developmen * [GOTO Blog](https://blog.gotocon.com/blog/) - Created for developers, by developers, GOTO is focused on bringing together the best minds in the software community and the most interesting topics to light. * [/r/coolgithubprojects](https://www.reddit.com/r/coolgithubprojects/) - Keep track of new cool github projects * [The Changelog](https://changelog.com/news/top) - Top posts * [Unix Sheikh](https://www.unixsheikh.com/articles.html) - Articles and thoughts about open source, BSD and GNU/Linux system administration, and programming - the pragmatic way. * :star: [**daily.dev**](https://daily.dev/) - The Homepage Every Developer Deserves | daily.dev is the fastest growing online community for developers to stay updated on the best developer news. > Learn * :fire: [**Sonkeng Maldini/Best-websites-a-programmer-should-visit**](https://github.com/sdmg15/Best-websites-a-programmer-should-visit) - Best websites programmers should visit * [Stack Exchange](https://stackexchange.com/sites#technology) - All technology related sites on Stack Exchange * [Stack Exchange](https://codereview.stackexchange.com/) - Stack Exchange for code reviews * [Hack Reactor](http://www.hackreactor.com/blog/infographic-laurie-voss-things-everyone-knows-except-you) - Infographic of productivity tips for developers, to share with your teammates * [javarevisited](http://javarevisited.blogspot.be/2015/08/how-to-become-better-interviewer-programming.html) - (2015) 11 Tips to become a better Interviewer? * [10 C99 tricks](https://blog.noctua-software.com/c-tricks.html) * [Java Performance Tuning](http://www.javaperformancetuning.com/) - regular tips and news about java performance tuning * [Joël Spolsky](https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/) - (2000) The Joel Test: 12 Steps to Better Code * [Corinna Baldauf](http://wall-skills.com/2016/agile-engineering-self-assessment/) - (2016) Agile Engineering Self Assessment * [Emiliano Soldi](https://www.linkedin.com/pulse/relentlessly-avoid-technical-debt-emiliano-soldi) - Relentlessly Avoid Technical Debt * [Hadi Hariri](https://www.youtube.com/watch?v=3wyd6J3yjcs) - [Video] The Silver Bullet Syndrome (Devoxx Brussels 2015) * [Nick Janetakis](https://nickjanetakis.com/blog/how-to-pick-a-good-monitor-for-software-development) - How to Pick a Good Monitor for Software Development * [Philip Reames](https://web.archive.org/web/20160731182553/http://www.philipreames.com/Blog/things-every-practicing-software-engineer-should-aim-to-know/) - Things every practicing software engineer should aim to know. **Bonus** : [alternative link](http://www.tuicool.com/articles/YvIvMj) * [Engin Yöyen](http://enginyoyen.com/improving-problem-solving-skills-for-developers/) - Improving problem-solving skills for developers * [James Hood](https://dev.to/jlhcoder/tips-for-new-software-developers) - Tips for New Software Developers * [Andrew Wulf](http://thecodist.com/article/lessons_from_a_lifetime_of_being_a_programmer) - Lessons From A Lifetime Of Being A Programmer * [Mo Bitar](https://journal.standardnotes.org/surviving-in-open-source-47792a7c59dc) - Surviving Open-Source * [Ben Hilburn](https://dev.to/bhilburn/on-senior-engineers) - On Senior Engineers * [John Allspaw](http://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/) - (2012) On Being A Senior Engineer * [Gregg Caines](http://caines.ca/blog/2017/06/04/so-you-want-to-be-a-more-senior-engineer/) - (2017) So You Want to Be a More Senior Engineer? * [Andrew Wulf](http://thecodist.com/article/your_progress_as_a_programmer_is_all_up_to_you) - Your Progress As A Programmer Is All Up To You * [Justyna Ilczuk](http://tinystruggles.com/2014/05/13/leveling-up-as-a-software-developer.html) - (2014) Leveling up as a software developer * [Web Development Reading List](https://wdrl.info/almanac/2017) - The 2017 Almanac : What happened in “News” in 2016? * [Web Development Reading List](https://wdrl.info/evergreen) - The Evergreen List : selection of resources that are important for a longer time. * :star: [**Hugo Matilla**](https://github.com/HugoMatilla/The-Pragmatic-Programmer) - Summary of the book The Pragmatic Programmer by Andrew Hunt and David Thomas * [Methods & Tools](http://www.methodsandtools.com/mt/download.php) - magazine about software development & testing with free content. See also [Partner websites](http://www.methodsandtools.com/network.php) * [Philip Stark](https://gist.github.com/hellerbarde/2843375) - Latency numbers every programmer should know * [Vinh Quốc Nguyễn](https://betterdev.link/) - Better Dev Link collects links around the web that aims to help you learn something new * [Andrew Wulf](http://thecodist.com/article/the-biggest-difference-between-coding-today-and-when-i-started-in-the-80-s) - The Biggest Difference Between Coding Today and When I Started in the 80’s * [Andrew Wulf](http://thecodist.com/article/what_makes_a_programmer_good) - What Makes a Programmer Good? * [Stack Overflow](http://chat.stackoverflow.com/) - chat rooms on stack overflow * :star: [**RankRed**](http://www.rankred.com/nasa-coding-rules/) - NASA’s 10 Coding Rules for Writing Safety Critical Program * [/r/tinycode](https://www.reddit.com/r/tinycode/) - minimalistic, often but not always simple implementations of just about everything. * [Ben Hilburn](https://bhilburn.org/a-keystone-of-success/) - What mature engineers do and don't do / what it means to be a mature engineer. * [Adam Williamson](https://www.happyassassin.net/2016/11/04/i-dont-like-computers/) - (2016) I don't like computers : touching testimonial... because sometimes, we also feel that the web loses us * [OWASP Wiki](https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-_Quick_Reference_Guide) - OWASP Secure coding practices * [Lars Kappert](https://webpro.github.io/programming-principles/) - Categorized overview of Programming Principles. [Sources](https://github.com/webpro/programming-principles) * [MorganGeek](../PRINCIPLES.md) - some programming and life lessons, collected from various sources including myself * [DigitalOcean](https://www.digitalocean.com/community/tutorials) - development and sysadmin tutorials. * [Gojko Adzic](https://gojko.net/posts.html) - all articles by Gojko Adzic * [Ozan Onay](https://blog.bradfieldcs.com/you-are-not-google-84912cf44afb) - You Are Not Google * [Community Picks](http://www.communitypicks.com/) - recommended books for hacker subreddits * [O'reilly](http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book) - contributions appearing in book 97 Things Every Programmer Should Know * [Geshan Manandhar](https://geshan.com.np/blog/2017/06/software-companies-tech-competency-matrix/) - (2017) Software Companies Tech Competency Matrix / useful skill matrix for devops, security, database... * [kevindeasis/awesome-fullstack](https://github.com/kevindeasis/awesome-fullstack) - Learn front-end, middle-tier, back-end tier, algorithms, and continuous delivery * [Raphael Brugier](http://blog.ippon.tech/5-laws-every-developer-should-know/) - 5 laws every developer should know * [Anni Bond](https://opensource.com/article/17/9/adopting-minimalism-your-docs) - Adopting minimalism in your docs * [Joel Grus](http://joelgrus.com/2013/12/24/why-programming-language-x-is-unambiguously-better-than-programming-language-y/) - (2013) Why [Programming Language X] Is Unambiguously Better than [Programming Language Y] * [Chris Parnin](http://blog.ninlabs.com/2013/12/software-engineering-the-next-50-years/) - (2013) Software Engineering: The Next 50 Years * :star: [**The Daily WTF**](http://thedailywtf.com/) - is your how-not-to guide for developing software. We recount tales of disastrous development, from project management gone spectacularly bad to inexplicable coding choices. * [Trey Harris](http://www.ibiblio.org/harris/500milemail.html) - The case of the 500-mile email * [Jonathan Callahan](https://dzone.com/articles/best-best-practices-ever) - (2013) Best Best Practices Ever (for scientific computing) * [openjck/best-practices](https://github.com/openjck/best-practices) - Programming Best Practices Tidbits : A Collection of quotes and paraphrases for developers from around the web. **Bonus** : source repo at [timoxley/best-practices](https://github.com/timoxley/best-practices) * [Ed Finkler](https://the-pastry-box-project.net/ed-finkler/2014-january-6) - (2014) How To Be A Great Developer * [moviecode](https://moviecode.tumblr.com/) - Source Code in TV and Films / Images of the computer code appearing in TV and films and what they really are. * [Alfred Thompson](http://blog.acthompson.net/2013/07/5-programming-mistakes-to-warn-students.html) - (2013) 5 Programming Mistakes To Warn Students About * [John Sonmez](https://simpleprogrammer.com/2013/08/19/software-development-career/) - (2013) 4 Things I Wish I Would Have Known When I Started My Software Development Career * [JAX Editorial Team](https://jaxenter.com/the-most-dangerous-word-in-the-english-language-for-all-developers-108018.html) - (2014) The most dangerous word in the English language for all developers * [Dale Myers](https://myers.io/2017/04/04/the-joel-test-for-2017/) - (2017) The Joel Test for 2017 * [Martin Fowler](https://www.martinfowler.com/) - author, speaker, and loud-mouth on the design of enterprise software. Evangelist of refactoring and CI/CD * [Ronald Jeffries](https://www.ronjeffries.com/xprog/articles/refactoring-not-on-the-backlog/) - (2014) why you shouldn't put refactoring stories on your backlog * [Martin Fowler](https://www.martinfowler.com/bliki/BoiledCarrot.html) - (2016) When a technique fails ask yourself if it's a faulty technique or a faulty use of the technique * [Seph Gentle](https://josephg.com/blog/what-i-tell-all-new-programmers/) - (2014) What I tell all new programmers * [Billy Hollis](https://www.youtube.com/watch?v=LiGsw_k8JhY) - (2006) [Video] about programmer code addiction * [Richard Clayton](https://rclayton.silvrback.com/software-estimation-is-a-losing-game) - (2014) Software Estimation is a Losing Game * [John Sonmez](https://dzone.com/articles/4-levels-freedom-software) - (2014) The 4 Levels of Freedom For Software Developers * [NUS Computing](http://www.comp.nus.edu.sg/~damithch/pages/SE-quotes.htm?type=bestQuotes) - Quotes for Software Engineers * [Jason McCreary](https://jason.pureconcepts.net/2015/01/are-you-a-boy-scout/) - (2015) A look at how the simple practice of "boyscouting" can improve your code. * [John D. Cook](https://www.johndcook.com/blog/2009/03/19/the-buck-stops-with-the-programmer/) - (2009) The buck stops with the programmer * [John D. Cook](https://www.johndcook.com/blog/2008/10/27/why-there-will-always-be-programmers/) - (2008) Why there will always be programmers * [John D. Cook](https://www.johndcook.com/blog/2017/08/19/programming-language-life-expectancy/) - (2017) Programming language life expectancy : about Go, C#, Java, Python, Haskell, Lisp and Fortran future deaths * [John D. Cook](https://www.johndcook.com/blog/2017/06/09/one-practical-advantage-of-functional-programming/) - (2017) One practical application of functional programming * [Andrey Karpov](https://www.viva64.com/en/b/0260/) - (2014) The Last Line Effect // about evil copy paste * [Neal Ford](https://vimeo.com/103403448) - (2013) [Video] 5 Reasons you should care about Functional Programming * [Christian Neumanns](https://www.codeproject.com/Articles/787668/Why-We-Should-Love-null) - (2014) Why We Should Love 'null' / + the Null Object Pattern * [J. B. Rainsberger](http://blog.thecodewhisperer.com/permalink/musings-on-refactoring-as-waste) - (2014) Musings on Refactoring as Waste * [Win flex-bison](https://sourceforge.net/projects/winflexbison/files/) - Win flex-bison is a port Flex & Bison tools to the Windows platform * [The Twelve-Factor App](https://12factor.net/) - is a methodology for building software-as-a-service apps of great quality * [mr-mig/every-programmer-should-know](https://github.com/mr-mig/every-programmer-should-know) - A collection of (mostly) technical things every software developer should know. * [Philip Guo](http://pgbovine.net/programmers-talking-to-beginners.htm) - Programmers: Please don't ever say this to beginners ... * [Sam Bessalah](https://speakerdeck.com/samklr/structures-de-donnees-exotiques) - [Slides] (2013) some useful, interesting but less known data structures * [Cyriac Thomas](https://www.compile.com/blog/product/be-lazy-build-better-systems/) - Be lazy, build better systems * [Deon Thomas](https://www.thoughtworks.com/insights/blog/good-programer-avoid-being-one) - (2014) A Good Programmer: Why You Need to Avoid Being One * [Omar El Gabry](https://hackernoon.com/refactoring-the-hygienic-habit-b2ee0f5528ba) - Refactoring — The Hygienic Habit * [Jeff Atwood](https://blog.codinghorror.com/regular-expressions-now-you-have-two-problems/) - (2008) Regular Expressions: Now You Have Two Problems * [John D. Cook](https://www.johndcook.com/blog/2014/05/01/look-behind-regex/) - (2014) Look-behind regex * [Dennis Stevens](https://www.leadingagile.com/2013/09/stop-writing-code-cant-yet-test/) - (2013) Stop Writing Code You Can't Yet Test * [Lin Taylor](http://linbug.github.io/programming/2017/10/11/Pseudocode-Programming-fake-it-before-you-make-it/) - (2017) Pseudocode Programming: fake it before you make it * [R0ml](https://codewords.recurse.com/issues/one/why-are-objects-so-hard-to-debug) - Why are objects so hard to debug? * [Gregg Caines](http://caines.ca/blog/2017/10/21/working-without-estimates/) - (2017) Working Without Estimates * [Umer Mansoor](https://codeahoy.com/2017/08/19/yagni-cargo-cult-and-overengineering-the-planes-wont-land-just-because-you-built-a-runway-in-your-backyard/) - (2017) YAGNI, Cargo Cult and Overengineering - the Planes Won't Land Just Because You Built a Runway in Your Backyard * [Lawrence Kesteloot](https://www.teamten.com/lawrence/writings/the_language_squint_test.html) - (2008) The Language Squint Test * [c9x](http://c9x.me/compile/bib/) - Resources for Amateur Compiler Writers * [Brian Kelly](https://morethancoding.com/2012/08/17/the-programming-language-skill-scale/) - (2012) The Programming Language Skill Scale * [Brian Kelly](https://morethancoding.com/2011/05/22/the-programmer-pyramid/) - (2011) The Programmer Pyramid * [Brian Kelly](https://morethancoding.com/2011/02/27/the-greatest-software-stories-ever-told/) - (2011) [Books] The Greatest Software Stories Ever Told * [Amir Rachum](http://amir.rachum.com/blog/2016/09/17/shared-libraries/) - (2016) Shared Libraries: Understanding Dynamic Loading * [Erik Helin and Adam Renberg](http://littleosbook.github.io/#a-simple-read-only-file-system) - [Book] The little book about OS development * [Tom Preston-Werner](http://tom.preston-werner.com/2010/08/23/readme-driven-development.html) - (2010) Readme Driven Development * [toml-lang/toml](https://github.com/toml-lang/toml) - Tom's Obvious, Minimal Language | TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics. * [DataFire](https://datafire-repos.github.io/oblique-strategies/) - Oblique Strategies for Programmers : Random tips for building, debugging, and overcoming creative blocks. * [onaclov2000/PassionateProgrammer](https://github.com/onaclov2000/PassionateProgrammer) - a list of the tips from the book "Passionate Programmer" * [sfrapoport/daily-pragmatic-tip](https://github.com/sfrapoport/daily-pragmatic-tip/blob/master/pragmaticprogrammer.txt) - notes from book "Pragmatic Programmer" * [AdesisNetlife/coder-bible](https://github.com/AdesisNetlife/coder-bible) - Thoughts and resources to be a pragmatic programmer * [jbelmont/pragmatic-programmer-and-clean-code](https://github.com/jbelmont/pragmatic-programmer-and-clean-code) - principles from Pragmatic Programmer and Clean Code books * [braydie/PragProgTips](https://github.com/braydie/PragProgTips/blob/master/index.html) - some tips from pragmatic programmer book * [benas/awesome-software-craftsmanship](https://github.com/benas/awesome-software-craftsmanship) - A curated list of awesome software craftsmanship resources * [asciamanna/software-craftsmanship-catalog](https://github.com/asciamanna/software-craftsmanship-catalog/blob/master/catalog.md) - a collection of resources about software craftsmanship, TDD, XP, etc. * [futurice/backend-best-practices](https://github.com/futurice/backend-best-practices) - An evolving description of general best practices for backend development. * [dhilipsiva/awesome-programmer](https://github.com/dhilipsiva/awesome-programmer) - A collection of resources to learn from and become a self-taught awesome programmer. * [kdeldycke/awesome-falsehood](https://github.com/kdeldycke/awesome-falsehood) - Curated list of falsehoods programmers believe in * [braydie/HowToBeAProgrammer](https://github.com/braydie/HowToBeAProgrammer) - A guide on how to be a Programmer * [Jon Cairns](https://medium.com/techspiration-ideas-making-it-happen/communication-how-to-be-a-better-software-developer-869c50767701) - Communication: how to be a better software developer * [stanislaw/awesome-safety-critical](https://github.com/stanislaw/awesome-safety-critical) - resources about programming practices for writing safety-critical software. * [Carl Hembrough](https://dev.to/carlhembrough/programming-used-to-be-fun) - (2017) When programming was no longer fun | another story about impostor syndrome * [Umer Mansoor](https://codeahoy.com/2016/06/03/write-less-code/) - (2016) Write Less Code * [Ezekiel Buchheit](https://www.codementor.io/ezekielbuchheit/no-i-have-no-side-code-projects-to-show-you-cz1tyhgdz) - (2017) No, I have no side code projects to show you * [Ganeshwara Herawan Hananda](https://medium.com/@lolski/career-tips-for-young-software-engineers-21f7422ac95e) - (2017) 7 Tips On How To Become A Competent Software Engineer * [Shane Fast](https://medium.com/paper-engineering/what-a-kids-cartoon-taught-me-about-software-7cbd3bf45c6a) - (2017) What a kid’s cartoon taught me about software * [Jonas Downey](https://m.signalvnoise.com/move-slowly-and-fix-things-e5a560fd928b) - (2017) Move Slowly and Fix Things | Ruminations on the heavy weight of software design * [Phil Johnson](https://www.itworld.com/article/2876179/csi-computer-science-your-coding-style-can-give-you-away.html) - (2015) CSI Computer Science: Your coding style can give you away * :star: [**Pierluigi Vernetto**](http://www.javamonamour.org/2015/01/end-of-my-32-years-contract-on-osb.html) - (2015) End of my 3.2 years contract on a OSB integration project.... lesson learned. | some good lessons learned for developers / project management * [Dan McKinley](https://speakerdeck.com/mcfunley/choose-boring-technology) - (2015) [Slides] Choose Boring Technology * [Philippe Bourgau](http://philippe.bourgau.net/dont-stick-to-tdds-red-green-refactor-loop-to-the-letter/) - (2017) Don't Stick to TDD's Red-Green-Refactor Loop to the Letter * [List of programming languages by type](https://en.m.wikipedia.org/wiki/List_of_programming_languages_by_type) * [Yegor Bugayenko](http://www.yegor256.com/2014/10/29/how-much-do-you-cost.html) - (2014) How Much Do You Cost? * [James Routley](https://routley.io/posts/starting-a-programming-blog/) - (2017) Advice on starting a programming blog * [Manish Goregaokar](https://manishearth.github.io/blog/2016/01/03/making-your-open-source-project-newcomer-friendly/) - (2016) Making Your Open Source Project Newcomer-friendly * [Erlend Hamberg](https://hamberg.no/erlend/posts/2010-03-20-code-reading-as-a-team-activity.html) - (2010) Code Reading as a Team Activity * [zalando/zalando-howto-open-source](https://github.com/zalando/zalando-howto-open-source) - How to Open Source at Zalando. **Bonus** : [Zalando's README Template](https://github.com/zalando/zalando-howto-open-source/blob/master/READMEtemplate.md) * [MaximAbramchuck/awesome-interview-questions](https://github.com/MaximAbramchuck/awesome-interview-questions) - lists of interview questions. * [Yegor Bugayenko](http://www.yegor256.com/2014/09/10/anti-patterns-in-oop.html) - (2014) Anti-Patterns in OOP * [Joël Spolsky](https://www.joelonsoftware.com/2006/09/07/a-field-guide-to-developers-2/) - (2006) A Field Guide to Developers : what they’re looking for, what they like and dislike in a workplace, and what it’s going to take to be a top choice for top developers. * [Joël Spolsky](https://www.joelonsoftware.com/2007/11/16/how-to-demo-software/) - (2007) How to demo software * [Adrian Colyer](https://blog.acolyer.org/2017/12/01/analyzing-software-requirements-errors-in-safety-critical-embedded-systems/) - (2017) Analyzing software requirements errors in safety-critical embedded systems * [the morning paper](https://blog.acolyer.org/) - an interesting/influential/important paper from the world of CS every weekday morning, as selected by Adrian Colyer * [mmcgrana/services-engineering](https://github.com/mmcgrana/services-engineering) - A reading list for services engineering, with a focus on cloud infrastructure services. * [papers-we-love/papers-we-love](https://github.com/papers-we-love/papers-we-love) - Papers from the computer science community to read and discuss | **Bonus** : [Website](http://paperswelove.org/) - repository of academic computer science papers and a community who loves reading them. * [manuzhang/awesome-streaming](https://github.com/manuzhang/awesome-streaming) - a curated list of awesome streaming frameworks, applications, etc * [Fagner Martins Brack (fagnerbrack)](https://medium.com/@fagnerbrack/why-developers-become-frustrated-and-companies-cant-find-talent-c4114d8b72ac) - (2017) Why Developers Become Frustrated And Companies Can’t Find Talent * [Kim Hirokuni](http://kimh.github.io/blog/being-backend-engineer/) - (2017) Backend Engineer Principles * [FOSDEM](https://video.fosdem.org/) - video recordings from FOSDEM events (linux, containers, free software, open source, programming, ...) * [FoundersGrid](https://foundersgrid.com/code-management/) - (2014) How 50+ Startups Manage Their Code * [Rachel Potvin & Josh Levenberg](https://dl.acm.org/citation.cfm?id=2854146) - Why Google stores billions of lines of code in a single repository * [Florian Beijers](https://medium.freecodecamp.org/looking-back-to-what-started-it-all-731ef5424aec) - (2015) A Vision of Coding, Without Opening your Eyes * [pktzero](https://pktzero.wordpress.com/2015/01/11/reactive-programming-by-example/) - (2015) Reactive programming by example * [André Staltz](https://gist.github.com/staltz/868e7e9bc2a7b8c1f754) - (2014) The introduction to Reactive Programming you've been missing * [Ben Putano](https://stackify.com/software-development-trends-2018/) - (2017) 5 Software Development Trends for 2018: Developers Needed * [Bob Reselman](http://devopsagenda.techtarget.com/opinion/Why-the-promise-of-low-code-software-platforms-is-deceiving) - (2018) Why the promise of low-code software platforms is deceiving > Low-code/no-code platforms mean anyone can code, right? Wrong. This is a dangerous thought for enterprises. * [Nathan Coulter (Poor Yorick)](http://wiki.tcl.tk/8602) - (2018) Tips for writing quality software. **Archive** : [Web archive](https://web.archive.org/web/20170630183457/http://wiki.tcl.tk:80/8602) * [Kevin London](https://www.kevinlondon.com/2015/05/05/code-review-best-practices.html) - (2015) Code Review Best Practices * [Kevin London](https://www.kevinlondon.com/2015/09/10/10-software-talks-to-listen-to.html) - (2015) 10 Software Talks to Listen to on Your Way to Work * [MyBroadband](https://mybroadband.co.za/news/smartphones/246583-how-programmers-learn-to-code.html) - (2018) How programmers learn to code | What programmers want * [Fagner Martins Brack (fagnerbrack)](https://hackernoon.com/the-angry-programmer-52a93bfcbc3c) - (2016) The Angry Programmer | How an engineer can be competent and incompetent at the same time * [Devoxx Belgium](https://devoxx.be/2017/11/the-top-100-rated-devoxx-belgium-2017-talks/) - (2017) The Top-100 rated Devoxx Belgium 2017 talks * [The Cathedral and the Bazaar](https://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar) - [Book] Musings on Linux and Open Source by an Accidental Revolutionary * [Antonio Bello](https://www.raywenderlich.com/167015/learning-techniques-programmers) - (2017) Learning Techniques for Programmers, by Programmers * [Antonio Bello](https://www.raywenderlich.com/120612/freelance-software-development) - (2016) Freelance Software Development: Is It For You? * [Antonio Bello](https://www.raywenderlich.com/122835/freelance-software-development-tips) - (2016) Freelance Software Development Tips * [DZone](http://www.surveygizmo.com/s3/1883619/Developer-Personality-Test) - Developer Personality Test * [Sijin Joseph](http://sijinjoseph.com/programmer-competency-matrix/) - (2014) Programmer Competency Matrix * [Alvaro Videla](http://alvaro-videla.com/2014/09/a-programmers-role.html) - (2014) A Programmer's Role, about what clean code was like in 1967 **Bonus** : (1967) [PDF] Original publication [What Programmer Does](http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-9-pdf/k-9-u2769-1-Baker-What-Programmer-Does.pdf) * [Gregg Caines](http://caines.ca/blog/2009/12/26/the-lost-art-of-prototyping/) - (2009) The Lost Art of Prototyping * [Gregg Caines](http://caines.ca/blog/2010/12/05/quality-is-the-constraint/) - (2010) Quality Is the Constraint * [Steve McConnell](http://stevemcconnell.com/articles/software-quality-at-top-speed/) - (1996) Software Quality at Top Speed * [Steve McConnell](http://stevemcconnell.com/articles/real-quality-for-real-engineers/) - (2012) Real Quality For Real Engineers * [Steve McConnell](http://stevemcconnell.com/articles/teach-programming-principles-not-tools-and-tips/) - (1996) Teach Programming Principles, Not “Tools and Tips” * [Steve McConnell](http://stevemcconnell.com/articles/dealing-with-problem-programmers/) - (1998) Dealing With Problem Programmers * [Steve McConnell](http://stevemcconnell.com/articles/achieving-leaner-software/) - (1997) Achieving Leaner Software * [Steve McConnell](http://stevemcconnell.com/articles/software-ten-essentials/) - (1997) Software’s Ten Essentials * [Steve McConnell](http://stevemcconnell.com/articles/how-to-defend-an-unpopular-schedule/) - (1996) How to Defend an Unpopular Schedule * [Giedrius Majauskas](https://www.majauskas.com/programmer-mindset-5-traits-of-programmers-that-have-a-chance-to-become-good-ones) - (2009) Programmer mindset: 5 traits of programmers that have a chance to become good ones * [Dan Milstein](http://blog.hut8labs.com/coding-fast-and-slow.html) - (2013) Coding, Fast and Slow: Developers and the Psychology of Overconfidence | about inability of developers to predict how long a project will take. * [Laura Klein](https://www.usersknow.com/blog/2015/02/your-job-is-not-to-write-code.html) - (2015) Your Job Is Not to Write Code * [Adam Pittenger](https://medium.com/@apitt24/love-what-you-build-build-what-you-love-9cedbb05e32f) - (2013) Love what you build. Build what you love. * [Jim Bird](http://swreflections.blogspot.be/2014/08/feature-toggles-are-one-of-worst-kinds.html) - (2014) Feature Toggles are one of the worst kinds of Technical Debt * [Jez Humble](https://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/) - (2011) Make Large Scale Changes Incrementally with Branch By Abstraction * [Paul Hammant](https://paulhammant.com/blog/branch_by_abstraction.html) - (2007) Introducing Branch By Abstraction * [Paul Hammant](https://trunkbaseddevelopment.com/) - (2017) Trunk Based Development : This site attempts to collect all the related facts, rationale and techniques for Trunk-Based Development together in one place, complete with twenty-five diagrams to help explain things. All without using TBD as an acronym even once twice. * [Martin Fowler](https://www.martinfowler.com/bliki/FeatureBranch.html) - (2009) FeatureBranch | and dangers of feature branching * [Martin Fowler](https://www.martinfowler.com/bliki/FeatureToggle.html) - (2010) FeatureToggle | feature toggles as an alternative to evil feature branching * [Fernando Rubbo ](https://fernandorubbo.blogspot.be/2013/03/feature-toggles-good-or-bad.html) - (2013) Feature toggles: good or bad * [John Sonmez](https://simpleprogrammer.com/4-biggest-reasons-software-developers-suck-estimation/) - (2014) Why Software Developers Suck at Estimation * [John Sonmez](https://simpleprogrammer.com/5-ways-software-developers-can-become-better-estimation/) - (2014) 5 Ways Software Developers Can Become Better at Estimation * [Richard Clayton](https://rclayton.silvrback.com/serverless-isn-t-effortless) - (2017) Serverless isn't Effortless | Lessons we learned in our first serious Serverless project. * [Richard Clayton](https://rclayton.silvrback.com/software-engineering-is-not-a-job-it-s-a-profession) - (2014) Software Engineering is not a Job. It's a Profession. * [Jun Auza](http://www.junauza.com/2010/12/top-50-programming-quotes-of-all-time.html) - (2010) Popular quotes on programming * [Marco Kuiper](http://old.marcofolio.net/tips/27_inspiring_top_notch_programming_quotes.html) - 27 inspiring top notch programming quotes * [James Flight](https://hackernoon.com/critical-thinking-in-software-development-the-word-should-and-why-you-shouldn-t-listen-to-563090144331) - (2018) Critical thinking in software development, the word ‘should’, and why you shouldn’t listen to Martin Fowler * [Nicolò Pignatelli](https://hackernoon.com/this-is-not-the-dry-you-are-looking-for-a316ed3f445f) - (2018) This is not the DRY you are looking for * [Kode Vicious](https://queue.acm.org/detail.cfm?id=1740550) - (2010) Broken Builds | Frequent broken builds could be symptomatic of deeper problems within a development project. * [Kenneth N. Lodding, Nasa](https://queue.acm.org/detail.cfm?id=1016985) - (2004) Hitchhiker's Guide to Biomorphic Software | The natural world may be the inspiration we need for solving our computer problems. * [Lewis Menelaws](https://dev.to/lewismenelaws/how-to-fix-burnout-as-a-developer--4opl) - (2018) How to Fix Burnout as a Developer * [Tom MacWright](https://macwright.org/2018/02/08/advice-to-the-newish-programmer.html) - (2018) Advice to the newish programmer * [Keon Kim](https://keon.io/computer-scientists-trivia/) - Computer Scientist's Trivia | for programmers to understand how long a certain operation takes in and out of a computer. * :star: [**donnemartin/system-design-primer**](https://github.com/donnemartin/system-design-primer) - Learn how to design large-scale systems. Prep for the system design interview. * [Increment Staff](https://increment.com/development/what-its-like-to-be-a-developer-at/) - (2017) What it’s like to be a developer at … * [Itamar Turner-Trauring](https://codewithoutrules.com/2017/01/19/specialist-vs-generalist/) - (2017) Why you should have the skills of a generalist, but market yourself as a specialist * [Itamar Turner-Trauring](https://codewithoutrules.com/2017/02/19/ai-replace-programmers/) - (2017) When AI replaces programmers * [Itamar Turner-Trauring](https://codewithoutrules.com/2017/01/11/your-job-is-not-your-life/) - (2017) Staying competitive as a developer * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/11/10/work-life-balance-software-engineer/) - (2016) Work/life balance will make you a better software engineer * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/03/15/stagnating-job/) - (2016) Stagnating at your programming job? Don’t quit just yet! * [Marcus Blankenship](https://medium.com/maker-to-manager/why-your-programmers-just-want-to-code-36da9973388e) - (2017) Why your programmers just want to code * [Shaun Finglas](https://blog.shaunfinglas.co.uk/2016/08/why-you-should-do-code-katas.html) - (2016) Why You Should Do Code Katas * [Lieven Vaneeckhaute (denshade)](https://softwareefficiency.wordpress.com/2015/09/20/measuring-programmer-competency/) - (2015) Measuring programmer competency * [Jakub Holý](https://theholyjava.wordpress.com/2016/03/06/it-is-ok-to-requie-your-team-mates-to-have-particular-domaintechnical-knowledge/) - (2016) It Is OK to Require Your Team-mates to Have Particular Domain/Technical Knowledge * [Jakub Holý](https://theholyjava.wordpress.com/2016/03/04/dont-add-unnecessary-checks-to-your-code-pretty-please/) - (2016) Don’t add unnecessary checks to your code, pretty please! * [Thomas Figg (tef)](https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to) - (2016) Write code that is easy to delete, not easy to extend. * [Ashton Kemerling](https://web.archive.org/web/20181013082216/http://ashtonkemerling.com/blog/2014/06/09/the-swordsman-and-the-software-engineer/) - (2014) The Swordsman and the Software Engineer | It’s easy to believe that specializing and focusing will make you better than your peers * [Ashton Kemerling](https://web.archive.org/web/20170711011635/http://ashtonkemerling.com/blog/2014/03/24/disdain/) - (2014) Disdain | the accomplished engineer knows that completing a task is not about the number of hours spent, but the quality * [Andrew Hunt and David Thomas](https://pragprog.com/the-pragmatic-programmer/extracts/coincidence) - (1999) Programming by Coincidence | Don’t Program by Coincidence. Extract from The Pragmatic Programmer book * [Jakub Holý](https://theholyjava.wordpress.com/2012/09/12/programming-like-kent-beck/) - (2012) Programming Like Kent Beck * [Fred Hébert](https://www.codemesh.io/codemesh2017/fred-hebert) - (2017) Everything is Terrible : how fundamental components can end up causing us problems. Target audience : Developers who enjoy cynicism. **Bonus** : [Slides](http://s3.amazonaws.com/erlang-conferences-production/media/files/000/000/766/original/Fred_Herbert_-_Everything_is_terrible.pdf?1510584735) * [Steven A. Lowe](https://techbeacon.com/big-benefits-tiny-types-how-make-your-codes-domain-concepts-explicit) - (2018) Big benefits from tiny types: How to make your code's domain concepts explicit * [Christian Maioli Mackeprang](https://techbeacon.com/how-terrible-code-gets-written-perfectly-sane-people) - (2018) How terrible code gets written by perfectly sane people * [Esther Schindler](https://blog.newrelic.com/2016/02/22/8-ways-become-a-better-coder/) - (2016) 8 Ways to Become a Better Coder > “The code works” isn’t where you stop; it’s where you start * [Esther Schindler](https://blog.newrelic.com/2016/04/26/ops-dev-wishlist/) - (2016) 3 Ways Devs Can Help Ops: An Operations Perspective * [Esther Schindler](https://blog.newrelic.com/2016/04/11/devs-ops-wishlist/) - (2016) 3 Way Ops Can Help Devs: A Developer Perspective * [David Albert](https://www.recurse.com/blog/27-fundamental-qualities-of-good-programmers) - (2013) Fundamental qualities of good programmers * [Software Engineering Tips](http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer) - (2012) Signs that you're a bad programmer * [Software Engineering Tips](http://www.yacoset.com/Home/signs-that-you-re-a-good-programmer) - (2012) Signs that you're a good programmer * [Software Engineering Tips](http://www.yacoset.com/Home/so-you-ve-just-been-hired-by-an-it-department) - (2010) So you've just been hired by an IT department... * [Software Engineering Tips](http://www.yacoset.com/Home/programming-tips) - (2010) Programming Tips * [JanVanRyswyck/awesome-talks](https://github.com/JanVanRyswyck/awesome-talks) - list of online talks that are worth watching, mostly about software development * [James Wade](https://wade.be/development/2017/10/06/reviewing-code.html) - (2017) What's involved in a code review? * [Julian Cohen](https://medium.com/@HockeyInJune/secure-engineering-guidelines-3b8845ac3265) - (2017) Secure Engineering Guidelines | Some best practices for building and trusting software. * [Preslav Mihaylov](https://dev.to/pmihaylov/understanding-standard-input-and-output-5f1b) - (2017) Understanding Standard Input and Output * [Jennifer Riggins](https://thenewstack.io/call-rotations-best-wake-devs-middle-night) - (2018) On Call Rotations: How Best to Wake Devs Up in the Middle of the Night * [Graham Lee](http://www.sicpers.info/2017/12/falsehoods-programmers-believe-about-programming/) - (2017) Falsehoods programmers believe about programming * [Alon Altman](https://medium.com/gender-2-0/falsehoods-programmers-believe-about-gender-f9a3512b4c9c) - (2015) Falsehoods Programmers believe about Gender * [Patrick Louys](https://patricklouys.com/2017/12/27/become-a-better-developer-in-2018/) - (2017) Become a better developer in 2018 * [Joel Kemp](https://hackernoon.com/work-for-an-employer-that-builds-something-you-love-58f4ced947e9) - (2017) Work for an employer that builds something you love * [Zach Alexander](https://dev.to/zpalexander/10-tech-movies-to-get-you-coding-again) - (2016) 10 Tech Movies to Get You Coding Again * [rondy](https://gist.github.com/rondy/af1dee1d28c02e9a225ae55da2674a6f) - Effective Engineer - Book Notes. **Bonus** see also [The Effective Engineer website](http://www.effectiveengineer.com/) and [Effective Engineer Blog](http://www.effectiveengineer.com/blog) * [Jeremy Phelps](http://jeremyphelps.com/blog/why-youre-having-trouble-hiring-developers.html) - (2017) Why you're having trouble hiring developers * [Erik Dietrich](https://www.daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/) - (2013) How Developers Stop Learning: Rise of the Expert Beginner * [Chris Mague](http://blog.mague.com/?p=704) - (2017) Things you need to know about giving tech talks * [Erik Dietrich](https://www.daedtech.com/side-hustle-ideas-software-developers/) - (2017) Side Hustle Ideas for Software Developers * [Dr. Tom Murphy VII, Ph.D.](http://www.cs.cmu.edu/~tom7/abc/paper.pdf) - [PDF] A C89 compiler that produces executables that are also valid ASCII text files * [Fred Hébert](https://ferd.ca/tout-est-terrible.html) - (2017) Tout est Terrible | a very cynical view of technology * [John Sonmez](https://talkpython.fm/episodes/show/71/soft-skills-the-software-developer-s-life-manual) - (2016) Episode #71: Soft Skills: The software developer's life manual * [melissa mcewen](https://medium.com/@melissamcewen/coders-should-fear-what-happened-to-writers-d87a895b03db) - (2017) Coders Should Fear What Happened To Writers | meaning only those in top coding jobs are rewarded well * [Lou Bichard](https://simpleprogrammer.com/overcoming-obstacles-stoic-mindset/) - (2018) Overcoming Programmer Career Obstacles With A Stoic Mindset * [Angela Stringfellow](https://stackify.com/devops-resume-mistakes/) - (2017) Mistakes to Avoid on Your DevOps Resume: Tips from 20 DevOps Leaders and Hiring Managers * [Tim Ottinger](https://www.industriallogic.com/blog/behavior-driven-development/) - (2014) Avoid Rework Through Behavior-Driven Development | eXamples and features specification should be written in a formal way that is easily automated / increasing the signal-to-noise ratio in your communication * [Joshua Kerievsky](http://www.industriallogic.com/wp-content/uploads/2005/09/StopOverEngineering.pdf) - (2005) [PDF] (2002) Stop Over-Engineering! * [panic](https://docs.google.com/presentation/d/1MD-CgzODFWzdpnYXr8bEgysfDmb8PDV6iCAjH5JIvaI/edit#slide=id.g2230a66ea4_136_9) - gallery of programmer interfaces (UIs) * [Joe Forshaw](https://www.joeforshaw.com/blog/message-oriented-programming) - (2017) Message-Oriented Programming * [Andrew Turley](https://gist.github.com/aturley/49b60c98306d90ffc2f981515827b005) - Important Considerations about Pony programming language, based on [this tweet](https://twitter.com/casio_juarez/status/898706225642086400) * [Pony Docs](https://tutorial.ponylang.org/) - Introduction Tutorial about [Pony](https://www.ponylang.org/) : an open-source, object-oriented, actor-model, capabilities-secure, high-performance programming language. * [Simon Brown](http://www.codingthearchitecture.com/2018/02/09/todays_software_developers_are_the_ivory_tower_architects_of_tomorrow.html) - (2018) Today's software developers are the ivory tower architects of tomorrow * [Lewis Menelaws](https://dev.to/lewismenelaws/how-to-fix-burnout-as-a-developer--4opl) - (2018) How to Fix Burnout as a Developer > A lot of people (especially entrepreneurs) are so obsessed with how fast they will become successful that they will sacrifice their mental health in order to constantly push themselves. * [Ben Northrop](http://www.bennorthrop.com/Essays/2018/the-reality-of-reuse.php) - (2018) The Reality of Reuse | we're hard-wired to want to make decisions quickly and we take too many shortcuts * [John Sonmez](http://www.se-radio.net/2015/12/se-radio-episode-245-john-sonmez-on-marketing-yourself-and-managing-your-career/) - (2015) SE Radio Episode 245: John Sonmez on Marketing Yourself and Managing Your Career * [Jeff Atwood](https://blog.codinghorror.com/why-im-the-best-programmer-in-the-world/) - (2004) Why I'm The Best Programmer In The World* | it's not our job to be better than anyone else; we just need to be better than we were a year ago. * [Jeff Atwood](https://blog.codinghorror.com/recommended-reading-for-developers/) - (2015) Recommended Reading for Developers * [Graham Lee](https://www.sicpers.info/2018/04/whats-better-than-semver/) - (2018) What’s better than semver? * [Graham Lee](https://www.sicpers.info/2018/02/its-about-the-thinking/) - (2018) It’s about the thinking * [Katacoda](https://www.katacoda.com/) - Learn new technologies right in your browser | Interactive Learning and Training Platform for Software Engineers * [Rosetta Code](http://rosettacode.org/wiki/Rosetta_Code) - Rosetta Code is a programming chrestomathy site. The idea is to present solutions to the same task in as many different languages as possible * [Stephen Mann](https://stephenmann.io/post/dont-do-this-in-production/) - (2018) Don't Do This in Production * :star: [**Jeff Atwood**](https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/) - (2006) The Ten Commandments of Egoless Programming * [Mark Heath](https://markheath.net/post/stable-tactics-for-writing-solid-code) - (2017) STABLE tactics for writing SOLID code * [The Codeless Code](http://thecodelesscode.com/case/random) - An illustrated collection of (sometimes violent) fables, concerning the Art and Philosophy of software development * [Robert C. Martin](https://blog.cleancoder.com/uncle-bob/2017/08/28/JustFollowingOders.html) - (2017) Just Following Orders | Reminder: Doing your job does not mean that you just follow orders. The courts are going to hold you to a high ethical standard, even if your employer does not. * [Ben Halpern](https://dev.to/ben/write-clean-code-and-avoid-the-distractions-of-emerging-technology-3emj) - (2018) Write clean code and avoid the distractions of emerging technology | stay excited by the trends, but be impassioned by the small improvements you can make in the quality of your work. * [victorlaerte/awesome-it-quotes](https://github.com/victorlaerte/awesome-it-quotes) - a list of awesome IT quotes. The aim is to collect all relevant quotes said over the history of IT. * [Jeff Knupp](https://jeffknupp.com/blog/2014/04/15/how-devops-is-killing-the-developer/) - (2014) How 'DevOps' is Killing the Developer * :star: [**James Somers**](https://www.theatlantic.com/technology/archive/2017/09/saving-the-world-from-code/540393/) - (2017) The Coming Software Apocalypse | A small group of programmers wants to change how we code—before catastrophe strikes. > “Computing is fundamentally invisible,” Gerard Berry said in his talk. “When your tires are flat, you look at your tires, they are flat. When your software is broken, you look at your software, you see nothing.” “So that’s a big problem.” * [The Three Virtues of a GREAT Programmer](http://threevirtues.com/) - (2010) Laziness, Impatience and Hubris > Laziness: The quality that makes you go to great effort to reduce overall energy expenditure. > Impatience: The anger you feel when the computer is being lazy. > Hubris: The quality that makes you write (and maintain) programs that other people won't want to say bad things about. * [Itamar Turner-Trauring](https://codewithoutrules.com/2018/01/23/job-with-technology-you-dont-know/) - (2016) How to get a job with a technology stack you don’t know > Look for jobs that excite you, for jobs you think you can do with just a little ramp-up time. And then apply for those jobs, knowing that most of them will ignore you—but it only takes one yes to get an exciting new job, and an exciting new opportunity to learn new skills. * [Brendan D. Gregg](http://www.brendangregg.com/blog/2017-11-13/brilliant-jerks.html) - (2017) Brilliant Jerks in Engineering * [DEV](https://dev.to/ben/what-are-some-fundamentals-of-security-every-developer-should-understand-3ki3) - What are some fundamentals of security every developer should understand? * [DEV](https://dev.to/jeffreyuvero/what-is-your-personal-programming-ethics-483a) - (2018) What is your personal Programming ethics? * [ACM Ethics](https://ethics.acm.org/code-of-ethics/software-engineering-code/) - (1997) The Software Engineering Code of Ethics and Professional Practice * [Coding Blocks](https://www.codingblocks.net/podcast/78-deliberate-practice-for-programmers/) - (2018) [Podcast] Deliberate Practice for Programmers * [Exercism](https://exercism.org/) - Get really good at programming. | Develop fluency in 55 programming languages with our unique blend of learning, practice and mentoring. Exercism is fun, effective and 100% free, forever. * [Joe Zack](https://www.codingblocks.net/practice/four-reasons-why-10x-developer-controversial/) - (2018) 4 reasons why the “10x Developer” is so controversial > 0 Productivity is hard to measure > 1 Tiny sample size > 2 Well, common sense…. > 3 The study was done over 50 years ago * [Yevgeniy Brikman](https://www.ybrikman.com/writing/2013/09/29/the-10x-developer-is-not-myth/) - (2013) The 10x developer is NOT a myth > - If you can’t measure it, you can still reason about it > - 10x programmers are rare > - Programming is about choices * [Ada Nduka Oyom](https://dev.to/kolokodess/on-becoming-a-technical-writer-318e) - (2018) On Becoming a Technical Writer * [Vadim Kravcenko](http://vadimkravcenko.com/growing-your-interns) - (2018) Growing your interns | eventually you will become Senior Developers and will need to nurture your own interns. * [Programming quotes](http://quotes.cat-v.org/programming/) * [George Gritsouk](https://gggritso.com/2014/12/02/code-hierarchy-of-needs/) - (2014) Code Hierarchy of Needs | Maslow would not approve of this. * [stanislaw/SoftwareDesignHeuristics](https://github.com/stanislaw/SoftwareDesignHeuristics) - heuristics found to be useful in software engineering practice. We call “heuristics” everything that helps us to write better code given we keep them in mind. * [charlax/professional-programming](https://github.com/charlax/professional-programming) - A collection of full-stack resources for programmers. * [Arnaud Lemaire](https://www.youtube.com/watch?v=bQfumbBN6YQ) - [Videos] :fr: [FR] (2019) Entre industrialisation et artisanat, le métier de développeur. | a very good and accurate talk of software craftsmanship * [Bryan Cantrill](http://dtrace.org/blogs/bmc/2018/10/05/assessing-software-engineering-candidates/) - (2018) Assessing software engineering candidates * [David Winterbottom](https://codeinthehole.com/lists/little-known-words-relevant-to-software-development/) - (2017) Little-known words relevant to software development > Example: VERSCHLIMMBESSERN - (German) - to make something worse while attempting to make it better > and many others... * [Jakub Holý](https://blog.jakubholy.net/craft/) - Craft : About the craft of software development and why it matters. **Bonus** : Archive of previous version about code quality only ; [Code (And Design) Quality And Why Should We Care.](https://web.archive.org/web/20170606194333/http://Theholyjava.wordpress.com/code-quality/) * [Martin Fowler](https://martinfowler.com/articles/is-quality-worth-cost.html) - (2019) Is High Quality Software Worth the Cost? * [Literate programming](http://www.literateprogramming.com/) - is a programming paradigm introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated. * [Literate programming links](http://www.literateprogramming.com/links.html) - articles about literate programming * [1x Engineer](https://1x.engineer/) - a non-exhaustive list of what qualities make up a 1x engineer. * [Worse is better](https://en.wikipedia.org/wiki/Worse_is_better) - It is the subjective idea that quality does not necessarily increase with functionality—that there is a point where less functionality ("worse") is a preferable option ("better") in terms of practicality and usability. Software that is limited, but simple to use, may be more appealing to the user and market than the reverse. * [Remote Mob Programming](https://www.remotemobprogramming.org/) - A summary of the essentials of successful Remote Mob Programming * [Dave Rupert](https://daverupert.com/2018/04/eponymous-laws-of-tech) - (2018) The Eponymous Laws of Tech | A compendium of tech-related laws, fallacies, and other wisdom * [Gergely Orosz](https://blog.pragmaticengineer.com/talk-first-code-later/) - (2019) Talk First, Code Later > the "talk first, code later" approach is an un-intuitive tool that speeds development up and leads to better communication between engineers and teams. > Everyone would have saved so much time, if only we communicated first and wrote code only after. * [Sane software manifesto](https://sane-software.globalcode.info/v_0/) - While very opinionated, it's an interesting list of practices for software developers, about safe code, collaboration, reproducible builds, modularity, architecture, testability, etc. * [Google search](https://www.google.be/search?q=what%20are%20the%20worst%20programming%20practices) - what are the worst programming practices * [Bystroushaak](http://blog.rfox.eu/en/Programmer_s_critique_of_missing_structure_of_oper.html) - (2020) Programmer's critique of missing structure of operating systems | **Original** (2018) [Programátorova kritika chybějící struktury operačních systémů](http://blog.rfox.eu/cz/Program_torova_kritika_chyb_j_c_struktury_opera_n_.html) * [dwmkerr/hacker-laws](https://github.com/dwmkerr/hacker-laws) - Laws, Theories, Principles and Patterns that developers will find useful. * [Learn X in Y minutes](https://learnxinyminutes.com/) - Take a whirlwind tour of your next favorite language. Community-driven! * [The Cloud Posse Developer Hub](https://docs.cloudposse.com/) - You'll find comprehensive guides and documentation to help you start working with the Cloud Posse technology stack as quickly as possible, as well as support if you get stuck. This is also useful as a source of inspiration for your own guides and documentation repositories. * :star: [:books: **Freely available programming books**](https://ebookfoundation.github.io/free-programming-books/books/free-programming-books.html) - List of Free Learning Resources In Many Languages. **Source code** : [EbookFoundation/free-programming-books](https://github.com/EbookFoundation/free-programming-books) * [Async Manifesto](http://asyncmanifesto.org/) - (2014) Manifesto for Async Software Development | Principles of Async Software Development * [Peter Van Roy](https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf) - (2008) [PDF] Programming Paradigms for Dummies: What Every Programmer Should Know. **Bonus** :fr: [FR] [Slides in french](https://www.info.ucl.ac.be/~pvr/jussieuParadigms2008.pdf) and [Poster in English](https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.pdf) * [Chris Kiehl](https://chriskiehl.com/article/thoughts-after-6-years) - (2021) Software development topics I've changed my mind on after 6 years in the industry * [Jeff Atwood](https://blog.codinghorror.com/learn-to-read-the-source-luke/) - (2012) Learn to Read the Source, Luke * [Logically Fallacious](https://www.logicallyfallacious.com/tools/lp/Bo/LogicalFallacies) - Collection of common fallacies * [your logical fallacy is](https://yourlogicalfallacyis.com/) - Thou shalt not commit logical fallacies. **Bonus** : [Printable Poster](https://yourlogicalfallacyis.com/poster) * [Logical Fallacies](https://www.logicalfallacies.org/) - 'Fallacy' : A misconception resulting from flaw in reasoning, or a trick or illusion in thoughts that often succeeds in obfuscating facts/truth. * [InformationIsBeautiful.net](http://www.keole.net/wp-content/uploads/2014/09/arguments_rethoriques_fallacieux.png) - (2012) [FR] :fr:[IMG] Arguments réthoriques fallacieux * [Ginger Bill](https://www.gingerbill.org/article/2021/02/01/the-essence-of-programming/) - (2021) The Essence of Programming > Many novices fall into the same trap of not understanding the problem that is trying to be solved, and are too concerned about the implementation. Teaching novices how to think about solving problems is extremely important in improving and honing in the craft. * [Christine Yen](https://www.honeycomb.io/blog/the-future-of-developer-careers/) - (2020) The Future of Developer Careers. **See also** : (2020) [The Future of Ops Careerss by Charity Majors](https://www.honeycomb.io/blog/the-future-of-ops-careers/) on the same blog. * [Sonny Van Assche](https://www.ntiative.com/the-10-programmer-personality-types-part-1-of-2/) - (2018) The 10 Programmer Personality Types (Part 1 of 2) | **Part 2** [here](https://www.ntiative.com/the-10-programmer-personality-types-part-2-of-2/) > I feel very much like the “Ghost-Writer” at times, mixed with "The DIY specialist". But anyway, I feel we are all those types at once, it depends on the day, on the task, on the team we work with. * [Gandalf Hudlow](https://iism.org/article/developers-can-t-fix-bad-management-57) - (2020) Developers can't fix bad management * [MIT](https://missing.csail.mit.edu/) - The Missing Semester of Your CS Education (MIT course) * [Chris The Data Guy](https://betterprogramming.pub/dont-write-code-for-a-startup-1eead038c372) - (2021) Don’t Write Code for a Startup | Confessions of a serial startup software developer * [prathyvsh/pl-catalog](https://github.com/prathyvsh/pl-catalog) - A catalog of some of the cool programming languages out there, for enthusiasts * [Erik Dietrich](https://daedtech.com/how-to-keep-your-best-programmers/) - (2012) How To Keep Your Best Programmers * [Unix Sheikh](https://unixsheikh.com/articles/is-the-madness-ever-going-to-end.html) - (2022) Is the madness ever going to end? * [Rajasegar Chandran](https://web.archive.org/web/20200203103540/https://hangaroundtheweb.com/2018/03/egoless-programming/) - (2018) Egoless Programming > Egoless programming is a concept introduced by Gerald Weinberg in The Psychology Of Computer Programming. The idea is that programmers must fight the natural tendency to treat their programs as part of themselves, and therefore to reject all criticism. Rather, they should do their best to treat their designs & implementations as objects independent of themselves, and to view criticism dispassionately on its merits. * [Daniel Irvine](https://8thlight.com/blog/daniel-irvine/2016/09/30/the-egoless-programmer.html) - (2016) The egoless programmer * [Bertrand Le Foulgoc](https://blog.octo.com/egoless-programming/) - :fr: [FR] Egoless Programming * [Wikipedia](https://en.wikipedia.org/wiki/Egoless_programming) - Egoless programming * [WikiWikiWeb](https://wiki.c2.com/?EgolessProgramming) - Egoless Programming * [Jeff Huang](https://jeffhuang.com/designed_to_last/) - (2019) This Page is Designed to Last : A Manifesto for Preserving Content on the Web * [Mathieu Corbin](https://www.mcorbin.fr/posts/2022-01-10-test-technique-interview/) - :fr: [FR] (2022) Test technique lors du recrutement * [Swizec Teller](https://swizec.com/blog/why-null-checks-are-bad/) - (2021) Why null checks are bad * [Eli McGarvie](https://cult.honeypot.io/reads/13-best-tech-documentaries-for-developers/) - (2022) 13 Best Tech Documentaries For Developers | You can't go wrong with these developer documentaries... * [Bohdan Balov](https://betterprogramming.pub/lead-software-engineer-roadmap-37b8fc10a93f) - (2022) The Roadmap of a Lead Software Engineer | Experience and knowledge you need to gain to become a lead software engineer * [How old is it?](https://howoldisit.glitch.me/) - How long has _react, vue, ember, etc._ existed? | This is a handy tool for tech recruiters who ask for fifteen years experience in technologies that have only existed for three months. * [Spencer Baugh](https://catern.com/change_code.html) - (2022) Prefer to change the code rather than write a workaround * [Spencer Baugh](https://catern.com/config.html) - (2021) Write code, not configuration * [Raphael Gaschignard](https://rtpg.co/2022/02/04/precision-in-technical-discussions.html) - (2022) Precision In Technical Discussions > * While working with the same people in the same problem domain for a long time, it's extremely common for people to take shortcuts when describing usage of a technical system. > Stickers * [DevStickers](http://devstickers.com/) - Laptop Stickers and T-shirts for Web Designers and Developers * [Zazzle](https://www.zazzle.com/software+developer+stickers) - Software Developer Stickers * [Redbubble](https://www.redbubble.com/shop/developer+stickers) - Moooaaar developer stickers * [Redbubble](https://www.redbubble.com/fr/shop/sysadmin+stickers) - Sysadmin stickers * [Redbubble](https://www.redbubble.com/shop/devops+stickers) - DevOps stickers > Tools * :star: [**ThoughtWorks**](https://www.thoughtworks.com/radar) - Technology radar : trends, insights into tools, frameworks, languages, techniques & platforms shaping the future * [StackShare](https://stackshare.io/trending/tools) - trending tools, find which tools other companies are using * [StackShare](https://stackshare.io/trending/stacks) - trending technology stacks, find which stacks others companies are using * [skywinder/github-changelog-generator](https://github.com/skywinder/github-changelog-generator) - Automatically generate change log from your tags, issues, labels and pull requests on GitHub. * [marionebl/commitlint](https://github.com/marionebl/commitlint) - Lint commit messages * [Conventional Commits](https://conventionalcommits.org/) - The Conventional Commits specification proposes introducing a standardized lightweight convention on top of commit messages. This convention dovetails with SemVer, asking software developers to describe in commit messages, features, fixes, and breaking changes that they make. * [Langserver.org](https://langserver.org/) - is a community-driven site, maintained by Sourcegraph, to track development progress of LSP-compatible language servers and clients. | The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike into the tool * [b4b4r07/gomi](https://github.com/b4b4r07/gomi) - 🗑️ Replacement for UNIX rm command! * [asdf-vm/asdf](https://github.com/asdf-vm/asdf) - Extendable version manager for multiple languages | Manage multiple runtime versions with a single CLI tool, extendable via [plugins](https://github.com/asdf-vm/asdf-plugins) * [First Round Review](https://review.firstround.com/empathy-driven-development-how-engineers-can-tap-into-this-critical-skill) - (2019) Empathy-Driven Development: How Engineers Can Tap into This Critical Skill. **See also** [Empathy-Driven Development](https://www.empathy-driven-development.com/) > “You can’t say the word ‘empathy’ at a software company. No one will take you seriously.” * [Leadership garden](https://leadership.garden/articles/kill-your-heroes/) - (2019) Kill your heroes * [Leadership garden](https://leadership.garden/articles/engineering-managers-stop-coding/) - (2017) Engineering managers, stop coding! * [Principles.dev](https://principles.dev/) - Open-source Software Engineering and Leadership principles | Make better decisions using principles - For Software Engineers and technical leaders who want better results. * [/uses](https://uses.tech/) - A list of `/uses` pages detailing developer setups, gear, software and configs. * [daily.dev](https://daily.dev/) - The Homepage Every Developer Deserves | daily.dev is the fastest growing online community for developers to stay updated on the best developer news. * [Key Values](https://www.keyvalues.com/) - Find engineering teams that share your values. Select your top values and find teams you'll click with. ## Programming challenges * [Colin Hughes](https://projecteuler.net/index.php?section=problems) - Project Euler proposes a series of challenging mathematical/computer programming problems * [Nick Parlante](http://codingbat.com) - CodingBat : practice your programming skills (exercices in java and python) * [Programming Praxis](https://programmingpraxis.com/) - A collection of etudes, updated weekly, for the education and enjoyment of the savvy programmer * [Hacker Rank](https://www.hackerrank.com/dashboard) - coding challenges (to make yourself ready for coding interviews * [/r/dailyprogrammer](https://www.reddit.com/r/dailyprogrammer/) - programming challenges on reddit * [/r/codegolf](https://www.reddit.com/r/codegolf/) - Challenges to test your code shortening skills. Not necessarily practical, but fun! * [Code Golf](https://code-golf.io/) - a game designed to let you show off your code-fu by solving problems in the least number of characters. It is written in Go and is open source, patches welcome! * :star: [**danistefanovic/build-your-own-x**](https://github.com/danistefanovic/build-your-own-x) - 🤓 Build your own ... (insert technology here) * [Advent of Code](https://adventofcode.com/) - is an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as a speed contest, interview prep, company training, university coursework, practice problems, or to challenge each other. * :star: [**donnemartin/system-design-primer**](https://github.com/donnemartin/system-design-primer) - Learn how to design large-scale systems. Prep for the system design interview. * [Antonio Bello](https://www.raywenderlich.com/135789/how-to-be-a-better-developer-with-programming-challenges) - (2016) How To Be a Better Developer with Programming Challenges * * [7DRL Challenge 2019](https://itch.io/jam/7drl-challenge-2019) - In 2005, the roguelike community established a yearly event, the 7DRL Challenge, in which developers are challenged to create a roguelike in seven days. This allows one to have the shared misery of knowing you are not the only one tracking down a bad pointer at the 167th hour. The annual event occurs during a week in early March. * [Dwitter.net](https://www.dwitter.net/) - is a challenge to see what awesomeness you can create when limited to only 140 characters of javascript and a canvas. * [Hacker Rank](https://www.hackerrank.com/domains/shell/grep-sed-awk) - Bash challenges (bash, grep, sed, awk ...) * [Hacker Rank](https://www.hackerrank.com/domains/shell) - Linux Shell challenges, funny but nothing fancy * [Commandline Challenge](https://cmdchallenge.com/) - Linux Shell challenges * [LOWREZJAM 2019](https://itch.io/jam/lowrezjam-2019) - The goal of the jam is to create a game with a resolution of 64x64 pixels or less. You can use whatever programming language or tools that you wish. * [Hacknet](http://www.hacknet-os.com/) - a hacking game simulator (not free), potentially boring (move to hackmud) * [h a c k m u d](https://www.hackmud.com/) - hackmud, a hacking game simulator (not free) with programming challenges * [Exercism](https://exercism.org/) - Get really good at programming. | Develop fluency in 55 programming languages with our unique blend of learning, practice and mentoring. Exercism is fun, effective and 100% free, forever. * [a11yphant](https://a11yphant.com/) - Learning web accessibility made easy | Learn web accessibility, one step at a time, broken down into manageable pieces, called challenges. You won't need to read large amounts of text to complete those. Instead, you will learn by applying the concepts in code. Get started with your first web accessibility challenge and improve your skills. * [Proge](https://progegame.com/) - Guess the Programming Language ## API * [Adam DuVander](https://www.programmableweb.com/news/top-10-api-worst-practices/2012/08/03) - (2012) Top 10 API Worst Practices * :star: [**Gregg Caines**](http://caines.ca/blog/2013/09/13/you-probably-dont-need-to-version-your-web-api/) - (2013) You Probably Don’t Need to Version Your Web API. * [Shieldfy/API-Security-Checklist](https://github.com/shieldfy/API-Security-Checklist) - API Security Checklist * [ProgrammableWeb](https://www.programmableweb.com/category/music/apis?category=19990) - Music related APIs * [Lexicalscope Ltd](http://www.lexicalscope.com/blog/2012/03/12/how-are-rest-apis-versioned/) - (2012) How are REST APIs versioned? * [Martin Nally](https://apigee.com/about/blog/api-technology/api-design-choosing-between-names-and-identifiers-urls) - (2017) API Design: Choosing Between Names and Identifiers in URLs * [Brian Kelly](https://morethancoding.com/2012/10/24/the-web-apis-you-use-will-fail/) - (2012) The Web APIs You Use Will Fail * [Gregg Caines](http://caines.ca/blog/2013/04/21/3-terrible-anti-patterns-for-error-handling-in-rest-apis/) - (2013) 3 Terrible Anti-patterns for Error-Handling in 'REST' APIs: * [Lemi Orhan Ergin](https://fr.slideshare.net/lemiorhan/waste-driven-development-xp-days-ukraine-2017) - (2017) [Slides] Fighting with Waste Driven Development : Lean Thinking. **Bonus** : [Video](https://www.youtube.com/watch?v=Iw3I_nALH6s) * [Bill Doerrfeld](https://techbeacon.com/guide-restful-api-design-35-must-reads#.WcVeaYqsgc0.twitter) - (2017) A guide to RESTful API design: 35+ must-reads * [Trevor Reed](https://medium.com/@trevorhreed/you-re-api-isn-t-restful-and-that-s-good-b2662079cf0e) - (2016) Your API isn’t RESTful — And That’s Good | stop using the terms REST and RESTful to describe APIs that aren’t RESTful. It’s hurting our APIs and confusing the purpose and definition of REST. * [Steven A. Lowe](https://techbeacon.com/big-benefits-tiny-types-how-make-your-codes-domain-concepts-explicit) - (2018) Big benefits from tiny types: How to make your code's domain concepts explicit * [Christian Maioli Mackeprang](https://techbeacon.com/3-creative-techniques-writing-modular-code) - (2018) 3 creative techniques for writing modular code * [Christian Maioli Mackeprang](https://techbeacon.com/app-dev-testing/35-programming-habits-make-your-code-smell) - (2018) 35 programming habits that make your code smell * [Vinay Sahni](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) - (2013) Best Practices for Designing a Pragmatic RESTful API * [AnyAPI](https://any-api.com/) - Documentation and Test Consoles for Over 500 Public APIs * [Zdenek Nemec (Z, zdne)](https://blog.goodapi.co/api-maturity-fb25560151a3) - (2018) API Maturity * [Mike Amundsen (mamund)](http://amundsen.com/talks/2016-11-apistrat-wadm/2016-11-apistrat-wadm.pdf) - (2016) [Slides] Web API Design Maturity Model * [Martin Fowler](https://martinfowler.com/articles/richardsonMaturityModel.html) - (2010) Richardson Maturity Model | steps toward the glory of REST * [Damien Frémont](https://damienfremont.com/2017/11/23/rest-api-maturity-levels-from-0-to-5/) - (2017) REST API Maturity Levels : From 0 to 5 ## Assembly * [Mark Larson](http://mark.masmcode.com/) - Assembly Optimization Tips ## C/C * [Mike Acton](https://www.slideshare.net/cellperformance/data-oriented-design-and-c) - (2014) [Slides] Data oriented design principles and c * [Angel 2D](https://github.com/angel2d/angel2d) - Angel 2D : A cross-platform 2D game prototyping framework based on OpenGL and C++. Looks dead... * [SFML](https://www.sfml-dev.org/) - SFML is a simple, fast, cross-platform and object-oriented multimedia API. Written in C++ and provides bindings for various languages such as C, .Net, Ruby, Python. * [Vicky Chijwani](https://vickychijwani.me/cpp-gotchas/) - (2014) Common C++ Gotchas * [Chris Wellons](http://nullprogram.com/blog/2014/12/23/) - (2014) Interactive Programming in C * [Chris Wellons](http://nullprogram.com/blog/2014/12/09/) - (2014) How to build DOS COM files with GCC * [Chris Wellons](http://nullprogram.com/blog/2017/08/20/) - (2017) A Tutorial on Portable Makefiles * [Chris Wellons](http://nullprogram.com/blog/2017/03/30/) - (2017) How to Write Portable C Without Complicating Your Build * [svaarala/duktape](https://github.com/svaarala/duktape) - Duktape : embeddable Javascript engine with a focus on portability and compact footprint * [RMB Consulting](https://rmbconsulting.us/publications/a-c-test-the-0x10-best-questions-for-would-be-embedded-programmers/) - A ‘C’ Test: The 0x10 Best Questions for Would-be Embedded Programmers * [Bartlomiej Filipek](http://www.bfilipek.com/2017/10/notnull.html) - (2017) How not_null can improve your code? * [Stack Overflow](https://stackoverflow.com/questions/599365/what-is-your-favorite-c-programming-trick) - What is your favorite C programming trick? * [Stack Overflow](https://stackoverflow.com/questions/132241/hidden-features-of-c) - Hidden features of C * [Kenneth Finnegan](http://ctips.pbworks.com/w/page/7277592/FrontPage) - (2008) Programming Tips in C * [Cprogramming.com](http://www.cprogramming.com/tips/) - C and C++ Programming Tips * [Phillip Khandeliants](https://www.viva64.com/en/b/0549/) - (2017) Speeding up the Build of C and C++ Projects * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [Dr. Tom Murphy VII, Ph.D.](http://www.cs.cmu.edu/~tom7/abc/paper.pdf) - [PDF] A C89 compiler that produces executables that are also valid ASCII text files ## Calm programming / Slow programming See also [Clean code](#clean-code-and-best-practices) and [Slow programming principles](../PRINCIPLES.md#slow-programming-principles) I dedicate this section to the work I'm busy at, about how going faster in short term can cost you quality, money and confidence in long term. Studying relationships between quality, productivity, thinking fast & slow, slowing down, and the craft of programming. * :star: [**Dr. Travis Bradberry**](https://www.linkedin.com/pulse/20140805002649-50578967-how-successful-people-stay-calm) - How Successful People Stay Calm * [Gregg Caines](http://caines.ca/blog/2009/12/13/code-slower/) - (2009) Code Slower * [Alicia Liu](https://medium.com/counter-intuition/go-slow-to-go-fast-part-1-you-a4974ceb8a7c) - (2018) Go Slow to Go Fast — [Part 1: You](https://medium.com/counter-intuition/go-slow-to-go-fast-part-1-you-a4974ceb8a7c), [Part 2: Team](https://medium.com/counter-intuition/go-slow-to-go-fast-part-2-team-e793bb0d658a), [Part 3: World](https://medium.com/counter-intuition/go-slow-to-go-fast-part-3-world-efb76c4de220) * [Shan](https://shansvex.wordpress.com/2013/12/03/being-a-slow-programmer/) - (2013) Being a Slow Programmer * [J. B. Rainsberger](https://twitter.com/jbrains/statuses/167297606698008576) - "Worried that TDD will slow down your programmers? Don't. They probably need slowing down." * [Jonas Downey](https://m.signalvnoise.com/move-slowly-and-fix-things-e5a560fd928b) - (2017) Move Slowly and Fix Things | Ruminations on the heavy weight of software design * [Jeffrey Ventrella](https://ventrellathing.wordpress.com/2013/06/18/the-case-for-slow-programming/) - (2013) The Case for Slow Programming | “Slow down, son. You’ll get the job done faster.” * [Steven A. Lowe](https://techbeacon.com/program-faster-all-time-best-tips-pros) - Code faster: 53 tips from the pros > The only way to go fast is to go well. Every time you yield to the temptation to trade quality for speed, you slow down. Every time. [Robert C. Martin](http://butunclebob.com/ArticleS.UncleBob.VehementMediocrity) * [John Sonmez](https://www.youtube.com/watch?v=o1tDEqHf6_M) - [Video] (2016) Being A Slow Developer... Am I Screwed? | on slow programming, clean code & productivity. Don't rush, do it right, do it clean then do it fast. * [George Gritsouk](https://gggritso.com/legacy-code) - (2016) Legacy Code | The noblest pursuit of our weekdays | slow programming * [Slow Programming](https://slowprogramming.com/) - Programming has become a pursuit of profit over personal knowledge. The craft of programming has developed into a rapid rush to the finish line via bootcamps and brief tutorials. * [Derek Sivers](https://sivers.org/slow) - (2016) I’m a very slow thinker * [Dan Milstein](http://blog.hut8labs.com/coding-fast-and-slow.html) - (2013) Coding, Fast and Slow: Developers and the Psychology of Overconfidence | about inability of developers to predict how long a project will take. * [Raph Lee](https://lob.com/blog/understand-design-build-a-framework-for-problem-solving) - (2019) Understand, Design, Build: A Framework for Problem-Solving * [Mike Donghia](https://www.becomingminimalist.com/enjoying-life-in-the-slow-lane/) - (2010) Enjoying Life in the Slow Lane > here are some easy steps to escape the rat race and enjoy a slower, simpler, happier life: > * Choose 3 things to accomplish each day. > * Learn to say “no.” Stop taking on more responsibility. > * Be unproductive. > * Only check your email twice a day. > * Embrace quality over quantity. > * Find a Hobby. > * Spend time with people you love. * [1x Engineer](https://1x.engineer/) - a non-exhaustive list of what qualities make up a 1x engineer. * [Loris Cro](https://kristoff.it/blog/simple-not-just-easy/) - (2019) I Want Simple, Not Just Easy > You've surely read plenty about how simple is good, but what's wrong with easy? * [Farnam Street](https://fs.blog/2018/10/long-game/) - (2018) The Surprising Power of The Long Game * [Gergely Orosz](https://blog.pragmaticengineer.com/talk-first-code-later/) - (2019) Talk First, Code Later > the "talk first, code later" approach is an un-intuitive tool that speeds development up and leads to better communication between engineers and teams. > Everyone would have saved so much time, if only we communicated first and wrote code only after. * [Umer Mansoor](https://codeahoy.com/2016/06/03/write-less-code/) - (2016) Write Less Code * [Calm Tech](https://calmtech.com/) - Principles of Calm Technology * [Cantlin Ashrowan](https://cantl.in/blog/2020/12/11/coherent-and-complex.html) - (2020) Coherent and complex > - Collaboration, it turns out, gets harder in proportion to two things: the level of coherence you demand from the output, and the complexity of the processes that create it. > - Collaboration that creates incoherence is easy. You all just do whatever you want. Equally, collaboration on things that are not complex is easy. You can all see whether the log has been chopped or not, there is limited room for debate. > - On the other hand, lets say that instead we first come up with a clear overarching plan for what we’re doing. This makes it much more likely the outcome will be coherent. But the price we pay is having to handle the complexity of the entire challenge all at once. * [Jessica Joy Kerr aka jessitron](https://jessitron.com/2017/06/24/the-most-productive-circumstances-for/) - (2017) Hyperproductive development * [David John Adams aka DJ Adams](https://qmacro.org/2021/02/01/do-less-and-do-it-better/) - (2021) Do less and do it better * [Tanmay Vora](http://qaspire.com/2012/09/21/a-gentle-friday-reminder-go-slow/) - (2012) A Gentle Friday Reminder: Go Slow > * You are moving too fast. Overwhelmed with everything, good or bad, happening around. > * Life is too short (really) to zoom past it. > * People who survive (and grow) are the ones who stay in the moment, concentrate and strive to deliver their best. > * Quality never comes from rushing through things. > * Just because you can do so many things doesn’t mean you should attempt all of them. > * Rushing too fast through these is a risk, it is a killer. You never savor the moment, be in the present and enjoy the process. You end up ‘doing’ so much that there is no time to ‘ruminate’ * [Jason Fried](https://signalvnoise.com/posts/3124-give-it-five-minutes) - (2012) Give it five minutes > * The faster you react, the less you think. Not always, but often. > * It’s fine to disagree, it’s fine to push back, it’s great to have strong opinions and beliefs, but give my ideas some time to set in before you’re sure you want to argue against them. > * There’s also a difference between asking questions and pushing back. Pushing back means you already think you know. Asking questions means you want to know. Ask more questions. > * So next time you hear something, or someone, talk about an idea, pitch an idea, or suggest an idea, give it five minutes. Think about it a little bit before pushing back, before saying it’s too hard or it’s too much work. Those things may be true, but there may be another truth in there too: It may be worth it. * [Seth Godin](https://seths.blog/2018/11/quality-and-effort/) - (2018) Quality and effort > * We need to put care into our systems. We need to build checklists and peer review and resilience into the way we express our carefulness. > * It seems ridiculous that a surgeon needs to write her name (with a Sharpie) on the limb that she’s about to operate on, but this simple system adjustment means that errors involving working on the wrong limb will go to zero. > * Instead of reacting to an error with, “I need to be more careful,” we can respond with, “I can build a better system.” > * If it matters enough to be careful, it matters enough to build a system around it. > * **See also** [Martin Fowler's tweet](https://twitter.com/martinfowler/status/1057971818768818177) - "Don't teach people to be careful, instead get them to build systems that resist faults" * [Logan Mayville](https://www.hellosign.com/blog/busy-kills-productivity) - (2018) How Being Busy Kills Productivity | How doing less can help you be more productive > * Focus on results; not time : Time tracking is unavoidable in some instances, but rather than the rule by which companies operate, it should be used as a secondary metric to the results they achieve. Rather than give an employee a 2-hour window to do a job, have her do it right the first time (bonus points for documenting the process), then review and adjust your future plans based on time tracking data. > * Improve systems : Improving systems helps remove busywork from an employee’s day, but it also makes things easier for the customer. > * Whether you’re getting a lot of satisfaction from being busy or just feeling exasperated, don’t forget to occasionally stop and ask yourself: Is this the best use of time? * [Michal Kovařík kovarex](https://factorio.com/blog/post/fff-366) - (2021) The only way to go fast, is to go well! | Factorio Team and TDD * [Mike Crittenden](https://critter.blog/2021/04/23/you-have-to-standardize-before-you-can-standardize/) - (2021) You have to standardize before you can standardize * [Unix Sheikh](https://www.unixsheikh.com/articles/using-a-framework-can-make-you-stupid.html) - (2021) Using a framework can make you stupid! * :star: [**Jeff Atwood**](https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/) - (2006) The Ten Commandments of Egoless Programming * [Rajasegar Chandran](https://web.archive.org/web/20200203103540/https://hangaroundtheweb.com/2018/03/egoless-programming/) - (2018) Egoless Programming > Egoless programming is a concept introduced by Gerald Weinberg in The Psychology Of Computer Programming. The idea is that programmers must fight the natural tendency to treat their programs as part of themselves, and therefore to reject all criticism. Rather, they should do their best to treat their designs & implementations as objects independent of themselves, and to view criticism dispassionately on its merits. * [Daniel Irvine](https://8thlight.com/blog/daniel-irvine/2016/09/30/the-egoless-programmer.html) - (2016) The egoless programmer * [Bertrand Le Foulgoc](https://blog.octo.com/egoless-programming/) - :fr: [FR] Egoless Programming * [Wikipedia](https://en.wikipedia.org/wiki/Egoless_programming) - Egoless programming * [WikiWikiWeb](https://wiki.c2.com/?EgolessProgramming) - Egoless Programming * [Raphael Gaschignard](https://rtpg.co/2022/02/04/precision-in-technical-discussions.html) - (2022) Precision In Technical Discussions > * While working with the same people in the same problem domain for a long time, it's extremely common for people to take shortcuts when describing usage of a technical system. * [Nikol](https://pro-wp.in.ua/stop-a-moment-slow-programming-is-a-trend-for-tired-developers/) - (2023) Stop a moment. Slow programming is a trend for tired developers * [Heinrich Hartmann](https://www.heinrichhartmann.com/archive/quality-time.html) - (2018) Quality Time ## Clean code and best practices See also [Calm programming / Slow programming](#calm-programming--slow-programming) > News * :star: [**Coding Blocks**](https://www.codingblocks.net/) - podcast and website for learning how to become a better software developer, covers a wide variety of programming best practices | the rhythm is sometimes slow * [The Holy Java](https://theholyjava.wordpress.com/) - Building the right thing, building it right, fast * [Clean Coder Blog](http://blog.cleancoder.com/) - articles by Robert C. Martin (Uncle Bob) > Learn * [MorganGeek](../PRINCIPLES.md) - some programming and life lessons, collected from various sources including myself * [Corinna Baldauf](http://wall-skills.com/2014/simplicity-rules-from-extreme-programming/) - (2014) Simplicity Rules (from eXtreme Programming) * [Bruce Johnson](https://blog.fullstory.com/what-we-learned-from-google-code-reviews-arent-just-for-catching-bugs-b125a13aa292) - What we learned from Google: code reviews aren’t just for catching bugs * [Vaidehi Joshi](https://dev.to/vaidehijoshi/crafting-better-code-reviews) - Crafting Better Code Reviews * [Gregg Caines](http://caines.ca/blog/2009/12/13/code-slower/) - (2009) Code Slower * [Gregg Caines](http://caines.ca/blog/2010/12/05/quality-is-the-constraint/) - (2010) Quality Is the Constraint * [Hugo Matilla/Refactoring-Summary](https://github.com/HugoMatilla/Refactoring-Summary) - Summary of "Refactoring: Improving the Design of Existing Code" by Martin Fowler * [John Hanley](http://www.javapractices.com/home/HomeAction.do) - Collected Java Practices * [Christopher Diggins](http://www.artima.com/weblogs/viewpost.jsp?thread=331531) - The Principles of Good Programming * [/r/tinycode](https://www.reddit.com/r/tinycode/) - minimalistic, often but not always simple implementations of just about everything. * [/r/codegolf](https://www.reddit.com/r/codegolf/) - Challenges to test your code shortening skills. Not necessarily practical, but fun! * :star: [**Andrew Yurisich/unmaintainable-code**](https://github.com/Droogans/unmaintainable-code) - How To Write Unmaintainable Code. **Bonus** : [Original article by Roedy Green / Canadian Minds](https://www.doc.ic.ac.uk/~susan/475/unmain.html) * [mre/Idiomatic Rust](https://github.com/mre/idiomatic-rust) - Guidelines for writing elegant Rust programs * [Lucas Medeiros Reis](https://dev.to/iamlucasmreis/the-single-most-important-driver-of-software-quality) - The Single Most Important Driver Of Software Quality * [enginyoyen/Ansible Best Practises](https://github.com/enginyoyen/ansible-best-practises) - A project structure that outlines some best practises of how to use ansible * :star: [**Kristories/Awesome Guidelines**](https://github.com/Kristories/awesome-guidelines) - A curated list of high quality coding style conventions and standards. * [Google](https://google.github.io/styleguide/javascriptguide.xml) - Google JavaScript Style Guide. **Deprecated** : use [jsguide.html](https://google.github.io/styleguide/jsguide.html) in place * [rwaldron/idiomatic.js](https://github.com/rwaldron/idiomatic.js) - Principles of Writing Consistent, Idiomatic JavaScript * [JS: The Right Way](http://jstherightway.org/) - JavaScript and its best practices * [clean-code-linters](https://github.com/showcases/clean-code-linters) - Clean code linters on GitHub * [Sylvain Soliman's Den](https://lifeware.inria.fr/~soliman/post/prolog_guidelines/) - Prolog programming guidelines * [GNU](http://www.gnu.org/software/autoconf/manual/autoconf.html#Portable-Shell) - Portable Shell Programming | When writing your own checks, there are some shell-script programming techniques you should avoid in order to make your code portable. * [bahamas10/bash-style-guide](https://github.com/bahamas10/bash-style-guide) - Bash Style Guide : A style guide for writing safe, predictable, and portable bash scripts (not sh!) * [golang/go/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments) - Go Code Review Comments : collects common comments made during reviews of Go code. This is a laundry list of common mistakes, not a style guide. * [Google](https://google.github.io/styleguide/javaguide.html) - Google Java Style Guide * [Google](https://google.github.io/styleguide/pyguide.html) - Google Python Style Guide. **Deprecated** : use [pyguide.md](https://github.com/google/styleguide/blob/gh-pages/pyguide.md) in place * [Google](https://google.github.io/styleguide/) - Google Style Guides * [sharipov-ru/all-coding-style-guides](https://github.com/sharipov-ru/all-coding-style-guides) - (2015) All coding style guides in one right place * [Josh Reichardt](https://thepracticalsysadmin.com/lint-your-dockerfiles-with-hadolint/) - Lint your Dockerfiles with Hadolint * [Vivek Gite](https://www.cyberciti.biz/tips/check-unix-linux-configuration-file-for-syntax-errors.html) - 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors * [Douglas Crockford](https://twitter.com/EPoberezkin/status/525209820555907072/photo/1) - (2014) [IMG] Good parts of JavaScript reconsidered * [Christian Neumanns](https://www.codeproject.com/Articles/787668/Why-We-Should-Love-null) - (2014) Why We Should Love 'null' / + the Null Object Pattern * [Venkat Subramaniam](https://twitter.com/venkat_s/statuses/521625754485157889) - "Poor quality code is a reflection of lack of respect we carry for what we do, often with out realizing it." * [J. B. Rainsberger](http://blog.thecodewhisperer.com/permalink/musings-on-refactoring-as-waste) - (2014) Musings on Refactoring as Waste * [The Twelve-Factor App](https://12factor.net/) - is a methodology for building software-as-a-service apps of great quality * [thoughtbot/guides](https://github.com/thoughtbot/guides) - A guide for programming in style. **Bonus** : [Thoughtbot's playbook](https://thoughtbot.com/playbook) - explaining how they build products and run their company * :star: [**ShellCheck**](https://www.shellcheck.net/) - finds bugs in your shell scripts. [Source code](https://github.com/koalaman/shellcheck). Can be used online, in Vim, Atom, Sublime Text, ... * [Bash Guide](https://mywiki.wooledge.org/BashGuide) - This guide aims to aid people interested in learning to work with BASH. It aspires to teach good practice techniques for using BASH, and writing simple scripts. * [GreyCat's Wiki](http://mywiki.wooledge.org/BashGuide/Practices) - BASH Guide / practices for people doing Unix shell scripting or system administration * [Chris Wellons](http://nullprogram.com/blog/2017/08/20/) - (2017) A Tutorial on Portable Makefiles * [Chris Wellons](http://nullprogram.com/blog/2017/03/30/) - (2017) How to Write Portable C Without Complicating Your Build * [Lawrence Kesteloot](https://www.teamten.com/lawrence/writings/the_language_squint_test.html) - (2008) The Language Squint Test * [blue.penguin](https://bluepenguinlist.com/2016/11/04/bash-scripting-tutorial/) - (2016) Bash scripting tutorial: A coding style guideline * Some GitHub resources on clean coding practices, mostly based on book 'Clean Code: A Handbook of Agile Software Craftsmanship' by Robert C. Martin : [Wojtek Lukaszuk](https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29), [Deniz Ozger/clean-code](https://github.com/denizozger/clean-code), [Jose Angel Barroso/clean-code](https://github.com/jbarroso/clean-code), [harry830622/clean-code-notes](https://github.com/harry830622/clean-code-notes), [thebentern/clean-code-study](https://github.com/thebentern/clean-code-study), [JuanCrg90/Clean-Code-Notes](https://github.com/JuanCrg90/Clean-Code-Notes), [timkendall/clean-code](https://github.com/timkendall/clean-code) * [jbelmont/pragmatic-programmer-and-clean-code](https://github.com/jbelmont/pragmatic-programmer-and-clean-code) - principles from Pragmatic Programmer and Clean Code books * [stanislaw/awesome-safety-critical](https://github.com/stanislaw/awesome-safety-critical) - resources about programming practices for writing safety-critical software. * [Umer Mansoor](https://codeahoy.com/2016/06/03/write-less-code/) - (2016) Write Less Code * [Victor Rentea](https://www.youtube.com/watch?v=J4OIo4T7I_E) - (2017) [Video] The Art Of Clean Code * [Paul Draper](https://www.lucidchart.com/techblog/2017/03/15/package-management-stop-using-version-ranges/) - (2017) Package Management: Stop Using Version Ranges * [Kartik Agaram](http://akkartik.name/post/versioning) - (2017) The cargo cult of versioning * [joelparkerhenderson/versioning](https://github.com/joelparkerhenderson/versioning) - notes and summary of article "The cargo cult of versioning" * [Marc Eaddy](https://testing.googleblog.com/2017/11/obsessed-with-primitives.html) - (2017) Code Health: Obsessed With Primitives? * [Chris Wheeler](http://chriswheeler.blogspot.be/2005/05/my-favourite-smells.html) - (2005) My Favourite Smells / about primitive obsession * [Dori Reuveni and Kevin Bourrillion](https://testing.googleblog.com/2017/07/code-health-to-comment-or-not-to-comment.html) - (2017) Code Health: To Comment or Not to Comment? * [Shane Fast](https://medium.com/paper-engineering/what-a-kids-cartoon-taught-me-about-software-7cbd3bf45c6a) - (2017) What a kid’s cartoon taught me about software * [Carlos Leon](https://container-solutions.com/tagging-docker-images-the-right-way/) - (2017) Semantic versioning and Tagging Docker images the right way * [Alan Franzoni](https://www.franzoni.eu/shell-scripting-when-to-use-the-long-or-the-shor/) - (2017) Shell scripting: short or long format options? * [ty-/spec-style-guide](https://github.com/ty-/spec-style-guide) - some best practices for writing markdown based specifications to be printable by gitprint.com and pandoc * [Joël Spolsky](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/) - (2005) Making Wrong Code Look Wrong * [Joël Spolsky](https://www.joelonsoftware.com/2003/12/01/craftsmanship-2/) - (2003) Craftsmanship * [Joël Spolsky](https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/) - (2009) The Duct Tape Programmer * [Pádraig Brady](http://www.pixelbeat.org/programming/shell_script_mistakes.html) - (2008) Common shell script mistakes * [Jiri Tyr](https://www.slideshare.net/jtyr/best-practices-for-ansible-roles-development/1) - (2017) [Slides] Best Practices for Ansible #AnsibleLondon **Bonus** : [Video] [Presentation at London Ansible meetup](https://www.youtube.com/watch?v=sFuKuHmRuzQ) * [Jiri Tyr](https://www.slideshare.net/jtyr/automation-and-ansible) - (2016) [Slides] Automation and Ansible * [Project Atomic](http://docs.projectatomic.io/container-best-practices/) - Container Best Practices * [Dag Sonstebo](https://www.slideshare.net/DagSonstebo/techug-glasgow-talk-22feb17-configuration-management-best-practices) - (2017) Configuration Management Best Practices * [Michael Lynch](https://mtlynch.io/human-code-reviews-1/) - (2017) How to Do Code Reviews Like a Human (Part One). **Bonus** : [Part Two](https://mtlynch.io/human-code-reviews-2/) * [Timothy Appnel](https://www.ansible.com/blog/ansible-best-practices-essentials) - Ansible Best Practices: The Essentials. **Bonus** : [Video](https://www.ansible.com/videos-ansible-automates-ansible-best-practices-the-essentials) * [Yunkai Zhou](https://medium.freecodecamp.org/climbing-the-code-quality-ladder-babd3198e6e2) - (2018) Climbing The Code Quality Ladder * [Andy Zaidman](https://azaidman.wordpress.com/2015/01/19/old-habits-die-hard-why-refactoring-for-understandability-does-not-give-immediate-benefits/) - (2015) Old Habits Die Hard: Why Refactoring for Understandability Does Not Give Immediate Benefits * [Sarah Drasner](https://css-tricks.com/the-art-of-comments/) - (2017) The Art of Comments * [Javin Paul](http://javarevisited.blogspot.be/2014/10/10-java-best-practices-to-name-variables-methods-classes-packages.html) - (2014) 10 Programming Best Practices to Name Variables, Methods, Classes and Packages * [Javin Paul](http://javarevisited.blogspot.be/2013/03/0-exception-handling-best-practices-in-Java-Programming.html) - (2013) 10 Exception handling Best Practices in Java Programming * [Javin Paul](http://javarevisited.blogspot.be/2012/03/10-object-oriented-design-principles.html) - (2012) 10 Object Oriented Design Principles Java Programmer should know * [Javin Paul](http://javarevisited.blogspot.be/2011/08/code-comments-java-best-practices.html) - (2011) 10 Best Practices to Follow while writing Code Comments * [Nicolas Hoffmann, Elie Sloïm](https://openweb.eu.org/articles/le-cout-de-la-non-qualite-sur-le-web) - (2014) :fr: [FR] Le coût de la non-qualité sur le Web : 50% * [Lemi Orhan Ergin](https://fr.slideshare.net/lemiorhan/coderetreat-practice-to-master-your-crafts) - (2014) [Slides] Coderetreat - Practice to Master Your Crafts | Rules of Simple Design * [J. B. Rainsberger](http://blog.jbrains.ca/permalink/the-four-elements-of-simple-design) - (2009) The Four Elements of Simple Design * [J. B. Rainsberger](http://blog.thecodewhisperer.com/permalink/putting-an-age-old-battle-to-rest) - (2013) Putting An Age-Old Battle To Rest | Improving Names * [Brian Geihsler](http://qualityisspeed.blogspot.be/2014/08/why-i-dont-teach-solid.html) - (2014) Why I Don't Teach SOLID * [Michal Ciurus](http://yourcodesucksexception.blogspot.be/2015/01/reusable-software-just-do-write-generic.html) - (2015) Drawing clear lines in software architecture * [Michal Ciurus](http://yourcodesucksexception.blogspot.be/2014/11/your-code-sucks.html) - (2014) Your code sucks - things you need to know about clean code and architecture * [Michal Ciurus](http://yourcodesucksexception.blogspot.be/2015/08/the-clean-code-trap.html) - (2015) The Clean Code Trap * [Sarah Mei](https://speakerdeck.com/sarahmei/is-your-code-too-solid-with-transcript) - (2015) [Slides] Is Your Code Too SOLID? (with transcript) * [Brian Geihsler](http://qualityisspeed.blogspot.be/2014/09/beyond-solid-dependency-elimination.html) - (2014) Beyond SOLID: The Dependency Elimination Principle * [Anthony Williams](https://www.justsoftwaresolutions.co.uk/design/duplication.html) - (2013) Duplication in Software * [Shan](https://shansvex.wordpress.com/2013/12/03/being-a-slow-programmer/) - (2013) Being a Slow Programmer * [J. B. Rainsberger](https://twitter.com/jbrains/statuses/167297606698008576) - "Worried that TDD will slow down your programmers? Don't. They probably need slowing down." * [Jonas Downey](https://m.signalvnoise.com/move-slowly-and-fix-things-e5a560fd928b) - (2017) Move Slowly and Fix Things | Ruminations on the heavy weight of software design * [Alvaro Videla](http://alvaro-videla.com/2014/09/a-programmers-role.html) - (2014) A Programmer's Role, about what clean code was like in 1967 **Bonus** : (1967) [PDF] Original publication [What Programmer Does](http://archive.computerhistory.org/resources/text/Knuth_Don_X4100/PDF_index/k-9-pdf/k-9-u2769-1-Baker-What-Programmer-Does.pdf) * [Steve McConnell](http://stevemcconnell.com/articles/teach-programming-principles-not-tools-and-tips/) - (1996) Teach Programming Principles, Not “Tools and Tips” * [Steve McConnell](http://stevemcconnell.com/articles/why-you-should-use-routines-routinely/) - (1998) Why You Should Use Routines, Routinely * [Steve McConnell](http://stevemcconnell.com/articles/keep-it-simple/) - (1996) Keep It Simple * [Markus Harrer](https://www.feststelltaste.de/video-michael-feathers-strategic-code-deletion/) - (2017) Michael Feathers – Strategic Code Deletion. **Bonus** : Original [Video] [Slides] by [Michael Feathers](https://www.infoq.com/presentations/remove-unneeded-code) * [Markus Harrer](https://www.feststelltaste.de/video-modern-software-development-antipatterns/) - (2015) Video: Modern Software Development Antipatterns * [Nicolai M. Josuttis](http://www.josuttis.com/WelcomeCrappyCode.html) - (2009) Welcome Crappy Code - The Death of Code Quality * [Serge Beaumont](http://blog.xebia.com/do-you-worry-about-crappy-code-then-face-reality-and-grow-up/) - (2009) Do you worry about crappy code? Then face reality and grow up. * [Dave Nicolette](https://www.leadingagile.com/2016/09/5s-for-software-teams/) - (2016) 5S for Software Teams * [Dennis Stevens](https://www.leadingagile.com/2013/09/stop-writing-code-cant-yet-test/) - (2013) Stop Writing Code You Can't Yet Test * [Adam Pittenger](https://medium.com/@apitt24/love-what-you-build-build-what-you-love-9cedbb05e32f) - (2013) Love what you build. Build what you love. * [Stoyan Stefanov](https://www.phpied.com/hello-stylelint/) - (2017) Hello Stylelint | a great new modern unopinionated CSS linter * [Hacker News](https://news.ycombinator.com/item?id=16233961) - Ask HN: Started a new job and their existing code sucks. What to do? * [Jeffrey Ventrella](https://ventrellathing.wordpress.com/2013/06/18/the-case-for-slow-programming/) - (2013) The Case for Slow Programming | “Slow down, son. You’ll get the job done faster.” * [The Front-End Checklist](https://frontendchecklist.io/) - perfect for modern websites and meticulous developers! * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/10/30/python-for-java-developers/) - (2016) Maintainable Python applications: a guide for skeptical Java developers * [Brian Vanderwal](https://spin.atomicobject.com/2017/03/07/attitudes-maintainable-code/) - (2017) Three Attitudes that Lead to Maintainable Code * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/08/25/the-01x-programmer/) - (2016) From 10x programmer to 0.1x programmer: creating more with less * [Itamar Turner-Trauring](https://codewithoutrules.com/2017/11/07/no-such-thing-as-bad-code/) - (2017) There’s no such thing as bad code * [Shaun Finglas](https://blog.shaunfinglas.co.uk/2015/09/waste-write-less-code.html) - (2015) Waste: Write Less Code * [Dan North](https://speakerdeck.com/tastapod/why-every-element-of-solid-is-wrong) - [Slides] (2016) Why Every Element of SOLID is Wrong by * [Lieven Vaneeckhaute (denshade)](https://softwareefficiency.wordpress.com/2016/11/30/abbreviations-are-your-false-friend/) - (2016) Abbreviations are your (false) friend! * [Thomas Figg (tef)](https://programmingisterrible.com/post/139222674273/write-code-that-is-easy-to-delete-not-easy-to) - (2016) Write code that is easy to delete, not easy to extend. * [Jakub Holý](https://theholyjava.wordpress.com/2011/02/14/clean-code-four-simple-design-rules/) - (2011) Clean Code: Four Simple Design Rules – Obligatory Read * [Dimitris Staikos](http://www.commonsense4commonpeople.net/2008/11/the-code-is-the-documentation.html) - (2008) The code is THE documentation | why the code is not the documentation * [Jakub Holý](https://blog.jakubholy.net/craft/) - Craft : About the craft of software development and why it matters. **Bonus** Archive of previous version about code quality only : [Code (And Design) Quality And Why Should We Care.](https://web.archive.org/web/20170606194333/http://Theholyjava.wordpress.com/code-quality/) * [Jakub Holý](https://theholyjava.wordpress.com/2012/09/12/programming-like-kent-beck/) - (2012) Programming Like Kent Beck * [Steven A. Lowe](https://techbeacon.com/program-faster-all-time-best-tips-pros) - Code faster: 53 tips from the pros > The only way to go fast is to go well. Every time you yield to the temptation to trade quality for speed, you slow down. Every time. [Robert C. Martin](http://butunclebob.com/ArticleS.UncleBob.VehementMediocrity) * [Christian Maioli Mackeprang](https://techbeacon.com/3-creative-techniques-writing-modular-code) - (2018) 3 creative techniques for writing modular code * [Christian Maioli Mackeprang](https://techbeacon.com/app-dev-testing/35-programming-habits-make-your-code-smell) - (2018) 35 programming habits that make your code smell * [Christian Maioli Mackeprang](https://techbeacon.com/how-terrible-code-gets-written-perfectly-sane-people) - (2018) How terrible code gets written by perfectly sane people * [Software Engineering Tips](http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer) - (2012) Signs that you're a bad programmer * [Software Engineering Tips](http://www.yacoset.com/Home/signs-that-you-re-a-good-programmer) - (2012) Signs that you're a good programmer * [Software Engineering Tips](http://www.yacoset.com/Home/programming-tips) - (2010) Programming Tips * [Ronald Jeffries](https://www.ronjeffries.com/articles/017-08ff/clean-code/) - (2017) Clean Code: A Learning * [James Wade](https://wade.be/development/2017/10/06/reviewing-code.html) - (2017) What's involved in a code review? * [Jason McCreary](https://dev.to/gonedark/another-month-of-clean-code-4gig) - (2017) Another month of clean code * [Brian Barto](https://medium.com/@bartobri/applying-the-linus-tarvolds-good-taste-coding-requirement-99749f37684a) - (2016) Applying the Linus Torvalds “Good Taste” Coding Requirement * [Michal Charemza](https://charemza.name/blog/posts/programming/smells/say-no-to-more-optional-arguments/) - (2016) Say no to more optional arguments | example in Python * [Ravi Shankar Rajan](https://hackernoon.com/how-to-make-your-code-clean-and-beautiful-5ff7aee03be6) - (2018) How to Make Your Code CLEAN and BEAUTIFUL * [Jim Leonardo](https://jimsrulesregardingeverything.com/2017/06/29/dont-repeat-yourself-x3/) - (2017) Don't Repeat Yourself x3 * [Bill Wake](https://www.industriallogic.com/blog/isolate-improve-inline-refactoring-tactic/) - (2016) Isolate-Improve-Inline: The 3-I Refactoring Tactic * [Fagner Brack](https://medium.com/@fagnerbrack/why-small-modules-matter-4e4d629321b8) - (2016) Why Small Modules Matter | Big projects are what, if not the composition of small pieces * [Industrial Logic](http://www.industriallogic.com/wp-content/uploads/2005/09/smellstorefactorings.pdf) - [PDF] (2005) Smells to Refactorings Quick Reference Guide * [Palantir](https://medium.com/@palantir/code-review-best-practices-19e02780015f) - (2018) Code Review Best Practices * [Joshua Kerievsky](https://www.industriallogic.com/blog/sufficient-design/) - (2010) Sufficient Design > we need high design quality for stuff that is critical to our products and less design quality for stuff that isn't critical. * [Joshua Kerievsky](https://www.industriallogic.com/blog/whats-wrong-with-clean-code/) - (2010) What’s Wrong With Clean Code? | When Cleaning Is Not Enough > Clean frequently and remodel occasionally to produce an excellent design. * [John Sonmez](https://www.youtube.com/watch?v=o1tDEqHf6_M) - [Video] (2016) Being A Slow Developer... Am I Screwed? | on slow programming, clean code & productivity. Don't rush, do it right, do it clean then do it fast. * [Jeff Atwood](https://blog.codinghorror.com/we-make-shitty-software-with-bugs/) - (2004) We Make Shitty Software.. With Bugs! | Software is a process, it's never finished, it's always evolving. * [Jakub Skałecki](https://rock-it.pl/how-to-write-excellent-dockerfiles/) - (2017) How to write excellent Dockerfiles * [Jakub Skałecki](https://rock-it.pl/automatic-code-quality-checks-with-git-hooks/) - (2017) Automatic code quality checks with git hooks * [Matthew Setter](https://blog.codeship.com/best-practices-when-versioning-a-release/) - (2018) Best Practices When Versioning a Release * [Stephen Mann](https://stephenmann.io/post/dont-do-this-in-production/) - (2018) Don't Do This in Production * [Matt Butcher](http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html) - (2018) Be Nice And Write Stable Code * [Brandur Leach](https://brandur.org/minimalism) - (2018) In Pursuit of Production Minimalism * [Birat Rai](https://medium.com/@biratkirat/step-8-the-boy-scout-rule-robert-c-martin-uncle-bob-9ac839778385) - (2017) Step 8: The Boy Scout Rule ~Robert C. Martin (Uncle Bob) > “Leave Things BETTER than you found them.” ~ Robert Baden Powell * [Chesterton's fence](https://en.wikipedia.org/wiki/Wikipedia:Chesterton's_fence) - the principle that reforms should not be made until the reasoning behind the existing state of affairs is understood. * [Mark Heath](https://markheath.net/post/stable-tactics-for-writing-solid-code) - (2017) STABLE tactics for writing SOLID code * [Rule of three (computer programming)](https://en.wikipedia.org/wiki/Rule_of_three_%28computer_programming%29) - only refactor when similar code is used three times (and more) * [Johannes Brodwall](http://johannesbrodwall.com/2018/06/24/forget-about-clean-code-lets-embrace-compassionate-code/) - (2018) Forget about Clean Code, let’s embrace Compassionate Code | Make people Awesome. Clean Code may help or hurt that goal. Learn to see the difference. * [Trung Thanh Le](https://www.slideshare.net/TrungThanhLe1/connascence-how-to-detect-code-smell) - (2017) [Slides] Connascence - How to detect code smell * [Ben Halpern](https://dev.to/ben/write-clean-code-and-avoid-the-distractions-of-emerging-technology-3emj) - (2018) Write clean code and avoid the distractions of emerging technology | stay excited by the trends, but be impassioned by the small improvements you can make in the quality of your work. * [Sandi Metz](https://www.sandimetz.com/blog/2016/1/20/the-wrong-abstraction) - (2016) The Wrong Abstraction > 1. duplication is far cheaper than the wrong abstraction > 2. prefer duplication over the wrong abstraction * [John D. Cook](https://www.johndcook.com/blog/2008/05/03/reusable-code-vs-re-editable-code/) - (2008) Reusable code vs. re-editable code * [progrium/bashstyle](https://github.com/progrium/bashstyle) - Let's do Bash right! Collection of Best practices acquired from experience for Bash * [Kat Dober](https://blog.newrelic.com/engineering/ansible-best-practices-guide/) - (2018) New to Ansible? Check Out Our Best Practices Guide * [sloria](https://gist.github.com/sloria/7001839) - The Best of the Best Practices (BOBP) Guide for Python * [The Hitchhiker’s Guide to Python!](https://docs.python-guide.org/) - This handcrafted guide exists to provide both novice and expert Python developers a best practice handbook to the installation, configuration, and usage of Python on a daily basis. * [George Gritsouk](https://gggritso.com/legacy-code) - (2016) Legacy Code | The noblest pursuit of our weekdays | slow programming * [Slow Programming](https://slowprogramming.com/) - Programming has become a pursuit of profit over personal knowledge. The craft of programming has developed into a rapid rush to the finish line via bootcamps and brief tutorials. * [stanislaw/SoftwareDesignHeuristics](https://github.com/stanislaw/SoftwareDesignHeuristics) - heuristics found to be useful in software engineering practice. We call “heuristics” everything that helps us to write better code given we keep them in mind. * [Arnaud Lemaire](https://www.youtube.com/watch?v=bQfumbBN6YQ) - [Videos] :fr: [FR] (2019) Entre industrialisation et artisanat, le métier de développeur. | a very good and accurate talk of software craftsmanship * :star: [**Terraform Best Practices**](https://www.terraform-best-practices.com/) - [Book] free book with most of best-practices and recommendations for Terraform users. **Bonus** [Source code examples](https://github.com/antonbabenko/terraform-best-practices/tree/master/examples) * [Anton Babenko](https://fosdem.org/2019/schedule/event/terraform_best_practices/) - [Videos] (2019) Codifying infrastructure with Terraform for the future | be aware of principles related to management of Terraform resources, Terraform modules best-practices and some CI/CD principles applicable to infrastructure management and deployments. * [Matej Jellus](https://juffalow.com/other/write-good-git-commit-message) - (2018) Write good git commit message * [Martin Fowler](https://martinfowler.com/articles/is-quality-worth-cost.html) - (2019) Is High Quality Software Worth the Cost? * [Literate programming](http://www.literateprogramming.com/) - is a programming paradigm introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated. * [Literate programming links](http://www.literateprogramming.com/links.html) - articles about literate programming * [Yevgeniy Brikman](https://blog.gruntwork.io/terragrunt-how-to-keep-your-terraform-code-dry-and-maintainable-f61ae06959d8) - (2019) Terragrunt: how to keep your Terraform code DRY and maintainable | Terragrunt is helpful at solving problems such as : > - the lack of locking for Terraform state > - the lack of a way to configure your Terraform state as code. > - how to keep your Terraform code DRY and maintainable... * [Loris Cro](https://kristoff.it/blog/simple-not-just-easy/) - (2019) I Want Simple, Not Just Easy > You've surely read plenty about how simple is good, but what's wrong with easy? * [Bill Clark](https://technology.riotgames.com/news/taxonomy-tech-debt) - (2018) A Taxonomy of Tech Debt * [antonbabenko/terragrunt-reference-architecture](https://github.com/antonbabenko/terragrunt-reference-architecture) - Terragrunt Reference Architecture - This repository contains rather complete infrastructure configurations where Terragrunt is used to manage infrastructure for Acme Corporation. * [Anton Babenko](https://www.slideshare.net/AntonBabenko/terraform-modules-and-some-of-bestpractices-march-2019) - [Slides] (2019) Terraform modules and some of best-practices | Slides of his talk at DevOps Singapore meetup in March 2019 * [Fernanda Martins](https://www.slideshare.net/FernandaMartins154/the-hitchhikers-guide-to-terraform-your-infrastructure) - (2020) [Slides] The hitchhiker's guide to terraform your infrastructure * [Anton Babenko](https://www.youtube.com/watch?v=mOsiLZGdXS4) - (2019) [Video] Terraform best practices with examples and arguments * [Horia Coman](https://dev.to/horia141/jupiter-dev-log-3-lint-all-the-things-51lh) - (2020) Jupiter Dev Log 3 - Lint All The Things * [CloudSkiff](https://medium.com/faun/terraform-code-quality-66e6468f50f3) - (2019) Terraform Code Quality | Key Steps to a good quality for your Infrastructure Code. * [Thomas Nyambati](https://medium.com/rackbrains/https-medium-com-thomas-nyambati-how-to-avoid-handover-nightmares-aea38d9a3793) - (2017) How to Avoid Handover Nightmares | I totally adhere to those principles in my daily work... they are well known but still deserve a reminder :-) ... > * Keep things simple. > * Document everything. > * Adopt workflow and best practices. > * Employ separation of concerns. > * Avoid using personal accounts or credentials. > * Automate as much as you can. > * Write good code. * [Jamie Wong](http://jamie-wong.com/2013/07/12/grep-test/) - (2013) Too DRY - The Grep Test * [Ilya Sher](https://ilya-sher.org/2019/05/18/on-information-loss-in-software/) - (2019) On Information Loss in Software * [Michael Foord](https://opensource.com/article/17/5/30-best-practices-software-development-and-testing) - (2017) 30 best practices for software development and testing * [thomasdavis/best-practices](https://github.com/thomasdavis/best-practices) - This is a fork of [timoxley/best-practices](https://github.com/timoxley/best-practices) - Tidbits of best practices information from around the web * [Dominik Krejcik](https://domk.website/blog/2021-01-31-cult-of-best-practise.html) - (2021) The Cult of Best Practice * [Jeremy Mikkola](https://jeremymikkola.com/posts/2021_02_02_how_to_write_readable_code.html) - (2021) How to write readable code > * Prioritize Clarity : The first step to writing clear code is to make it a priority. > * Develop a sense for clarity : requires knowing what clear code looks like. > * Edit : Reading back over what you just wrote will help give ideas for how to improve it. > * Start by explaining : start by explaining what needs to be done as though you are telling it to another person (or rubber duck). Write it down. Take that explanation and transform it into code. > * Comments : Code can’t self-document if it isn’t there. If you decide to not write some code and don’t leave a comment explaining why, there will be nothing left to explain what you were thinking! > * Don’t mix levels : Mixing levels of abstraction makes the reader jump between thinking about what is being done and how it is implemented. > * Break out functions | :duck: self-comment here : It's true to some extent, but breaking a code in too many functions can also force jumping a lot between code locations. So I would say it depends on the semantic and scope distance between those functions. > * Don’t break out functions : DRY starts to go too far when two functions that happen to share a handful of lines become a target for deduplication. The test for whether some pieces of code should be deduplicated is simple: would anything bad happen if one was changed without also changing the other? If the answer is yes, then make a single source of truth for it. If not, consider leaving it alone. | :duck: self-comment : exactly... what I just wrote above :-) > * Avoid configurable functions : Prefer many functions to a few, configurable functions, i.e It’s much better to have multiple functions, each of which does just one thing. > * Don’t prematurely optimize * :star: [**Phil Eaton**](https://notes.eatonphil.com/the-case-for-comments-in-code.html) - (2020) The case for comments in code > More so than all other tools (issue tracker, code management system, etc.) comments in code have the greatest chance of still being around and easily searchable if they haven't been deleted. * [Dan Moore](https://letterstoanewdeveloper.com/2021/01/18/think-first-about-what-problem-this-is-solving-and-for-whom/) - (2021) Think first about what problem this is solving and for whom > every time you pick up a new Jira ticket or sit down to complete a new requirement, I suggest that you ask yourself the following questions: > * Who does this solve a problem for? > * What is the problem they’re trying to solve? > * How does this ticket solve it? * [The HFT Guy](https://thehftguy.com/2020/08/26/technical-debt-doesnt-exist/) - (2020) Technical Debt Doesn’t Exist > * Make yourself a favor and call that **maintenance**. > * Software do not have a technical debt problem, software simply requires maintenance. * [Kailash Awati](https://eight2late.wordpress.com/2009/07/16/maintenance-matters/) - (2009) Maintenance matters > * Maintenance is a solution, not a problem. **See also** [Robert Glass](http://www.robertlglass.com/)‘ wonderful book, [Facts and Fallacies of Software Engineering](https://www.goodreads.com/book/show/83792.Facts_and_Fallacies_of_Software_Engineering) and [my highlights from this book](../books/facts_fallacies_software_engineering.md) * [Kamil Grzybek](https://www.kamilgrzybek.com/design/feature-folders/) - (2018) Feature Folders | on codebase design * [Ayooluwa Isaiah](https://freshman.tech/linting-golang/) - (2021) A guide to linting Go programs * [Mike Crittenden](https://critter.blog/2021/04/23/you-have-to-standardize-before-you-can-standardize/) - (2021) You have to standardize before you can standardize * [Alex Mitelman](https://mitelman.engineering/blog/python-best-practice/automating-python-best-practices-for-a-new-project/) - (2021) Python Best Practices for a New Project in 2021 * [Tiexin Guo](https://medium.com/4th-coffee/on-devops-9-infrastructure-as-code-clean-code-terraform-introduction-and-best-practices-5d266132c70a) - (2021) On DevOps — 9. Infrastructure as Code — Clean Code, Terraform Introduction, and Best Practices * [CloudSkiff](https://cloudskiff.com/terraform-code-quality/) - (2020) Terraform Code Quality | Key Steps to a good quality for your Infrastructure Code. **Related** : [Original talk from Cloud Native London, 3 June 2020](https://www.youtube.com/watch?v=yX2GoXB70iA) * [Vincent Foley aka vfoley, gnuvince](https://vfoley.xyz/reasonable-use/) - (2021) Making Reasonable Use of Computer Resources > The fastest option eventually wins. Would your project survive if a competitor came along and was ten times faster? * [kettanaito/naming-cheatsheet](https://github.com/kettanaito/naming-cheatsheet) - Comprehensive language-agnostic guidelines on variables naming. Home of the A/HC/LC pattern. * [Jérôme Beau](https://javarome.medium.com/developers-bad-habits-2e99a174b514) - (2021) Developers Bad habits | You don’t want to do that * [Matjaz Trcek](https://codeandunicorns.com/antipatterns-software-development/) - (2016) Antipatterns in software development * [learnk8s](https://learnk8s.io/production-best-practices) - Kubernetes production best practices | A curated checklist of best practices designed to help you release to production * [diegolnasc/kubernetes-best-practices](https://github.com/diegolnasc/kubernetes-best-practices) - A cookbook with the best practices to working with kubernetes. * [PHP The Wrong Way](https://phpthewrongway.com/) - In the world of PHP programming, a set of trends are massively being propagated by some people (in their books and on websites) as “Modern PHP” while all other approaches are frowned upon as backward, stupid, or just plain wrong. This website has been created in an attempt to present a pragmatic view on PHP programming. A view dictated by experience and practical consequence rather than popular trends, theory, or academic dogma. * [Web Usability Checklist](https://teamsuccess.io/UX) - Catch common usability problems before user testing * [Swizec Teller](https://swizec.com/blog/why-null-checks-are-bad/) - (2021) Why null checks are bad * [Steve Barnegren](https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code - (2022) There’s No Such Thing as Clean Code * [Spencer Baugh](https://catern.com/change_code.html) - (2022) Prefer to change the code rather than write a workaround * [Spencer Baugh](https://catern.com/config.html) - (2021) Write code, not configuration * [Raphael Gaschignard](https://rtpg.co/2022/02/04/precision-in-technical-discussions.html) - (2022) Precision In Technical Discussions > * While working with the same people in the same problem domain for a long time, it's extremely common for people to take shortcuts when describing usage of a technical system. * [John Arundel](https://bitfieldconsulting.com/golang/tao-of-go) - (2021) The Tao of Go * [John Arundel](https://bitfieldconsulting.com/golang/commandments) - (2021) Ten commandments of Go * [Benjamin Muschko](https://bmuschko.com/blog/jenkins-shared-libraries/) - (2019) Best practices for writing Jenkins shared libraries > Tools * [Clean Code Cheat Sheet v2.4](https://www.planetgeek.ch/2014/11/18/clean-code-cheat-sheet-v-2-4/) - (2014) cheat sheet for clean code * [Salvatore Gentile/cscs](https://github.com/SalGnt/cscs) - A curated list of Coding Style Conventions and Standards. Discovered via [DevHub](https://devhub.io/repos/aerfaman-cscs) * [dockerlint](https://www.npmjs.com/package/dockerlint) - Linting tool for Dockerfiles based on [Dockerfile Reference](https://docs.docker.com/engine/reference/builder/) and [Docker Docs](https://docs.docker.com/develop/develop-images/dockerfile_best-practices/) * [mcandre/linters](https://github.com/mcandre/linters) - list of linters and introduction to static code analysis * :star: [**mre/Awesome Static analysis**](https://github.com/mre/awesome-static-analysis) - A curated list of static analysis tools, linters and code quality checkers for various programming languages * [JSONLint](https://jsonlint.com/) - JSON validator * [YAML Lint](http://www.yamllint.com/) - The YAML Validator * [EditorConfig](http://editorconfig.org/) - EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles. EditorConfig files are easily readable and they work nicely with version control systems. * [mvdan/sh](https://github.com/mvdan/sh) - sh : A shell parser, formatter and interpreter (POSIX/Bash/mksh) * [pre-commit/pre-commit](https://github.com/pre-commit/pre-commit) - A framework for managing and maintaining multi-language pre-commit hooks. * [Tom Preston-Werner](https://semver.org/) - Semantic Versioning 2.0.0 * [Conventional Commits](https://conventionalcommits.org/) - The Conventional Commits specification proposes introducing a standardized lightweight convention on top of commit messages. This convention dovetails with SemVer, asking software developers to describe in commit messages, features, fixes, and breaking changes that they make. * [marionebl/commitlint](https://github.com/marionebl/commitlint) - Lint commit messages * [Pl/Sql tidy](http://psti.equinoxbase.com/cgi-bin/handler.pl) - Online PL/SQL formatter * [jessfraz/dockfmt](https://github.com/jessfraz/dockfmt) - Dockerfile format and parser. Like `gofmt` but for Dockerfiles. * [Terragrunt](https://terragrunt.gruntwork.io/) - Terragrunt is a thin wrapper that provides extra tools for keeping your configurations DRY, working with multiple Terraform modules, and managing remote state. | DRY and maintainable Terraform code. * [analysis-tools-dev/static-analysis](https://github.com/analysis-tools-dev/static-analysis) - static analysis tools for all programming languages, build tools, config files and more. **See also**: [the official website](https://analysis-tools.dev/) which is based on this repository and adds rankings and user comments for each tool. * [btford/write-good](https://github.com/btford/write-good) - Naive linter for English prose for developers who can't write good and wanna learn to do other stuff good too. * [amperser/proselint](https://github.com/amperser/proselint/) - a linter for English prose. * [get-alex/alex](https://github.com/get-alex/alex) - Catch insensitive, inconsiderate writing. > Whether your own or someone else’s writing, alex helps you find gender favoring, polarizing, race related, religion inconsiderate, or other unequal phrasing in text. * [Semgrep](https://semgrep.dev/) - Static analysis at ludicrous speed. Find bugs and enforce code standards * [Semver check](https://jubianchi.github.io/semver-check/#/) - More and more projects try to follow Semantic Versioning to reduce package versioning nightmare and every dependency manager implements its own semantic versioner. Composer and NPM for example don't handle version constraints the same way. It's hard sometimes to be sure how some library version will behave against some constraint. This tiny webapp checks if a given version satisfies another given constraint. * [Harshit Mehndiratta](https://kubevious.io/blog/post/top-kubernetes-yaml-validation-tools) - (2021) Top Kubernetes YAML Validation Tools * [Amit Saha](https://learnk8s.io/validating-kubernetes-yaml) - (2020) Validating Kubernetes YAML for best practice and policies * [Artur Śmiarowski](https://alemil.com/guidelines-for-writing-readable-code) - (2018) 23 guidelines for writing readable code * [The Chief I/O](https://thechief.io/c/editorial/kubernetes-yaml-enforcing-best-practices-and-security-policies-cicd-and-gitops-pipelines/) - (2020) Kubernetes YAML: Enforcing best practices and security policies in CI/CD and GitOps pipelines ### Naming conventions * [Javin Paul](http://javarevisited.blogspot.be/2014/10/10-java-best-practices-to-name-variables-methods-classes-packages.html) - (2014) 10 Programming Best Practices to Name Variables, Methods, Classes and Packages * [kettanaito/naming-cheatsheet](https://github.com/kettanaito/naming-cheatsheet) - Comprehensive language-agnostic guidelines on variables naming. Home of the A/HC/LC pattern. * [Jonathan Boccara](http://www.fluentcpp.com/2017/01/30/how-to-choose-good-names/) - (2017) How to choose good names in your code * [IMStudio](https://medium.com/geekculture/naming-rules-one-of-the-hard-things-in-computer-science-643dba6a0e36) - (2021) Naming Rules: one of the hard things in Computer Science * [Jérôme Beau](https://javarome.medium.com/programming-naming-361a41c86928) - (2021) Programming: Naming | Where are you talking from? * [Lane Wagner](https://medium.com/qvault/naming-variables-the-right-way-12e2d7769be2) - (2021) Naming Variables the Right Way | bugs are due to the poor naming of variables way more often than you would expect. * [Jason Swett](https://www.codewithjason.com/variable-name-anti-patterns/) - (2018) Variable name anti-patterns > Tools * [Method Namer](http://methodnamer.com/) - Can't think of a good method name? Try this * [CodeElf](https://unbug.github.io/codelf) - Search over Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project, GitLab to find real-world usage variable names | A search tool helps dev to solve the naming things problem. **Source code** : [unbug/codelf](https://github.com/unbug/codelf) ## Conferences > In Belgium * [FOSDEM](https://fosdem.org/) - free event for developers of free and open source software to meet, share and collaborate. **Bonus** : [Videos on YouTube](https://www.youtube.com/user/fosdemtalks/videos) * [Configuration Management Camp](http://cfgmgmtcamp.eu/) - event for users of Open Source Configuration Management tools * [Devoxx Belgium](https://devoxx.be/) - from Developers For Developers * [Journée Agile](https://www.journeeagile.be/) - :fr: [FR] grand évènement agile francophone * [Agile Tour Brussels (ATBru)](http://www.agiletourbrussels.be/) - the biggest conference about Agility in Belgium * [Meetup](https://www.meetup.com/fr-FR/find/?allMeetups=false&keywords=devops&radius=3&userFreeform=Bruselas%2C+Belgique&mcId=c1001379&change=yes&sort=default) - DevOps Meetups in Brussels > Anywhere * [Red Hat Events](https://www.redhat.com/en/events) - Conferences, online events, on-demand webinars, and more * [Jenkins World](https://www.cloudbees.com/jenkinsworld) - usually in USA, but by 2018 will also occur [Jenkins World Europe](https://dzone.com/articles/call-for-papers-is-open-for-jenkins-world-2018) * [Linda Rosencrance](https://techbeacon.com/best-cloud-it-ops-conferences-2018) - (2018) The best cloud and IT Ops conferences of 2018 * [DevOps Con](https://devopsconference.de/program/) - The Conference for Continuous Delivery, Microservices, Containers, Clouds and Lean Business * [AnsibleFest](https://www.ansible.com/ansiblefest) - brings together Ansible users, developers and industry partners to share best practices, case studies and Ansible news. * [GOTO](https://blog.gotocon.com/) - Created for developers, by developers, GOTO Conferences are focused on bringing the best minds in the software community and the most interesting topics to light. * [DevOps Conferences 2018](https://www.gotodevops.org/) * [John P. Mello Jr.](https://techbeacon.com/best-devops-conferences-2018) - (2018) The best DevOps conferences of 2018 > Learn * [hellerve/programming-talks](https://github.com/hellerve/programming-talks) - Awesome & Interesting Talks concerning Programming * [JanVanRyswyck/awesome-talks](https://github.com/JanVanRyswyck/awesome-talks) - list of online talks that are worth watching, mostly about software development * [CloudBeesTV](https://www.youtube.com/playlist?list=PLvBBnHmZuNQLqgKDFmGnUClw68qsQ9Hq5) - [Videos] Jenkins World 2017 * [CNCF [Cloud Native Computing Foundation]](https://www.youtube.com/playlist?list=PLj6h78yzYM2N8GdbjmhVU65KYm_68qBmo) - [Video] videos from KubeCon + CloudNativeCon 2018 - Copenhagen * [Docker](https://www.youtube.com/playlist?list=PLkA60AVN3hh_nihZ1mh6cO3n-uMdF7UlV) - [Videos] content from DockerCon 2017 * [Ansible](https://www.ansible.com/resources/videos/ansiblefest-london-2017) - [Videos] (2017) AnsibleFest London Videos * [Devoxx](https://www.youtube.com/channel/UCCBVCTuk6uJrN3iFV_3vurg) - [Videos] Devoxx channel on youtube * [GOTO Conferences](https://www.youtube.com/user/GotoConferences) - [Videos] video interviews and presentations from GOTO Conferences and GOTO Nights. * [kitze/awesome-conference-practices](https://github.com/kitze/awesome-conference-practices) - Did you like anything in particular about a conference? Did you hate anything? Let's make organizing conferences an easier task 🎉 ## Correctness * [Hoare logic](https://en.wikipedia.org/wiki/Hoare_logic) - is a formal system for reasoning about the correctness of computer programs * [Cormac Flanagan](https://classes.soe.ucsc.edu/cmps203/Winter11/08-axiomatic.ppt.pdf) - (2003) [Slides] [PDF] Axiomatic Semantics * [Ranjit Jhala](https://cseweb.ucsd.edu/classes/wi10/cse230/lectures/lec5.pdf) - (2010) [PDF] Axiomatic Semantics * [Ken Slonneger](https://homepage.cs.uiowa.edu/~slonnegr/plf/Book/Chapter11.pdf) - Axiomatic Semantics * [Operational semantics](https://en.wikipedia.org/wiki/Operational_semantics) - is a category of formal programming language semantics in which certain desired properties of a program, such as correctness, safety or security, are verified by constructing proofs from logical statements about its execution and procedures, rather than by attaching mathematical meanings to its terms (denotational semantics). * [Caitie McCaffrey](https://queue.acm.org/detail.cfm?id=2889274) - (2016) The Verification of a Distributed System | A practitioner's guide to increasing confidence in system correctness * [Literate programming](http://www.literateprogramming.com/) - is a programming paradigm introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated. * [Literate programming links](http://www.literateprogramming.com/links.html) - articles about literate programming * [Eyar Zilberman](https://www.datree.io/resources/kubernetes-schema-validation) - (2021) A Deep Dive Into Kubernetes Schema Validation * [Harshit Mehndiratta](https://kubevious.io/blog/post/top-kubernetes-yaml-validation-tools) - (2021) Top Kubernetes YAML Validation Tools * [Amit Saha](https://learnk8s.io/validating-kubernetes-yaml) - (2020) Validating Kubernetes YAML for best practice and policies * [Stéphane Robert](https://blog.stephane-robert.info/post/infra-as-code-policy-check-regula/) - :fr: [FR] (2021) Regula l’outil d’Analyse Statique pour l’Infra As Code ## Database * [jOOQ Blog](https://blog.jooq.org/) - best practices and lessons learned about writing Java and SQL code * [Liquibase](http://www.liquibase.org/) - a tool to safely manage database migration / refactoring * [shlomi-noach/awesome-mysql](https://github.com/shlomi-noach/awesome-mysql/blob/gh-pages/index.md) - curated list of awesome MySQL software, libraries and resources * [Brian Peasland](http://www.peasland.net/2016/10/19/slash-or-no-slash/) - (2016) Slash or no Slash in SQL scripts ? * [Kenneth Truyers](https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/) - (2016) Git as a NoSql database * [Geoff Wozniak](http://woz.posthaven.com/what-orms-have-taught-me-just-learn-sql) - (2014) What ORMs have taught me: just learn SQL * [Matt Butcher](https://dzone.com/articles/nosql-no-more) - (2014) NoSQL No More / NoSQL is not a silver bullet * [Vitaliy Mogilevskiy](http://www.dbatoolz.com/t/sqlplus-s-shell-scripting.html) - sqlplus -s Shell Scripting Techniques * [Lukas Eder](https://blog.jooq.org/2017/01/12/a-probably-incomplete-comprehensive-guide-to-the-many-different-ways-to-join-tables-in-sql/) - (2017) A Probably Incomplete, Comprehensive Guide to the Many Different Ways to JOIN Tables in SQL * [Lukas Eder](https://blog.jooq.org/2017/09/28/10-cool-sql-optimisations-that-do-not-depend-on-the-cost-model/) - (2017) 10 Cool SQL Optimisations That do not Depend on the Cost Model * [oravirt/ansible-oracle-modules](https://github.com/oravirt/ansible-oracle-modules) - Oracle modules for Ansible * [python-cx_Oracle](https://oracle.github.io/python-cx_Oracle/) - cx_Oracle - Python Interface for Oracle Database * [Clément Delafargue](https://www.clever-cloud.com/blog/engineering/2015/05/20/why-auto-increment-is-a-terrible-idea/) - (2015) Why Auto Increment Is A Terrible Idea | interesting debate in the comments * [manuzhang/awesome-streaming](https://github.com/manuzhang/awesome-streaming) - a curated list of awesome streaming frameworks, applications, etc * [Pl/Sql tidy](http://psti.equinoxbase.com/cgi-bin/handler.pl) - Online PL/SQL formatter * [Lieven Vaneeckhaute (denshade)](https://softwareefficiency.wordpress.com/2015/03/14/big-data-technology-and-the-responsibility-shift/) - (2015) NoSQL and the responsibility shift | about data quality * [Dzmitry Plashchynski](https://medium.com/@plashchynski/postgresql-upgrade-on-centos-4c0ddd2f8687) - (2016) PostgreSQL upgrade on CentOS | applicable to all Red Hat family (RHEL/CentOS/SL/OL 7) and to all PostgreSQL 9.* versions. * [Stack Overflow](https://stackoverflow.com/questions/876522/creating-a-copy-of-a-database-in-postgresql) - Creating a copy of a database in PostgreSQL. | in essence, what works for me : ``` # backup : pg_dumpall > db.out # restore : # (might requires some DROP DATABASE xxx if you do want to replace existing data with same db and table names) psql -f db.out postgres ``` * [MorganGeek](https://github.com/MorganGeek/bookmarks/blob/master/cheat/postgresql.md) - My cheatsheet for PostgreSQL * [mgramin/awesome-db-tools](https://github.com/mgramin/awesome-db-tools) ## Debugging * [The Geek Stuff](https://www.thegeekstuff.com/2010/03/debug-c-program-using-gdb/) - (2010) How to Debug C Program using gdb in 6 Simple Steps * [Jaroslav Tulach](http://www.methodsandtools.com/archive/debugger.php) - Use the Debugger. Stupid! * [Bruce Johnson](https://blog.fullstory.com/what-we-learned-from-google-code-reviews-arent-just-for-catching-bugs-b125a13aa292) - What we learned from Google: code reviews aren’t just for catching bugs * [Justyna Ilczuk](http://tinystruggles.com/2015/05/30/debugging-adventure-docker0.html) - (2015) Debugging - into rabbit hole with docker containers * :star: [**Aaron Maxwell**](http://redsymbol.net/articles/unofficial-bash-strict-mode/) - Use the Unofficial Bash Strict Mode (Unless You Looove Debugging). **Bonus** : [some bash tips when dealing with bash strict mode](https://gist.github.com/Integralist/0fc25edb5d9ceeae74cc) * [Rubber duck debugging](https://en.wikipedia.org/wiki/Rubber_duck_debugging) * [openshift/debugging-openshift](https://github.com/openshift/origin/blob/master/docs/debugging-openshift.md) - Debugging / Troubleshooting OpenShift * [ServiceNow Docs](http://wiki.servicenow.com/index.php?title=Debugging_Business_Rules#gsc.tab=0) - Debugging Business Rules * [Vivek Gite](https://www.cyberciti.biz/tips/check-unix-linux-configuration-file-for-syntax-errors.html) - 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors * [Trey Harris](http://www.ibiblio.org/harris/500milemail.html) - The case of the 500-mile email * [Andrey Karpov](https://www.viva64.com/en/b/0260/) - (2014) The Last Line Effect // about evil copy paste * [Stuart Sierra](https://twitter.com/stuartsierra/statuses/512009723282206722) - "There's always a reason, no matter how strange the bug" * [Alex Zhitnitsky](http://blog.takipi.com/15-tools-to-use-when-deploying-code-to-production/) - (2014) 15 Tools Java Developers Should Use After a Major Release * [R0ml](https://codewords.recurse.com/issues/one/why-are-objects-so-hard-to-debug) - Why are objects so hard to debug? * [Mark Isaacson](http://maintainablecode.logdown.com/posts/245425-valgrind-is-not-a-leak-checker) - (2014) Valgrind is *NOT* a leak checker * [DataFire](https://datafire-repos.github.io/oblique-strategies/) - Oblique Strategies for Programmers : Random tips for building, debugging, and overcoming creative blocks. * [stanislaw/awesome-safety-critical](https://github.com/stanislaw/awesome-safety-critical) - resources about programming practices for writing safety-critical software. * [Roland Wolters](https://liquidat.wordpress.com/2016/02/25/howto-keeping-temporary-ansible-scripts/) - (2016) [Howto] Keeping temporary Ansible scripts * [Roland Wolters](https://liquidat.wordpress.com/2016/02/29/useful-options-ansible-cli/) - (2016) Useful command line options for ansible-playbook * [Will Thames](http://willthames.github.io/2014/04/28/debugging-ansible-for-fun-and-no-profit.html) - (2014) Debugging Ansible for fun and no profit * [Joël Spolsky](https://www.joelonsoftware.com/2000/11/08/painless-bug-tracking/) - (2000) Painless Bug Tracking * [Jessy Bernal](https://medium.com/doctolib-engineering/handling-bugs-at-doctolib-847d54fd1990) - (2017) Handling bugs at Doctolib * [Mike Swieton](https://spin.atomicobject.com/2018/01/27/debugging-complex-problems/) - (2018) Debugging a Complex Problem? Think Like an Epidemiologist * [Gregg Caines](http://caines.ca/blog/2015/03/08/reclaiming-value-from-bugs-and-outages/) - (2015) Reclaiming Value From Bugs and Outages: Thoughts on Post-Mortems * [Zach Holman](https://zachholman.com/talk/move-fast-break-nothing/#slides) - [Slides] move fast & break nothing | a talk about code, teams & process * [Brian Vanderwal](https://spin.atomicobject.com/2017/11/28/less-time-debugging/) - (2017) Six Strategies to Spend Less Time Debugging * [Andrew Morton](https://drewish.com/2010/03/29/using-curl-and-the-host-header-to-bypass-a-load-balancer/) - (2010) Using cURL and the host header to bypass a load balancer | command line tips & tricks * [Michael Hoffman](http://code-worrier.com/how-to-be-stuck/#) - (2013) How to be Stuck - Learning to learn to code on the internet * [Petter Måhlén](https://pettermahlen.com/2011/04/08/if-its-broken-fix-it/) - (2011) If it’s Broken, Fix It * [Gregg Caines](http://caines.ca/blog/2018/03/27/zero-defect-policy/) - (2018) Zero Defect Policy * [The Downtime Project](https://downtimeproject.com/podcast/7-lessons-from-10-outages/) - (2021) 7 Lessons From 10 Outages * [Kevin Riggle](https://github.com/readme/guides/incident-email) - (2021) How to write an internal production failure incident communication | What do you say when the system is down ? * [minimaxir/big-list-of-naughty-strings](https://github.com/minimaxir/big-list-of-naughty-strings) - The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data. ## Elixir * [David Schmitz](https://www.slideshare.net/koenighotze/elixir-easy-fun-for-busy-developers-devoxx-2016) - [Slides] (2016) Elixir - Easy fun for busy developers | Elixir combines Ruby's love for programmers with the absolute power that is the Erlang platform. ## Erlang > News * [This Week In Erlang](https://gootik.github.io/this-week-in-erlang/) - Weekly review of things that happen in the Erlang world > Learn * [Alex Ott](http://alexott.net/en/fp/books/#sec8) - books review on Erlang * :star: [**Functional Geekery**](https://www.functionalgeekery.com/episode-114-fred-herbert/) - Functional Geekery Episode 114 – Fred Hébert with introduction to Erlang, productionization as a phase of software, property testing, “Everything is Terrible”, and much more. * [PropEr Testing](http://propertesting.com/) - Fred Hébert talking about ins and outs of Property-Based Testing, with focus set on Erlang’s PropEr framework, a freely available testing tool based on Quviq’s Quickcheck framework. * [Learn You Some Erlang](http://learnyousomeerlang.com/content) - [Book] Online book. Reading this tutorial should be one of your first steps in learning Erlang * [h4cc/awesome-elixir](https://github.com/h4cc/awesome-elixir) - list of amazingly awesome Elixir and Erlang libraries, resources and more * [uhub/awesome-erlang](https://github.com/uhub/awesome-erlang) - list of awesome Erlang frameworks, libraries and software. * [drobakowski/awesome-erlang](https://github.com/drobakowski/awesome-erlang) - list of awesome Erlang libraries, resources and shiny things. * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. ## Gamedev > News & Communities * [GameDev](https://www.gamedev.net/) - game development articles * [Stack Exchange](https://gamedev.stackexchange.com/) - Q&A & discussions about Game development * [/r/gamedev](https://www.reddit.com/r/gamedev/) - everything about game development on reddit * [Indiedevhour on Slack](https://slack.pirrate.me/) - Community of Indie game developers and hobbyists * [Indie Game Developers on Slack](https://indie-game-devs-slack.herokuapp.com/) - Independent game developers group * [Gamasutra](http://www.gamasutra.com/) - articles about art and business of making games * [Gergo Vas](https://kotaku.com/5991061/the-best-looking-isometric-games) - The Best-Looking Isometric Games * [Pixel Joint](http://pixeljoint.com/pixels/new_icons.asp) - Highest Rated Pixel Art | Pixel Joint is all about the pixel art community. The site was started in September 2004 * [Pixelation](https://pixelation.org) - A standalone forum dedicated which hosts lots of studies and deeper discussions of pixel art. * [7DRL Challenge 2019](https://itch.io/jam/7drl-challenge-2019) - In 2005, the roguelike community established a yearly event, the 7DRL Challenge, in which developers are challenged to create a roguelike in seven days. This allows one to have the shared misery of knowing you are not the only one tracking down a bad pointer at the 167th hour. The annual event occurs during a week in early March. * [Retronator Magazine](https://medium.com/retronator-magazine) - Pixel Art, Gaming & Saturated Colors * [LOWREZJAM 2019](https://itch.io/jam/lowrezjam-2019) - The goal of the jam is to create a game with a resolution of 64x64 pixels or less. You can use whatever programming language or tools that you wish. > Tools * [libGDX](https://github.com/libgdx/libgdx) - libgdx : Desktop/Android/HTML5/iOS Java game development framework * [Indie DB](http://www.indiedb.com/engines/libgdx/games) - games made with libGDX * [faiface/Pixel](https://github.com/faiface/pixel) - Pixel : A hand-crafted 2D game library in Go. * [Angel 2D](https://github.com/angel2d/angel2d) - Angel 2D : A cross-platform 2D game prototyping framework based on OpenGL and C++. Looks dead... * [SFML](https://www.sfml-dev.org/) - SFML is a simple, fast, cross-platform and object-oriented multimedia API. Written in C++ and provides bindings for various languages such as C, .Net, Ruby, Python. * [Plastic SCM](https://www.plasticscm.com/) - (2017) Distributed Version Control for big projects. Discovered via [Garry' blog](https://garry.tv/2017/04/29/jenkins/) * [Open Source Game Clones](http://osgameclones.com/) - inventory of open-source remakes of great old games * [Modd.io](http://www.modd.io/) - a one minute game maker proof of concept, with ability to join others games online or fork their projects to create your own * [Video Game Preservation](https://github.com/videogamepreservation) - An archive of commercial video game source code. * [Chris Wellons](http://nullprogram.com/blog/2014/12/09/) - (2014) How to build DOS COM files with GCC * [Tzvi Freeman](https://www.gamasutra.com/view/feature/3224/creating_a_great_design_document.php) - (1997) Creating A Great Design Document * [ellisonleao/magictools](https://github.com/ellisonleao/magictools) - :video_game: :memo: A list of Game Development resources to make magic happen. * [Character Generator](http://gaurav.munjal.us/Universal-LPC-Spritesheet-Character-Generator/) - Create a character sprite sheet for your game using 100% open art. * [Godot Engine](https://godotengine.org) - Free and open source 2D and 3D game engine > Learn * [Gaylord](http://www.journaldugamer.com/2014/08/08/interview-out-there-ecrire-un-bon-jeu/) - (2014) [FR] :fr: [Interview] Un des créateurs d’Out There vous explique comment écrire un bon jeu * [Jeff Bradberry](https://jeffbradberry.com/posts/2015/09/intro-to-monte-carlo-tree-search/) - (2015) Introduction to Monte Carlo Tree Search * [Kelton Sears](http://www.seattleweekly.com/arts/enormous-dwarf/) - (2016) How Two Brothers From Silverdale Made The World’s Most Complex Video Game | about Dwarf Fortress * [Liz England](http://www.lizengland.com/blog/2014/04/the-door-problem/) - (2014) The Door Problem | funny article about complexity of modern game development * [Brandon Sheffield](https://www.gamasutra.com/view/news/310570/Developers_share_their_most_memorable_dirty_coding_tricks.php) - (2017) Developers share their most memorable dirty coding tricks * [JR Heard](http://blog.jrheard.com/procedural-dungeon-generation-drunkards-walk-in-clojurescript) - (2016) Procedural Dungeon Generation: A Drunkard's Walk in ClojureScript * [JR Heard](http://blog.jrheard.com/procedural-dungeon-generation-cellular-automata) - (2016) Procedural Dungeon Generation: Cellular Automata * [La boite verte](https://www.laboiteverte.fr/les-illustrations-en-pixel-art-octavi-navarro/) - :fr: [FR] Les illustrations en pixel art de Octavi Navarro * [Blake Reynolds](http://www.dinofarmgames.com/a-pixel-artist-renounces-pixel-art/) - (2015) A Pixel Artist Renounces Pixel Art * [NeoGaf](https://www.neogaf.com/threads/how-where-when-metal-slug-sprites-made.1237986/) - (2016) How where when Metal slug sprites made? | Interesting thread on NeoGAF * [Bill Clark](https://technology.riotgames.com/news/taxonomy-tech-debt) - (2018) A Taxonomy of Tech Debt * [Frank Force](http://frankforce.com/?p=5826) - (2019) I’m only making business card sized games now * [Mikołaj Stolarski](https://www.smashingmagazine.com/2015/09/principles-of-html5-game-design/) - (2015) Principles Of HTML5 Game Design * [Josh Ge aka Kyzrati](https://www.gridsagegames.com/blog/2019/02/level-design-shaping-cogmind-experience/) - (2019) Level Design and Shaping a Cogmind Experience | A complete rundown of the entire process behind designing and building a new map for the world of Cogmind, and explaining how it integrates with gameplay. ## Git :octocat: > News * [DEV](https://dev.to/t/git) - Git related articles on dev.to() > Learn * [Think Like (a) Git](http://think-like-a-git.net/) - Git shouldn't be so hard to learn : a guide for the perplexed * [Oh shit, git!](http://ohshitgit.com/) - git may be hard, screwing up is easy, here are some tips to fix your mistakes * [Emily Xie](https://www.youtube.com/watch?v=Y2Msq90ZknI) - [Video] Dissecting Git's Guts - Git Merge 2016 + [Cheat Sheet of git commands](https://github.com/emilyxxie/gits_guts_commands/blob/master/git_cheat_sheet.pdf) * [Spencer Krum](https://www.youtube.com/watch?v=d-T51nhmFhQ) - [Video] 20 Tricks with Git and Shell - Git Merge 2016 * [James Coyle](https://www.jamescoyle.net/how-to/1891-git-ssl-certificate-problem-caused-by-self-signed-certificates) - Git SSL Certificate Problem Caused By Self Signed Certificates * [Scott Nonnenberg](https://blog.scottnonnenberg.com/better-git-configuration/) - Better Git configuration. **See also :** the [shared .gitconfig file](https://gist.github.com/scottnonnenberg/fefa3f65fdb3715d25882f3023b31c29) * [Scott Chacon and Ben Straub](https://git-scm.com/docs/git-config#_variables) - available variables in git config * [Corinna Baldauf](http://wall-skills.com/2014/git-pretty-so-youve-got-a-mess-on-your-hand/) - (2014) git pretty – So you’ve got a mess on your hand … * [Joseph Kahn](https://blog.josephkahn.io/articles/pre-commit-hooks/) - Pre-commit Hooks: The Good, The Bad & The Ugly * [Rafael Eyng](http://codeheaven.io/simple-git-hooks-with-ghooks/) - Simple Git Hooks With Ghooks * [gogits/gogs](https://github.com/gogits/gogs) - Gogs is a painless self-hosted Git service. * [Patrice Laurent](https://www.patricelaurent.net/ansible-vault-cryptage-git/) - [FR] :fr: Ansible Vault : Automatiser le chiffrement avec Git * [Marvin Pinto](https://disjoint.ca/til/2016/04/25/using-git-diff-with-ansible-vault-encrypted-files/) - (2016) Using git diff with Ansible Vault encrypted files * [Marvin Pinto](https://disjoint.ca/til/2016/03/18/modifying-the-date-of-a-commit/) - (2016) Modifying the date of a commit * [Nicola Paolucci](https://www.durdn.com/blog/2012/12/05/git-12-curated-git-tips-and-workflows/) - (2012) Git: Twelve Curated Tips And Workflows From The Trenches * [Nicola Paolucci](https://legacy-developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/) - (2015) The power of Git subtree * [Nicola Paolucci](https://www.durdn.com/blog/2009/08/16/i-love-staring-at-branches-and-shuffle-reorder-and-squash-commits/) - (2009) I love staring at branches and shuffle, reorder and squash commits * [Kernel Docs](https://www.kernel.org/pub/software/scm/git/docs/git-push.html) - git-push * [Git-SCM Docs](https://git-scm.com/docs/git-diff) - git-diff * [Nicola Paolucci](https://www.atlassian.com/blog/git/git-submodules-workflows-tips#tip5) - Git submodules: core concept, workflows, and tips * [Christophe Porteneuve](https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407) - Mastering Git submodules * [Git-SCM Docs](https://git-scm.com/book/en/v2/Git-Tools-Submodules) - Submodules documentation * :star: [**git-tips**](https://github.com/git-tips/tips) - Collection of most commonly used git tips and tricks * [Lars Vogel](http://www.vogella.com/tutorials/Git/article.html) - Git - Tutorial * [Pere Orga](https://orga.cat/posts/most-useful-git-commands) - The most useful git commands * [Christophe Porteneuve](https://medium.com/@porteneuve/getting-solid-at-git-rebase-vs-merge-4fa1a48c53aa) - Getting solid at Git rebase vs. merge * [Christophe Porteneuve](https://medium.com/@porteneuve/30-git-cli-options-you-should-know-about-15423e8771df) - 30 Git CLI options you should know about * [Markus Wein](http://nuclearsquid.com/writings/git-tricks-tips-workflows/) - A few of my Git tricks, tips and workflows * [Andy Jeffries](https://www.andyjeffries.co.uk/25-tips-for-intermediate-git-users/) - 25 Tips for Intermediate Git Users * [Christophe Porteneuve](https://medium.com/@porteneuve/video-collaboration-best-practices-with-git-and-github-2b5de9424af2) - [Video] Collaboration best practices with Git and GitHub - [Slides](http://drive.delicious-insights.com/legacy-files/git-github-collab-bp.pdf) * [Christophe Porteneuve](https://hackernoon.com/fix-conflicts-only-once-with-git-rerere-7d116b2cec67) - Fix conflicts only once with git rerere * [Buddy Reno](https://medium.freecodecamp.com/bash-shortcuts-to-enhance-your-git-workflow-5107d64ea0ff) - Bash Shortcuts to Enhance Your Git Workflow * [Buddy Reno](https://buddyreno.me/removing-git-commits-from-master-34d0efe931c6) - Removing Git Commits From Master (Safely) * [Buddy Reno](https://medium.freecodecamp.com/git-please-a182f28efeb5) - Git Please: how to force push without being a jerk * [Christophe Porteneuve](https://medium.com/@porteneuve/mastering-git-reset-commit-alchemy-ba3a83bdfddc) - Mastering Git Reset: Commit Alchemy * [Alex Blewitt](http://alblue.bandlem.com/2011/05/git-tip-of-week-reflogs.html) - (2011) Git Tip of the Week: Reflogs. The same blog contains a [lot of git tips](http://alblue.bandlem.com/Tag/git/) * [Markus Wein](http://nuclearsquid.com/writings/subtree-merging-and-you/) - (2011) Subtree merging and you > The subtree merge allows you to merge another repository (let’s call it “Project B”) into your own, but into its own subdirectory. It takes a bit of effort to set everything up the first time, but after that a pull from the other repository is all that is needed to update. * [Markus Wein](http://nuclearsquid.com/writings/git-new-workdir/) - (2015) git-new-workdir > The git-new-workdir script has been superseded by the git-worktree command added in Git 2.5. This article is there now for historical reference. * [Ryan Hodson](https://web.archive.org/web/20161121145327/http://rypress.com/tutorials/git/tips-and-tricks) - [Cached] Tips & Tricks (Ry’s Git Tutorial) * [Nicola Paolucci](https://www.atlassian.com/blog/software-teams/git-project-dependencies) - Git and project dependencies * [Nicola Paolucci](https://www.atlassian.com/blog/archives/how-to-fetch-pull-requests) - Pull request proficiency: Fetching abilities unlocked! * [Pratul Kalia](https://blog.uncommon.is/using-git-to-generate-versionname-and-versioncode-for-android-apps-aaa9fc2c96af) - Using git to generate versionName and versionCode for Android apps * [Joe L. Wroten](https://dev.to/sharpshark28/self-code-review-with-git-add-patch) - Self Code Review with Git Add Patch * [Joe L. Wroten](https://dev.to/sharpshark28/easy-git-commit-targeting) - Easy Git Commit Targeting * [Jason McCreary](https://dev.to/gonedark/3-git-commands-i-use-every-day) - 3 Git Commands I Use Every Day * [Jason McCreary](https://dev.to/gonedark/tweak-your-terminal-for-git) - Tweak your Terminal for Git * [Jason McCreary](https://dev.to/gonedark/stop-aliasing-core-git-commands) - Stop aliasing core Git commands * [Tamir Bahar](https://dev.to/tmr232/dont-amend-fix) - Don't Amend, Fix * [AbdulBasit KABIR](https://dev.to/abulkay/whichs-the-right-git-workflow-for-my-next-project) - Which is the right git workflow for my next project? * [Kenneth Truyers](https://www.kenneth-truyers.net/2016/10/13/git-nosql-database/) - (2016) Git as a NoSql database * [Mislav Marohnić](https://mislav.net/2010/07/git-tips/) - (2010) A few git tips you didn't know about * [Mislav Marohnić](https://mislav.net/2014/02/hidden-documentation/) - (2014) Every line of code is always documented * [Andrew Peterson](http://ndpsoftware.com/git-cheatsheet.html) - Interactive Git Cheatsheet with a weird UI * [Justin Hileman](http://justinhileman.info/article/git-pretty/git-pretty.png) - [Chart] git-pretty : Escape a Git mess, step by step * [Gregg Caines](http://caines.ca/blog/2012/01/03/your-team-probably-doesnt-have-the-same-dvcs-requirements-as-linus/) - (2012) Your Team Probably Doesn't Have the Same DVCS Requirements as Linus * [Harry Roberts](https://csswizardry.com/2017/05/little-things-i-like-to-do-with-git/) - (2017) Little Things I Like to Do with Git * [Donne Martin/gitsome](https://github.com/donnemartin/gitsome) - gitsome : A supercharged Git/GitHub command line interface (CLI) * [Alain Gilbert/git2graph](https://github.com/alaingilbert/git2graph) - git2graph : Generate a git graph structure from linear git history * [rtyley/BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) - an alternative to git-filter-branch. [Sources on Github](https://github.com/rtyley/bfg-repo-cleaner) * [Sven Hofmann](https://gist.github.com/hofmannsven/6814451) - Simply git cheatsheet * [Markus Wein](http://nuclearsquid.com/writings/git-add/) - git add --patch and --interactive * [Git SCM Docs](https://git-scm.com/docs/git-archive) - git-archive * [Nathan LeClaire](https://nathanleclaire.com/blog/2016/06/28/on-the-matter-of-beautiful-git-diffs/) - (2016) On the Matter of Beautiful git Diffs * [Hacker News](https://news.ycombinator.com/item?id=9952878) - Don't put secret keys in your repository. * :star: [**Seth Robertson**](https://sethrobertson.github.io/GitBestPractices/) - (2012) Git Best practices : commit often, perfect later, publish once, etc. * [Bitbucket Docs](https://confluence.atlassian.com/bitbucket/code-search-in-bitbucket-873876782.html#CodesearchinBitbucket-Searchoperators) - Tips & tricks for code search in Bitbucket * [Nicola Paolucci](https://www.slideshare.net/GoAtlassian/becoming-a-git-master-nicola-paolucci) - Becoming a Git Master / some interesting tips provided in this presentation * [agis/Git Style Guide](https://github.com/agis/git-style-guide) - inspired by [How to Get Your Change Into the Linux Kernel](https://kernel.org/doc/html/latest/process/submitting-patches.html), the [git man pages](http://git-scm.com/doc) and various practices popular among the community. * [Sönke Sothmann](https://blog.oio.de/2013/05/08/how-to-rollback-changes-with-git/) - (2013) How to rollback changes with Git * [Atlassian Docs](https://www.atlassian.com/git/tutorials/undoing-changes) - Tutorials : Undoing Changes with git checkout / revert / reset / clean * [Maksym Grebenets](http://mgrebenets.github.io/tools/2015/06/04/jira-id-in-git-commit-messages) - (2015) JIRA ID in Git Commit Messages * [Delicious Insights](https://delicious-insights.com/fr/articles/git-subtrees/) - [FR] :fr: Comprendre et maîtriser les subtrees Git * [Joshua Wehner](https://github.com/blog/2019-how-to-undo-almost-anything-with-git) - How to undo (almost) anything with Git * [Mark Waite](https://www.youtube.com/watch?v=n0mnVtbQA0I) - [Video] (2017) Git in the Large : Tips and Tricks. **Bonus** : [Slides](https://www.slideshare.net/markewaite/git-inthelarge) * [John Wiegley](http://jwiegley.github.io/git-from-the-bottom-up/) - Git from the Bottom Up * [Emma Jane Westby](https://24ways.org/2014/dealing-with-emergencies-in-git/) - (2014) Dealing with Emergencies in Git * [pre-commit/pre-commit](https://github.com/pre-commit/pre-commit) - A framework for managing and maintaining multi-language pre-commit hooks. * [Stef Walter](http://stef.thewalter.net/git-coverage-useful-code-coverage.html) - (2012) git-coverage: Useful code coverage * [stevemao/awesome-git-addons](https://github.com/stevemao/awesome-git-addons) - A curated list of add-ons that extend/enhance the git CLI. * [Roger Dudler](https://rogerdudler.github.io/git-guide/) - git - the simple guide | just a simple guide for getting started with git. no deep shit ;) * [Daniel Doubrovkine](http://code.dblock.org/2015/08/31/getting-out-of-your-first-git-mess.html) - (2015) Getting Out of Your First Git Mess * [Jon Cairns](http://blog.joncairns.com/2015/09/use-git-to-comment-your-code/) - (2015) Use git to comment your code (and stop writing rubbish commit messages, please) * [Fredrik V. Mørken](https://blogg.bekk.no/why-you-should-stop-using-git-rebase-5552bee4fed1) - (2017) Why you should stop using Git rebase * [Super User StackExchange](https://superuser.com/questions/988185/how-to-avoid-being-asked-enter-passphrase-for-key-when-im-doing-ssh-operatio) - git : avoid being asked “Enter passphrase for key ” when I'm doing ssh operation on a remote host * [Logan Johnson](https://medium.com/square-corner-blog/how-square-writes-commit-messages-8e92fcbf77c9) - (2017) How Square writes commit messages | Explain the change. * [Manish Goregaokar](https://manishearth.github.io/blog/2017/03/05/understanding-git-filter-branch/) - (2017) Understanding Git Filter-branch and the Git Storage Model * [Erlend Hamberg](https://hamberg.no/erlend/posts/2015-02-23-git-history.html) - (2015) On Git History – or, “The Case for Merge Commits” * [Erlend Hamberg](https://hamberg.no/erlend/posts/2012-06-21-linux-git-history.html) - (2012) Linux' Git History is Beautiful * [Erlend Hamberg](https://hamberg.no/erlend/posts/2012-11-29-git-bisect-squared.html) - (2012) git bisect to find the first commit that introduced a regression * [Erlend Hamberg](https://hamberg.no/erlend/posts/2013-02-11-avoid-committing-your-password.html) - (2013) git tip: avoid committing your password * [Corey Quinn](https://www.youtube.com/watch?v=zN1u5xZFFR8) - (2016) [Video] Terrible Ideas in Git | Don't try this at home :) * [git man page generator](https://git-man-page-generator.lokaltog.net/) - NOT real git documentation! Read carefully, and click the button to generate a new man page. * [Conventional Commits](https://conventionalcommits.org/) - The Conventional Commits specification proposes introducing a standardized lightweight convention on top of commit messages. This convention dovetails with SemVer, asking software developers to describe in commit messages, features, fixes, and breaking changes that they make. * [marionebl/commitlint](https://github.com/marionebl/commitlint) - Lint commit messages * [FoundersGrid](https://foundersgrid.com/code-management/) - (2014) How 50+ Startups Manage Their Code * [Rachel Potvin & Josh Levenberg](https://dl.acm.org/citation.cfm?id=2854146) - Why Google stores billions of lines of code in a single repository * [Joseph Wynn](https://wildlyinaccurate.com/a-hackers-guide-to-git/) - (2014) A Hacker's Guide to Git * [Lars Kruse](https://www.praqma.com/stories/git-phlow/) - Git Phlow | An automated release train, operated directly from my shell? > Imagine a workflow so sophisticated that you couldn’t break the integration branch even if you tried * [Michelle Young](https://chatbotslife.com/trunk-based-development-vs-git-flow-ed381cd340e) - (2017) Trunk-based Development vs. Git Flow * [fa.linux.kernel newsgroups archives](http://yarchive.net/comp/linux/git_rebase.html) - (2008) [Messages] Linus Torvalds against git rebase * [Safia Abdalla](https://blog.safia.rocks/post/170269021619/tips-for-reading-new-codebases) - (2018) Tips for reading new codebases * [Egwuenu Gift](https://code.likeagirl.io/useful-tips-for-writing-better-git-commit-messages-808770609503) - (2018) Useful Tips for writing better Git commit messages * [Kenichi Shibata](https://kenichishibata.net/git-push-and-pull-tips-and-tricks-7f9163539f02) - (2017) Git Push and Pull Tips and Tricks * :star: [**Paul Hammond**](http://www.paulhammond.org/2010/06/trunk/alwaysshiptrunk.pdf) - (2010) [Slides] Always ship trunk | Managing change in complex websites * [Ross Harmes](http://code.flickr.net/2009/12/02/flipping-out/) - (2009) Flipping Out | Flickr on feature flags * [Lemi Orhan Ergin](https://www.slideshare.net/lemiorhan/git-antipatterns-how-to-mess-up-with-git-and-love-it-again) - (2018) [Slides] Git Anti-Patterns: How To Mess Up With Git and Love it Again. **Bonus** : [Video](https://www.youtube.com/watch?v=J_JYrAjX05Y) * [Vincent Driessen](https://nvie.com/posts/a-successful-git-branching-model/) - (2010) A successful Git branching model * [Zach Holman](https://zachholman.com/posts/git-commit-history/) - (2015) Utter Disregard for Git Commit History * [IcaliaLabs/guides](https://github.com/IcaliaLabs/guides/wiki/Monolithic-vs-Micro-Repos) - Monolithic vs Micro Repos * [Matt Butcher](https://gist.github.com/technosophos/9c706b1ef10f42014a06) - (2015) Why We Should Not Return to Monolithic Repositories * [Avi Cavale](http://blog.shippable.com/our-journey-to-microservices-and-a-mono-repository) - (2016) Our journey to microservices: mono repo vs multiple repositories * [mozilla.dev.developer-tools](https://groups.google.com/forum/m/#!topic/mozilla.dev.developer-tools/W17drvVMFhY) - Discussion about Multiple repos vs Monolithic repo * [Gregory Szorc](https://gregoryszorc.com/blog/2014/09/09/on-monolithic-repositories/) - (2014) On Monolithic Repositories | in favor of monolithic repos * [Aaron Schlesinger](https://gist.github.com/arschles/5d7ba90495eb50fa04fc) - (2015) Why We Should Use Monolithic Repositories * [Nathan Leiby](https://medium.com/always-a-student/mo-repos-mo-problems-how-we-make-changes-across-many-git-repositories-293ad7d418f0) - (2017) Mo Repos, Mo Problems? How We Make Changes Across Many Git Repositories * [ezekg/git-hound](https://github.com/ezekg/git-hound) - Git plugin that prevents sensitive data from being committed. * [dxa4481/truffleHog](https://github.com/dxa4481/truffleHog) - Searches through git repositories for high entropy strings and secrets, digging deep into commit history * [Dan Kelch](https://spin.atomicobject.com/2017/12/13/favorite-git-commands/) - (2017) Git Good: Improve Your Version Control Skills * [EugeneKay/git-jokes](https://github.com/EugeneKay/git-jokes/blob/lulz/Jokes.txt) - jokes about git * [Boris Serebrov](https://serebrov.github.io/html/2014-01-04-git-revert-multiple-recent-comments.html) - (2014) Git - how to revert multiple recent commits * [Git Docs](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work) - Git Tools - Signing Your Work * [Jakub Skałecki](https://rock-it.pl/automatic-code-quality-checks-with-git-hooks/) - (2017) Automatic code quality checks with git hooks * [Git How To](https://githowto.com/) - is a guided tour that walks through the fundamentals of Git, inspired by the premise that to know a thing is to do it. * [Matthew Brett](https://matthew-brett.github.io/curious-git/index.html) - The curious coder’s guide to git * [Steve Losh](http://stevelosh.com/blog/2013/04/git-koans/) - (2013) Git Koans * [Vadim Samokhin](https://hackernoon.com/gitflow-is-a-poor-branching-model-hack-d46567a156e7) - (2018) Gitflow is a Poor Branching Model Hack | gitflow sucks * [Paul Christie](https://blog.clearvision-cm.com/blog/what-to-do-when-you-commit-to-the-wrong-git-branch/) - (2018) What to do when you commit to the wrong Git branch * [Mark Lodato](https://marklodato.github.io/visual-git-guide/) - A Visual Git Reference * [tiimgreen/github-cheat-sheet](https://github.com/tiimgreen/github-cheat-sheet) - A list of cool features of Git and GitHub * [List of All ASCII Emoticons](https://upli.st/l/list-of-all-ascii-emoticons) - A massive list of all the ASCII emoticons discovered on the interweb. * [dysfunc/ascii-emoji](https://github.com/dysfunc/ascii-emoji) - Essential ASCII Emoji * [Matej Jellus](https://juffalow.com/other/write-good-git-commit-message) - (2018) Write good git commit message * [David Winterbottom](https://codeinthehole.com/tips/advanced-pull-request-crafting/) - (2018) Advanced pull-request crafting. * [Keavy McMinn](https://github.blog/2015-01-21-how-to-write-the-perfect-pull-request/) - (2015) How to write the perfect pull request * [Nikita Prokopov aka tonsky](https://tonsky.me/blog/reinventing-git-interface/) - (2014) Reinventing Git interface * [GitHut](https://githut.info/) - A small place to discover more about the usage of programming languages in GitHub. * [Vincent Tunru](https://agripongit.vincenttunru.com/) - (2016) A Grip On Git | A Simple, Visual Git Tutorial * [Alex Chan](https://alexwlchan.net/a-plumbers-guide-to-git/) - (2018) A Plumber’s Guide to Git * [Federico Kauffman](https://www.wyeworks.com/blog/2018/01/15/automatically-managing-personal-and-work-git-configurations/) - (2018) Automatically managing personal and work git configurations * [Seth Robertson](https://sethrobertson.github.io/GitFixUm/fixup.html) - (2013) On undoing, fixing, or removing commits or mistakes in git | A git choose-your-own-adventure! * [Seth Robertson](http://sethrobertson.github.io/GitBestPractices/) - (2013) Commit Often, Perfect Later, Publish Once: Git Best Practices * [MorganGeek](https://github.com/MorganGeek/bookmarks/blob/master/cheat/git.md) - My cheatsheet for Git * [What the Commit](http://whatthecommit.com/) - A random commit message generator. | some inspiration for your next git commit message | NSFW :-D * [rponte/get-latest-tag-on-git.sh](https://gist.github.com/rponte/fdc0724dd984088606b0) - Getting latest tag on git repository * :star: [**gitignore.io**](https://www.toptal.com/developers/gitignore) - Generate useful .gitignore files for your project. **See also** [Source Code](https://github.com/toptal/gitignore.io) * [github/gitignore](https://github.com/github/gitignore) - A collection of useful .gitignore templates * [ikatyang/emoji-cheat-sheet](https://github.com/ikatyang/emoji-cheat-sheet) - A markdown version emoji cheat sheet | This cheat sheet is automatically generated from [GitHub Emoji API](https://api.github.com/emojis) and [Unicode Full Emoji List](https://unicode.org/emoji/charts/full-emoji-list.html). * [Thomas Paul Mann](https://raycast.com/blog/no-code-reviews-by-default/) - (2021) No code reviews by default | How one built an engineering culture based on trust that allows us to move incredibly fast without requiring code reviews. * [Elisabeth Irgens](https://elisabethirgens.github.io/notes/2021/06/code-reviews/) - (2021) - Why I Won’t Approve Your PR | in-house development has been influenced too much by the GitHub open source PR driven development process. A process driven by zero trust doesn’t fit well in a team with trust. * [Choose an open source license](https://choosealicense.com/licenses/) - An open source license protects contributors and users. Businesses and savvy developers won’t touch a project without this protection. GitHub wants to help developers choose an open source license for their source code. * [Csaba Okrona](https://archive.ochronus.com/git-tips-from-the-trenches/) - (2014) Git tips from the trenches * [Mislav Marohnić](https://mislav.net/2014/02/hidden-documentation/) - (2014) Every line of code is always documented. * [Mislav Marohnić](https://changelog.com/posts/git-is-simply-too-hard) - (2020) Git is simply too hard | whatever comes next should be closer to how humans think * [Fossil](https://fossil-scm.org/home/doc/trunk/www/quickstart.wiki) - Fossil Quick Start : This is a guide to help you get started using the Fossil Distributed Version Control System quickly and painlessly. * [Fossil](https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki) - Fossil Versus Git | an overiew, by Fossil, of all of that similarity and interoperability aside and focus on the important differences between the two, especially those that impact the user experience. * [Git Best Practices](https://sethrobertson.github.io/GitBestPractices/) - Commit Often, Perfect Later, Publish Once - Best Practices vary from environment to environment, and there is no One True Answer, but still, this represents a consensus from #git and in some cases helps you frame the discussion for the generation of your very own best practices. **Bonus** [Source code](https://github.com/SethRobertson/GitBestPractices/blob/gh-pages/index.md) * [vim-fugitive](https://github.com/tpope/vim-fugitive) - fugitive.vim: A Git wrapper so awesome, it should be illegal * [vim-gitgutter](https://github.com/airblade/vim-gitgutter) - A Vim plugin which shows git diff markers in the sign column and stages/previews/undoes hunks and partial hunks. ### Dotfiles / Aliases See also [Shell aliases](../README.md#shell-aliases) * [Rob Miller](https://gist.github.com/robmiller/6018582) - shared .gitconfig with some useful Git aliases * [Richard Bateman](https://gist.github.com/taxilian/1338308) - shared .gitconfig with some useful Git aliases * [Harry Roberts/dotfiles](https://github.com/csswizardry/dotfiles/blob/master/.gitconfig) - shared .gitconfig with some useful Git aliases * [Ben Hilburn/dotfiles](https://github.com/bhilburn/dotfiles) - shared configs / dotfiles / rcfiles / etc. * [Amber Yust](https://codingkilledthecat-wordpress-com.cdn.ampproject.org/c/s/codingkilledthecat.wordpress.com/2012/08/08/git-dotfiles-and-hardlinks/amp/) - (2012) Concerns about Git, Dotfiles, and Hardlinks * [Michael White](https://gist.github.com/mwhite/6887990) - The Ultimate Git Alias Setup * [Git SCM Wiki](https://git.wiki.kernel.org/index.php/Aliases) - Collection of git aliases * [Nicola Paolucci](https://www.atlassian.com/blog/git/advanced-git-aliases) - One weird trick for powerful Git aliases * [Nicola Paolucci](https://www.durdn.com/blog/2012/11/22/must-have-git-aliases-advanced-examples/) - (2012) Must Have Git Aliases: Advanced Examples + [list available on BitBucket](https://bitbucket.org/durdn/cfg/src/master/.gitconfig?at=master) * [GitAlias/gitalias](https://github.com/GitAlias/gitalias) - Git alias commands for faster easier version control * [Robby Russell/oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh/blob/456341fd69c3e514e401f1c3c1726b77d733c86b/plugins/git/git.plugin.zsh) - git aliases from oh-my-zsh * [Oli Young](https://gist.github.com/oliyoung/91a829ea21550a7a7d9469220a7c2f73) - shared .gitconfig with some useful Git aliases * :star: [**gitignore.io**](https://www.toptal.com/developers/gitignore) - Generate useful .gitignore files for your project. **See also** [Source Code](https://github.com/toptal/gitignore.io) * [George Gritsouk](https://gggritso.com/human-git-aliases) - (2016) Human Git Aliases | Stubbornly Refusing to Speak The Computer's Language | **Bonus** : [author's dotfiles](https://github.com/gggritso/dotfiles/blob/master/gitconfig.symlink) * [GitHub does dotfiles](https://dotfiles.github.io/) - guide and productivity tips for managing dotfiles * [raidzero/dotfiles](https://github.com/raidzero/dotfiles) - some shared linux dotfiles * [powerlevel9k/wiki/Show-Off-Your-Config](https://github.com/Powerlevel9k/powerlevel9k/wiki/Show-Off-Your-Config) - If you have a special configuration show it here! * [romkatv/powerlevel10k](https://github.com/romkatv/powerlevel10k) - Powerlevel10k is a theme for Zsh. It emphasizes speed, flexibility and out-of-the-box experience. | Alternative to Powerlevel9k (and compatible with) * [Lucas Fernandes da Costa](https://lucasfcosta.com/2019/02/10/terminal-guide-2019.html) - (2019) How I'm still not using GUIs in 2019: A guide to the terminal. **Bonus** : [author's dotfiles](https://github.com/lucasfcosta/dotfiles) * [MorganGeek/dotfiles](https://github.com/MorganGeek/dotfiles) - My own dotfiles * [scottnonnenberg](https://gist.github.com/scottnonnenberg/fefa3f65fdb3715d25882f3023b31c29) - Shared `.gitconfig` file * [kentcdodds](https://github.com/kentcdodds/dotfiles/blob/master/.macos) - Shared dotfiles for MacOS * [branderxero](https://github.com/branderxero/dockerdots) - dotfiles for docker * [twpayne/chezmoi](https://github.com/twpayne/chezmoi) - Manage your dotfiles across multiple machines, securely. | I'm using it for a while, it's a powerful and fast tool for managing dotfiles, easy to use, transparent and secure, with support of Bitwarden, Vault, pass, LastPass, 1Password, gopass, Keepass, GnuPG, Keychain etc. * [Tom Forbes](https://tomforb.es/testing-my-dotfiles-with-github-actions/) - (2019) Testing my dotfiles with Github actions * [Jeffrey Paul](https://sneak.berlin/20191011/stupid-unix-tricks/) - (2019) Stupid Unix Tricks * [github/gitignore](https://github.com/github/gitignore) - A collection of useful .gitignore templates ### GitHub > News * [GitNews](https://git.news/) - Trending repositories from GitHub, HackerNews & Reddit * [GitHub](https://github.com/topics) - Topics on GitHub * [GitHub Trending](https://github.com/trending) - Explore trending projects in GitHub community * [GitHub Showcases](https://github.com/showcases) - Open source showcases, explore popular repositories * [/r/coolgithubprojects](https://www.reddit.com/r/coolgithubprojects/) - Keep track of new cool github projects > Learn * [Kristijan Ristovski aka Kitze](https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b348e12baed) - (2019) GitHub stars won’t pay your rent > Solve your own problem, everything else will follow > However, most developers make zero money off open source. Zero. > Show your solution to other people as soon as possible > Package it and distribute it as soon as possible (note to self) > Don’t be scared, ashamed, or discouraged to make it paid > Don’t let anyone tell you how much you should charge for your work > value your work and believe that despite the fact that haters are loud, you’re still gonna get a lot of customers who would gladly pay for what you made. * [Ben Balter](http://ben.balter.com/2014/11/06/rules-of-communicating-at-github/) - (2014) 15 rules for communicating at GitHub * [GitHub](https://github.com/topics) - Topics on GitHub * [GitLogs](http://www.gitlogs.com/resource-guides) - definitive list of top resources of GitHub * [Ah shhgit!](https://shhgit.darkport.co.uk/) - Find GitHub secrets in real time | Shhgit finds secrets and sensitive files across GitHub code and Gists committed in near real time by listening to the GitHub Events API. **Bonus** : [Source code](https://github.com/eth0izzle/shhgit/) * [GitHut](https://githut.info/) - A small place to discover more about the usage of programming languages in GitHub. * [GitHub](https://github.com/discover) - Discover repositories : Recommendations are based on your stars and people you follow * [GitHub Explore](https://github.com/explore) - Project showcases, discover interesting repositories * [Christophe Porteneuve](https://medium.com/@porteneuve/video-collaboration-best-practices-with-git-and-github-2b5de9424af2) - [Video] Collaboration best practices with Git and GitHub - [Slides](http://drive.delicious-insights.com/legacy-files/git-github-collab-bp.pdf) * [Gitdude.com](https://gitdude.com/) - code improvement tips posted as a comment on your Github commits * [lorey/top-regional-repositories](https://github.com/lorey/top-regional-repositories) - The most-relevant GitHub repositories for all countries and many cities worldwide. * [Gary Ewan Park](https://www.youtube.com/watch?v=SlM02V1tkSc) - Control your GitHub releases with GitVersion and GitReleaseManager * [Amit Agarwal](https://www.labnol.org/internet/github-gist-tutorial/28499/) - What You Can Do With Gists on Github? * [Jason Chen](https://hackernoon.com/45-github-issues-dos-and-donts-dfec9ab4b612) - 45 Github Issues Dos and Don’ts * [Zach Holman](https://speakerdeck.com/holman/how-github-uses-github-to-build-github) - (2011) How GitHub Uses GitHub to Build GitHub * [Tom Forbes](https://tomforb.es/testing-my-dotfiles-with-github-actions/) - (2019) Testing my dotfiles with Github actions * [github/gitignore](https://github.com/github/gitignore) - A collection of useful .gitignore templates * [Chen Harel](https://dzone.com/articles/github%E2%80%99s-10000-most-popular) - GitHub’s 10,000 Most Popular Java / Ruby / JavaScript Projects: Here are the Top Libraries They Use * [Jesse Newland](https://githubengineering.com/kubernetes-at-github/) - Kubernetes at GitHub * [Danny Hermes & Thomas Tayloron](https://full-stack.blend.com/how-we-write-github-actions-in-go.html) - (2022) How We Write GitHub Actions in Go > Tips * [GitHub does dotfiles](https://dotfiles.github.io/) - guide and productivity tips for managing dotfiles * [Phil Haack](https://haacked.com/archive/2014/07/28/github-flow-aliases/) - (2014) GitHub Flow Like a Pro with these 13 Git Aliases * [EMOJI CHEAT SHEET](https://www.webpagefx.com/tools/emoji-cheat-sheet/) - list of Emoji / emoticons supported on GitHub, Basecamp, Trello, Slack, Dokuwiki, Bitbucket, YouTube, Mattermost, ... (list is bigger) * [ikatyang/emoji-cheat-sheet](https://github.com/ikatyang/emoji-cheat-sheet) - A markdown version emoji cheat sheet | This cheat sheet is automatically generated from [GitHub Emoji API](https://api.github.com/emojis) and [Unicode Full Emoji List](https://unicode.org/emoji/charts/full-emoji-list.html). * [GitHub](https://github.com/showcases/great-for-new-contributors) - Great for new contributors | What open source projects can I contribute to? * [GitHub Help](https://help.github.com/articles/searching-code/) - searching code / tips & tricks * [tiimgreen/github-cheat-sheet](https://github.com/tiimgreen/github-cheat-sheet) - A list of cool features of Git and GitHub > Tools * [sdras/awesome-actions](https://github.com/sdras/awesome-actions) - A curated list of awesome actions to use on GitHub * [Donne Martin/gitsome](https://github.com/donnemartin/gitsome) - gitsome : A supercharged Git/GitHub command line interface (CLI) * [Repo you may like](http://www.repoyoumaylike.com/) - Select some GitHub repository and see what recommendations comes up * [skywinder/github-changelog-generator](https://github.com/skywinder/github-changelog-generator) - Automatically generate change log from your tags, issues, labels and pull requests on GitHub. ## Golang / Go > News * [freeCodeCamp.org](https://www.freecodecamp.org/news/tag/golang/) - Articles tagged with Go * [Gophers on Slack](https://gophersinvite.herokuapp.com/) - Group to discuss Go language * [John Arundel](https://bitfieldconsulting.com/golang?author=5e10bdc11264f20181591485) - Go articles by the author of the book For the Love of Go > Misc * [faiface/pixel](https://github.com/faiface/pixel) - Pixel : A hand-crafted 2D game library in Go. * [Go Docs](https://golang.org/pkg/flag/) - Package flag * [Pipat Methavanitpong](https://fulcronz27.wordpress.com/2016/03/07/setting-atom-for-golang-on-windows/) - (2016) Setting Atom for Golang on Windows * [Francesc Campoy Flores](https://talks.golang.org/2013/bestpractices.slide#1) - (2013) Twelve Go Best Practices * [Marcio Castilho](http://marcio.io/2015/07/handling-1-million-requests-per-minute-with-golang/) - (2015) Handling 1 Million Requests per Minute with Go * [Marcio Castilho](http://marcio.io/2015/07/supercharging-atom-editor-for-go-development/) - (2015) Supercharging the Atom Editor for Go Development * [The Go Playground](https://play.golang.org/) - Useful for code snippet validation * [Golang](https://golang.org/src/) - Golang source code, useful for learning * [Go Docs](https://golang.org/pkg/) - Package list and documentation * [Go Docs](https://golang.org/pkg/crypto/) - Package crypto * [Andrew Gerrand](https://talks.golang.org/2012/10things.slide#1) - (2012) 10 things you (probably) don't know about Go * [Avelino/awesome-go](https://github.com/avelino/awesome-go) - curated list of awesome Go frameworks, libraries and software. See also [awesome-go.com](https://awesome-go.com/) * [GolangLibs](https://golanglibs.com) - inventory of go libraries an apps * [Checkmarx/Go-SCP](https://checkmarx.gitbooks.io/go-scp/) - Go secure coding practices for web applications. [Sources on GitHub](https://github.com/Checkmarx/Go-SCP) * [Justyna Ilczuk](http://tinystruggles.com/2015/08/29/golang-code-reuse.html) - (2015) Golang Code Reuse - Generalization tricks * [Go Resources](https://www.golang-book.com/books/intro/9) - Structs and Interfaces * [Stack Overflow](https://stackoverflow.com/questions/13511203/why-cant-i-assign-a-struct-to-an-interface) - Why can't I assign a *Struct to an *Interface? * [Christoph Berger](https://appliedgo.net/generics/) - Who needs generics? Use ... instead! * [Nathan LeClaire](https://nathanleclaire.com/blog/2015/10/10/interfaces-and-composition-for-effective-unit-testing-in-golang/) - (2015) Interfaces and Composition for Effective Unit Testing in Golang * [Nathan LeClaire](https://nathanleclaire.com/blog/2015/03/09/youre-not-using-this-enough-part-one-go-interfaces/) - (2015) You're Not Using This Enough, Part One: Go Interfaces * [bahlo/Go Styleguide](https://github.com/bahlo/go-styleguide) - Opinionated Styleguide for the Go language * [Peter Bourgon](https://peter.bourgon.org/go-best-practices-2016/) - (2016) Go best practices, six years in * [drone](https://github.com/drone/drone) - Drone is a Continuous Delivery platform built on Docker, written in Go * [golang/go/CodeReviewComments](https://github.com/golang/go/wiki/CodeReviewComments) - Go Code Review Comments : collects common comments made during reviews of Go code. This is a laundry list of common mistakes, not a style guide. * [Kevin Burke](https://kev.inburke.com/kevin/install-homebrew-go/) - Make your Go Binaries Homebrew Installable * [Jeff Rouse](https://opensource.com/article/17/11/why-go-grows) - (2017) Why Go is skyrocketing in popularity * [Julian Friedman](https://www.infoq.com/articles/build-a-container-golang) - (2016) Build Your Own Container Using Less than 100 Lines of Go * [neugram/ng](https://github.com/neugram/ng) - scripting language integrated with Go. **Bonus** : [website](https://neugram.io) * [James Routley](https://routley.io/posts/golang-test-fixtures/) - (2017) Simplify Golang test fixtures with this one weird trick * [353Solutions](https://www.353.solutions/py2go/index.html) - Python to Go CheatSheet * [Nemanja Mijailovic](https://mijailovic.net/2017/07/29/go-fuzz/) - (2017) Going down the rabbit hole with go-fuzz | testing techniques * [Jérôme Petazzoni](https://jpetazzo.github.io/2016/09/09/go-docker/) - (2016) Go + Docker = ♥ | tips and tricks showing how Docker can be useful when working with Go code * [Google Developers](https://developers.google.com/protocol-buffers/docs/gotutorial) - Protocol Buffer Basics: Go * [Alex Ellis](https://blog.alexellis.io/5-keys-to-a-killer-go-cli/) - 5 keys to create a killer CLI in Go * [Go Docs](https://golang.org/doc/effective_go.html) - Effective Go * [Kyle Quest](http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/) - 50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs * [Laura Frank](https://blog.codeship.com/an-intro-to-concurrency-patterns-in-go/) - (2017) An Intro to Concurrency Patterns in Go * [Jérôme Petazzoni](https://www.slideshare.net/jpetazzo/docker-and-go-why-did-we-decide-to-write-docker-in-go/33-Error_handling_can_be_verboseif) - [Slides] (2013) Docker and Go: why did we decide to write Docker in Go? * [Peter Bourgon](http://peter.bourgon.org/go-in-production/) - (2016) Go: Best Practices for Production Environments. **Bonus** : [Slides](https://github.com/gophercon/2014-talks) and [Video](https://www.youtube.com/watch?v=Y1-RLAl7iOI) * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [zricethezav/gitleaks](https://github.com/zricethezav/gitleaks) - Searches full repo history for secrets and keys key * [Shahidh K Muhammed](https://blog.hasura.io/the-ultimate-guide-to-writing-dockerfiles-for-go-web-apps-336efad7012c) - (2018) The Ultimate Guide to Writing Dockerfiles for Go Web-apps * [enocom/gopher-reading-list](https://github.com/enocom/gopher-reading-list) - A Gopher's Reading List : a reading list of blog posts about Go. * [Alex Dzyoba](https://alex.dzyoba.com/blog/go-prometheus-service/) - (2018) Instrumenting a Go service for Prometheus * [ksimka/go-is-not-good](https://github.com/ksimka/go-is-not-good) - A curated list of articles complaining that go (golang) isn't good enough * [Loris Cro](https://kristoff.it/blog/why-go-and-not-rust/) - (2019) Why Go and not Rust? | What's the role of Go in a universe where Rust exists? * [gruntwork-io/terratest](https://github.com/gruntwork-io/terratest) - Terratest is a Go library that makes it easier to write automated tests for your infrastructure code. **See also** [Official Website](https://terratest.gruntwork.io/) * [Ayooluwa Isaiah](https://freshman.tech/linting-golang/) - (2021) A guide to linting Go programs * [onsi/ginkgo](https://github.com/onsi/ginkgo) - A Modern Testing Framework for Go * [ichiban/prolog](https://github.com/ichiban/prolog) - The only reasonable scripting engine for Go. * [Ian Lance Taylor](https://go.dev/blog/why-generics) - (2019) Why Generics? * [Seth Hoenig](https://sethops1.net/post/go-generics-for-the-busy-gopher/) - (2022) go generics for the busy gopher February 6, 2022. **Related** : [Video] [Getting Started with Generics in Go](https://www.youtube.com/watch?v=kKu9HuOvaUY) * [Russ Cox](https://research.swtch.com/vgo-repro) - (2018) Reproducible, Verifiable, Verified Builds (Go & Versioning, Part 5). **Related :** [Go & Versioning & other posts](https://research.swtch.com/vgo) * [Pierre Prinetti](https://medium.com/@pierreprinetti/a-pattern-for-go-tests-3468b51535) - (2018) A pattern for Go tests * [Ignat Korchagin](https://blog.cloudflare.com/using-go-as-a-scripting-language-in-linux/) - (2018) Using Go as a scripting language in Linux * [Eno Compton](https://commandercoriander.net/blog/2018/03/30/go-interfaces/) - (2018) A Note on Using Go Interfaces Well * [Shalitha Suranga ](https://blog.logrocket.com/building-microservices-go-gin/) - (2022) Building microservices in Go with Gin * [Clavin June](https://levelup.gitconnected.com/this-is-why-you-should-learn-golang-639b646320) - (2021) This Is Why You Should Learn Golang * [Chewxy](https://blog.chewxy.com/2018/03/18/golang-interfaces/) - (2018) How To Use Go Interfaces * [Pulkit Kathuria](https://medium.com/web-developer/go-version-manager-gobrew-c8750157dfe6) - (2021) Go Version manager — gobrew | Install and manage Go versions on Mac or Linux. * [John Arundel](https://bitfieldconsulting.com/golang/tao-of-go) - (2021) The Tao of Go * [Preslav Mihaylov](https://pmihaylov.com/vim-for-go-development/) - (2021) How to set up Vim for Go Development * [Jogendra Kumar](https://jogendra.dev/using-vim-for-go-development) - (2020) Using Vim for Go Development * [Paschalis Tsilias](https://tpaschalis.github.io/vim-go-setup/) - (2019) My Vim IDE setup for Go. * [Ivan Velichko](https://iximiuz.com/en/posts/kubernetes-api-go-types-and-common-machinery/) - (2022) How To Call Kubernetes API using Go - Types and Common Machinery * [Eric S. Raymond aka ESR](https://developers.slashdot.org/story/17/11/27/039226/why-esr-hates-c-respects-java-and-thinks-go-but-not-rust-will-replace-c) - (2017) Why ESR Hates C++, Respects Java, and Thinks Go (But Not Rust) Will Replace C. **See also** : [The big break in computer languages](http://esr.ibiblio.org/?p=7724) * [Danny Hermes & Thomas Tayloron](https://full-stack.blend.com/how-we-write-github-actions-in-go.html) - (2022) How We Write GitHub Actions in Go * [Lawrence Kesteloot](https://www.teamten.com/lawrence/writings/why-i-dont-like-go.html) - (2016) Ten Reasons Why I Don't Like Golang * [Owen Jacobson](https://web.archive.org/web/20191205031849/https://grimoire.ca/dev/go) - (2018) I Do Not Like Go * [John Arundel](https://bitfieldconsulting.com/golang/rust-vs-go) - (2020) Rust vs Go * [John Arundel](https://bitfieldconsulting.com/golang/best-books) - (2022) Best Go books for 2022 * [John Arundel](https://bitfieldconsulting.com/golang/alex-edwards-lets-go-further) - (2021) Review: 'Let's Go Further' * [John Arundel](https://bitfieldconsulting.com/golang/tdd) - (2021) Test-driven development with Go * [John Arundel](https://bitfieldconsulting.com/golang/how) - (2020) How to really learn Go * [John Arundel](https://bitfieldconsulting.com/golang/commandments) - (2021) Ten commandments of Go * [Go Docs](https://golang.org/doc/code.html) - (2021) How to Write Go Code | This document demonstrates the development of a simple Go package inside a module and introduces the go tool, the standard way to fetch, build, and install Go modules, packages, and commands. * [Benjamin Muschko](https://bmuschko.com/blog/go-testing-frameworks/) - (2018) Exploring the landscape of Go testing frameworks * [Benjamin Muschko](https://bmuschko.com/blog/writing-your-first-kubectl-plugin/) - (2019) Writing your first kubectl plugin with Go ## Groovy * [Stack Overflow](https://stackoverflow.com/questions/35187151/using-groovy-how-do-you-pipe-multiple-shell-commands) - how to pipe multiple shell commands * [Hubert Klein Ikkink](http://mrhaki.blogspot.be/2009/11/groovy-goodness-working-with-lines-in.html) - (2009) Groovy Goodness: Working with Lines in Strings * [Tess Thyer](https://coderwall.com/p/nswp1q/calling-other-processes-from-groovy) - Calling Other Processes From Groovy * [Joerg Mueller](http://www.joergm.com/2010/09/executing-shell-commands-in-groovy/) - (2010) Executing shell commands in Groovy * [Groovy](http://groovy-lang.org/learn.html) - learning section of the Groovy website. * [Iván López Martín](https://www.slideshare.net/ilopmar/metaprogramming-with-groovy) - (2014) [Slides] Metaprogramming with groovy * [Gregory Dickson](https://medium.com/@gregory.d.dickson/why-groovy-is-so-groovy-or-a-beginners-guide-to-hacking-groovy-e0ad6f32c300) - (2017) Why Groovy is so groovy or a beginners guide to hacking Groovy * [Jenkins Wiki](https://wiki.jenkins.io/display/JENKINS/Groovy+Hook+Script) - Groovy Hook Scripts * [PLEAC-Groovy](http://pleac.sourceforge.net/pleac_groovy/) - implementation of the Solutions of the Perl Cookbook in the Groovy language * [Groovy web console](https://groovyconsole.appspot.com/) - a website for sharing and executing Groovy programming snippets of code! * [MorganGeek](../cheat/groovy.md) - groovy cheatsheet / tips | My cheatsheet for Groovy * [Faheetah](https://gist.github.com/Faheetah/e11bd0315c34ed32e681616e41279ef4) - Jenkinsfile idiosynchrasies with escaping and quotes : Examples of weirdness of Jenkinsfile / Groovy syntax * [Denny Zhang](https://cheatsheet.dennyzhang.com/cheatsheet-jenkins-groovy-a4) - (2018) CheatSheet: Jenkins & Groovy * [Groovy Docs](https://groovy-lang.org/syntax.html#_string_summary_table) - Syntax : String summary table * [Go Proverbs](https://go-proverbs.github.io/) - ⭐️ Go Proverbs — A collection of pithy sayings to post on your team’s wall (perhaps?) so they remember some handy principles of idiomatic Go | a set of Simple, Poetic, Pithy principles that every Go developer should keep in mind when working with the programming language. **Related** [jboursiquot/go-proverbs](https://github.com/jboursiquot/go-proverbs) ## Haskell * [Miran Lipovača](http://learnyouahaskell.com/chapters) - [Book] Learn You a Haskell for Great Good! and for free * [Alex Ott](http://alexott.net/en/fp/books/#sec7) - books review on Haskell * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. ## Java > News * [Les Cast Codeurs](https://lescastcodeurs.com/) - [FR] :fr: podcast for Java programmers * [Java mon amour](http://www.javamonamour.org/) - Blog about Java, Weblogic, OSB, Linux etc * [The Holy Java](https://theholyjava.wordpress.com/) - Building the right thing, building it right, fast > Learn * [Hugo Matilla/Effective-JAVA-Summary](https://github.com/HugoMatilla/Effective-JAVA-Summary) - Summary of the book Effective Java 2nd Edition by Joshua Bloch * [John Hanley](http://www.javapractices.com/home/HomeAction.do) - Collected Java Practices * [Nick Parlante](http://codingbat.com/java) - CodingBat : practice your java skills * [Lieven Doclo](https://dzone.com/articles/why-i-never-use-maven-release) - Why I Never Use the Maven Release Plugin * [findJAR](http://findjar.com/index.x) - a JAR search engine to help developers finding JAR libraries containing specific Java classes. * [Spring Initializr](http://start.spring.io/) - bootstrap your application now : Generate Maven / Gradle projects with Groovy / Java / Kotlin and Spring Boot * [Google](https://google.github.io/styleguide/javaguide.html) - Google Java Style Guide * [oci-pronghorn/GreenLightning](https://github.com/oci-pronghorn/GreenLightning) - Small Java HTTP/s server many times faster than Netty or NGINX * [Chen Harel](https://dzone.com/articles/github%E2%80%99s-10000-most-popular) - GitHub’s 10,000 Most Popular Java / Ruby / JavaScript Projects: Here are the Top Libraries They Use * [Encyclopedia of things considered harmful](http://harmful.cat-v.org/software/java) - Java Sucks * [Oracle](http://cr.openjdk.java.net/~jrose/pres/201407-JVMEvolution.pdf) - (2014) [PDF] Evolving the JVM: Principles and Directions / Oracle about challenges faced with implementation of new features for Java and JVM * [Javin Paul](http://javarevisited.blogspot.be/2012/05/best-practices-while-dealing-with.html?m=1) - (2012) Best Practices while dealing with Password in Java * [Michael G. Schwern](http://www.guild.net/~schwern/papers/Why_I_Am_Not_A_Java_Programmer/why.html) - a questionable comparison between Perl and Java * [Venkat Subramaniam](https://www.youtube.com/watch?v=j9nj5dTo54Q) - [Video] Hilarious presentation : Java 8 Language Capabilities, What's in it for you? * [Alex Zhitnitsky](http://blog.takipi.com/15-tools-to-use-when-deploying-code-to-production/) - (2014) 15 Tools Java Developers Should Use After a Major Release * [James Ward](http://www.jamesward.com/2014/12/03/java-doesnt-suck-youre-just-using-it-wrong) - (2014) Java Doesn’t Suck – You’re Just Using it Wrong * [Lawrence Kesteloot](https://www.teamten.com/lawrence/writings/java-for-everything.html) - (2014) I started to form a strange idea: That Java is the right language for all jobs. * [Google Developers](https://developers.google.com/protocol-buffers/docs/javatutorial) - Protocol Buffer Basics: Java * [Sam Atkinson](http://samatkinson.com/why-i-hate-spring/) - (2014) Why I hate Spring * [Javin Paul](http://javarevisited.blogspot.be/2014/10/10-java-best-practices-to-name-variables-methods-classes-packages.html) - (2014) 10 Programming Best Practices to Name Variables, Methods, Classes and Packages * [Javin Paul](http://javarevisited.blogspot.be/2013/03/0-exception-handling-best-practices-in-Java-Programming.html) - (2013) 10 Exception handling Best Practices in Java Programming * [Javin Paul](http://javarevisited.blogspot.be/2012/03/10-object-oriented-design-principles.html) - (2012) 10 Object Oriented Design Principles Java Programmer should know * [Javin Paul](http://javarevisited.blogspot.be/2011/08/code-comments-java-best-practices.html) - (2011) 10 Best Practices to Follow while writing Code Comments * [Aleksey Shipilëv](https://shipilev.net/) - One Stop Page | interesting resources about Java (performance, benchmarks, memory, good/bad practices...) * [Lukas Eder](https://jaxenter.com/ten-subtle-best-practices-when-coding-java-108043.html) - (2014) Ten subtle best practices when coding Java * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [Dustin Barnes](https://dev9.com/blog-posts/2014/9/java-release-process-with-continuous-delivery) - (2014) Java Release Process with Continuous Delivery | maven-release-plugin sucks * [Nicolai Parlog](https://slides.codefx.org/java-x/#/) - [Slides] (2019) Java 9 To 13 * [dekorateio/dekorate](https://github.com/dekorateio/dekorate) - Java annotation processors for Kubernetes * [Kotlin Docs](https://kotlinlang.org/docs/reference/comparison-to-java.html) - Comparison to Java Programming Language * [kwart/jd-cmd](https://github.com/kwart/jd-cmd) - Command line Java Decompiler ### Java EE ### * [Arjan Tijms](http://arjan-tijms.omnifaces.org/2016/12/the-state-of-portable-authentication-in.html) - (2016) The state of portable authentication in Java EE, end 2016 update * [Arjan Tijms](http://arjan-tijms.omnifaces.org/2012/11/implementing-container-authentication.html) - (2012) Implementing container authentication in Java EE with JASPIC * [Tom Alcott](https://www.ibm.com/developerworks/library/mw-1606-alcott-bluemix-trs/index.html) - What's new in WebSphere Application Server V9? * [Tom Alcott](https://www.ibm.com/developerworks/websphere/techjournal/1506_webcon/1506_webcon-trs.html#sec4) - WebSphere Liberty core versus Liberty profile * [GoogleContainerTools/jib](https://github.com/GoogleContainerTools/jib) - 🏗 Build container images for your Java applications. ## JavaScript > News * [JavaScript Weekly](http://javascriptweekly.com/) - JavaScript news and articles * [Days Since Last JavaScript Framework](https://dayssincelastjavascriptframework.com/) - with regular updates ! (humor) > Learn * [Ilse Garcia](https://web.archive.org/web/20170508084129/https://dev.to/poleslayer/the-js-path-javascript-best-practices-pt-1) - (2017) The JS Path: JavaScript Best Practices Pt. 1 * [Front-end Rescue](https://uptodate.frontendrescue.org/) - How to keep up to date on Front-End Technologies - The Recipe * [Michal Mikolajczyk](https://www.toptal.com/angular-js/top-18-most-common-angularjs-developer-mistakes) - Top 18 Most Common Mistakes that AngularJS Developers Make * [Sindre Sorhus/avajs/ava](https://github.com/avajs/ava) - AVA : Futuristic JavaScript test runner * [Alexandru Vladutu](https://www.airpair.com/node.js/posts/top-10-mistakes-node-developers-make) - Top 10 Mistakes Node.js Developers Make * [Azat Mardan](https://webapplog.com/seven-things-you-should-stop-doing-with-node-js/) - Seven Things You Should Stop Doing with Node.js * [verekia/js-stack-from-scratch](https://github.com/verekia/js-stack-from-scratch) - Step-by-step tutorial to build a modern JavaScript stack. * [Google](https://google.github.io/styleguide/javascriptguide.xml) - Google JavaScript Style Guide. **Deprecated** : use [jsguide.html](https://google.github.io/styleguide/jsguide.html) in place * [rwaldron/idiomatic.js](https://github.com/rwaldron/idiomatic.js) - Principles of Writing Consistent, Idiomatic JavaScript * [JS: The Right Way](http://jstherightway.org/) - JavaScript and its best practices * [Chen Harel](https://dzone.com/articles/github%E2%80%99s-10000-most-popular) - GitHub’s 10,000 Most Popular Java / Ruby / JavaScript Projects: Here are the Top Libraries They Use * [Derek Greer](http://aspiringcraftsman.com/2016/08/30/exploring-typescript/) - (2016) Exploring TypeScript * [marmelab/gremlins.js](https://github.com/marmelab/gremlins.js) - Gremlins.js : JS monkey testing library that tests webapp robustness through random user actions * [Douglas Crockford](https://twitter.com/EPoberezkin/status/525209820555907072/photo/1) - (2014) [IMG] Good parts of JavaScript reconsidered * [Stoyan Stefanov](http://www.phpied.com/files/location-location/location-location.html) - 535 ways to reload the page with JavaScript * [Keith Cirkel](https://www.keithcirkel.co.uk/why-we-should-stop-using-grunt/) - (2014) Why we should stop using Grunt & Gulp * [svaarala/duktape](https://github.com/svaarala/duktape) - Duktape : embeddable Javascript engine with a focus on portability and compact footprint * [Una Kravets](https://youmightnotneedjs.com/) - You Might Not Need JavaScript * [Chalarangelo/30-seconds-of-code](https://github.com/Chalarangelo/30-seconds-of-code) - Curated collection of useful Javascript snippets that you can understand in 30 seconds or less. * [Frederik Andersson](https://www.webcodegeeks.com/javascript/node-js/updating-maintainable-npm-module-continuous-integration/) - (2017) Updating a Maintainable NPM Module with Continuous Integration * [Gregg Caines](http://caines.ca/blog/2014/06/01/production-quality-node-dot-js-web-apps-part-i/) - (2014) Production-Quality Node.js Web Apps : Part I, the Basics. **Bonus** : [Part II, Detecting Defects](http://caines.ca/blog/2014/06/02/production-quality-node-dot-js-web-apps-part-ii/) + [Part III, Preventing Defects](http://caines.ca/blog/2014/06/22/production-quality-node-dot-js-web-apps-part-iii/) * [Keith Cirkel](https://www.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/) - (2014) How to Use npm as a Build Tool * [Stoyan Stefanov](https://www.phpied.com/files/location-location/location-location.html) - location = location ... and a 534 other ways to reload the page with JavaScript * [denysdovhan/wtfjs](https://github.com/denysdovhan/wtfjs) - A list of funny and tricky JavaScript examples * [Yoni Goldberg](http://goldbergyoni.com/checklist-best-practice-of-node-js-in-production/) - (2017) Checklist: Node.JS production best practices * [nodebestpractices](https://github.com/i0natan/nodebestpractices) - The largest Node.JS best practices list. Curated from the top ranked articles and always updated * [bnb/awesome-awesome-nodejs](https://github.com/bnb/awesome-awesome-nodejs) - An Awesome list of Awesome lists related to Node.js. * [Chalarangelo/30-seconds-of-code](https://github.com/Chalarangelo/30-seconds-of-code) - Curated collection of useful Javascript snippets that you can understand in 30 seconds or less. * [Modern JS Cheatsheet](https://mbeaudru.github.io/modern-js-cheatsheet/) - Cheatsheet for the JavaScript knowledge you will frequently encounter in modern projects. * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [Praveen Durairaj](https://blog.hasura.io/an-exhaustive-guide-to-writing-dockerfiles-for-node-js-web-apps-bbee6bd2f3c4) - (2018) An Exhaustive Guide to Writing Dockerfiles for Node.js Web Apps * [The State of JavaScript 2017](https://stateofjs.com/2017/introduction/) - (2017) Results of a survey to more than 28,000 developers all over the world about JavaScript ecosystem, covering numerous topics (testing, front-end, back-end, build tools, opinions, ...) * [Viral Shah](https://blog.usejournal.com/little-known-features-of-javascript-901665291387) - (2018) Little known features of JavaScript | Void operator, With statement, and other things. * [Dwitter.net](https://www.dwitter.net/) - is a challenge to see what awesomeness you can create when limited to only 140 characters of javascript and a canvas. * [StackShare](https://stackshare.io/javascript-ui-libraries) - popular JavaScript UI libraries on StackShare * [JavaScript Rising Stars](https://risingstars.js.org) - If you took a break to escape the JavaScript fatigue, you are in the right place! * [Unix Sheikh](https://www.unixsheikh.com/articles/javascript-malware-infested-nightmare.html) - (2021) JavaScript malware infested nightmare | some rant > Tools * [JSONLint](https://jsonlint.com/) - JSON validator * [Vue.js](https://vuejs.org/) - The Progressive JavaScript Framework | Vue.js is an open-source Model–view–viewmodel JavaScript framework for building user interfaces and SPAs (single-page applications). **See also** : [Video] (2020) [Vue.js: The Documentary](https://www.youtube.com/watch?v=OrxmtDw4pVI) * [BundlePhobia](https://bundlephobia.com/) - find the cost of adding a npm package to your bundle * [jwilber/roughViz](https://github.com/jwilber/roughViz) - Reusable JavaScript library for creating sketchy/hand-drawn styled charts in the browser. * [antonmedv/fx](https://github.com/antonmedv/fx) - Command-line tool and terminal JSON viewer 🔥 * [JavaScript Rising Stars](https://risingstars.js.org) - If you took a break to escape the JavaScript fatigue, you are in the right place! * [Bundlephobia](https://bundlephobia.com/) - find the cost of adding a npm package to your bundle * [nvm-sh/nvm](https://github.com/nvm-sh/nvm) - Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions * [JTK](https://heyjtk.hashnode.dev/vue-vs-svelte-vs-react) - (2022) Vue vs. Svelte vs. React ## Kafka > News * [Confluent Blog](https://www.confluent.io/blog/) - Tutorials, Tips, and News Updates * [The Apache Software Foundation Blogs](https://blogs.apache.org/kafka/) - Kafka news > Learn * [Ruurtjan Pul](https://scribe.rip/understanding-kafka-with-factorio-74e8fc9bf181) - (2018) Understanding Kafka with Factorio * [Antoine Veuiller](https://hackernoon.com/the-apprentices-guide-to-apache-kafka-n31w35ef) - (2021) The Apprentice's Guide to Apache Kafka * [sudan](https://ssudan16.medium.com/kafka-internals-47e594e3f006) - (2019) Apache Kafka Internals * [Tim Berglund](https://www.youtube.com/playlist?list=PLa7VYi0yPIH0KbnJQcMv5N9iW8HkZHztH) - [Videos] Apache Kafka® Tutorials | Kafka 101 * [Confluent](https://kafka-tutorials.confluent.io/) - Kafka Tutorials: Learn Kafka with End-to-End Code Examples ## Kotlin * [Kotlin Docs](https://kotlinlang.org/docs/reference/comparison-to-java.html) - Comparison to Java Programming Language * [Simon Wirtz](https://kotlinexpertise.com/kotlin-productivity/) - (2019) How Kotlin makes me a more productive software developer * [Kotlin Slack](http://kotlinlang.slack.com/) - official slack managed by jetbrains * [Kotlin/kotlinx.cli](https://github.com/Kotlin/kotlinx.cli) - Pure Kotlin implementation of a generic CLI parser. * [Clikt](https://ajalt.github.io/clikt/) - Simple, powerful command line parser for Kotlin | Clikt (pronounced “clicked”) is a Kotlin library that makes writing command line interfaces simple and intuitive. It is the “Command Line Interface for Kotlin”. | better alternative to kotlinx.cli ? ## Lisp * [L(λ)THW](http://learnlispthehardway.org/) - Learn Lisp The Hard Way * [Alex Ott](http://alexott.net/en/fp/books/#sec12) - books review on Lisp * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. ## Machine Learning See also [Robots](../README.md#robots) * [Jason Brownlee](http://machinelearningmastery.com/introduction-python-deep-learning-library-tensorflow/) - Introduction to the Python Deep Learning Library TensorFlow * [TensorFlow Docs](https://www.tensorflow.org/get_started/mnist/mechanics) - TensorFlow Mechanics 101 * [Amirsina Torfi/TensorFlow-World-Resources](https://github.com/astorfi/TensorFlow-World-Resources) - TensorFlow resources * [tensorflow/models](https://github.com/tensorflow/models) - Models and examples built with TensorFlow * [ujjwalkarn/Machine-Learning-Tutorials](https://github.com/ujjwalkarn/Machine-Learning-Tutorials) - Machine Learning & Deep Learning Tutorials * [soulmachine/machine-learning-cheat-sheet](https://github.com/soulmachine/machine-learning-cheat-sheet) - Machine learning cheat sheet * [josephmisiti/awesome-machine-learning](https://github.com/josephmisiti/awesome-machine-learning) - awesome Machine Learning frameworks, libraries and software. * [Carol Smith](https://www.slideshare.net/carologic/ai-and-machine-learning-demystified-by-carol-smith-at-midwest-ux-2017/45-AI_and_ML_Demystified_carologic) - (2017) AI and Machine Learning Demystified by Carol Smith at Midwest UX 2017 * [Alex Ellis](https://blog.alexellis.io/openfaas-colorisebot-comes-to-kubecon/) - (2017) Colorisebot and OpenFaaS * [Finnian Anderson](https://finnian.io/blog/colourising-video-with-openfaas-serverless-functions/) - (2017) Colourising Video with OpenFaaS Serverless Functions * [Rob Harrigan](https://unsupervisedpandas.com/python/supervised-classification-preprocessing/) - (2017) Supervised Classification: An Introduction and Preprocessing * [David Venturi](https://medium.freecodecamp.org/every-single-machine-learning-course-on-the-internet-ranked-by-your-reviews-3c4a7b8026c0) - (2017) Every single Machine Learning course on the internet, ranked by your reviews * [Adit Deshpande](https://adeshpande3.github.io/adeshpande3.github.io/The-Last-5-Years-in-Deep-Learning) - (2017) The Last 5 Years In Deep Learning * [Movix.ai](https://movix.ai/) - Discover your movie in a few clicks | Movix.ai is a movie recommendation service based on artificial intelligence and Deep Learning. Click movies and tags you like and the system will do the rest — in a few clicks, Movix adapts to your preferences and gives you movies worth watching. * [DeepAI](https://deepai.org/machine-learning-model/colorizer) - Image Colorization API * [Tone Analyzer](https://tone-analyzer-demo.ng.bluemix.net/) - This service uses linguistic analysis to detect joy, fear, sadness, anger, analytical, confident and tentative tones found in text. ## Mobile Development :iphone: * [Pratul Kalia](https://blog.uncommon.is/using-git-to-generate-versionname-and-versioncode-for-android-apps-aaa9fc2c96af) - Using git to generate versionName and versionCode for Android apps * [The Android Arsenal](https://android-arsenal.com/) - inventory / categorized directory of libraries and tools for Android * [Will Verduzco](https://www.xda-developers.com/decompile-edit-and-recompile-in-one-tool-with-apk-studio/) - Decompile, Edit, and Recompile in One Tool with APK Studio ## PHP * [PHP The Wrong Way](https://phpthewrongway.com/) - In the world of PHP programming, a set of trends are massively being propagated by some people (in their books and on websites) as “Modern PHP” while all other approaches are frowned upon as backward, stupid, or just plain wrong. This website has been created in an attempt to present a pragmatic view on PHP programming. A view dictated by experience and practical consequence rather than popular trends, theory, or academic dogma. ## Productivity :computer: See also [Dotfiles / Aliases](#dotfiles--aliases) and [Shell aliases](../README.md#shell-aliases) > News * [Itamar Turner-Trauring](https://codewithoutrules.com/productivity/) - Become more productive ; articles about being more productive as programmer without necessarily working longer hours > Learn * :fire: [**Sonkeng Maldini/Best-websites-a-programmer-should-visit**](https://github.com/sdmg15/Best-websites-a-programmer-should-visit) - Best websites programmers should visit * [Java Code Geeks](https://www.javacodegeeks.com/2013/06/10-productivity-tips-for-software-developers.html) - (2013) 10 Productivity tips for software developers * :star: [**J. B. Rainsberger**](http://blog.jbrains.ca/permalink/avoid-distractions-while-programming) - Avoiding Distractions While Programming * [Moran Danieli-Cohen](https://dev.to/msscohen/3-effective-ways-to-maintain-high-energy-levels-at-work-for-software-engineers) - 3 Effective Ways to Maintain High Energy Levels at Work for Software Engineers * [Alex Thunder](http://alexthunder.livejournal.com/309815.html) - Don't wake up the programmer * [Marcos Placona](https://twitter.com/marcos_placona/status/882487720597237760) - That "5 minutes chat" with a developer * [Paul Graham](https://www.linkedin.com/pulse/context-switching-developers-paul-graham) - How Context Switching destroys Developers Productivity and how to fix it. * [Dan Richman](https://www.geekwire.com/2016/just-shut-let-devs-concentrate-programming-expert-advises/) - (2016) Just shut up and let your devs concentrate * [Clean Coder Blog](http://blog.cleancoder.com/uncle-bob/2016/05/21/BlueNoYellow.html) - (2016) Blue. No! Yellow! Comparative Productivity of Programming Languages * [Nick Janetakis](https://nickjanetakis.com/blog/who-else-wants-to-boost-their-productivity-with-tmux) - Who Else Wants to Boost Their Terminal Productivity With tmux? * [Aurore Malherbes](https://www.theodo.fr/blog/2017/04/become-a-better-developer-with-an-efficient-technical-watch/) - (2017) Become a better developer with an efficient technical watch * [Joseph Kahn](https://blog.josephkahn.io/articles/ansible/) - Ansible or: How I Learned to Stop Wasting Time Setting Up My Computer and Script It * [Dwijadas Dey](https://linoxide.com/linux-how-to/search-tools-developers-linux/) - 6 Tools to Search Source Code for Developers in Linux * :star: [**sindresorhus/awesome**](https://github.com/sindresorhus/awesome) - Curated list of awesome lists * [Gregg Caines](http://caines.ca/blog/2015/06/14/were-in-the-stone-age-of-software-engineering-management/) - (2015) We're in the Stone Age of Software Engineering Management * [Gregg Caines](http://caines.ca/blog/2011/09/14/yoagile-the-good-parts/) - (2011) Agile: The Good Parts * [Evan Hahn](https://evanhahn.com/atom-apm-install-list/) - Install a list of Atom packages from a file * [Habitica](https://habitica.com/static/front) - improve your habits by making a game of your life * [jamb0ss/awesome-ambient-noises](https://github.com/jamb0ss/awesome-ambient-noises) - A curated list of awesome ambient noises for listening while programming * [DΛTΛSSETTE](http://www.musicforprogramming.net/) - music for programming * [/r/dailyscripts](https://www.reddit.com/r/dailyscripts/) - late-night hacks lazy people made when too annoyed by a task's length or difficulty * [Atom on Slack](http://atom-slack.herokuapp.com/) - Slack community for Atom Text editor * [Automations Tools Bootcamp on Slack](https://automationtools-bootcamp-slack.herokuapp.com/) - Development tools that enable automation of software projects * [Code search for Developers](http://codegists.com/search/jenkinsfile-tutorial/) - search for code snippets * :star: [**Command line fu**](http://www.commandlinefu.com/commands/browse) - a place to find those command-line gems that you return to again and again. * [NanoDano](http://www.devdungeon.com/content/i-know-how-program-i-dont-know-what-program) - "I know how to program, but I don't know what to program" * [URL Encoded Characters](http://www.degraeve.com/reference/urlencoding.php) - mapping table of encoded characters in URLS (%20, %22, %7D, ...) * [mehcode/Awesome Atom](https://github.com/mehcode/awesome-atom) - A curated list of delightful Atom packages and resources * [MorganGeek](../PRINCIPLES.md) - some programming and life lessons, collected from various sources including myself * [Bash One-Liners](http://www.bashoneliners.com/) - Bash one-liners, and best practices in Bash shell scripting * [Andrew Gallant](http://blog.burntsushi.net/ripgrep/) - ripgrep is faster than {grep, ag, git grep, ucg, pt, sift} * [jq Docs](https://stedolan.github.io/jq/manual/) - online manual for jq (a lightweight and flexible command-line JSON processor) * [Online syntax highlighting](https://tohtml.com/) - Online syntax highlighting for multiple languages * [Codeanywhere](https://codeanywhere.com/) - cross platform Cloud IDE * [Coderwall](https://coderwall.com/) - programming tips / learn something new * [Atom](https://atom.io/packages) - All packages * [Jessica Kerr](https://blog.codeship.com/growing-tech-stack-say-no/) - Growing Your Tech Stack: When to Say No * [Heather Knight](https://hackernoon.com/how-to-solve-programmers-block-18363c040656) - What Writers Can Teach Programmers * [Tom Limoncelli](https://everythingsysadmin.com/dumb-things-to-check.html) - troubleshooting : a list of dumb (and not so dumb) things to check * [Ask Ubuntu](https://askubuntu.com/questions/45521/how-to-navigate-long-commands-faster) - How to navigate long commands faster? * [Whitson Gordon](https://lifehacker.com/5743814/become-a-command-line-ninja-with-these-time-saving-shortcuts) - Become a Command Line Ninja With These Time-Saving Shortcuts * [Daniel Miessler](https://danielmiessler.com/study/tmux/) - A tmux Primer * [Daniel Miessler](https://danielmiessler.com/blog/connect-local-port-remote-ssh-server/) - How to Connect to a Local Port on a Remote SSH Server * [Stack Exchange](https://skeptics.stackexchange.com/questions/18539/has-stack-overflow-saved-billions-of-dollars-in-programmer-productivity) - Has Stack Overflow saved billions of dollars in programmer productivity? * [John D. Cook](https://www.johndcook.com/blog/2009/03/18/where-does-the-programming-effort-go/) - (2009) Where does the programming effort go? * [Scott Davis](https://www.ibm.com/developerworks/web/library/wa-mean1/) - (2014) From LAMP to MEAN : Introducing the MEAN stack * [Slant](https://www.slant.co/) - this community of enthusiasts provide recommendations on lot of things / useful to find best tools for the job * [Repo you may like](http://www.repoyoumaylike.com/) - Select some GitHub repository and see what recommendations comes up * [Andrew Bosworth](http://boz.com/articles/say-no.html) - Say No * [Andre Meyer](http://www.felienne.com/archives/3665) - (2014) Software developer’s perceptions of productivity * [Jeff Geerling](https://www.jeffgeerling.com/blog/2017/dockrun-oneshot-quick-local-environments) - (2017) dockrun oneshot — quick local environments for testing infrastructure * [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) - ripgrep combines the usability of The Silver Searcher with the raw speed of grep. * [sharkdp/fd](https://github.com/sharkdp/fd) - A simple, fast and user-friendly alternative to find. * [Rachel Andrew](https://24ways.org/2014/developing-robust-deployment-procedures/) - (2014) Developing Robust Deployment Procedures * [pre-commit/pre-commit](https://github.com/pre-commit/pre-commit) - A framework for managing and maintaining multi-language pre-commit hooks. * [Umer Mansoor](https://codeahoy.com/2016/04/30/do-experienced-programmers-use-google-frequently/) - (2016) Do Experienced Programmers Use Google Frequently? * [kdeldycke/awesome-falsehood](https://github.com/kdeldycke/awesome-falsehood) - Curated list of falsehoods programmers believe in * [braydie/HowToBeAProgrammer](https://github.com/braydie/HowToBeAProgrammer) - A guide on how to be a Programmer * [Meghan Hebel](https://codeburst.io/why-you-dont-deserve-that-dream-developer-job-60d5e5adb8d7) - Why You Don’t Deserve That Dream Developer Job * [Meghan Hebel](https://codeburst.io/stop-sabotaging-your-code-4ed67424a17a) - Stop Sabotaging Your Code…Before You Even Code * [Artem Stepanenko](https://medium.freecodecamp.org/5-steps-to-become-a-better-stack-overflow-user-4ce85711c0f9) - How to become a better Stack Overflow user in five simple steps * [freeCodeCamp/how-to-contribute-to-open-source](https://github.com/freeCodeCamp/how-to-contribute-to-open-source) - A guide to contributing to open source * [Awesome Repos](https://awesomerepos.com/) - the top of awesome repositories * [Devhints](https://devhints.io) - collection of Rico's cheatsheets about programming, DevOps, etc. * [Itamar Turner-Trauring](https://codewithoutrules.com/saneworkweek/) - (2017) The Programmer’s Guide to a Sane Workweek * [Recalll](https://recalll.co/) - search engine for programmers, to search programming queries from sites such as stackoverflow * [Hemanth HM](https://functional.works-hub.com/blog/Functional-Programming-Jargon) - Functional Programming Jargon * [DEV](https://dev.to/djviolin/what-are-your-unix-pipeline-commands-that-saved-you-from-lot-of-codingtime-7ok) - collaborative list of time saving UNIX pipeline commands * [tomnomnom/gron](https://github.com/tomnomnom/gron) - Make JSON greppable! * [Super User StackExchange](https://superuser.com/questions/988185/how-to-avoid-being-asked-enter-passphrase-for-key-when-im-doing-ssh-operatio) - git : avoid being asked “Enter passphrase for key ” when I'm doing ssh operation on a remote host * [Philippe Bourgau](http://philippe.bourgau.net/13-tricks-for-successful-side-projects/) - (2017) 13 Tricks for Successful Side Projects * [Yegor Bugayenko](http://www.yegor256.com/2014/10/29/how-much-do-you-cost.html) - (2014) How Much Do You Cost? * [James Routley](https://routley.io/posts/logbook/) - (2017) Using a logbook to improve your programming * [Raymond Rutjes](https://blog.algolia.com/pragmatic-releasing/) - (2017) Pragmatic Releasing: Less Worry, More Shipping * [BubuAnabelas/awesome-markdown](https://github.com/BubuAnabelas/awesome-markdown) - A curated list of delightful Markdown stuff. * [mezod/awesome-indie](https://github.com/mezod/awesome-indie) - Resources for independent developers to make money * [ripienaar/free-for-dev](https://github.com/ripienaar/free-for-dev) - list of SaaS, PaaS and IaaS offerings that have free tiers of interest to devops and infradev. **Website** : [Free for developers](https://free-for.dev) * [nvbn/thefuck](https://github.com/nvbn/thefuck) - Magnificent app which corrects your previous console command. * [tldr-pages/tldr](https://github.com/tldr-pages/tldr) - collection of simplified and community-driven man pages. * [accatyyc/tldr-man](https://github.com/accatyyc/tldr-man) - A Makefile that creates manpages from all the [tldr-pages/tldr](https://github.com/tldr-pages/tldr). * [Joël Spolsky](https://www.joelonsoftware.com/2007/10/26/evidence-based-scheduling/) - (2007) Evidence Based Scheduling * [Joël Spolsky](https://www.joelonsoftware.com/2001/02/12/human-task-switches-considered-harmful/) - (2001) Human Task Switches Considered Harmful * [Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/44177/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-skill) - What is the single most effective thing you did to improve your programming skills? * [Joël Spolsky](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/) - (2005) Making Wrong Code Look Wrong * [Joël Spolsky](https://www.joelonsoftware.com/2000/11/08/painless-bug-tracking/) - (2000) Painless Bug Tracking * [Joël Spolsky](https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/) - (2009) The Duct Tape Programmer * [Joël Spolsky](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/) - (2000) Things You Should Never Do, Part I | About rewriting code from scratch * [Alex Ott](http://alexott.net/en/fp/books/) - Functional programming books overview * [Pekka Väänänen](http://www.lofibucket.com/articles/dwm_latency.html) - (2017) Desktop compositing latency is real and it annoys me | about input latency on Windows 10 vs Windows 7 * [FoundersGrid](https://foundersgrid.com/code-management/) - (2014) How 50+ Startups Manage Their Code * [Michael Lynch](https://mtlynch.io/human-code-reviews-1/) - (2017) How to Do Code Reviews Like a Human (Part One). **Bonus** : [Part Two](https://mtlynch.io/human-code-reviews-2/) * [Jessy Bernal](https://medium.com/doctolib-engineering/handling-bugs-at-doctolib-847d54fd1990) - (2017) Handling bugs at Doctolib * [Chris Hermansen](https://opensource.com/article/18/1/two-great-uses-cp-command-update) - (2018) Two great uses for the cp command: Bash shortcuts * [Angie Jones](https://techbeacon.com/6-reasons-co-locate-your-app-automation-code) - (2018) 6 reasons to co-locate your app and automation code * [Andy Zaidman](https://azaidman.wordpress.com/2015/01/19/old-habits-die-hard-why-refactoring-for-understandability-does-not-give-immediate-benefits/) - (2015) Old Habits Die Hard: Why Refactoring for Understandability Does Not Give Immediate Benefits * [Paul Johnston](https://hackernoon.com/serverless-is-about-automation-not-functions-3f816c90ce61) - (2017) Serverless is about Automation, not Functions * [Emily Yu](https://hackernoon.com/how-i-coded-everyday-for-365-days-67ebb5fc7ae) - (2018) How I Coded Everyday for 365 Days * [Chris Harris](https://medium.com/@otduet/yearly-lessons-learnt-by-a-freelance-developer-concerned-with-holistic-productivity-a84fdba685b) - (2018) Yearly lessons learnt by a freelance developer concerned with holistic productivity. * [Matt Fletcher](https://spin.atomicobject.com/2018/01/22/archive-software-project/) - (2018) Today’s Code Is Tomorrow’s Legacy Project – Make It Easy to Resurrect * [Safia Abdalla](https://blog.safia.rocks/post/170269021619/tips-for-reading-new-codebases) - (2018) Tips for reading new codebases * [Antonio Bello](https://www.raywenderlich.com/167015/learning-techniques-programmers) - (2017) Learning Techniques for Programmers, by Programmers * [Coda Hale](https://codahale.com/virtual-machines-are-fleeting-things/) - (2017) Virtual Machines Are Fleeting Things | In which the pain of attachment is avoided. * [Dan McKinley](https://blog.skyliner.io/you-cant-have-a-rollback-button-83e914f420d9) - (2017) You Can’t Have a Rollback Button | The internet is a big truck. It’s really hard to drive it backwards. * [Steve McConnell](http://stevemcconnell.com/articles/dealing-with-problem-programmers/) - (1998) Dealing With Problem Programmers * [Steve McConnell](http://stevemcconnell.com/articles/classic-mistakes/) - (1996) Classic Mistakes * [Gregg Caines](http://caines.ca/blog/2015/03/08/reclaiming-value-from-bugs-and-outages/) - (2015) Reclaiming Value From Bugs and Outages: Thoughts on Post-Mortems * [Lemi Orhan Ergin](https://fr.slideshare.net/lemiorhan/waste-driven-development-xp-days-ukraine-2017) - (2017) [Slides] Fighting with Waste Driven Development : Lean Thinking. **Bonus** : [Video](https://www.youtube.com/watch?v=Iw3I_nALH6s) * :star: [**Pierluigi Vernetto**](http://www.javamonamour.org/2015/01/end-of-my-32-years-contract-on-osb.html) - (2015) End of my 3.2 years contract on a OSB integration project.... lesson learned. | some good lessons learned for developers / project management * [Maxime Thirouin](https://www.24joursdeweb.fr/2013/automatisez-votre-workflow-front-end/) - :fr: [FR] (2013) Automatisez votre workflow front-end * [Zach Holman](https://zachholman.com/talk/unsucking-your-teams-development-environment/) - (2012) Unsucking Your Team's Development Environment * [Markus Harrer](https://www.feststelltaste.de/session-summary-devops-camp-compact-2017/) - (2017) What prevents you from doing software development effectively?” * [Markus Harrer](https://www.feststelltaste.de/video-modern-software-development-antipatterns/) - (2015) Video: Modern Software Development Antipatterns * [fkingma@xebia](http://blog.xebia.com/purpose/) - (2017) Purpose : What are we doing? And why? * [Dave Nicolette](https://www.leadingagile.com/2016/09/5s-for-software-teams/) - (2016) 5S for Software Teams * [Gregg Caines](http://caines.ca/blog/2014/12/02/i-dont-miss-the-sprint/) - (2014) I Don't Miss the Sprint | about team productivity in Scrum * [Zach Holman](https://zachholman.com/talk/move-fast-break-nothing/#slides) - [Slides] move fast & break nothing | a talk about code, teams & process * [Zach Holman](https://speakerdeck.com/holman/how-github-uses-github-to-build-github) - [Slides] (2011) How GitHub Uses GitHub to Build GitHub * [Addy Osmani](https://speakerdeck.com/addyosmani/front-end-tooling-workflows) - [Slides] (2014) Front-end Tooling Workflows | 198 slides on tools to help you stay productive on the front-end * [Mandi Walls](https://www.slideshare.net/lnxchk/configuration-management-is-old-and-boring) - (2017) Configuration Management is Old and Boring * [Lewis Menelaws](https://dev.to/lewismenelaws/how-to-fix-burnout-as-a-developer--4opl) - (2018) How to Fix Burnout as a Developer * [Jeffrey Ventrella](https://ventrellathing.wordpress.com/2013/06/18/the-case-for-slow-programming/) - (2013) The Case for Slow Programming | “Slow down, son. You’ll get the job done faster.” * [Nathen Harvey](https://speakerdeck.com/nathenharvey/the-journey-to-continuous-automation) - (2017) The Journey to Continuous Automation * [Libraries.io](https://libraries.io/) - discovers millions open source libraries accros +36 package managers * [Increment Staff](https://increment.com/development/what-its-like-to-be-a-developer-at/) - (2017) What it’s like to be a developer at … * [Jerome Kehrli](https://www.niceideas.ch/roller2/badtrash/entry/periodic-table-of-agile-principles) - (2017) Periodic Table of Agile Principles and Practices * [tamar Turner-Trauring](https://codewithoutrules.com/2016/08/18/productive-programmer/) - (2016) Less stress, more productivity: why working fewer hours is better for you and your employer * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/11/10/work-life-balance-software-engineer/) - (2016) Work/life balance will make you a better software engineer * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/04/15/40-hour-programmer/) - (2016) Improving your skills as a 9 to 5 programmer * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/02/24/go-home-already/) - (2016) Still stuck at the end of the day? * [Itamar Turner-Trauring](https://codewithoutrules.com/2017/10/04/technical-skills-productive/) - (2017) Technical skills alone won’t make you productive * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/06/26/code-faster/) - (2016) Code faster by typing less * [William Shawn](https://spin.atomicobject.com/2017/06/01/how-to-read-code/) - (2017) How to Read Code (Eight Things to Remember) * [Tyler Hoffman](https://spin.atomicobject.com/2017/07/29/code-reviews-boost-productivity/) - (2017) Code Reviews as a Tool to Boost Productivity * [Alex Zurek](https://spin.atomicobject.com/2017/08/15/todo-comments/) - (2017) TODO Comments Don’t Work * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/10/07/growing-your-toolbox/) - (2016) More learning, less time: how to quickly gather new tools and techniques * [Nick Humrich](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) - (2017) Yes, Python is Slow, and I Don’t Care | A rant on sacrificing performance for productivity. * [repl.it](https://repl.it/) - Online REPL, Compiler & IDE : Boot up a programming environment for your favorite language | including JavaScript, Python, Ruby, Java, Node.js, Go, Scheme, C, C#, C++, Lua and many more. * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/12/08/how-not-to-get-stuck/) - (2016) Don’t get stuck: 6 ways to get unstuck and code faster * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/08/25/the-01x-programmer/) - (2016) From 10x programmer to 0.1x programmer: creating more with less * [Gregg Caines](http://caines.ca/blog/2017/04/09/the-all-or-nothing-principle/) - (2017) The All-or-Nothing Principle * [John Cutler](https://hackernoon.com/we-cant-do-that-in-one-sprint-a6780d67480) - (2018) We Can’t Do That In One Sprint * [Shaun Finglas](https://blog.shaunfinglas.co.uk/2015/09/waste-write-less-code.html) - (2015) Waste: Write Less Code * [Lieven Vaneeckhaute (denshade)](https://softwareefficiency.wordpress.com/2015/02/10/fail-fast-spend-less-time-in-root-cause-analysis/) - (2015) Fail fast, spend less time in root cause analysis * [Software Engineering Radio](http://www.se-radio.net/2018/02/se-radio-episode-317-travis-kimmel-on-measuring-software-engineering-productivity/) - (2018) SE-Radio Episode 317: Travis Kimmel on Measuring Software Engineering Productivity * [Ashton Kemerling](http://ashtonkemerling.com/blog/2012/11/22/the-myth-of-the-lone-hacker/) - (2012) The Myth of the Lone Hacker | without the effort of countless other engineers, part and full time, their projects would have never made it off the ground. * [Michael Hoffman](http://code-worrier.com/how-to-be-stuck/#) - (2013) How to be Stuck - Learning to learn to code on the internet * [Robert Ecker](https://dev.to/teamcoder/the-problem-with-high-test-coverage-4dh) - (2017) The Problem With High Test Coverage * [Max Kanat-Alexander](https://www.codesimplicity.com/post/the-secret-of-fast-programming-stop-thinking/) - (2013) The Secret of Fast Programming: Stop Thinking * [Thomas Peham](https://usersnap.com/blog/faster-programming/) - (2016) How to be a faster programmer: 7 helpful tips for being faster & more successful. * [Michael Lynch](https://mtlynch.io/why-i-quit-google/) - (2018) Why I Quit Google to Work for Myself * [Steven A. Lowe](https://techbeacon.com/program-faster-all-time-best-tips-pros) - Code faster: 53 tips from the pros > The only way to go fast is to go well. Every time you yield to the temptation to trade quality for speed, you slow down. Every time. [Robert C. Martin](http://butunclebob.com/ArticleS.UncleBob.VehementMediocrity) * [Christian Maioli Mackeprang](https://techbeacon.com/app-dev-testing/35-programming-habits-make-your-code-smell) - (2018) 35 programming habits that make your code smell * [Christian Maioli Mackeprang](https://techbeacon.com/how-terrible-code-gets-written-perfectly-sane-people) - (2018) How terrible code gets written by perfectly sane people * [Software Engineering Tips](http://www.yacoset.com/Home/communication-tips) - (2010) Communication Tips * [Nir Cohen](https://sysadvent.blogspot.be/2016/12/day-16-trained-engineers-overnight.html) - (2016) Trained Engineers - Overnight Managers (or, The Art Of Not Destroying Your Company) * [ezekg/git-hound](https://github.com/ezekg/git-hound) - Git plugin that prevents sensitive data from being committed. * [dxa4481/truffleHog](https://github.com/dxa4481/truffleHog) - Searches through git repositories for high entropy strings and secrets, digging deep into commit history * [rondy](https://gist.github.com/rondy/af1dee1d28c02e9a225ae55da2674a6f) - Effective Engineer - Book Notes. **Bonus** see also [The Effective Engineer website](http://www.effectiveengineer.com/) and [Effective Engineer Blog](http://www.effectiveengineer.com/blog) * [Brandon Sheffield](https://www.gamasutra.com/view/news/310570/Developers_share_their_most_memorable_dirty_coding_tricks.php) - (2017) Developers share their most memorable dirty coding tricks * [Dan Kelch](https://spin.atomicobject.com/2017/12/13/favorite-git-commands/) - (2017) Git Good: Improve Your Version Control Skills * [Ben Thompson](https://blog.gitprime.com/2017-software-developer-productivity-survey/) - (2017) 2017 Software Developer Productivity Survey * [Ben Thompson](https://blog.gitprime.com/6-causes-of-code-churn-and-what-you-should-do-about-them/) - (2016) 6 causes of code churn and what you should do about them * [Brian Graham](https://blog.gitprime.com/what-slows-development-teams/) - (2017) What slows development teams > Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law. – Douglas Hofstadter * [RegExr](https://regexr.com/) - is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp). * [Joël Spolsky](https://www.joelonsoftware.com/2001/04/21/dont-let-architecture-astronauts-scare-you/) - (2001) Don’t Let Architecture Astronauts Scare You | about productivity * [Ben Thompson](https://blog.gitprime.com/engineering-impact-whats-taking-so-long/) - (2016) What’s taking so long? * [Tim Ottinger](https://agileotter.blogspot.be/2014/09/programming-is-mostly-thinking.html) - (2014) Programming Is Mostly Thinking * [Tim Ottinger](https://www.industriallogic.com/blog/managing-programmers/) - (2017) Managing Programmer Productivity * [Tim Ottinger](http://agileotter.blogspot.be/2017/11/taking-breaks-in-disciplined-way.html) - (2017) Taking Breaks in a Disciplined Way | Take breaks otherwise pairing will drain your energy > we don't take breaks because we are tired, we take breaks so that we are never tired. * [Bill Wake](https://www.industriallogic.com/blog/multiple-asserts-are-ok/) - (2015) Multiple Asserts Are OK | Some people suggest we should restrict ourselves to a single assertion per test. Are multiple asserts in a test ever OK? * [Joshua Kerievsky](http://www.industriallogic.com/wp-content/uploads/2005/09/StopOverEngineering.pdf) - (2005) [PDF] (2002) Stop Over-Engineering! * [Joshua Kerievsky](https://www.industriallogic.com/blog/sufficient-design/) - (2010) Sufficient Design > we need high design quality for stuff that is critical to our products and less design quality for stuff that isn't critical. * [Luu Duong](http://www.luuduong.com/archive/2009/03/04/applying-the-quot8020-rulequot-with-the-standish-groups-software-usage.aspx) - (2009) Applying the "80-20 Rule" with The Standish Group’s Statistics on Software Usage | 80% of users only use 20% of features. * [Joshua Kerievsky](https://www.industriallogic.com/blog/redefining-done/) - (2010) Redefining Done > "A user story is done when the code is fully integrated, all tests pass and the functionality meets the expectations of the story author(s)." > The race to get work done, especially to show management that we got work done is far less important than focusing on creating happy, productive users. > A story isn't done until it is being used by real users in production and has been validated to be a useful part of a product. * [John Sonmez](https://www.youtube.com/watch?v=o1tDEqHf6_M) - [Video] (2016) Being A Slow Developer... Am I Screwed? | on slow programming, clean code & productivity. Don't rush, do it right, do it clean then do it fast. * [Jeff Atwood](https://blog.codinghorror.com/we-make-shitty-software-with-bugs/) - (2004) We Make Shitty Software.. With Bugs! | Software is a process, it's never finished, it's always evolving. * [Jeff Atwood](https://blog.codinghorror.com/do-not-buy-this-book/) - (2007) Do Not Buy This Book * [Petter Måhlén](https://pettermahlen.com/2011/04/08/if-its-broken-fix-it/) - (2011) If it’s Broken, Fix It * [Jakub Skałecki](https://rock-it.pl/automatic-code-quality-checks-with-git-hooks/) - (2017) Automatic code quality checks with git hooks * [GitHub Help](https://help.github.com/articles/searching-code/) - searching code / tips & tricks * [AnyAPI](https://any-api.com/) - Documentation and Test Consoles for Over 500 Public APIs * [Michael Malis](http://malisper.me/how-to-improve-your-productivity-as-a-working-programmer/) - (2017) How to Improve Your Productivity as a Working Programmer | It only takes one or two changes each week for things to quickly snowball. * [Jan Mewes](https://dev.to/janux_de/how-to-pick-up-a-new-technology-in-minimal-time-2i4l) - (2018) How to pick up a new technology in minimal time? * [Ronald Jeffries](https://www.ronjeffries.com/articles/018-01ff/abandon-1/) - (2018) Developers Should Abandon Agile * [Ben Halpern](https://dev.to/ben/write-clean-code-and-avoid-the-distractions-of-emerging-technology-3emj) - (2018) Write clean code and avoid the distractions of emerging technology | stay excited by the trends, but be impassioned by the small improvements you can make in the quality of your work. * [chubin/cheat.sh](https://github.com/chubin/cheat.sh) - Cheat.sh - the only cheat sheet you need | allow to browse cheatsheets from internet using curl * [aloisdg/awesome-regex](https://github.com/aloisdg/awesome-regex) - A curated collection of awesome Regex libraries, tools, frameworks and software * [Liz Bennett](https://www.loggly.com/blog/regexes-the-bad-better-best/) - (2015) Regexes: The Bad, the Better, and the Best | A Story about How Just a Few Characters Can Make Such a Big Difference in Performance * [RexEgg](http://www.rexegg.com/regex-best-trick.html) - (2014) The Greatest Regex Trick Ever * [RegEx Hub](https://projects.lukehaas.me/regexhub/) - Useful Regex Patterns * [Regular Expression Library](http://regexlib.com/) - Search for RegEx patterns * [Tyler Hakes](https://www.7pace.com/blog/how-to-measure-developer-productivity) - (2018) How to Measure Developer Productivity > It’s easy to accomplish 100 small tasks to make yourself look more productive. But in many cases, it’s the one, big, ugly project that takes the most time and is holding us (and the rest of the team) back from moving forward. > Measuring productivity can be difficult. But using the wrong metrics makes it impossible. * [John D. Cook](https://www.johndcook.com/blog/2009/12/23/why-programmers-are-not-paid-in-proportion-to-their-productivity/) - (2009) Why programmers are not paid in proportion to their productivity > 1. extreme productivity may not be obvious > 2. programmers are most effective when they avoid writing code > 3. when they are being their most productive, nobody says “Wow! You were just 100x more productive than if you’d done this the hard way. You deserve a raise.” > 4. it may take a long time to realize that others are programming with sound and fury but producing nothing. * [Osman (Ozzie) Ahmed Osman](https://hackernoon.com/just-in-case-vs-just-in-time-learning-c87f61d24360) - (2018) Just-In-Case vs. Just-In-Time Learning | Should software engineers learn new things “just in case” we need them in the future? Or should we learn the things we need “just in time”, when we realize we actually need them? * [Gaurav Makhecha](https://dev.to/gauravmak/time-saving-habits-for-programmers-i37) - (2018) Time saving habits for programmers > - Forget office politics > - Code quality > - ... * [Paul Graham](http://paulgraham.com/head.html) - (2007) Holding a Program in One's Head * :star: [**regex101**](https://regex101.com/) - Free Online PCRE-based regular expression tester and debugger with real time explanation, error detection and highlighting for PHP, PCRE, Python, Golang and JavaScript * [Rextester](https://rextester.com/) - run code online * [**Hacker Tools**](https://hacker-tools.github.io/) - Learn to make the most of the tools used by hackers / programmers * [Kent C. Dodds](https://kentcdodds.com/blog/write-tests) - (2017) Write tests. Not too many. Mostly integration. * [Martin Fowler](https://martinfowler.com/articles/is-quality-worth-cost.html) - (2019) Is High Quality Software Worth the Cost? * :star: [**DistroTest**](https://distrotest.net/?module=systems&action=list) - The first online operating system tester | Take a look at the existing linux distributions, test them live online and thus without any installation * :star: [**gitignore.io**](https://www.toptal.com/developers/gitignore) - Generate useful .gitignore files for your project. **See also** [Source Code](https://github.com/toptal/gitignore.io) * [1x Engineer](https://1x.engineer/) - a non-exhaustive list of what qualities make up a 1x engineer. * [Dan Slimmon](https://blog.danslimmon.com/2019/07/15/do-nothing-scripting-the-key-to-gradual-automation/) - (2019) Do-nothing scripting: the key to gradual automation | pattern for scripts that do nothing but still help on the road to automation * :star: [**Eric Pement**](https://web.archive.org/web/20190804114017/http://www.pement.org/awk/awk1line.txt) - (2008) Handy one-line scripts for awk * [Senthil Kumar aka SK](https://www.ostechnix.com/random-one-liner-linux-commands-part-1/) - (2018) Some Random One-liner Linux Commands [Part 1]. **Bonus** : [Part 2](https://www.ostechnix.com/random-one-liner-linux-commands-part-2/), [Part 3](https://www.ostechnix.com/random-one-liner-linux-commands-part-3/), [Part 4](https://www.ostechnix.com/some-random-one-liner-linux-commands-part-4/) * [Bash-Oneliner](https://onceupon.github.io/Bash-Oneliner/) - A collection of handy Bash One-Liners and terminal tricks for data processing and Linux system maintenance. **Bonus** : [GitHub repository](https://github.com/onceupon/Bash-Oneliner) * [crontab guru](https://crontab.guru/) - The quick and simple online editor for testing cron schedule expressions * [Remy Sharp](https://remysharp.com/2018/08/23/cli-improved) - (2018) CLI: improved | presentation of several powerful CLI tools * [wwong99/useful_commands.md](https://github.com/wwong99/pentest-notes/blob/9a9d4117cebf06597c050904b387fd14ab59096f/os/useful_commands.md) - Useful commands By [@climagic](https://twitter.com/climagic) * [dbeniamine/cheat.sh-vim](https://github.com/dbeniamine/cheat.sh-vim) - Use cheat.sh from VIM * [clvv/fasd](https://github.com/clvv/fasd) - Command-line productivity booster, offers quick access to files and directories, inspired by autojump, z and v. * [donnemartin/haxor-news](https://github.com/donnemartin/haxor-news) - Browse Hacker News like a haxor: A Hacker News command line interface (CLI). * :star: [**alebcay/awesome-shell**](https://github.com/alebcay/awesome-shell) - A curated list of awesome command-line frameworks, toolkits, guides and gizmos. * [Simon Wirtz](https://kotlinexpertise.com/kotlin-productivity/) - (2019) How Kotlin makes me a more productive software developer * [Loris Cro](https://kristoff.it/blog/simple-not-just-easy/) - (2019) I Want Simple, Not Just Easy > You've surely read plenty about how simple is good, but what's wrong with easy? * [jhspetersson/fselect](https://github.com/jhspetersson/fselect) - Find files with SQL-like queries * [MorganGeek](https://gist.github.com/MorganGeek/3d29301206b52f02db001126d7adfafe) - A gist with all my frequent favorite commands :) "just in case" * [Gregg Caines](http://caines.ca/blog/2018/03/27/zero-defect-policy/) - (2018) Zero Defect Policy * [musicForProgramming](https://musicforprogramming.net/) - Music possessing these qualities can often provide just the right amount of interest to occupy the parts of your brain that would otherwise be left free to wander and lead to distraction during your work. * [Andrew Payne](https://payne.org/blog/the-myth-of-the-myth-of-the-10x-programmer/) - (2020) The Myth of the Myth of the 10x Programmer > * I think 10x developers, like world-class athletes, musicians, and authors, absolutely do exist. You’re just not going to find them with a coding test. > * Highly productive developers (10x or otherwise) are problem-solving at a much higher level. * [Horia Coman](https://dev.to/horia141/jupiter-dev-log-3-lint-all-the-things-51lh) - (2020) Jupiter Dev Log 3 - Lint All The Things * [Jeffrey Paul](https://sneak.berlin/20191011/stupid-unix-tricks/) - (2019) Stupid Unix Tricks * [Carl Tashian](https://smallstep.com/blog/ssh-tricks-and-tips/) - (2020) SSH Tips & Tricks for using SSH more effectively. * [asdf-vm/asdf](https://github.com/asdf-vm/asdf) - Extendable version manager for multiple languages | Manage multiple runtime versions with a single CLI tool, extendable via [plugins](https://github.com/asdf-vm/asdf-plugins) * [github/gitignore](https://github.com/github/gitignore) - A collection of useful .gitignore templates * [Mike Crittenden](https://critter.blog/2020/08/14/learning-a-technology-you-dont-need-right-now-is-a-waste-of-time/) - (2020) Learning a technology you don’t need right now is a waste of time * [Jessica Joy Kerr aka jessitron](https://jessitron.com/2017/06/24/the-most-productive-circumstances-for/) - (2017) Hyperproductive development * [Async Manifesto](http://asyncmanifesto.org/) - (2014) Manifesto for Async Software Development | Principles of Async Software Development * [Logan Mayville](https://www.hellosign.com/blog/busy-kills-productivity) - (2018) How Being Busy Kills Productivity | How doing less can help you be more productive > * Focus on results; not time : Time tracking is unavoidable in some instances, but rather than the rule by which companies operate, it should be used as a secondary metric to the results they achieve. Rather than give an employee a 2-hour window to do a job, have her do it right the first time (bonus points for documenting the process), then review and adjust your future plans based on time tracking data. > * Improve systems : Improving systems helps remove busywork from an employee’s day, but it also makes things easier for the customer. > * Whether you’re getting a lot of satisfaction from being busy or just feeling exasperated, don’t forget to occasionally stop and ask yourself: Is this the best use of time? * [Eric Elliott](https://medium.com/javascript-scene/tdd-changed-my-life-5af0ce099f80) - (2019) TDD Changed My Life * [James McTiernan aka Jimmy](https://theproductiveengineer.net/how-to-use-zettelkasten-as-a-programmer-or-developer/) - (2021) How To Use Zettelkasten as a Programmer or Developer * [kettanaito/naming-cheatsheet](https://github.com/kettanaito/naming-cheatsheet) - Comprehensive language-agnostic guidelines on variables naming. Home of the A/HC/LC pattern. * [Yossi Kreinin aka wetware](https://yosefk.com/blog/10x-more-selective.html) - (2013) 10x more selective > So I believe, having authored a lot of code that went down the toilet, that you don't get productive by working as much as by not working – not on stuff that is likely to get thrown away. * [Unix Sheikh](https://www.unixsheikh.com/articles/how-to-write-software-than-will-keep-working-for-decades.html) - (2021) How to write software than will keep working for decades without problems * [Learn X in Y minutes](https://learnxinyminutes.com/) - Take a whirlwind tour of your next favorite language. Community-driven! * [Nicolas Karolak](https://blog.karolak.fr/2019/11/25/les-raccourcis-clavier-de-bash/) - :fr: [FR] (2019) Les raccourcis clavier de Bash * [Spencer Baugh](https://catern.com/change_code.html) - (2022) Prefer to change the code rather than write a workaround * [Spencer Baugh](https://catern.com/config.html) - (2021) Write code, not configuration > Tools * [Devhints](https://devhints.io/) - Rico's cheatsheets | TL;DR for developer documentation * [Semver check](https://jubianchi.github.io/semver-check/#/) - More and more projects try to follow Semantic Versioning to reduce package versioning nightmare and every dependency manager implements its own semantic versioner. Composer and NPM for example don't handle version constraints the same way. It's hard sometimes to be sure how some library version will behave against some constraint. This tiny webapp checks if a given version satisfies another given constraint. * [CodeElf](https://unbug.github.io/codelf) - Search over Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project, GitLab to find real-world usage variable names | A search tool helps dev to solve the naming things problem. **Source code** : [unbug/codelf](https://github.com/unbug/codelf) * [Mattia Gheda](https://ghedam.at/15490/so-tell-me-about-nix) - (2020) So, tell me about Nix * [antonmedv/fx](https://github.com/antonmedv/fx) - Command-line tool and terminal JSON viewer 🔥 * [Mattia Gheda](https://ghedam.at/15502/speedy-development-environments-with-nix-and-docker) - (2020) Speedy Development environments with Nix and Docker * [namae](https://namae.dev/) - Grab a slick name for your new app | Check availability for your new app name ideas across major registries at once. * [rfc.me](https://rfc.me/) - Append an RFC number to the domain and it will redirect to that RFC. Example: [rfc.me/1738](https://rfc.me/1738) * [rfc.fyi](https://rfc.fyi/) - Search for RFCs, Fast — When they say ‘fast’ they’re not lying. This site is amazingly nimble at helping you track down the particular RFC you want, whether you want to read the FTP spec, a protocol for controlling coffee pots, or how QUIC works. ## Programmer humor * [CommitStrip](http://www.commitstrip.com/en) - daily life of developers * :star: [**Geek&Poke**](https://geek-and-poke.com/) - cartoons * [The Profound Programmer](http://theprofoundprogrammer.com/) - Programming frustrations expressed through profane, beautiful photographs * [Programming excuses](http://programmingexcuses.com/) - Excuses for lazy coders * [Developer excuses](http://developerexcuses.com/) - Excuses for lazy coders * [Aaron Bassett](http://www.codingexcuses.com/) - Excuses for programmers * [Simran Savani](http://blog.taskworld.com/infographic-get-work/) - [IMG] How to Get Out of Doing Work ([Full size](http://editorial.designtaxi.com/editorial-images/NEWS-INFNoWork240715/5.jpg)) * [Christina Ng](http://wfh.ninja) - Excuses generator for remote workers * [Jeff Atwood](https://blog.codinghorror.com/new-programming-jargon/) - New Programming Jargon * [MonkeyUser](http://www.monkeyuser.com/) - software development satire web comic * :star: [**The Coding Love**](http://thecodinglove.com/) - the_coding_love(); /* epic gifs for developers */ * [Scott Adams](http://dilbert.com/) - Dilbert comic : satiric humor about a micromanaged office featuring engineer Dilbert * [DevHumor](http://devhumor.com/) - humor for developers * [/r/ProgrammerHumor](https://www.reddit.com/r/ProgrammerHumor/) - programmer humor on reddit * [Jose Aguinaga](https://medium.freecodecamp.com/welcome-to-the-software-interview-ee673bc5ef6) - What if companies interviewed translators the way they interview coders? * [Luís Silva/IdleWork](https://github.com/LudeeD/IdleWork) - IdleWork : Useful scripts to make you look like you're working and also look awesome doing so. * [/r/badcode](https://www.reddit.com/r/badcode/) - the most terrible code you can find * [/r/shittyprogramming](https://www.reddit.com/r/shittyprogramming/) - like stack overflow, but with trolls only * [/r/itsaunixsystem](https://www.reddit.com/r/itsaunixsystem/) - every satirical, embarrassing, incorrect usage of Technology in Movies, TV Shows, and Video Games! * [/r/Sysadminhumor](https://www.reddit.com/r/Sysadminhumor/) - for sysadmins with a sense of humor * [/r/PBSOD](https://www.reddit.com/r/PBSOD/) - public BSODs, crashes, and other errors * [/r/techsupportgore](https://www.reddit.com/r/techsupportgore/) - tech support horrors * [Mart Virkus](https://blog.toggl.com/2017/02/seven-circles-of-developer-hell/) - (2017) The Seven Circles of Developer Hell [Infographic] * [Christian Haschek](https://blog.haschek.at/2017/how-to-defend-your-website-with-zip-bombs.html) - (2017) How to defend your website with ZIP bombs * [Heaps legit links](https://verylegit.link/) - Like a URL shortener, but worse * [Aloria](https://securityreactions.tumblr.com/) - Infosec Reactions * [/r/ProgrammerReactions](https://www.reddit.com/r/programmerreactions/) - reactions related to Software Development * :star: [**Life of a Software Engineer**](http://lifeofasoftwareengineer.tumblr.com/) - another reactions tumblr related to Software Development * [Passive Aggressive Passwords](http://www.trypap.com/) - The Passive Aggressive Password Machine * [turnoff.us](http://turnoff.us/) - geek comic site about developers * [Classic Programmer Paintings](http://classicprogrammerpaintings.com/) - funny tumblr about software engineering as depicted by artists through history * [Access Main Computer File](http://accessmaincomputerfile.net/) - a Visual Study of computer GUI in cinema * [Rubber duck debugging](https://en.wikipedia.org/wiki/Rubber_duck_debugging) * [Fast Good Cheap](http://fastgood.cheap/) - pick any two ... * [presquejamais](http://www.cfsl.net/forums/viewtopic.php?f=45&t=25587) - [FR] :fr: [STRIPS] Les aventures d'une barre de téléchargement * [I Am Devloper](https://twitter.com/iamdevloper) - the funniest developer on twitter * [I Am Devloper](https://twitter.com/iamdevloper/statuses/420870754675478528) - Leave Me Alone Driven Development. * [I Am Devloper](https://twitter.com/iamdevloper/statuses/429307137601576961) - Things to try when fixing a bug: 1. Google 2. Stack Overflow 3. Documentation ... 8277. Disturb your co-worker who has headphones in * [Lauris Beinerts](https://www.youtube.com/watch?v=BKorP55Aqvg) - (2014) [Video] The Expert (Short Comedy Sketch) Funny business meeting illustrating how hard it is for an engineer to fit into the corporate world! * [Est-ce qu’on met un site en production aujourd’hui](https://www.estcequonmetenprodaujourdhui.info/) - ? * [Geek&Poke](https://twitter.com/MorganGeek/status/452803771693674497/photo/1) - [IMG] Stacktraces * [About Programming](https://twitter.com/abt_programming/statuses/452556061804072960) - Inverse bus factor: "how many developers have to be hit by a bus before a project starts to proceed smoothly?” * [Encyclopedia of things considered harmful](http://harmful.cat-v.org/software/java) - Java Sucks * [CommitStrip](http://www.commitstrip.com/en/2014/08/14/front-end-vs-back-end/) - (2014) [IMG] Front-End vs Back-End * [Ken Scambler](https://twitter.com/KenScambler/status/477322711039893504/photo/1) - [IMG] Legacy. "Looks easy; should be done in half an hour I reckon" * [Christina Cardoza](http://sdtimes.com/fifteen-catty-programmers/) - (2014) If programmers were cats… * [I Am Devloper](https://twitter.com/iamdevloper/statuses/494212969975529472) - "1. Gonna make an app 2. Need to make a todo list, however no app suits my needs 3. Making a todo app, this'll be great The Developer Cycle™" * [Super User](https://superuser.com/questions/792607/why-does-windows-think-that-my-wireless-keyboard-is-a-toaster) - Why does Windows think that my wireless keyboard is a toaster? * [DevHumor](http://devhumor.com/media/programmer-vs-lawyer) - (2014) [IMG] Programmer VS Lawyer * [Brian Wisti](https://twitter.com/brianwisti/status/503987766032494592) - You are in a legacy codebase ... what do you do ? * [If programmers have make a plane](https://www.youtube.com/watch?v=UZq4sZz56qM) - (2007) [Video] * [The Oatmeal](http://theoatmeal.com/comics/computers) - Why It's Better To Pretend You Don't Know Anything About Computers * [Les joies du code](http://lesjoiesducode.fr) - [FR] :fr: l'instant GIF des développeurs ! * [Leftover Salad](http://leftoversalad.tumblr.com/post/103503118002) - Difference between Java and JavaScript * [Feminist Hacker Barbie](http://computer-engineer-barbie.herokuapp.com/browse) - Comics about Barbie seen as a developer / sysadmin * [codecrap](http://codecrap.com/) - worst snippets of code / where developers go to laugh and cry * [fake o'reilly books on Google](https://www.google.co.il/search?tbm=isch&q=fake+o%27reilly+books&&cad=h) - [IMG] fake o'reilly books. * [Anonymous DevOps Confessions](https://totalcloud.io/DevOpsConfessions.html) - regrets and confessions of DevOps felows * [CommitStrip](http://www.commitstrip.com/en/2015/01/23/everyday-types-of-coders/) - (2015) [IMG] Everyday types of coders * :star: [**The Daily WTF**](http://thedailywtf.com/) - is your how-not-to guide for developing software. We recount tales of disastrous development, from project management gone spectacularly bad to inexplicable coding choices. * [angrykoala/awesome-esolangs](https://github.com/angrykoala/awesome-esolangs) - Programming languages designed for experimentation or as jokes rather than actual use. * [Corey Quinn](https://www.youtube.com/watch?v=zN1u5xZFFR8) - (2016) [Video] Terrible Ideas in Git | Don't try this at home :) * [git man page generator](https://git-man-page-generator.lokaltog.net/) - NOT real git documentation! Read carefully, and click the button to generate a new man page. * [Unencyclopedia](http://uncyclopedia.wikia.com/wiki/Category:Software_Development) - fake wikipedia articles about software development * [Stephan Zielinski](http://www.stokely.com/lighter.side/sysadm.field.guide.html) - Know Your UNIX System Administrator: A Field Guide * [Sick Call Excuse Generator](http://www.getodd.com/raz/sickday/sickday.html) - helpful to you in deciding the excuse for your forthcoming day off. * [WFH-excuses](https://us-central1-wfh-excuses-gh.cloudfunctions.net/wfh) - Working from Home excuses generator. **Bonus** : [GitHub repo](https://github.com/lnfnunes/WFH-excuses) * [shitcode](http://shitcode.net/latest) - a home for shittiest code from all over the world * [Govnokod.ru](http://govnokod.ru/) - [RU] :ru: laugh together about stupid code * [Mischa von Nachtigal](https://builttoadapt.io/how-to-explain-your-tech-job-to-your-family-905a7c367e2a) - (2017) How to Explain Your Tech Job to Your Family * [devRant](https://devrant.com/feed/top/all) - fun community for developers * [Programming Puzzles StackExchange](https://codegolf.stackexchange.com/questions/35569/tweetable-mathematical-art) - Tweetable Mathematical Art * [Phortail](https://phortail.org/blagues/informatique-0272.html) - [FR] :fr: Si les OS étaient des compagnies aériennes * [Matthieu Lesne aka coreight](http://coreight.com/content/os-vraie-vie-velo) - [FR] :fr: Si les OS étaient des vélos * [ChooseYourBoss](https://www.chooseyourboss.com/quel_dev_etes_vous) - [FR] :fr: Quel développeur êtes-vous ? (Test) * [Coding Confessional](https://www.codingconfessional.com/) - Anonymous Confessions from Programmers. * [Sebiwi](https://sebiwi.github.io/comics/) - drawings about tech and stuff * [Stoyan Stefanov](https://www.phpied.com/files/location-location/location-location.html) - location = location ... and a 534 other ways to reload the page with JavaScript * [Quotes For Software Engineers](http://www.comp.nus.edu.sg/~damithch/pages/SE-quotes.htm?type=funnyQuotes) - The ones that make you smile :-) * [Sarah Cooper](https://thecooperreview.com/how-to-look-like-a-badass-next-tech-conference) - How to Look Smart at Your Next Tech Conference * [Sarah Cooper](https://thecooperreview.com/how-to-be-seen-as-an-expert-in-artificial-intelligence/) - How to Be Seen as an Expert in Artificial Intelligence * [hightower/nocode](https://github.com/kelseyhightower/nocode) - No code is the best way to write secure and reliable applications. Write nothing; deploy nowhere. * [denysdovhan/wtfjs](https://github.com/denysdovhan/wtfjs) - A list of funny and tricky JavaScript examples * :star: [**Andrew Yurisich/unmaintainable-code**](https://github.com/Droogans/unmaintainable-code) - How To Write Unmaintainable Code. **Bonus** : [Original article by Roedy Green / Canadian Minds](https://www.doc.ic.ac.uk/~susan/475/unmain.html) * [Thomas Figg (tef)](https://programmingisterrible.com/post/65781074112/devils-dictionary-of-programming) - (2013) Devil’s Dictionary of Programming * [Stack Overflow](https://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered) - What is the best comment in source code you have ever encountered? [closed] * [Humans Not Invited](http://www.humansnotinvited.com/) - parodic site for captcha haters * [Liz England](http://www.lizengland.com/blog/2014/04/the-door-problem/) - (2014) The Door Problem | funny article about complexity of modern game development * [EugeneKay/git-jokes](https://github.com/EugeneKay/git-jokes/blob/lulz/Jokes.txt) - jokes about git * [The Codeless Code](http://thecodelesscode.com/case/random) - An illustrated collection of (sometimes violent) fables, concerning the Art and Philosophy of software development * [Steve Losh](http://stevelosh.com/blog/2013/04/git-koans/) - (2013) Git Koans. Inspired by [Vim Koans](https://sanctum.geek.nz/arabesque/vim-koans/) * [Tom Ryder](https://sanctum.geek.nz/arabesque/vim-koans/) - (2016) Vim Koans * [Tom Ryder](https://sanctum.geek.nz/etc/emperor-sh-and-the-haler.txt) - Emperor Sh and the Traveller "Don't do it in shell" * [Sam Whited](https://blog.samwhited.com/2015/04/the-dharma-of-vi/) - (2015) The Dharma of Vi * [Eric Steven Raymond](https://www.catb.org/~esr/writings/unix-koans/) - Rootless Root: The Unix Koans of Master Foo * [Danny Hillis](https://www.catb.org/jargon/html/koans.html) - (2003) Some AI Koans * [Days Since Last JavaScript Framework](https://dayssincelastjavascriptframework.com/) - with regular updates ! * [Bitbucket](https://bitbucket.org/spooning/) - Spooning makes pair programming look like child's play. Achieve the speed of pair programming with an added level of quiet, knowing intimacy. * [Faut-il HTTPS sur mon site ?](https://faut-il-https-sur-mon-site.fr/) - [FR] :fr: does your site require HTTPS ? * [Passweird](https://www.passweird.com/) - Passwords too Gross to Steal * [Method Namer](http://methodnamer.com/) - Can't think of a good method name? Try this * [Stacy Warden](https://www.pluralsight.com/blog/life/star-wars-day) - (2015) 10 things tech pros can learn from "Star Wars" * [Hmm-la-bd](http://hmm-la-bd.eu/260/) - [FR] :fr: les onglets | browser tabs > Note: ça m'arrive régulièrement d'investiguer chaque sujet en ouvrant pas mal de tabs... et en + de multi-task... mes collègues s'étonnent souvent du grand nombre d'onglets que je gère. * [spammimic](http://www.spammimic.com/) - encode your secret message into something innocent looking. * [Toggl Blog](https://blog.toggl.com/category/fun/) - Fun articles from Toggl, with good posters / comics * [Matej Jellus](https://juffalow.com/other/funny-stuff-from-programmers-realm) - (2016) Funny stuff from programmers realm * [1x Engineer](https://1x.engineer/) - a non-exhaustive list of what qualities make up a 1x engineer. | Not really humour, but anyway it needs to be here. * [Lenny Zeltser](https://zeltser.com/suck-at-security-cheat-sheet/) - (2015) How to Suck at Information Security – A Cheat Sheet * [mislavcimpersak/awesome-dev-fun](https://github.com/mislavcimpersak/awesome-dev-fun) - A curated list of fun libs/packages/languages that have no real purpose but to make a developer chuckle. * [Frank Force](http://frankforce.com/?p=5826) - (2019) I’m only making business card sized games now * [Coding is Love](https://dev.to/codingislove/sarcastic-web-services-and-websites-that-actually-exist--4e62) - (2018) Sarcastic web services and websites that actually exist 😂 * [The Best Motherfucking Website](https://thebestmotherfuckingwebsite.co/) - Your motherfucking websites got nothing compared to this beauty. **And some others :** [This is still a motherfucking website.](http://bettermotherfuckingwebsite.com/), [This is the best motherfucking website.](https://bestmotherfucking.website/), [This is the final motherfucking website.](https://perfectmotherfuckingwebsite.com/), [This is the best motherfucking website.](https://thebestmotherfucking.website/) * [@memenetes](https://twitter.com/memenetes) - Twitter account publishing kubernetes dank memes / humor if that's something * [What the Commit](http://whatthecommit.com/) - A random commit message generator. | some inspiration for your next git commit message * [Michael Küsters](https://docs.google.com/document/u/1/d/1-2aZP3BlctQrWP8bNpSxkVBKphypALPINUGGTn26els/mobilebasic) - (2019) The Scream Guide - A comprehensive Guide to Scream: When Scrum would require too much change! (Parodic guide to Scrum) * [hakluke/how-to-exit-vim](https://github.com/hakluke/how-to-exit-vim) - Gorgeous ways to exit Vim :-D (it goes beyond what you expect) * [RePokémon](https://cheeaun.github.io/repokemon/) - Showcase of GitHub repos with Pokémon names * [How old is it?](https://howoldisit.glitch.me/) - How long has _react, vue, ember, etc._ existed? | This is a handy tool for tech recruiters who ask for fifteen years experience in technologies that have only existed for three months. ## Prolog > News * [PrologHub - Blog](https://prologhub.com/) - is dedicated to bringing together the Prolog community to share ideas and knowledge. > Learn * [Sylvain Soliman's Den](https://lifeware.inria.fr/~soliman/post/prolog_guidelines/) - Prolog programming guidelines * [Sylvain Soliman's Den](https://lifeware.inria.fr/~soliman/post/prolog_executables/) - Creating Prolog executables * [SWISH](https://swish.swi-prolog.org/) - free online SWI-Prolog web IDE. **Bonus** : git repo [SWI-Prolog/swish](https://github.com/SWI-Prolog/swish) * [Markus Triska](https://www.metalevel.at/prolog) - [Book] The Power of Prolog. **Bonus** : git repo [triska/the-power-of-prolog](https://github.com/triska/the-power-of-prolog) * [Markus Triska' Home Page](https://www.metalevel.at/) - some interesting prolog resources * [Alex Ott](http://alexott.net/en/fp/books/#sec14) - books review on Prolog * [StackOverflow](https://stackoverflow.com/questions/tagged/prolog) - Prolog tagged questions on StackOverflow * [Prolog Site](https://sites.google.com/site/prologsite/prolog-problems) - Prolog Problems : a remake of the P-99: Ninety-Nine Prolog Problems * [Learn Prolog Now!](https://devrant.com/feed/) - a free online introductory course to programming in Prolog * [MorganGeek](https://gist.github.com/MorganGeek/660e55cfbb8f8e82e77d06618802ea79) - (gist) Install SWI-Prolog and Logtalk on CentOS. **Bonus** : Dockerfile provided. * [Mr. Bad, Crackmonkey](http://www.pigdog.org/auto/mr_bads_list/shortcolumn/1914.html) - (2001) Things to Say When You're Losing a Technical Argument * [/r/prolog/](https://www.reddit.com/r/prolog/) - Prolog on Reddit * [ichiban/prolog](https://github.com/ichiban/prolog) - The only reasonable scripting engine for Go. * [SWI-Prolog -- member/2](https://www.swi-prolog.org/pldoc/man?predicate=member/2) * [The Art of Prolog, Second Edition | Lobsters](https://lobste.rs/s/tbqtbj/art_prolog_second_edition) ### Graph * [SWISH -- SWI-Prolog for SHaring](https://swish.swi-prolog.org/example/render_graphviz.swinb) * [shortest path prolog efficient - Google Search](https://www.google.com/search?q=shortest+path+prolog+efficient&oq=shortest+path+prolog+efficient&aqs=chrome..69i57.7476j0j7&sourceid=chrome&ie=UTF-8) * [How to find the unique shortest path for a weighted directed graph with SWI Prolog? - Stack Overflow](https://stackoverflow.com/questions/47778959/how-to-find-the-unique-shortest-path-for-a-weighted-directed-graph-with-swi-prol?noredirect=1&lq=1) ### Logtalk * [Logtalk](https://logtalk.org/) - is a declarative object-oriented logic programming language that extends and leverages the Prolog language with modern code encapsulation and code reuse mechanisms while also providing improved predicate semantics. * [Tools - Logtalk](https://logtalk.org/tools.html) * [Developer Tools — The Logtalk Handbook v3.60.0 documentation](https://logtalk.org/manuals/devtools/index.html) * [Rationale - Logtalk](https://logtalk.org/rationale.html) * start with : [Learn Logtalk in Y Minutes](https://learnxinyminutes.com/docs/logtalk/) * gitter : [LogtalkDotOrg/logtalk3 - Gitter](https://gitter.im/LogtalkDotOrg/logtalk3) #### Plugin * [Logtalk - IntelliJ IDEs Plugin | Marketplace](https://plugins.jetbrains.com/plugin/9425-logtalk) ### Tools * [SWI-Prolog/swish](https://github.com/SWI-Prolog/swish) - GitHub : SWI-Prolog for SHaring: a SWI-Prolog web IDE ## Python * [Nick Parlante](http://codingbat.com/python) - CodingBat : practice your python skills * [Python Software Foundation](https://www.python.org/dev/peps/pep-0008/) - PEP 8 : Style Guide for Python * [Valentin Bryukhanov](http://pep8online.com/) - PEP 8 code checker * [OpenStack/python-jenkins](https://github.com/openstack/python-jenkins) - python-jenkins : a python wrapper for the Jenkins REST API * [OpenStack/python-jenkins](https://media.readthedocs.org/pdf/python-jenkins/latest/python-jenkins.pdf) - [PDF] python-jenkins documentation * [pycontribs/jenkinsapi](https://github.com/pycontribs/jenkinsapi) - A Python library to automate most common Jenkins operations * [pypi/feedparser](https://pypi.python.org/pypi/feedparser) - Parse Atom and RSS feeds in Python. * [Google](https://google.github.io/styleguide/pyguide.html) - Google Python Style Guide. **Deprecated** : use [pyguide.md](https://github.com/google/styleguide/blob/gh-pages/pyguide.md) in place * [python-cx_Oracle](https://oracle.github.io/python-cx_Oracle/) - cx_Oracle - Python Interface for Oracle Database * [353Solutions](https://www.353.solutions/py2go/index.html) - Python to Go CheatSheet * [chrisallenlane/cheat](https://github.com/chrisallenlane/cheat) - cheat allows you to create and view interactive cheatsheets on the command-line. You can obviously improve the existing ones with your own content. It's also inspiring for shell aliases creation * [Rob Harrigan](https://unsupervisedpandas.com/python/supervised-classification-preprocessing/) - (2017) Supervised Classification: An Introduction and Preprocessing * [Itamar Turner-Trauring](https://codewithoutrules.com/2016/10/30/python-for-java-developers/) - (2016) Maintainable Python applications: a guide for skeptical Java developers * [Nick Humrich](https://hackernoon.com/yes-python-is-slow-and-i-dont-care-13763980b5a1) - (2017) Yes, Python is Slow, and I Don’t Care | A rant on sacrificing performance for productivity. * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [Jan Ivar Beddari](https://sysadvent.blogspot.de/2016/12/day-25-building-team-cli-with-python.html) - (2016) Building a Team CLI with Python: One Alternative to ChatOps * [JR Heard](http://blog.jrheard.com/truthiness-and-short-circuit-evaluation-in-python) - (2018) Truthiness and Short-Circuit Evaluation in Python * [Michal Charemza](https://charemza.name/blog/posts/programming/smells/say-no-to-more-optional-arguments/) - (2016) Say no to more optional arguments * [jira-python Docs](https://jira.readthedocs.io/en/master/examples.html) - Jira-python lib usage examples * [sloria](https://gist.github.com/sloria/7001839) - The Best of the Best Practices (BOBP) Guide for Python * [The Hitchhiker’s Guide to Python!](https://docs.python-guide.org/) - This handcrafted guide exists to provide both novice and expert Python developers a best practice handbook to the installation, configuration, and usage of Python on a daily basis. * [PyCQA/bandit](https://github.com/PyCQA/bandit) - Bandit is a tool designed to find common security issues in Python code. * [Raivat Shah](https://towardsdatascience.com/understanding-python-virtual-environments-7ccf690320d7) - (2019) Understanding Python Virtual Environments * [Boto Docs](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html) - Boto is the Amazon Web Services (AWS) SDK for Python. It enables Python developers to create, configure, and manage AWS services, such as EC2 and S3. Boto provides an easy to use, object-oriented API, as well as low-level access to AWS services. * [Murtaza Gulamali](https://thoughtbot.com/blog/how-to-manage-your-python-projects-with-pipenv) - (2017) How to manage your Python projects with Pipenv * [santinic/pampy](https://github.com/santinic/pampy) - Pampy: The Pattern Matching for Python you always dreamed of | Pampy is pretty small (150 lines), reasonably fast, and often makes your code more readable and hence easier to reason about. There is also a JavaScript version, called Pampy.js. * [MorganGeek](https://github.com/MorganGeek/bookmarks/blob/master/cheat/python.md) - My cheatsheet for Python * [Horia Coman](https://dev.to/horia141/jupiter-dev-log-3-lint-all-the-things-51lh) - (2020) Jupiter Dev Log 3 - Lint All The Things * [Alex Mitelman](https://mitelman.engineering/blog/python-best-practice/automating-python-best-practices-for-a-new-project/) - (2021) Python Best Practices for a New Project in 2021 * [pipx](https://pypa.github.io/pipx/) - Install and Run Python Applications in Isolated Environments * [Brandon Rhodes](https://python-patterns.guide/) - (2018) Python Design Patterns | evolving guide to design patterns in the Python programming language. ## Reverse engineering * [Bob Pan/dex2jar](https://github.com/pxb1988/dex2jar) - dex2jar : Tools to work with android .dex and java .class files and do some conversion * [APK Downloader](https://apps.evozi.com/apk-downloader/) - download any APK directly in your browser * [Decompilers online](http://www.javadecompilers.com/apk) - Decompile Apk and Dex Android files to Java * [raidzero](https://gist.github.com/raidzero/9378988) - rdump.py : Print all strings from android resources.arsc file Raw * [OVERSIMPLE](http://oversimple.fr/decompiler-une-application-android-complement/) - [FR] :fr: Désassembler une application Android * [The Android Arsenal](https://android-arsenal.com/tag/175) - android decompilers * [Will Verduzco](https://www.xda-developers.com/decompile-edit-and-recompile-in-one-tool-with-apk-studio/) - Decompile, Edit, and Recompile in One Tool with APK Studio * [JD Project](http://jd.benow.ca/) - yet another fast java decompiler * [Caleb Fenton/apkfile](https://github.com/CalebFenton/apkfile) - ApkFile : Android app analysis and feature extraction library * [Caleb Fenton/simplify](https://github.com/CalebFenton/simplify) - Simplify : Generic Android Deobfuscator * [ODA](https://onlinedisassembler.com/odaweb/) - The online disassembler * [kwart/jd-cmd](https://github.com/kwart/jd-cmd) - Command line Java Decompiler ## Ruby * [LZone](http://lzone.de/cheat-sheet/rvm) - RVM Cheat Sheet * [Chen Harel](https://dzone.com/articles/github%E2%80%99s-10000-most-popular) - GitHub’s 10,000 Most Popular Java / Ruby / JavaScript Projects: Here are the Top Libraries They Use * [Launch School](https://launchschool.com/books/ruby/read/introduction) - [Book] Open Book Shelf : Introduction to Programming with Ruby * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. ## Rust * [New Rustacean](https://www.newrustacean.com/) - a podcast about learning Rust * [mre/Idiomatic Rust](https://github.com/mre/idiomatic-rust) - Guidelines for writing elegant Rust programs * [sharkdp/fd](https://github.com/sharkdp/fd) - A simple, fast and user-friendly alternative to find. * [Andrew Gallant](http://blog.burntsushi.net/ripgrep/) - ripgrep is faster than {grep, ag, git grep, ucg, pt, sift} * [BurntSushi/ripgrep](https://github.com/BurntSushi/ripgrep) - ripgrep combines the usability of The Silver Searcher with the raw speed of grep. * [lk-geimfari/awesomo](https://github.com/lk-geimfari/awesomo) - list of interesting open source projects written in С, C++, Clojure, Lisp, Elixir, Erlang, Elm, Golang, Haskell, JavaScript, Lua, OCaml, Python, R, Ruby, Rust, Scala etc. * [nushell/nushell](https://github.com/nushell/nushell) - A modern shell written in Rust * [Loris Cro](https://kristoff.it/blog/why-go-and-not-rust/) - (2019) Why Go and not Rust? | What's the role of Go in a universe where Rust exists? * [Lib.rs](https://lib.rs/command-line-utilities) - Command line utilities | List of Rust applications/libraries/crates * [vim-racer](https://github.com/racer-rust/vim-racer) - Vim plugin with support for Racer (Rust Code Completion utility) * [Seena Burns](https://seenaburns.com/vim-setup-for-rust/) - (2017) Vim Setup For Rust * [Amos Wenger](https://fasterthanli.me/articles/a-rust-match-made-in-hell) - (2022) A Rust match made in hell | an extended demonstration of how well Rust can work for you * [Shane Miller & Carl Lerche](https://aws.amazon.com/fr/blogs/opensource/sustainability-with-rust/) - (2022) Sustainability with Rust * [rust-analyzer](https://rust-analyzer.github.io/) - Bringing a great IDE experience to the Rust programming language. Rust-Analyzer is an implementation of Language Server Protocol for the Rust programming language. It provides features like completion and goto definition for many code editors, including VS Code, Emacs and [Vim](https://rust-analyzer.github.io/manual.html#vimneovim) * [John Arundel](https://bitfieldconsulting.com/golang/rust-vs-go) - (2020) Rust vs Go * [Dave Rolsky](https://blog.urth.org/2022/02/14/frontend-rust-without-node/) - (2022) Frontend Rust Without Node * [Eric S. Raymond aka ESR](https://developers.slashdot.org/story/17/11/27/039226/why-esr-hates-c-respects-java-and-thinks-go-but-not-rust-will-replace-c) - (2017) Why ESR Hates C++, Respects Java, and Thinks Go (But Not Rust) Will Replace C. **See also** : [The big break in computer languages](http://esr.ibiblio.org/?p=7724) * [Command Line Applications in Rust](https://rust-cli.github.io/book/index.html) - Documentation on how to use the Rust Programming Language to develop commandline applications. **See also** : [Source code](https://github.com/rust-cli/book)