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