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.
- 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.
- book: Data Structures and Algorithms
- article: Data Structures Succinctly: Part 1
- 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.
- book: The Unix Programming Environment
- tutorial: Unix tutorial
- 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.
- tutorial: Git tutorial (time investment: 15 min)
- Learn regular expressions. It's hard to bypass regular
expressions. They are an impressive tool available in most
languages to work with text.
- tutorial: RegExp tutorial
- Understand how HTTP and browsers work. These technologies are on the lowest level of the Maslow pyramid of web development.
- We love beautiful code. Python's coding style (PEP 8) is a great
tool to ensure a common coding style across teams.
- article: PEP 8 (time investment: 2 hours)
- article: PEP 20 aka The Zen of Python (time investment: 2 min)
- 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.
- tutorial: Chef course
- Learn to use the Python debugger. Even the best engineers make mistake. The
era of
print
statements is over.- article: PDB
- Learn about databases.
- tutorial: Introduction to 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?
- tutorial: Getting Started with Django on Heroku
- Have a good Python IDE installed. Find your best friend.
- Prezi engineers recommend using PyCharm
- Learn HTML and CSS. Writing semantic, clean markup is the backbone
of your website or application. Mastering stylesheets will help
express your content in a beautiful way.
- book: Dive into HTML5
- tutorial: CSS tutorial
- tutorial: CSS Bootstrap tutorial
- article: CSS guidelines
- tutorial: LESS framework
- Learn JavaScript. JavaScript is the assembly language of the web.
- book: Eloquent JavaScript: A Modern Introduction to Programming (if you are new to programming)
- book: JavasCript: Good Parts:
- tutorial: learn JavaScript properly (time investment: 8 week)
- Learn a JavaScript framework. Understanding the language is highly
recommended and mastering a framework gives you the ability to be
even more powerful.
- article: learn backbone.js completely
- Set up your development environment. Make debug tools your friend
and create an environment that lets you test across various browsers.
- article: devtools
- article: Microsoft IE App Compat virtual machines
- Write clean code. Great engineers write clean code to create
maintainable systems.
- book: Clean code
- book: Clean Coder
- Learn about modern software development process. Make continuous
delivery, test driven development, and acceptance testing part of
your everyday development tools.
- book: Continuous Delivery
- book: TDD by example
- video: lecture #1 of Udacity Software Testing about unit testing with coding exercises
- book: The Cucumber Book
- video: Top 5 Cucumber best practices
- Learn about web application security principles.