Code Fellows 401 Python

The materials in this documentation support the Python Dev Accelerator program at Code Fellows in Seattle, WA.

Overview

A quick read on the objectives, philosophy and values held by Code Fellows and followed by this Course.

Course Objectives

  • Acquire strong and idiomatic skills as a Python programmer
  • Achieve a deep understanding of the full environment in which web programming occurs, from sockets up to frameworks.
  • Develop the evaluative criteria to choose the right tool for the job.
  • Build facility with associated technologies: git, HTML, CSS, Javascript.
  • Gain mastery of the fundamental skills of agile development, testing, deployment and teamwork.

Learning Philosophy

I would like you to approach this course as if it were a graduate seminar.

In a university, undergraduates are taught in lectures. An “expert” delivers lesson material and “students” absorb it (or don’t).

A graduate seminar is a very different kind of learning environment. The professor chooses a topic, provides initial learning resources and facilitates discussion. Students are expected to be active participants, asking and answering questions based on their learning and their own experience.

In this course, your instructor has the benfit of work experience, and his or her own set of knowledge. You have your own specific skills and experiences. Please bring them to class and apply what you already know to what you are learning. This will enhance the experience both for you and for the other students around you.

Learning Python

Learning to program in Python is about more than just learning logic, algorithms and data structures. It’s about learning to write idiomatic Python. Python lends itself to clear, expressive programs. Learning to write the most pythonic Python will result in programs that are clean and easy to understand. But more than that, idiomatic Python is Python that operates to the strengths of the language. Pythonic code will be faster and more efficient than code that is not Pythonic. Throughout the course, an emphasis will be placed on writing truly pythonic Python, and on learning to evaluate what is pythonic.

The Honor Code:

Like the Python community at large, Code Fellows has a code of conduct. All students in this course are expected to know, and abide by, this code. Please make sure you read the code and are comfortable with what it means. If you have any questions, please address them to one of your instructors or the campus manager. Issues should be reported to conduct@codefellows.com

Pre-Work

This document contains no slides.

The 401 Python class moves fast through a large quantity of material. Having a level of comfort with the basic skills you’ll be using every day is vital to your success.

From the pre-work assignments below, please select the area in which you are the weakest. Begin by working on that. Once you have spent at least 10 hours on that area, select your next weakest area and move on to that.

You do not need to do a lot of work every day. One hour is enough, though just. The key is to work every single day. Do not let a day go by without spending your time practicing.

Course Schedule

This schedule is subject to change. Please check back frequently.

Week 01

The theme for the week is Python, Python, Python!

Week 02

The theme of the week is communications: sockets and HTTP

Week 03

The theme of the week is Pyramid.

Week 04

The theme of the week is APIs

Week 05

The theme of the week is “Get It Done!”

It’s PROJECT WEEK!!!

Week 06

The theme for the week is Django Models.

Week 07

The themes for the week are Django Views and Automation.

Week 08

The theme for the week is Deployment and Django Review (with a touch of REST, perhaps)

Week 09

The theme for the week is automation.

Week 10

The theme of the week is “Almost Home!”

This is PROJECT WEEK!