Code 401: Advanced Software Development in Python



Learn the language used at NASA, Instagram, Dropbox, and other companies large and small – as you build professional-grade apps in Python.

Throughout this intensive course, you will study professional software development techniques and practices as you advance your skills in Python.

This course includes a career coaching curriculum to get you ready for your job search, plus job search assistance after graduation. The course totals 400 hours, including lectures, lab, coworking, and collaborative projects.


At the end of this course, you will be able to attain an entry-level Python web developer job by:

  • Being able to take project ideas from conception all the way through full-stack execution and deployment using common Python frameworks and deployment tools
  • Contributing to existing and ongoing projects using professional version-controlled workflows, working in tandem with your classmates on collaborative assignments
  • Fully understanding the interaction between the code as it is written, the data on your machine, and the result that gets served to the client/browser
  • Writing secure web apps that can deter hackers from exploiting the most common vulnerabilities in your sites
  • Developing a portfolio of assigned and self-directed projects, as well as building your own code libraries of algorithms and data structures commonly found in computer science and software development
  • Regularly engaging in code review, attaining the ability to understand someone else’s code, collaborating with a team of coders of varying levels of experience, and suggesting improvements to the code base in question
  • Participating in a series of career development workshops and the web development knowledge, experience, habits, and practices learned in this course. You will create an online brand, network, and resume, and will demonstrate aptitude in personal and technical interviews of varying formats, in order to conduct a successful job search and obtain a job as a Python Web Developer


  • Code 301
    • Students with previous experience can test out of this requirement in their application. If you'd like to test straight into this course, please make sure you have experience with all of the topics listed on the Code 201 and Code 301 course pages.
  • All students are expected to complete the prework for this course before the first day of class.



  • Syntax
    • Classes
    • Control Structures
    • Lambdas
    • Decorators
    • Iterators
    • Generators
  • Using common patterns
    • Object-Oriented Programming
    • Functional Data Manipulation
    • Open Source Contribution
  • Data Analysis
    • Numpy
    • Pandas
    • Scikit-Learn
  • Machine Learning
    • Linear Regression
    • Sentiment Analysis
  • Data Visualization
    • MatPlotLib
    • Plotly

Frameworks & Development Patterns

  • Django
    • The Admin Panel
    • MVC Structure
    • Project Structure as an Aggregation of Apps
    • OWASP Top 10 Web App Vulnerabilities
  • Virtual Environments
    • Managing Dependencies
    • Handling library version conflicts
  • Deployment
    • Static Site Hosts
    • Cloud hosting options
  • Dev Ops
    • Docker Containers
  • Front End
    • React and NextJS with a Python backend

Collaboration & Open Source

  • Pair Programming
  • Group Projects
  • GitHub
    • Repositories
    • Forking
    • Cloning
    • Pull Requests
    • Collaborators
  • How to Learn from Available Resources

Data Structures & Algorithms

  • Linked Lists
  • Stacks & Queues
  • Graphs
  • Trees
  • Binary Search
  • Sorting Algorithms
  • Daily Whiteboard Interview Practice

Career Transition Services

Changing careers is about more than learning a new skill. In tandem with your software development education, you will receive powerful career-building strategic training so you can confidently start your job search as soon as (or even before!) you graduate.

Our Career Transition Services provide training, mentoring, leadership, and introductions to industry partners to help you become a more well-rounded software developer and a leader in your field. These services, which start in Code 201 and continue after Code 401 graduation, involve a series of events, workshops, and assignments that help you think holistically about your new career and take actionable steps towards success. Learn More »

Material Requirements

You are required to supply your own laptop that meets the below requirements. Chromebooks are not suitable for this course, since you can’t directly control installed software. You are responsible for the upkeep and maintenance of your computer throughout the course. The course pre-work will have specific instructions for configuring your computer to be ready for the first day of class.

  • 64-bit Operating System, like macOS, Ubuntu or Windows 10
  • Fully up to date, with the latest version of the operating system and all security updates installed
  • At least 100GB of free space on the hard drive
  • At least 16GB of RAM. 32GB RAM strongly preferred
  • Free of viruses, Zoom-ready (reliable webcam and microphone), and in general working order

By the first day of class, you will need:

Stacked Modules

Concepts in each of our courses are taught using stacked modules, where a new concept is introduced in each class session, building upon what came before it. This is a challenging style that requires persistence, practice, and collaboration, but allows more concepts to be introduced over the length of the course. This method helps students learn and retain more information in a short period of time. Learn more about stacked modules »

Homework Policy

In order to pass the class, students must attain at least 90% of available points.


Punctuality, participation in discussions, completion of assignments, and demonstration of professional courtesy to others are required, in accordance with our Code of Conduct. Attendance will be taken at the beginning of every class. Passing requires at least 90% attendance. Students should always contact the instructors ahead of time if they are unable to attend all or part of the published class/lab hours.

Apply Now