Web Development Starter Kit

This is a collection of resources that has helped web developers at Prezi to become great and happy developers. It's a curated list of books, articles and tutorials. It's based on the current technology stack that we use at Prezi but it's useful for every full stack developer.

Introductory topics

  • Learn data structures and algorithms. Data structures and algorithms for programmers are like notes and scales for a musician. All programming is built around data structures and algorithms. Whether making the right choices when solving problems, will be determined by your confidence in the basics.
  • Learn Unix tools. Unix's philosophy of building simple, small, modular tools is highly regarded for a reason. Problems that seem complex usually can be solved with one liners in no time. Also since most of today's infrastructures are built upon Un*x systems, a great engineer might want to take advantage of being able to control and hence own the full stack what they develop.
  • Learn version controlling. Version controlling is the alpha of today's development work flow. It's the breath of all open source projects, it helps teams collaborate day to day on their work and even for a single engineer working alone helps create the right mindset of working in baby steps and gives reassurance with the knowledge that you are able to go back to any previous state of the code base.
  • Learn regular expressions. It's hard to bypass regular expressions. They are an impressive tool available in most languages to work with text.
  • Understand how HTTP and browsers work. These technologies are on the lowest level of the Maslow pyramid of web development.

Backend technologies

  • We love beautiful code. Python's coding style (PEP 8) is a great tool to ensure a common coding style across teams.
  • Write a Django app from scratch. Django is a great web framework written in Python that we use for most of our web services. Learning the fundamantals of a web framework gives you the ability to write maintainable and scalable web sites and services in a fun and fast way.
  • We � Unicode. Learn how to enable internationalization and localization in a web application to give you the best experience for your users.
  • Learn Chef. We believe in full stack ownership. For that, being able to maintain your own infrastructure is essential. Chef is a great configuration management tool that lets you manage infrastructure as code.
  • Learn to use the Python debugger. Even the best engineers make mistake. The era of print statements is over.
  • Learn about databases.
  • Launch your app on the cloud. Platform as a service is here. Now that you wrote your app in Django and manage the infrastructure with Chef, it shouldn't be hard, right?
  • Have a good Python IDE installed. Find your best friend.
    • Prezi engineers recommend using PyCharm

Frontend technologies

Advanced topics