Tutorials
On this page, a nice collection of tutorials is maintained that our current and previous interns found helpful. Please contribute any interesting tutorials you may find.
Random tricks
Section titled “Random tricks”Super quick recordings of useful, time saving tricks. asciinema
GitLab
Section titled “GitLab”It’s the main hub of information regarding project planning, issues, and code. Therefore, it makes sense to start by reading into GitLab user documentation
- Linux command line for beginners: https://ubuntu.com/tutorials/command-line-for-beginners
- Bash shell scripting: https://linuxconfig.org/bash-scripting-tutorial-for-beginners
Generic
Section titled “Generic”Independent of any programming languages, some software design patterns are very useful to know about.
- Cheat sheets for all major languages: http://overapi.com
- Practical Refactoring: https://www.youtube.com/watch?v=aWiwDdx_rdo
JavaScript
Section titled “JavaScript”Before starting these tutorials, make sure you have installed the JavaScript development tools. The installation is described in JavaScript
- Interactive (basic) JavaScript tutorial: http://www.codecademy.com/tracks/javascript
- Interactive (basic, intermediate) JavaScript tutorial: http://www.learn-js.org/
- Mozilla JS basics: https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics
- JavaScript coding style: https://github.com/airbnb/javascript
Extra:
- TypeScript for JavaScript Programmers: https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
ReactJS
Section titled “ReactJS”- React intro (by the authors): https://reactjs.org/tutorial/tutorial.html
- React basics: https://www.codecademy.com/learn/react-101
- React basics (video): https://www.youtube.com/playlist?list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b
- React hooks (video): https://www.youtube.com/watch?v=LlvBzyy-558
Next.js
Section titled “Next.js”- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
Node.js
Section titled “Node.js”- Node.js basics: https://www.codecademy.com/learn/learn-node-js
- Learn Node.js (by the authors): https://nodejs.dev/learn
Testing
Section titled “Testing”- Jest tutorial for beginners: https://www.valentinog.com/blog/jest/
- Cypress frontend testing tutorials: https://docs.cypress.io/examples/examples/tutorials
- Interactive Git tutorial: http://try.github.io/levels/1/challenges/1
- Interactive Git tutorial: http://gitreal.codeschool.com
- Hands on video tutorial (45 min for 3 videos): http://git-scm.com/video/what-is-git
- Basic branching and merging: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging
Advanced topics
Section titled “Advanced topics”- Interactive rebasing: https://thoughtbot.com/blog/git-interactive-rebase-squash-amend-rewriting-history
- Rewriting history: https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History http://schacon.github.io/gitbook/4_interactive_rebasing.html
Python
Section titled “Python”Before starting these tutorials, make sure you have set up the Python development tools.
- Udemy provides several introduction courses: https://www.udemy.com/topic/python/free/
- Microsoft Python for beginners: https://docs.microsoft.com/en-us/learn/paths/beginner-python/
- Coursera: https://www.coursera.org/specializations/python
- http://www.learnpython.org/
- Interactive python tutorial: http://www.codecademy.com/tracks/python
- A 2 days series of video tutorials by Google: http://youtu.be/tKTZoB2Vjuk> (day 1) http://youtu.be/kWyoYtvJpe4 (day 2).
- Python related videos: http://pyvideo.org/
- The Hitchhiker’s Guide to Python!: http://docs.python-guide.org/en/latest/
REST API
Section titled “REST API”Python or Node.js is often used for building a webservice backend.
- Flask is often the base for our webservices: https://www.palletsprojects.com/p/flask/
- It’s worth considering whether to create an OpenAPI compatible API: https://www.openapis.org/
- Read some of the best practices in API design. Some interesting
resources:
- RESTful API design: https://restfulapi.net/
- OpenAPI best practices in API design: https://swagger.io/resources/articles/best-practices-in-api-design/
- Some best practices followed at dcentralize that need highlighting
because they’re not super common:
- Allow frontend to easily localize error messages using error codes as strings: https://softwareengineering.stackexchange.com/questions/395715/should-error-codes-in-json-be-integers-or-strings
Google App Engine
Section titled “Google App Engine”Now you’ve got the hang of Python, let’s apply it to Google App Engine. It’s the place where we often host our python based apps.
Before starting this tutorial, make sure you have set up the
[Python](/setup/python) and
[Google App Engine](/setup/gcloud)
development tools.
- Beginners tutorial on Python + GAE: https://cloud.google.com/appengine/docs/standard/python3/how-to
Security
Section titled “Security”- API Security and Federation Patterns: http://www.infoq.com/presentations/api-security-federation-patterns (video) The talk is mainly about the use of OAuth2.
User experience
Section titled “User experience”- User onboarding, how to do it properly in Apps: https://www.youtube.com/watch?v=fsp8lexHH04 (video)