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
Super quick recordings of useful, time saving tricks. asciinema
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
- 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
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
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
- 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
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
Node.js
- Node.js basics: https://www.codecademy.com/learn/learn-node-js
- Learn Node.js (by the authors): https://nodejs.dev/learn
Testing
- Jest tutorial for beginners: https://www.valentinog.com/blog/jest/
- Cypress frontend testing tutorials: https://docs.cypress.io/examples/examples/tutorials
GIT
- 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
- 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
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
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
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
- 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
- User onboarding, how to do it properly in Apps: https://www.youtube.com/watch?v=fsp8lexHH04 (video)