A list of resources we at flyeralarm use to get new developers up and running
# Advanced Curriculum For The Software Craftsman

This document is intended as a guidance for new developers joining our teams at [FLYERALARM](https://flyeralarm.com).
Because we think it might help others as well we open-sourced it. If you know something that's missing feel free to send us a Pull-Request.

## Basics

* [How The Web Works](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works)
* [HTTP on Wikipedia](https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol)
* [What Happens When](https://github.com/alex/what-happens-when/blob/master/README.rst)
* [What to learn next](https://roadmap.sh/)
* [An Introduction To HTTP Basics](https://personal.ntu.edu.sg/ehchua/programming/webprogramming/HTTP_Basics.html)
* [Choosing an HTTP Status Code — Stop Making It Hard](https://www.codetinkerer.com/2015/12/04/choosing-an-http-status-code.html)
* [TCP/IP Protocol Fundamentals Explained with a Diagram](http://www.thegeekstuff.com/2011/11/tcp-ip-fundamentals)
* [Google Developer Training For The Web](https://developers.google.com/training/web/)
* [Visualising data structures and algorithms through animation](https://visualgo.net/)
* [Algorithms, Data Structures, and Design Patterns for Self-Taught Developers](https://web.archive.org/web/20210625134101/https://antjanus.com/blog/web-development-tutorials/learn-the-unlearned-algorithms-data-structures-and-design-patterns/)
* [HTTP: The Protocol Every Web Developer Must Know](https://code.tutsplus.com/tutorials/http-the-protocol-every-web-developer-must-know-part-1--net-31177)
* [An Introduction to Networking Terminology, Interfaces, and Protocols](https://www.digitalocean.com/community/tutorials/an-introduction-to-networking-terminology-interfaces-and-protocols)
* [How Browser Caching Works](https://thesocietea.org/2016/05/how-browser-caching-works/)
* [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets](http://www.joelonsoftware.com/articles/Unicode.html)
* [What Every Programmer Should Know About Memory](https://www.akkadia.org/drepper/cpumemory.pdf)
* [What Every Developer Should Know About Time](https://unix4lyfe.org/time/?v=1)
* [A story about an angry carrot and a floating point fairy](http://blog.ruslans.com/2014/12/a-story-about-angry-carrot-and-floating.html)

## Design And Architecture Of Software

* [Clean Code](https://www.amazon.com/gp/product/0132350882/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=0132350882&linkCode=as2&tag=sdrl-20)
* [DesignPatternsPHP](https://github.com/DesignPatternsPHP/DesignPatternsPHP)
* [What's a design pattern?](https://refactoring.guru/design-patterns/what-is-pattern)
* [All the cool kids...](https://www.youtube.com/watch?v=EDXgNA_pXX0)
* [18 must-watch PHP architecture talks](https://www.reddit.com/r/PHP/comments/3kklt5/18_mustwatch_php_architecture_talks_13hrs/)
* [Object Design Style Guide](https://www.manning.com/books/object-design-style-guide)
* [Practical Object-Oriented Design in Ruby](https://www.amazon.de/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330/ref=sr_1_1?s=books-intl-de&ie=UTF8&qid=1476881380&sr=1-1&keywords=practical+object-oriented+design+in+ruby)
* [Patterns of Enterprise Application Architecture](https://www.amazon.de/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420/ref=sr_1_1?ie=UTF8&qid=1476887236&sr=8-1&keywords=patterns+of+enterprise+application+architecture)
* [Domain Driven Design](https://www.amazon.de/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=sr_1_1?ie=UTF8&qid=1476887211&sr=8-1&keywords=domain+driven+design)
* [Introduction to CQRS](http://www.codeproject.com/Articles/555855/Introduction-to-CQRS)
* [CQRS and Event Sourcing](https://www.youtube.com/watch?v=JHGkaShoyNs)
* [Your Code as a Crime Scene](https://pragprog.com/titles/atcrime/your-code-as-a-crime-scene/)
* [Awesome API](https://github.com/Kikobeats/awesome-api)
* [An introduction to APIs](https://zapier.com/learn/apis/)
* [Architectural Katas](http://nealford.com/katas/)

## PHP

* [PHP The Right Way](http://www.phptherightway.com/)
* [PHP The Wrong Way](http://www.phpthewrongway.com/)
* [A response to PHP The Wrong Way](https://medium.com/@jon.lemaitre/a-response-to-php-the-wrong-way-fe7bb253e295)
* [PHP Framework Interoperability Group](http://www.php-fig.org/)
* [PSR - PHP Standard Recommendation](https://en.wikipedia.org/wiki/PHP_Standard_Recommendation)
* [PHP Library Discovery](https://www.youtube.com/watch?v=3kD9t0GVGGY&feature=youtu.be)
* [PHP Logging Basics](https://www.loggly.com/ultimate-guide/php-logging-basics/)
* [Awesome PHP (A curated list of amazingly awesome PHP libraries, resources and shiny things)](https://github.com/ziadoz/awesome-php)
* [Reference - What does this error mean in PHP?](https://stackoverflow.com/questions/12769982/reference-what-does-this-error-mean-in-php)

## Kotlin

* [Resources To Learn Kotlin The Right Way](https://superkotlin.com/resources-learn-kotlin/)
* [Programming Kotlin by Venkat Subramaniam](https://pragprog.com/titles/vskotlin/programming-kotlin/)
* [Awesome Kotlin](https://github.com/KotlinBy/awesome-kotlin)
* [Mastering Kotlin standard functions: run, with, let, also and apply](https://medium.com/@elye.project/mastering-kotlin-standard-functions-run-with-let-also-and-apply-9cd334b0ef84)
* [KotlinConf 2018 - Kotlin Coroutines in Practice by Roman Elizarov](https://www.youtube.com/watch?v=a3agLJQ6vt8)
* [Ktor: Web backend framework for Kotlin. Easy to use, fun and asynchronous.](https://ktor.io)

## JavaScript & Frontend

* [JS for Cats](http://jsforcats.com/)
* [JavaScript for impatient programmers](https://exploringjs.com/impatient-js)
* [You don't know JS](https://github.com/getify/You-Dont-Know-JS)
* [Eloquent Javascript](http://eloquentjavascript.net/)
* [Essential Javascript Patterns](https://addyosmani.com/resources/essentialjsdesignpatterns/book/)
* [MDN - Mozilla Developer Network](https://developer.mozilla.org/de/)
* [CSS-Tricks](https://css-tricks.com/)
* [Netflix UI Engineers Youtube Channel](https://www.youtube.com/channel/UCGGRRqAjPm6sL3-WGBDnKJA)
* [Don't make me think - Web Usability](https://www.amazon.de/Dont-make-think-Usability-intuitive/dp/3826697057/ref=sr_1_1?ie=UTF8&qid=1476888649&sr=8-1&keywords=dont+make+me+think)

## Tools

* [git](https://git-scm.com/)
* [Atlassian git Tutorials](https://www.atlassian.com/git/tutorials/)
* [Interactive git Cheatsheet](http://ndpsoftware.com/git-cheatsheet.html)
* [Composer - Dependency Manager For PHP](https://getcomposer.org/)
* [Packagist - The PHP Package Repository](https://packagist.org/)
* [Gradle Guide](https://gradle.org/guides/)
* [PHPStan](https://github.com/phpstan/phpstan)
* [PHPUnit](https://phpunit.de/)
* [Introduction to PHP Unit](https://jtreminio.com/2013/03/unit-testing-tutorial-introduction-to-phpunit/)
* [Twelve Benefits of Writing Unit Tests First](http://sd.jtimothyking.com/2006/07/11/twelve-benefits-of-writing-unit-tests-first/)
* [A Beginner's Guide to npm](https://www.sitepoint.com/beginners-guide-node-package-manager/)

## Environment

* [Basic UNIX commands](http://mally.stanford.edu/~sr/computing/basic-unix.html)
* [Explain Shell - Let it explain you what's going on](http://explainshell.com/)
* [Effective DevOps](http://shop.oreilly.com/product/0636920039846.do)
* [Docker Docs](https://docs.docker.com/)
* [Docker Swarms Introduction](https://docs.docker.com/get-started/part4/)
* [What is Kubernetes](https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/)
* [Request routing with Traefik](https://doc.traefik.io/traefik/getting-started/concepts/)
* [How to write Ansible Playbooks](https://www.digitalocean.com/community/tutorials/configuration-management-101-writing-ansible-playbooks)
* [Ansible Docs](https://docs.ansible.com/)
* [Artifactory User Guide](https://www.jfrog.com/confluence/pages/viewpage.action?pageId=46107472)

## Persistence

* [SQL Performance Explained - Short and useful book about SQL performance for developers](https://www.amazon.de/SQL-Performance-Explained-Entwickler-SQL-Performance/dp/3950307818)
* [Use the index, Luke - a guide to database performance for developers](http://use-the-index-luke.com/)
* [The Little Redis Book](https://github.com/karlseguin/the-little-redis-book)

## Monitoring & Alerting

* [How to monitor system metrics with the TICK stack - Can also be used for gathering business metrics](https://www.digitalocean.com/community/tutorials/how-to-monitor-system-metrics-with-the-tick-stack-on-centos-7)
* [How to setup & use Icinga2](https://www.digitalocean.com/community/tutorials/how-to-monitor-hosts-and-services-with-icinga-on-ubuntu-16-04)
* [Using InfluxDB with Grafana](http://docs.grafana.org/features/datasources/influxdb/)
* [Grafana Docs](http://docs.grafana.org/)
* [InfluxDB Docs](http://docs.influxdata.com/influxdb/v1.6/)

## Apache Kafka

* [Kafka as a Platform: the Ecosystem from the Ground Up](https://www.youtube.com/watch?v=WpfJ86_DYfY)
* [Apache Kafka in a Nutshell](https://medium.com/swlh/apache-kafka-in-a-nutshell-5782b01d9ffb)
* [Why Avro for Kafka Data?](https://www.confluent.de/blog/avro-kafka-data/)
* [Deal with Failure in an Event-Driven System](https://www.confluent.io/blog/using-kafka-merge-purge-to-simplify-kafka-failures/)

## Processes & Culture

* [The Agile Manifesto](http://agilemanifesto.org/)
* [Agile Retrospectives](https://pragprog.com/titles/dlret/agile-retrospectives/)
* [The Phoenix Project](https://www.amazon.com/Phoenix-Project-DevOps-Helping-Business/dp/0988262592)
* [Team Geek - A Software Developer's Guide to Working Well with Others](https://www.amazon.com/Team-Geek-Software-Developers-Working/dp/1449302440/)

## Information Security

* [OWASP - Open Web Application Security Project](https://www.owasp.org/index.php/Main_Page)
* [A Gentle Introduction to Application Security](https://paragonie.com/blog/2015/08/gentle-introduction-application-security)
* [Juice Shop - A vulnerable web app to play around](https://github.com/bkimminich/juice-shop)

## Best Practices

* [The Best Code is No Code At All](https://blog.codinghorror.com/the-best-code-is-no-code-at-all/)
* [The Pragmatic Programmer](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)
* [The Clean Coder](https://www.oreilly.com/library/view/the-clean-coder/9780132542913/)
* [Simple Made Easy](https://www.youtube.com/watch?v=rI8tNMsozo0)
* [A Philosophy of Software Design](https://www.youtube.com/watch?v=bmSAYlu0NcY)
* [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/exec/obidos/ASIN/0201485672/codihorr-20)
* [The full stackoverflow developer](https://www.christianheilmann.com/2015/07/17/the-full-stackoverflow-developer/)
* [Measure anything, measure everything](https://codeascraft.com/2011/02/15/measure-anything-measure-everything/)
* Go to a local user group
* Read open-source code on [GitHub](https://www.github.com)
* Never stop building stuff



On a side note: [We are searching for talented people to join our various teams of developers in multiple locations](https://karriere.flyeralarm.com/jobs)