├── LICENSE ├── README.md └── images ├── architecture.jpg ├── database.png ├── design_patterns.jpg ├── docker.png ├── frameworks.jpg ├── kiss.jpg ├── language.png ├── oop.jpg ├── path.jpg ├── solid.jpg └── webserver.jpg /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 2-Clause License 2 | 3 | Copyright (c) 2020, Mohammad Rabetian 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 20 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 23 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 24 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Backend Deveoper Learning Path 3 | ![](images/path.jpg) 4 | >image src: https://codeburst.io/the-2018-web-developer-roadmap-826b1b806e8d 5 | 6 | ## Languages 7 | 8 | 9 | 10 | - [ ] Python: 11 | - [ ] [Python official website](https://python.org/) 12 | - [ ] [Python official Tutorial](https://docs.python.org/3/tutorial/index.html) 13 | - [ ] [Real Python Tutorials](https://realpython.com/) 14 | 15 | - [ ] Golang: 16 | - [ ] [Golang offical website](https://golang.org/) 17 | - [ ] [Golang official Docs](https://golang.org/doc/) 18 | - [ ] [A Tour of Go](https://tour.golang.org/list) 19 | - [ ] [Building Web Apps With Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/) 20 | - [ ] [Build Web Application With Golang](https://astaxie.gitbooks.io/build-web-application-with-golang/content/en/index.html) 21 | 22 | ## Frameworks 23 | 24 | 25 | ### Sync 26 | - [ ] Django: 27 | - [ ] [Django project documentation](https://docs.djangoproject.com/en/3.0/) 28 | - [ ] [Two Scoops Of Django](https://www.amazon.com/Two-Scoops-Django-1-11-Practices/dp/0692915729) 29 | - [ ] [Django Rest Framework](https://www.django-rest-framework.org/) 30 | - [ ] Flask: 31 | - [ ] [Flask Api Zero To Yoda](https://dev.to/paurakhsharma/flask-rest-api-part-0-setup-basic-crud-api-4650) 32 | - [ ] [Flask Web Development Book](https://www.amazon.co.uk/dp/1491991739?psc=1&slotNum=0&th=1&linkCode=g12&imprToken=n2-thRHooSww6A-cepTIAQ&creativeASIN=1491991739&tag=reactdomuk-21) 33 | - [ ] [Top Online Tutorials to Learn Flask Python](https://medium.com/quick-code/top-online-tutorials-to-learn-flask-python-c2723df5326c) 34 | 35 | #### additional django stuff: 36 | - [ ] [Classy Class-Based Views](http://ccbv.co.uk/) 37 | - [ ] [Classy Django REST Framework](http://www.cdrf.co/) 38 | 39 | ## Storage 40 | 41 | 42 | ### relational databases 43 | - [ ] Postgres: 44 | - [ ] [Installing pgadmin on ubuntu](https://computingforgeeks.com/how-to-install-pgadmin-4-on-ubuntu/) 45 | 46 | - [ ] Additional Reading: 47 | - [ ] [Database Design Fundamentals](https://www.vertabelo.com/blog/design_fundamentals/) 48 | - [ ] [Design Patterns](https://www.vertabelo.com/blog/design_patterns/) 49 | - [ ] [Database Design In Practical Examples](https://www.vertabelo.com/blog/example_models/) 50 | - [ ] [SQL](https://www.vertabelo.com/blog/sql/) 51 | - [ ] [Database Internals](https://www.vertabelo.com/blog/database_internals/) 52 | - [ ] [Random Stuff](https://www.vertabelo.com/blog/others/) 53 | 54 | ## Web Server 55 | 56 | 57 | - [ ] Nginx: 58 | - [ ] [Nginx official website](https://www.nginx.com/) 59 | - [ ] Additional Resources: 60 | - [ ] [Gunicorn](https://gunicorn.org/) 61 | 62 | ## Authentication 63 | - [ ] [Understanding Authentication, Authorization, and Encryption](https://www.bu.edu/tech/about/security-resources/bestpractice/auth/) 64 | - [ ] OAuth: 65 | - [ ] [OAuth 2.0 and OpenID Connect (in plain English)](https://www.youtube.com/watch?v=996OiexHze0) 66 | - [ ] [An Illustrated Guide to OAuth and OpenID Connect](https://www.youtube.com/watch?v=t18YB3xDfXI) -> To Recap 67 | - [ ] [Django social authentication](https://www.digitalocean.com/community/tutorials/django-authentication-with-facebook-instagram-and-linkedin) 68 | - [ ] OAuth Tools: 69 | - [OAuth 2.0 Debugger](https://oauthdebugger.com/) 70 | - [OpenID Connect Debugger](https://oidcdebugger.com/) 71 | 72 | ## Docker 73 | 74 | 75 | - [ ] [Install Docker Engine - official website](https://docs.docker.com/install/) 76 | - [ ] [Install Docker-Compose - official website](https://docs.docker.com/compose/) 77 | - [ ] [A beginner's guide to Docker](https://www.freecodecamp.org/news/a-beginners-guide-to-docker-how-to-create-your-first-docker-application-cc03de9b639f/) 78 | - [ ] [A beginner's guide to Docker-part 2](https://herewecode.io/blog/a-beginners-guide-to-docker-how-to-create-a-client-server-side-with-docker-compose/) 79 | - [ ] [How to start a Django Project with Docker](https://coderbook.com/@marcus/how-to-start-a-django-project-with-docker/) 80 | - [ ] [Dockerizing Django with Postgres, Gunicorn, and Nginx](https://testdriven.io/blog/dockerizing-django-with-postgres-gunicorn-and-nginx/) 81 | - [ ] Additional Reading: 82 | - [ ] [Docker for Python Developers](https://mherman.org/presentations/dockercon-2018/#1) 83 | - [ ] [Using Alpine can make Python Docker builds 50× slower](https://pythonspeed.com/articles/alpine-docker-python/) 84 | - [ ] [9 Common Dockerfile Mistakes](https://runnable.com/blog/9-common-dockerfile-mistakes) 85 | 86 | ## Search Engines 87 | - [ ] Elastic Search: 88 | - [ ] [Get to know elasticsearch](https://www.botreetechnologies.com/blog/elasticsearch-with-django-part-4) 4 parts 89 | - [ ] [Elasticsearch and Django!](https://sunscrapers.com/blog/how-to-use-elasticsearch-with-django/) 90 | ## OOP 91 | 92 | 93 | - [ ] [How to explain object-oriented programming concepts to a 6-year-old](https://www.freecodecamp.org/news/object-oriented-programming-concepts-21bb035f7260/) 94 | 95 | ### SOLID 96 | 97 | 98 | - [ ] [SOLID OOP Principles](https://www.youtube.com/playlist?list=PL4CE9F710017EA77A) 99 | 100 | ### KISS, DRY, YAGNI 101 | 102 | 103 | These are software design principles, you'll get the meaning just by knowing the name meanings! 104 | 105 | - KISS : Keep it stupid, simple 106 | - DRY : Don't repeat yourself 107 | - YAGNI: You ain't gonna need it! 108 | - TDA : Tell don’t ask 109 | - SoC : Separation of Concerns 110 | 111 | if you have time you can read a full article on this 112 | - [ ] [How to become a better programmer ?](https://medium.com/@derodu/design-patterns-kiss-dry-tda-yagni-soc-828c112b89ee) 113 | 114 | ### Design Patterns 115 | ![](images/design_patterns.jpg) 116 | 117 | A good resource for learning design patterns and refactoring: 118 | - [ ] [Refactoring Guru](https://refactoring.guru/) 119 | - [ ] [DESIGN PATTERNS in different programming languages](https://refactoring.guru/design-patterns/examples) 120 | 121 | and while you're here, check out these [AntiPatterns!](https://sourcemaking.com/antipatterns) 122 | 123 | ### Architectural Styles & Patterns 124 | 125 | 126 | - [ ] [Types of Architectural Styles](https://www.youtube.com/watch?v=JLbo9Lvvy5M&list=PLmTD7qP4f9suAxW6qTAAILI4JjoY5V6ZN&index=1) 127 | - [ ] [Architectural styles and patterns](https://en.wikipedia.org/wiki/Software_architecture#Architectural_styles_and_patterns) 128 | - [ ] [What is SOA? - IBM explains](https://www.ibm.com/cloud/learn/soa) 129 | - [ ] [What is Event-Driven Architecture? - RedHat explains](https://www.redhat.com/en/topics/integration/what-is-event-driven-architecture) 130 | - [ ] [What are MicroServices? - Martin Fowler explains!](https://www.youtube.com/watch?v=wgdBVIX9ifA&list=LLW5HZo3PqiNz5m7z_WxJADA&index=8&t=0s) 131 | - [ ] [API Styles: SOAP, REST, RPC, GraphQL and more](https://api-university.com/blog/styles-for-apis-soap-rest-and-rpc/) 132 | 133 | ## Additional 134 | - [ ] WebSocket: 135 | - [ ] [Everything you ever wanted to know about WebSockets, literally!](https://hackernoon.com/everything-you-ever-wanted-to-know-about-websockets-literally-a05f36432999) 136 | - [ ] Debugging: 137 | - [ ] [Check out sentry](https://sentry.io) 138 | -------------------------------------------------------------------------------- /images/architecture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/architecture.jpg -------------------------------------------------------------------------------- /images/database.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/database.png -------------------------------------------------------------------------------- /images/design_patterns.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/design_patterns.jpg -------------------------------------------------------------------------------- /images/docker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/docker.png -------------------------------------------------------------------------------- /images/frameworks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/frameworks.jpg -------------------------------------------------------------------------------- /images/kiss.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/kiss.jpg -------------------------------------------------------------------------------- /images/language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/language.png -------------------------------------------------------------------------------- /images/oop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/oop.jpg -------------------------------------------------------------------------------- /images/path.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/path.jpg -------------------------------------------------------------------------------- /images/solid.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/solid.jpg -------------------------------------------------------------------------------- /images/webserver.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liamrabetian/backend-developer-university/a0173f65e56c5e2b1f09024e16581b027b944db0/images/webserver.jpg --------------------------------------------------------------------------------