├── .gitignore ├── README.md ├── golang └── essentials.md └── topics ├── algorithms.md ├── deployment_platforms.md ├── essentials.md ├── frameworks ├── django.md ├── fastapi.md └── flask.md ├── general.md └── testing.md /.gitignore: -------------------------------------------------------------------------------- 1 | # Pycharm environment 2 | .idea -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Topics 2 | 3 | - [Algorithms](topics/algorithms.md) 4 | - [Deployment Platforms](topics/deployment_platforms.md) 5 | - [General](topics/general.md) 6 | - [Testing](topics/testing.md) 7 | - Languages 8 | - Python 9 | - [Essentials](topics/essentials.md) 10 | - Frameworks 11 | - [Django](topics/frameworks/django.md) 12 | - [Flask](topics/frameworks/flask.md) 13 | - [FastAPI](topics/frameworks/fastapi.md) 14 | - Golang 15 | - [Essentials](golang/essentials.md) 16 | 17 | 18 | -------------------------------------------------------------------------------- /golang/essentials.md: -------------------------------------------------------------------------------- 1 | Golang learning resources 2 | 3 | * https://go.dev/tour/welcome/1 4 | * https://go.dev/doc/effective_go 5 | * https://bitfieldconsulting.com/books/love 6 | * https://www.ardanlabs.com/training/ultimate-go/ (also on O'Reilly platform) 7 | 8 | ### Web Development 9 | https://lets-go.alexedwards.net/ 10 | 11 | ### Tooling 12 | https://bitfieldconsulting.com/books/tools 13 | 14 | 15 | Golang Slack recomendations 16 | 17 | Here are some resources you should check out if you are learning / new to Go: 18 | First you should take the language tour: https://tour.golang.org/ 19 | Then, you should visit: 20 | - https://golang.org/doc/code.html to learn how to organize your Go workspace 21 | - https://golang.org/doc/effective_go.html be more effective at writing Go 22 | - https://golang.org/ref/spec learn more about the language itself 23 | - https://golang.org/doc/#articles a lot more reading material 24 | There are some awesome websites as well: 25 | - https://blog.gopheracademy.com great resources for Gophers in general 26 | - http://gotime.fm awesome weekly podcast of Go awesomeness 27 | - https://gobyexample.com examples of how to do things in Go 28 | - http://go-database-sql.org how to use SQL databases in Go 29 | - https://dmitri.shuralyov.com/idiomatic-go tips on how to write more idiomatic Go code 30 | - https://divan.github.io/posts/avoid_gotchas will help you avoid gotchas in Go 31 | - https://golangbot.com tutorials to help you get started in Go 32 | - https://tutorialedge.net a collection of articles around various aspects of Go 33 | There's also an exhaustive list of videos http://gophervids.appspot.com related to Go from various authors. 34 | If you prefer books, you can try these: 35 | - http://www.golangbootcamp.com/book 36 | - http://gopl.io/ 37 | - https://www.manning.com/books/go-in-action (if you e-mail @wkennedy at bill@ardanlabs.com you can get a free copy for being part of this Slack) 38 | If you want to learn how to organize your Go project, make sure to read: https://medium.com/@benbjohnson/standard-package-layout-7cdbc8391fc1#.ds38va3pp. 39 | Once you are accustomed to the language and syntax, you can read this series of articles for a walkthrough the various standard library packages: https://medium.com/go-walkthrough. 40 | Finally, https://github.com/golang/go/wiki#learning-more-about-go will give a list of even more resources to learn Go -------------------------------------------------------------------------------- /topics/algorithms.md: -------------------------------------------------------------------------------- 1 | # Algorithms 2 | 3 | ## Books 4 | 5 | ### [Grokking Algorithms: An illustrated guide for programmers and other curious people](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230) 6 | Comment by @luisarteaga : "I really love this book. It teaches you how to visualize common algorithms to understand them better. It is a good introduction into algorithms. I am not sure if this would be sufficient for a code interview." 7 | 8 | ### [The Algorithm Design Manual](https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ref=sr_1_1ie=UTF8&qid=1494017030&sr=8-1&keywords=algorithm+design+manual) 9 | This book is a great resource to learn how to design language-agnostic algorithms and analyze their efficiency. The language the author uses makes this book approachable for anyone interested in learning how to design algorithms. The first section is entirely about designing and analyzing algorithms and the second part provides a reference for popular algorithms. 10 | 11 | ### [Algorithms to Live By: The Computer Science of Human Decisions](https://www.amazon.com/Algorithms-Live-Computer-Science-Decisions/dp/1250118360/ref=sr_1_1?ie=UTF8&qid=1494016952&sr=8-1&keywords=algorithms+to+live+by) 12 | Comment by @luisarteaga : "This book is great book for a smooth and entertaining introduction to algorithms with real life example. But it will not really help you to get ready for a code interview. I used it more like a bed time story." 13 | 14 | ### [Data Structure and Algorithmic Thinking with Python: Data Structure and Algorithmic Puzzles](https://www.amazon.com/dp/8192107590/ref=cm_sw_r_cp_api_8GAdzbAKVC800) 15 | 16 | ### [Introduction to Algorithms (textbook)](https://mitpress.mit.edu/books/introduction-algorithms) 17 | 18 | A large comprehensive book of algorithms. The algorithms are written in pseudo-code. Many universities use this book to teach algorithms. It was mentioned that it may best to have a mathematics background to get the most out of this book. 19 | 20 | ### [All Algorithms implemented in Python](https://github.com/TheAlgorithms/Python) 21 | These are for demonstration purposes only. There are many implementations of sorts in the Python standard library that are much better for performance reasons. 22 | 23 | ### [Problem Solving with Algorithms and Data Structures using Python](https://runestone.academy/runestone/books/published/pythonds/index.html) 24 | Comment by @amos1969 : "This is a great online, free to access book. It takes a deep dive into implementing some common Algorithms and Data Structures using Python, with fully interactive examples which run in the browser, most of which can also be edited there to see what effect the changes have." 25 | 26 | ## Code 27 | 28 | ### [Leetcode](http://leetcode.com/) 29 | Website that provides contests and programming questions based on data structures and algorithms. The difficulty of questions ranges from easy to hard and there are many resources for people that are new to programming to learn how to apply these topics. 30 | 31 | https://github.com/keon/algorithms 32 | 33 | 34 | ## Video 35 | 36 | MIT OpenCourseWare Introduction to Alogithms: https://www.youtube.com/watch?v=JPyuH4qXLZ0&list=PL8B24C31197EC371C 37 | 38 | -------------------------------------------------------------------------------- /topics/deployment_platforms.md: -------------------------------------------------------------------------------- 1 | # Deployment platforms 2 | 3 | | Platform | Free tier | Deploy from GitHub | Deploy from GitLab | Features | Comments | 4 | | ------------------------------------------------- | :-------------------------------------------------------------------------------: | :----------------: | :----------------: | -------- | ------------------------ | 5 | | [Appliku](https://appliku.com) | [YES](https://appliku.com/#pricing) | YES | YES | | | 6 | | [btn.dev](https://btn.dev) | [PLANNED](https://gist.github.com/carltongibson/638e6695ec990e288fa461f6b339e5d9) | | | | Under development | 7 | | [Deta](https://www.deta.sh) | [YES](https://deta.space/limits) | | | | | 8 | | [DigitalOcean](https://www.digitalocean.com) | [YES](https://www.digitalocean.com/pricing) | | | | | 9 | | [Divio](https://www.divio.com) | [NO](https://www.divio.com/pricing/) | YES | YES | | | 10 | | [fly.io](https://fly.io) | [LIMITED](https://www.divio.com/pricing/) | | NO | | | 11 | | [Koyeb](https://www.koyeb.com) | [YES](https://www.koyeb.com/pricing) | | | | | 12 | | [Instellar](https://instellar.app) | [YES](https://instellar.app/pricing/monthly/) | | | | | 13 | | [Mogenius](https://mogenius.com/) | [TRIAL](https://mogenius.com/pricing) | | | | | 14 | | [Netlify](https://www.netlify.com/) | [YES](https://www.netlify.com/pricing/) | | | | | 15 | | [Platform](https://platform.sh) | [TRIAL](https://platform.sh/pricing/) | | | | | 16 | | [PythonAnywhere](https://www.pythonanywhere.com/) | [YES](https://www.pythonanywhere.com/pricing/) | | | | Beginner Friendly Option | 17 | | [Railway](https://railway.app) | [TRIAL](https://docs.railway.app/reference/pricing#free-trial) | | NO | | | 18 | | [Render](https://render.com/) | [LIMITED](https://render.com/pricing) | | | | | 19 | | [Vercel](https://vercel.com/) | [YES](https://vercel.com/pricing) | | | | | 20 | | [Vultr](https://www.vultr.com) | [NO](https://vercel.com/pricing) | | | | | 21 | -------------------------------------------------------------------------------- /topics/essentials.md: -------------------------------------------------------------------------------- 1 | # Essentials 2 | 3 | ## Books 4 | 5 | ### [Learning Python 5th Edition](https://www.amazon.com/Learning-Python-Powerful-Object-Oriented-Programming-ebook/dp/B00DDZPC9S/) 6 | Comment by @luisarteaga : "Part I (Chapter 1 to 3) is a must read for every python beginner. It is mainly about the python command line and some important functions to start. The other parts/chapters are a very good reference source for python essentials. But for some topics like generators I recommend looking for more code examples on stackoverflow." 7 | 8 | ### [Automate the Boring Stuff with Python: Practical Programming for Total Beginners](https://www.amazon.com/Automate-Boring-Stuff-Python-Programming-ebook/dp/B00WJ049VU/) 9 | Comment by @luisarteaga : "This book is just awesome. It gives you a quick overview of common techniques to optimize your office workflow. You will get good ideas for your own scripts. Useful scripts which manipulate csv files or scraping websites." 10 | 11 | Also available for free on the [author's website](https://automatetheboringstuff.com/). 12 | 13 | ### [The Hitchhiker's Guide to Python: Best Practices for Development](https://www.amazon.com/Hitchhikers-Guide-Python-Practices-Development-ebook/dp/B01L9W8CVG/) 14 | Comment by @luisarteaga : "This book is not about learning the essentials it is to use the essentials in a pythonic way. You will learn write great pythonic code." 15 | 16 | ### [Think Python: How to Think Like a Computer Scientist](https://www.amazon.com/Think-Python-Like-Computer-Scientist-ebook/dp/B018UXJ9EQ/) 17 | Comment by @luisarteaga : "The book has good exercises to play around. It makes you think pythonic. You can also adapt 18 | some solutions to solve your own programming challenges." 19 | 20 | ### [How to Think Like a Computer Scientist: Interactive Edition](https://runestone.academy/runestone/books/published/thinkcspy/index.html) 21 | Comment by @amos1969 : "This is an online version of the other book called **Think Python: How to Think Like a Computer Scientist** above. All of the code examples can be run and altered in the browser, as part of the general text of the book." 22 | 23 | ### [TDD for the Web, with Python, Selenium, Django, and JavaScript](http://www.obeythetestinggoat.com/book/praise.harry.html) 24 | Comment by @albertfougy : "This detailed book takes you through the development of a real web application from beginning to end, it is a hands-on guide demonstrates the practical advantages of test-driven development (TDD) with Python/Django. In addition to the topics stated in the title, I received an introduction to devOps, linux commands, and SQL. The author is also responsive to your suggestions and questions. 25 | 26 | ### [EbookFoundation: Free Programming Books (Python)](https://github.com/EbookFoundation/free-programming-books/blob/master/books/free-programming-books.md#python) 27 | Comment by @Constuelo : "A large repository of open source books, administered by a non profit. The list is not limited to Python." 28 | 29 | ## Code 30 | 31 | ## Video 32 | 33 | ### [Dan Bader's Python Tutorials](https://www.youtube.com/channel/UCI0vQvr9aFn27yR6Ej6n5UA) 34 | Comment by @luisarteaga : "Short, concise and well explained python tutorials. Creator of my beloved python cups." 35 | 36 | ### [PyVideo.org](http://pyvideo.org/) 37 | Comment by @Constuelo : "Indexes thousands of Python videos from the Python Community." 38 | 39 | ### [Engineer Man](https://www.youtube.com/watch?v=bgBWp9EIlMM) 40 | Comment by @Pieter : "Great explanation of regex for newbies" 41 | 42 | ## Online courses 43 | 44 | ### [DataCamp Data Science and Machine Learning](https://www.datacamp.com/) 45 | Comment by @MichaelYusko : "Very interesting course, who want to learn new areas such as: Data Science and Machine Learning" 46 | 47 | ## Cheat Sheets 48 | 49 | ### [Online Python Cheat Sheet](https://www.pythoncheatsheet.org/) 50 | Comment by @amos1969 : "Very nicely formatted and updated, online Python Cheat Sheet. I often have this open in a tab when I'm working on a project." 51 | 52 | -------------------------------------------------------------------------------- /topics/frameworks/django.md: -------------------------------------------------------------------------------- 1 | ## Django 2 | 3 | Django is a highly popular batteries-included web framework for Python. Its comparable to 4 | Angular in how features are included by default and its opinionated default settings. 5 | 6 | ### Tutorials & Documentation 7 | * [Documentation](https://docs.djangoproject.com/) 8 | * [Official Django tutorial](https://docs.djangoproject.com/en/stable/intro/tutorial01/) 9 | * [VPS Configuration and Deployment](https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-20-04) 10 | * [A Complete BeginnersGuide to Django](https://simpleisbetterthancomplex.com/series/beginners-guide/1.11/) 11 | * [A Comprehensive introduction to Django web framework](https://developer.mozilla.org/en-US/docs/Learn/Server-side/Django) 12 | * [Djangobook.com - A website of all available books on Django.](https://djangobook.com/) 13 | * 14 | 15 | ### Groups and Communities 16 | * [Django-Users Google Group](https://groups.google.com/forum/#!forum/django-users) 17 | * [Django on Reddit](https://www.reddit.com/r/django/) 18 | * [Django on StackOverflow](https://stackoverflow.com/questions/tagged/django) 19 | 20 | ### Modules and Apps 21 | * [Django Rest Framework](http://www.django-rest-framework.org/) is the de-facto REST implementation for Django. 22 | * [Django Extensions](http://django-extensions.readthedocs.io/en/latest/) has a number of useful management commands 23 | * [Django Packages](https://djangopackages.org) is a curated repository of Django projects and packages across a large number of topics 24 | -------------------------------------------------------------------------------- /topics/frameworks/fastapi.md: -------------------------------------------------------------------------------- 1 | ## FastAPI 2 | 3 | FastAPI is a modern, high-performance, web framework for building APIs with Python based on standard Python type hints. 4 | 5 | 6 | ### Tutorials & Documentation 7 | * [Documentation](https://fastapi.tiangolo.com/) 8 | * [FastAPI Tutorial](https://www.toptal.com/python/build-high-performing-apps-with-the-python-fastapi-framework) Classic TODO list with SQLAlchemy 9 | * [Developing and Testing an Asynchronous API](https://testdriven.io/blog/fastapi-crud/) 10 | * [Deploying and Hosting a Machine Learning Model with FastAPI ](https://testdriven.io/blog/fastapi-machine-learning/) 11 | * [Google login for FastAPI](https://blog.authlib.org/2020/fastapi-google-login) 12 | * [Why we switched from Flask to FastAPI](https://towardsdatascience.com/why-we-switched-from-flask-to-fastapi-for-production-machine-learning-765aab9b3679) 13 | 14 | 15 | 16 | ### Groups and Communities 17 | * [FastAPI Gitter chat](https://gitter.im/tiangolo/fastapi) 18 | * [FastAPI on StackOverflow](https://stackoverflow.com/questions/tagged/fastapi) 19 | 20 | ### Modules and Apps 21 | * [Full Stack FastAPI and PostgreSQL - Base Project Generator](https://github.com/tiangolo/full-stack-fastapi-postgresql) Generate a backend and frontend stack using Python, including interactive API documentation. 22 | * [FastAPI utils](https://fastapi-utils.davidmontague.xyz/) 23 | * [FastAPI user manager](https://frankie567.github.io/fastapi-users/) 24 | * [FastAPI cache](https://github.com/comeuplater/fastapi_cache) 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /topics/frameworks/flask.md: -------------------------------------------------------------------------------- 1 | # Flask 2 | 3 | Flask is another popular framework that is seen as a lighter alternative to Django. In some ways, 4 | it can be comparable to React in that the core is lightweight and the developer decides what packages 5 | and modules to be added to the project as a whole. 6 | 7 | ### Tutorials & Documentation 8 | * [Official Flask documentation](http://flask.pocoo.org/docs/1.0/) 9 | * [Official Flask tutorial](http://flask.pocoo.org/docs/1.0/tutorial/#tutorial) 10 | * [Flask Mega Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) 11 | * [Best practices and patterns for building Flask apps](http://exploreflask.com/) 12 | * [Flask by example](http://www.realpython.com/blog/python/flask-by-example-part-1-project-setup/) 13 | * [Deploying a single page app with Flask and Vue.js](https://testdriven.io/developing-a-single-page-app-with-flask-and-vuejs) 14 | * [How to structure large Flask applications](https://www.digitalocean.com/community/articles/how-to-structure-large-flask-applications) -------------------------------------------------------------------------------- /topics/general.md: -------------------------------------------------------------------------------- 1 | # General 2 | 3 | These are resources not specifically targeted that may be useful. 4 | 5 | ## Websites 6 | 7 | ### [GitHub Learning Lab](https://lab.github.com/) 8 | 9 | This covers things like git, GitHub, open source, and HTML. 10 | 11 | ## Cheatsheets 12 | 13 | ### [Github Cheat Sheet Page](https://github.github.com/training-kit/) 14 | 15 | Comment by @amos1969 : Github's own list of Cheat Sheets in a variety of languages. Includes "Reference sheets covering Git commands, features, SVN migrations, and bash. Available in a multiple languages." to quote their site. 16 | -------------------------------------------------------------------------------- /topics/testing.md: -------------------------------------------------------------------------------- 1 | # Testing 2 | 3 | ## Books 4 | 5 | * [Python Testing with pytest](https://www.amazon.com/Python-Testing-pytest-Effective-Scalable/dp/1680502409/) 6 | 7 | * [Test-Driven Development with Python](https://www.amazon.com/Test-Driven-Development-Python-Selenium-JavaScript/dp/1491958707) 8 | 9 | ## Podcast 10 | 11 | * [Test and Code Podcast](http://pythontesting.net/test-podcast/) 12 | 13 | ## Blog 14 | 15 | * [Obey the Testing Goat!](https://www.obeythetestinggoat.com/) 16 | 17 | ## Readings 18 | * [Building Good Tests](https://salmonmode.github.io/2019/03/29/building-good-tests.html) 19 | --------------------------------------------------------------------------------