Enterprise Software with Python

When I first published 10 Myths of Enterprise Python on the PayPal Engineering blog, there were a lot of reactions. Some I expected:

  1. Surprise at Python in the enterprise space.
  2. Relief at more attestation of Python's use in the enterprise.
  3. And, as with all the best, a few flamewars.

But there was one I missed: new developers interested in professional software development.

Really I should have seen it coming. For the better part of a decade, Python has provided me the best vocabulary for answering questions from motivated individuals looking for programming productivity. It's only logical that once they got the basics down, they'd want to take it to the next level.

With this end in mind, I'm pleased to announce Enterprise Software with Python (ESP), a bridging class from beginner to pro1, brought to you by O'Reilly Media and yours truly.

It's got something for everyone, but really it's designed with three groups in mind:

As the title suggests, ESP is more than a Python class. While the perspective is Pythonic and there are several examples in Python, this is a full software development course. You will find a serious effort has been made to set expectations and develop the soft skills large organizations demand. You need architectural skills to form a technical opinion, engineering skills to implement and maintain it, and managerial skills to defend it all along the way. I can't resist a good table of contents, so this is how the course is factored to address all of these:

  1. Introductions and definitions - A bit about me, a bunch about the course.
    1. Overview
    2. Prerequisites and viewing guide
  2. Definitions and foundations - Know your domain, know your platform.
    1. What is Enterprise Software? - 9 Hallmarks of the Enterprise
    2. What is Python? 3 Perspectives for the Organization
    3. What is Python Not? 4 Common Misconceptions
    4. When to Use Python? Motivations and Applications
  3. Architecture and design - Do your research, present your findings.
    1. Designing Architectures: Professional Planning
    2. Gathering Requirements: Understanding the 6 Aspects of Software
    3. Researching Environments: From Production to Development
    4. Choosing Dependencies: Evaluating Building Blocks
    5. Getting Assistance: Finding Help in the Software World
    6. Presenting Designs: Navigating the Organizational and Interpersonal
  4. Engineering practices - Execution and delivery with minimal regret.
    1. Development Environments: Editors and Dev Tools
    2. Source Control, Issue Tracking, and Continuous Integration
    3. Workflow: Starting a Python Project
    4. Design Patterns: Idioms for Python Projects
    5. Debugging: Solving Problems in Python projects
    6. Security: Software Risk Management Fundamentals
    7. Code Review: Python Antipatterns and Collaboration
    8. Testing: Practical Python Quality Engineering
    9. Logging and Monitoring: Introspectable Python Projects
    10. Profiling and Performance: Strategies for High-Speed Python
    11. Documentation: Preserving the Legacy
    12. Packaging and Deployment: Going Live
  5. Career development and further study - A good end offers a dozen new beginnings.
    1. Project Ideas: Building Experience
    2. Technology Evangelism: Building a Community
    3. Other Resources: Building Skills
    4. Closing

Yes, it is a lot. I never pass on an opportunity to give a comprehensive treatment, but I'll save the whole motivation and process essay for later. For now, keep in mind that most segments are under 20 minutes, and the longest, Profiling and Performance, is only 45 minutes — shorter than most orgs' tech talks. It's all compact and practical, right down to the example repo.

Actual footage from the intro. Not a prerelease render.

The first three parts are free, and will give you a good sense of the format, tone, and content. I kept it pretty light and approachable, complete with dozens of illustrations. Purchasers can stream the rest, and download DRM-free copies whenever you want (my personal favorite). If you have any questions or concerns, don't hesitate to reach out to me, personally, or O'Reilly Media.

I hope you'll take a look! It's already making waves at PayPal, and chances are there's someone you know who could use it, too.

  1. This link has a 50% off coupon code, applied at checkout. Check if your organization has Safari, first. If not, use this coupon-less link and expense it! :) Safari users, try Techbus or the SBO site. If you're not sure if you have Safari access, contact your technology education and training department. 

  2. This target audience is me, but I know there are others out there. Send me your tiring, huddled masses yearning to learn Python. Seriously though, I can't fully quantify how much time it saves me to send a new Python initiate to a video, then have them come back with the foundations necessary to have a productive conversation. 

#python #work #code #education #esp
Designing a version
Getting a Python job
RWC 2016 Lightning Talk
Enterprise Overhaul: Resolving DNS
Announcing the Hatnote Top 100