Mathematical Physicist Turned Silicon Valley Veteran And O'Reilly Author Reveals:
How To Become The Best Python Developer On Your Team
In Just 5 Hours Per Week, with a supportive community of ambitious like-minded pros, dedicated to mastering your craft.
Are "10X developers" real?
Maybe, maybe not.
But no matter your job title, if you write Python code in your work, you can certainly multiply your effectiveness and success at writing high-quality software... by a factor of 2X, 3X, maybe 5X or more.
This requires you to:
Think Smarter, Not Harder.
How, exactly? The key is an idea from the world of physics, which dates all the way back to Aristotle: the idea of first principles.
"First principles" means the foundational concepts, distinctions, ideas, and mental models that software development is based on. Take for example:
The Strategy Design Pattern
This classic design pattern lets you select from one of several different algorithms at runtime.
The Strategy Pattern is a first principle of software development. Like all design patterns, it's a mental model we use as a "building block" for creating software, independent of programming language.
Typically, you implement Strategy by writing a different class for each possible algorithm - plus other classes to use whatever algorithm you choose. The lines of code add up.
At the same time, each programming language has its own first principles. Python, for example, has function objects. And because Python has this, you can implement the Strategy pattern in Python more easily than in other languages:
>>> numbers = [7, -2, 3, 12, -5] >>> # Sort the numbers. >>> sorted(numbers) [-5, -2, 3, 7, 12] >>> # Sort them by absolute value. >>> sorted(numbers, key=abs) [-2, 3, -5, 7, 12] >>> # Find the food with highest protein per serving. >>> foods = [ ... {'name': 'rice', 'calories': 130, 'protein': 2.7}, ... {'name': 'chicken', 'calories': 157, 'protein': 32}, ... {'name': 'eggs', 'calories': 149, 'protein': 10}, ... {'name': 'chocolate', 'calories': 535, 'protein': 7.7}, ... ] >>> max(foods, key=lambda food: food['protein']) {'name': 'chicken', 'calories': 157, 'protein': 32}
Other examples of software engineering first principles include:
- The other design patterns
- Mental models like complexity analysis (big-O notation)
- Best practice guidelines such as the SOLID principles
When you learn to think in terms of first principles...
It's Like A "Cheat Code".
You can see solutions to coding problems that others don't see. Bugs and stack traces that used to baffle you suddenly seem clear and obvious. You surprise yourself by what you can do, and how fast you can do it.
Here's a big secret:
There are first principles of software engineering which do not have standard names and which are not well known, except among the most exceptional performers and thought leaders.
I will tell you some of these "secret" first principles later in this document, and even better, how you can discover your own.
For now, understand this:
When you learn how to think in terms of first principles, and gain knowledge of the first principles... you are suddenly able to do things you could not do before.
Especially with developing software, you get creative insights quickly and repeatedly; routinely solve seemingly intractable problems; and regularly produce surprising new inventions.
The Foundation Is OOP
Most people know that object-oriented programming helps organize your code...
But not many realize it organizes how you think about your code, too.
When you create good classes representing good abstractions, it helps you THINK BETTER about your code. In this form, your code is easier to reason about.. with more clarity and better insights, FASTER.
This is related to a well-known principle in psychology called:
Miller's Law
Also called the “7 plus or minus 2" rule, and created by Harvard psychologist George A. Miller.
Dr. Miller's publication on this concept is one of the most highly cited papers in the history of psychology. It says that human minds optimally reason in terms of a small number of chunks (yes, “chunk" is the formal term used in cognitive psychology). That number is close to 7 in most people, hence the name of the rule.
The obvious way this applies to programming:
If you have a small set of classes which map well to the business logic of what your program is attempting to do, then reasoning about your codebase and accomplishing your goal...
Becomes Exponentially Easier.
That is because classes represent abstractions we can reason about.
When you choose the right abstractions, and design classes which represent those abstractions well, your thinking is denominated in the most empowering mental model for solving the problem at hand.
You find you can write high quality software faster, and with a greater chance of successfully solving the problem you want to solve. Your code seems more elegant and clear; it omits anything not necessary, less cluttered with cruft.
Take for example: DataFrame, from Pandas:
>>> import pandas as pd >>> df = pd.DataFrame({ ... 'A': [-137, 22, -3, 4, 5], ... 'B': [10, 11, 121, 13, 14], ... 'C': [3, 6, 91, 12, 15], ... }) >>> >>> positive_a = df[df.A > 0] >>> print(positive_a) A B C 1 22 11 6 3 4 13 12 4 5 14 15
DataFrame is a Python class, and it has changed the world.
But it is made up. Once upon a time, there was no such thing as a DataFrame. Someone created it, empowering countless coders to perform remarkable feats of data processing with far less effort than before.
This means you can create your own abstractions - i.e., classes - that unlock massive productivity for you, your team, and possibly...
The Entire Planet.
Another example: Imagine a class called DateInterval, which represents an interval or range of days.You use it like this:
>>> from datetime import date >>> interval = DateInterval(date(2050, 1, 1), date(2059, 12, 31))
You can check whether a particular day is in the interval or not:
>>> some_day = date(2050, 5, 3) >>> another_day = date(2060, 1, 1) >>> some_day in interval True >>> another_day in interval False
You can ask how many days are in the interval:
>>> len(interval) 3652
You can even use it in a for-loop:
>>> for day in interval: ... process_day(day)
Here is the source code of DateInterval:
from datetime import ( date, MINYEAR, MAXYEAR, timedelta, ) class DateInterval: BEGINNING_OF_TIME = date(MINYEAR, 1, 1) END_OF_TIME = date(MAXYEAR, 12, 31) def __init__(self, start=None, end=None): if start is None: start = self.BEGINNING_OF_TIME if end is None: end = self.END_OF_TIME if start > end: raise ValueError( f"Start {start} must not be after end {end}") self.start = start self.end = end @classmethod def all(cls): return cls(cls.BEGINNING_OF_TIME, cls.END_OF_TIME) def __contains__(self, when): return self.start <= when <= self.end def __iter__(self): for offset in range(len(self)): yield self.start + timedelta(days=offset) def __len__(self): return 1 + (self.end - self.start).days
Whether you currently understand this Python code is not important. (We can teach you how, as explained below.)
What matters is you understand that you are creating a new abstraction, called a date interval, that empowers you to more efficiently reason about your codebase.
And of course, it also makes it easier to write good code, and to...
Write It Faster.
Classes are also important for more classically understood benefits like code reuse, encapsulation, data hiding, and so on...
But even these factors relate to how we think about our code.
Which brings us to the next big "10X Your Python Skills" topic:Automated Testing
If OOP is the foundation, writing tests is the supercharger.
When you apply the patterns and best practices of writing unit tests, integration tests, and other test forms, you find it tremendously boosts your capability to create sophisticated, powerful software systems.
Automated testing does not help much when writing small scripts. But who cares about those?
Your greatest contributions come from creating complex software systems that solve hard problems people care about. This is where automated testing...
Becomes A Superpower.
In particular, automated testing will tremendously speed up development. Again, not for small programs; but that is not why you are here.
Automated tests do not just let you write better code faster. They make it possible for you to create advanced software systems you simply could not before. They expand your CAPABILITIES.
The full power of automated testing depends on OOP. You can create simple tests without classes. But the most valuable testing patterns require full use of Python’s object system. This is why OOP comes first.
Imagine you are designing a web application framework. You want view objects which represent the HTTP response, and a way to map incoming URLs to those views. You create specialized View classes for different response types, and create a class called WebApp to coordinate this configuration:
app = WebApp() app.add_route("/api", JSONView({"answer": 42})) app.add_route("/about", HTMLView('about.html'))
This object has a get() method to retrieve the HTTP response for a URL:
>>> app.get('/api') ‘{"answer": 42}’ >>> app.get('/about') ‘<html><body>About Page</body></html>’
There is enough complexity here that if you just start coding it, odds are high bugs will be missed by manual testing. Even worse, at this threshold of complexity, every new feature you add risks breaking something in an unexpected way.
The only way to maintain full correctness is to exhaustively test after each change, which is extremely labor-intensive.
So What Do You Do?
The solution is to start by writing a suite of automated tests, exercising the key functionality. Like this:
import unittest from webapp import ( WebApp, HTMLView, JSONView, ) class TestWebapp(unittest.TestCase): def test_route(self): app = WebApp() json_view = JSONView({"alpha": 42, "beta": 10}) html_view = HTMLView('about.html') app.add_route('/api', json_view) app.add_route('/about', html_view) # The JSON object as a string expected = '{"alpha": 42, "beta": 10}' actual = app.get('/api') self.assertEqual(expected, actual) # The contents of about.html expected = 'About Page\n' actual = app.get('/about') self.assertEqual(expected, actual)
Then it becomes straightforward to implement. You simply write code to make your tests pass. And when that is done...
You Feel CONFIDENT In Your Code.
Because your tests assure you that your program is working correctly. Here is one way to implement it (and make the above tests pass):
import abc import json class WebApp: def __init__(self): self._routes = {} def add_route(self, url, view): self._routes[url] = view def get(self, url): view = self._routes[url] return view.render() def urls(self): return sorted(self._routes.keys()) class View(metaclass=abc.ABCMeta): @abc.abstractmethod def render(self): pass class HTMLView(View): def __init__(self, html_file): with open(html_file) as filename: self.content = filename.read() def render(self): return self.content class JSONView(View): def __init__(self, obj): self.obj = obj def render(self): return json.dumps(self.obj)
The details of this are less important than understanding the pattern, which is:
- Fully specify the desired behavior of the complex system, by writing automated tests
- Rely on those tests to provide thorough feedback as you implement functionality
- Run these tests frequently during development, as it costs you no effort to do so, and immediately exposes bugs and holes in functionality
- Benefit from the test suite as you refactor the codebase, add significant new features, and otherwise make disruptive changes which threaten to break your program in unexpected ways
- In the end, you have created a rich and powerful program, with low stress, high confidence in its continued correctness, and little effort spent on tedious manual testing
This is why we say automated testing is a superpower. It simply puts you in a different tier.
That clears the way for your next 10X Pythonista skill:
Data Scalability
When processing large amounts of data, some programs are responsive, efficient, and rock-solid reliable.
Others hog the machine’s resources, randomly hang without warning, or even crash when you push too much data into them.
The difference comes down to space complexity. This is the area of algorithm analysis focused on effective usage of memory by programs. So your algorithm can process a large quantity of data, with a reasonable upper-bound that is independent of input size.
This matters because of how operating systems manage running programs. When a program creates a large data structure, it must request a block of virtual memory from the OS...
But the job of the OS is to allow all programs to run, and prevent any one program from starving the others of enough resources to run.
So the OS does not always give a program the full amount of memory it asks for. If a program asks for too much, the OS will instead “page to disk” - which means giving the program a block of pseudo-memory, written to and read from the persistent storage layer (the hard disk, SSD, etc.) instead of actual memory.
And when this happens...
It Shoves Your Performance Off A Cliff!
The sluggish I/O speeds of disk compared to memory reduce raw performance tremendously, typically between 75% and 90%.
That's right. It can literally make your program 10 times slower.
If a human is interacting with your program directly, they will experience it to ‘hang’ and appear stuck. In extreme cases, to ensure other programs have the resources they need, the operating system will kill your process completely.
Those skilled at writing big-data programs learn to code in memory-efficient ways, fitting in some reasonable memory footprint regardless of total data input size.
This is an essential skill for top performers. Big data is here to stay, for everyone; software processing more data than fits into memory is increasingly the norm, not the exception.
How do you accomplish this in Python? The key is a feature called generators. Many Python users have heard of this; you have probably seen the ‘yield’ keyword. But most do not know its depth, including:
- The coroutine model of generator functions, and its implications for algorithm design
- Generator design patterns, like fanning record streams in and out
- The Scalable Composability strategy for implementing robust, flexible internal data processing pipelines
This relates to first principles: of memory-efficient algorithms, which are independent of language; and of Python’s memory model, along with its generator feature. The language-level first principles form a bridge to the higher-level, language-independent first principles in Python programs. You need both.
Let's look at an example of when you need generator functions.
This Function Has A Problem:
# Read lines from a text file, choosing # those which contain a certain substring. # Returns a list of strings (the matching lines). def matching_lines_from_file(path, pattern): matching_lines = [] with open(path) as handle: for line in handle: if pattern in line: matching_lines.append(line.rstrip('\n')) return matching_lines
This returns a list of strings. It creates a new data structure - the list - whose size scales up in direct proportion to the size of the input.
If the text file is small, or few lines in the file match the pattern, this list will be small. But if the text file is large, with many matching lines, the memory allocated for the list becomes substantial.
The problem is this can easily cross the threshold where it must be paged to disk...
Plummeting Performance Of Your Entire Program!
Here is another approach:
# Generator function def matching_lines_from_file(path, pattern): with open(path) as handle: for line in handle: if pattern in line: yield line.rstrip('\n')
This is called a generator function, signaled by the ‘yield’ in its final line. And without going into details here, what this accomplishes is to...
Transform The Algorithm Completely.
Rather than a list of all matching lines, it is now producing them one at a time. Typically you are using the result in a “for” loop or something similar, where you only process one at a time anyway.
This means your memory footprint is now the size of the longest line in the file, rather than the total size of all matching lines! And this holds true no matter how large of an input file you feed it. Suddenly your algorithm is exponentially more memory efficient, with NONE of the problems plaguing the first version.
The best approach is to proactively infuse all your Python code with memory-efficient Python generator functions, as a standard practice when developing. This naturally makes your programs perform their best, regardless of hidden memory bottlenecks you missed, and regardless of unexpectedly large input sizes.
Of course, this is the foundation; we do not have time to go into the higher-level generator design patterns, or the important architectural principle I call Scalable Composability. Instead, it is time to move on to the next 10X Pythonista topic:
Metaprogramming.
Maybe you have heard this word before. But what does it even mean?
Think of it this way: Most Python code operates on data. Right? That's what we normally do.
And it turns out you can go "meta" here: instead of writing Python code that operates on data, you instead write Python code that operates on other Python code. And the output of that operation is what operates on data.
Or put another way:
(Code -> Code) -> Data
Instead Of
Code -> Data
This is what we mean by "metaprogramming". It is one of highest-leverage things you can do when creating software.
Coders who use metaprogramming unlock another level. They rapidly create tools and components that other developers could not create in a lifetime.
It is like the difference between riding a tricycle, and flying a jet. You not only "travel" faster; you go places you simply could not reach at all with the lessor vehicle.
You can find examples of metaprogramming in the source code of the most successful Python libraries: Django, Pandas, Flask, Twisted, Pytest, and more. It is no mistake that extremely powerful tools rely on metaprogramming.
As an example, imagine this function which makes an HTTP request to an API endpoint:
import requests def get_items(): return requests.get(API_URL + '/items')
Suppose the remote API has an intermittent bug, so that 1% of requests fail with an HTTP 500 error (which indicates an uncaught exception or similar error on the remote server). You realize that if you make the same request again, it has a 99% chance of succeeding. So you modify your get_items() function to retry up to 3 times:
def get_items(): MAX_TRIES = 3 for _ in range(MAX_TRIES): resp = requests.get(API_URL + '/items') if resp.status_code != 500: break return resp
However, your application does not have just this one function. It has many functions and methods which make requests to different endpoints of this API, all of which have the same problem. How can you capture the retry pattern in an easily reusable way?
The best way to do this in Python is with a metaprogramming tool called a decorator. The code for it looks like this:
def retry(func): def wrapper(*args, **kwargs): MAX_TRIES = 3 for _ in range(MAX_TRIES): resp = func(*args, **kwargs) if resp.status_code != 500: break return resp return wrapper
Then you can trivially apply it to the first function, and other functions like it, by simply typing @retry on the line before:
@retry def get_items(): return requests.get(API_URL + "/items/") @retry def get_item_detail(id): return requests.get(API_URL + f"/item-detail/{id}/")
Even better, the retry logic is fully encapsulated in the retry() function. You can raise the number of maximum retries, implement exponential backoff, or make any other changes you want in one place. All decorated functions and methods immediately reflect your updates.
Metaprogramming has another benefit. In many cases, you find that it allows you to...
Amplify Your Entire Team's Productivity!
The reason is that metaprogramming often allows you to implement solutions to complex and difficult problems in a way that people can easily reuse.
This retry() function - and the @retry decorator it implements - is somewhat advanced code. But your @retry tool is instantly usable by everyone on your team.
Your presence on the team has amplified everyone’s productivity and systematically improved the reliability of the entire application, in a way that everyone recognizes right away.
This sets the stage for the next 10X Pythonista level, called:
Synthesis
Much of your learning is bottom-up. You study specific topics in depth, with a period of intentional focus.
You do this for good reason: because it is efficient. You take each learning curve and snap it into manageable chunks, so you can solidly master that one topic, then build on it as you move on to the next. It's just smart to do it this way, focusing on one topic at a time.
But of course, real software isn't structured that way. In a real program, you constantly use all features of Python, all mixed together, all the time. It is smart to learn the building blocks first, but you also must learn how to compose them together.
There Is Another Factor:
Real software, made under deadline pressure with conflicting priorities, is never perfect.
You could of course make it perfect, by investing enough time and energy. But that is not what you do. In practice, you have many priorities, all of which are important, and all of which have deadlines.
The way skilled programmers manage this is by writing code which meets the requirements, to a ‘good enough’ standard of quality. And instead of investing additional hours refining it, you declare that task complete, and move on to one of your other tasks that were due yesterday.
How do you navigate this ‘good enough’ threshold? How do you make these decisions, these judgment calls, when you have so many competing (and sometimes conflicting) priorities? This is an important part of thriving as a technology professional.
As you build this 10X technical foundation, it's time to turn to a non-technical topic:
How To Promote Yourself.
After all, as important as technical skills are, it's simply not enough to secure best jobs with the best pay. Especially in the current market.
In order to reap the rewards, you must also learn to position yourself as an expert and a thought leader. And the easiest way to do is to create an open-source software project... but with a twist.
You see, the purpose is not based on what will be fun for you to code up. It will not even be based on what technology you want to learn.
Instead, its purpose is to be marketing asset. It is marketing YOU.
We call this special opensource project...
Your Artifact.
Your Artifact is a dynamic marketing asset which efficiently signals your elite status to the job market, and attracts the opportunities you want.
Every word of this matters:
- It is an asset. Meaning something you create, which generates more of what you want, as a side effect of its existence.
- It is a marketing asset. Its purpose is to market you. It is a tool for professional self-promotion.
- It is dynamic. As technology and the world evolves, you refine your Artifact to adapt to new job-market conditions.
- It signals your value. It demonstrates your expertise, communicates your skills, and broadcasts your value to the job market. As your goals change (and you learn to think bigger for yourself), you pivot the Artifact to signal differently.
- It signals efficiently. What your Artifact communicates about you is communicated immediately. It is instantly believed with little or no skepticism. Just like an author of a book is assumed to be an expert in that book’s topic, so your Artifact creates instant and powerful first impressions of you.
- It signals status. Your professional status, your industry reputation, and the esteem in which others at the top of your profession perceive you.
- It attracts the job opportunities, the professional relationships, and ultimately the career you are looking for.
Understand an important point:
Some Artifacts Are Better Than Others.
A well-chosen and well-executed Artifact will bring outsized impact for your invested time and energy. It can be tremendously effective at communicating your capabilities to your peers and potential employers.
Your Artifact can be
- A command-line tool, used by your peers to do their work
- A software library, used by your peers when they write code
- A web application, useful to people in your domain of technology
- It can also be a book, though that is much harder (speaking from experience). I recommend you do one of the above first.
Creating your Artifact does NOT need to be difficult, or require a lot of work. The notion that success can only come from extreme exertion is simply:
A Limiting Belief!
The career-boosting results of your Artifact are largely independent of the effort and time you put into it.
Also, your Artifact does NOT need to become "famous" to help you; none of mine ever were. It does not need to be something many people know about, like Pandas or Nginx or Docker.
What you want is to create an Artifact which is famous among the right people in your domain of technology - those who can help you attain your career goals. If it is unknown by others, then who cares.
The mere existence of this Artifact has a shocking effect: it makes people assume you are in the top tier, immediately and uncritically. Just as if you had written a book on the topic.
You can create this effect by actually writing a book. But speaking as someone who has done that, writing a book takes massive amounts of time - typically years. In contrast, you can often create the initial version of an Artifact in...
Just One Weekend!
At least, the first "minimum viable" version. That is enough to start influencing peers and strangers to see you in a completely different light.
Creating the right Artifact will change how you are perceived by your entire peer group. It does so more efficiently, immediately, and usefully than any other method. It simply requires the right strategy.
Which leads nicely to the next step:
Building Your Network.
By "network", I mean the human kind. Your network of professional peers.
This becomes a different kind of asset, if you do it right. And one which is increasingly fulfilling and valuable over time.
You might be surprised to know that your Artifact is critically important for building your network.
Of course you can build your network without that...
However, it will grow so much slower, and your network will not be as useful to you.
Without a solid Artifact, many individuals at the top of your profession simply will not give you the time of day. And even people at the "bottom" will not hurry to engage with you.
But when you have created a strong Artifact, backed by your 10X Python coding skills, your universe has a completely different vibe.
People you have looked up to for years reach out to talk with you. You find amazing people tracking you down on their own and engaging with you.
They tell other people about you and what you've done, naturally building your reputation for you, again without you having to lift a finger.
And when you ask for help - for example, when finding a new job...
They JUMP At The Chance To Help You.
And the most wonderful part: it cycles back on itself, in a positive feedback loop.
Those high performers in your expanding network rub off on you. By direct transmission from them, your engineering foundation will grow faster than ever before.
So you can create better assets faster. Which will continue to open even more doors for you, all the time.
This is when you learn to fly!
But you can't get there without doing all of these steps.
You can't realistically build a great network of great people, without creating Artifacts that work for you while you sleep.
And you can't build a great Artifact without a solid engineering foundation.
At this point, you may be asking yourself how to pull all this off.
Powerful Python Elite Bootcamp is for technology professionals who want to develop world-class software engineering skills and Python language expertise. It includes:
- Weekly group mentoring
- A community of other ambitious technology professionals
- A challenging and rich training curriculum for intermediate-to-advanced Python
- Extensive coding exercises throughout
- Multiple projects to demonstrate your skills and promote your professional status
It is designed for busy professionals who are working full time, and requires 5-10 hours per week, most of it on your own schedule.
The Elite Bootcamp’s broad structure is illustrated by this Flowchart:
Powerful Python Elite Bootcamp teaches you everything in this document, and more. Best of all, you are joining a community of skilled technology professionals, so you are learning together as a group.
What You Get
- The 26-Hour, 73-Lesson Technical Track With Over 50 Labs + Full Detailed Solutions
- Twice-Weekly Elite Group Mentoring Calls
- Professional Online Community
- Building Your Professional Network
- Creating Your Open-Source Project
- Elite Group Mentoring Full Archive (150+ hours)
What's In The Technical Track:
- Pythonic Object-Oriented Programming
- Test-Driven Python
- Scaling Python With Generators
- Higher-Order Python (Metaprogramming)
- Code Walkthroughs of Production Codebases
- Practical Engineering: Module organization, Command-line tools, Dependency Management and more
- BONUS: Building A Web Service project course
Questions And Answers
If you have a question not answered here, ask us by emailing service@powerfulpython.com.
- How much time does this take?
-
We recommend you invest 5-10 hours per week. This is on your own schedule, except when you attend the live Group Mentoring sessions.
Below 5 hours per week, it is hard to keep your momentum, and we recommend you wait until you have more time. More than 10 hours has diminishing returns; it actually works better if you pace it out more gradually, as that seems to help integrate what you learn into your long-term memory.
- How long does it take to complete the Elite Bootcamp?
-
Students who invest 5-10 hours per week typically complete the core technical training in 2-4 months. It may take longer, or less time, depending on your background and how much you prioritize your participation.
The fastest anyone has ever completed Elite has been 3 weeks. That individual was between jobs, quite intelligent, and extremely motivated. In general it is better to take a more gradual pace, but it is possible to progress quickly. On the other hand, sometimes students pause for a week or even a month or more because they get busy.
Once you have completed the core training, the process of creating your Artifacts and participating in the community can go on potentially forever. We have had students active in the Elite Bootcamp for many years.
- What are the minimum requirements?
-
This is not for people new to programming. At a minimum, you should be able to write simple Python programs using functions, dicts and lists, and execute them on the command line.
The best way to self-assess is to do the sample coding exercises. If you can do them without much trouble, you are qualified for Powerful Python Elite Bootcamp.
- What IDEs do you support? What operating systems?
-
PPB is designed for all Python-using technology professionals, who work in wide and diverse ways. As such, we fully support every IDE and editor and the three major OSes (MacOS, Windows, and Linux).
- Do you offer certification?
-
Yes, students earn a digital certificate of completion for each training module they complete. Note that you must have an active subscription to earn a new certifiate of completion; however, once earned, the digital certificate does not expire.
- When do the Group Mentoring sessions happen?
-
The current schedule is Tuesdays at 5pm Pacific, and Fridays at noon Pacific. These times will occasionally shift. Also, see the next question.
- What if I need help, but cannot attend the session live?
-
No problem. You can submit your question before the session, and we will answer it on detail during the call. After you watch the recording, if you have any follow-up questions, just ask and we'll help you sort it out.
- Are the Group Mentoring sessions recorded?
-
Yes, each session is recorded and made available to students. This is useful if you cannot attend live, or if you did attend but want to review what we discussed and screen shared.
The full archive is over 150 hours, and is filled with priceless insights and live coding demonstrations, for a wide range of practical, real-world topics in Python, software engineering, data science, and much more. It is arguably the most extensive repository of realistic and advanced discourse for python professionals in the world.
- I have another question.
-
We are happy to answer. Simply email us at service@powerfulpython.com and we will reply within the next business day.
Our Professional Students Work At These Companies
















What Our Alumni Say
-
Juan Arambula, Software Engineer
I tried other premium Python content, and they didn't go deep enough. I found they pretty much repeated each other. And when I tried Powerful Python, it was quite different. I was able to learn in a matter of weeks all I needed to learn about Python to use it proficiently, something that I feel would have taken me months to learn on my own. So I really recommend it to everybody.
-
Jeffrey Smart, Risk Manager & Software Engineer
I just had a round of interviews for a software engineering position, and I'd say about half of the programming examples were all but taken directly from Powerful Python materials. So when I would see these questions I really could hit the ground running.
-
Erik Engstrom, Embedded Systems Developer
Powerful Python's first principle approach was the primary thing that really attracted me to it. The idea of mastering is something that was very attractive and something that I wanted. And so it's been very valuable. And I would highly recommend it to anyone else. I really encourage you to consider it.
-
Anish Sharma, Software Architect
I always felt that I lacked a solid understanding of how Python worked and how I can work with it better... At the end of the day, [joining Powerful Python] is probably the best decision you have ever made. It's probably one of those secrets that most people don't share, but it's out now.
-
Best programming course I've Found. Period. For developing tangible advanced skills and best practices to be employed in all facets of development, it was worth every nickel and I'd buy it again in a heartbeat.
Chad Curkendall, Civil Engineering
-
Adrián Marcelo Pardini, Senior Software Engineer
You haven't seen this kind of dialogue or one-on-one questions with the teachers in other courses. It was something very good for me. I hope to see you here!
-
Ping Wu, Cloud Engineering & FinOps
I wanted to using Python for reusable code with clarity, so that the "future me" can benefit from it. I feel like a bunch of doors have been opened for me to conquer for the next level.
-
Rahul Mathur, Test Automation Engineer
It's not the language that is important. It's your thinking and how that thinking applies to the language. Powerful Python permanently embeds that into your brain, and that helps a lot for working professionals.
-
Gary Delp, System Engineering and Integration
I've tried using Stack Exchange and textbooks and that sort of thing, and that's sort of piecemeal. With Powerful Python, I start from first principles. I commend it to your attention and suggest that if you're serious about doing coding, you'll really benefit from it. Cheers!
Written Testimonials
-
I'm probably Powerful Python Bootcamp's biggest fan right now. I just finished telling my family how I've never learned so much in such a short time as I have through your program.
Initially, I was unsure about joining, but after starting the Bootcamp, I'm certain it was exactly what I needed. It was the right decision, and I'm truly your biggest advocate."Travis Lane, Data Engineer
-
Powerful Python really is the best way I've found to level up my Python skills beyond where they were already.
The course material demystifies things like testing and mocking, test-driven development, decorators and other things in simple but straightforward ways. Individually, the courses in the boot camp are priceless references, but I also found large benefit from the Slack and Zoom sessions.
You know, I've never been afraid to dig into the Python libraries that I'm using, find out how they work and what they're doing. But I've noticed that since completing the course, I'm able to dig a lot deeper and understand a lot more.
And not only that, but it's also extended to my own coding, where I can see a lot more of the project ahead of time before I'm even writing one line of code. How things should fit together and how to make my code more maintainable, more testable.
It's really been a great way to level up my Python, and I would certainly recommend Powerful Python to anyone at any level to help increase their Python skills.Marc Ritterbusch
-
This is an absolute master class in Python. You will simply not find another Python class that presents such advanced material in such an easy-to-grasp manner. The videos lectures are top notch, and the exercises do a phenomenal job of reinforcing the concepts taught. As a software architect with 20+ years of experience, I can tell you with absolute certainty that if you have a foundation in Python and are looking for one class to take your game to the next level, this is the class you should take.Eric Kramer, Boston, MA, USA
-
Highly recommended!
Thanks Powerful Python, I figured how to learn a complex programming language like Python from scratch. I developed enough courage to not get scared to open any of the source code of the Python modules other developers built, because now i am curious to understand and learn the patterns they used.
I also learned the importance of test driven development and am building my team at work and constantly pushing boundaries of my QA team to embrace the concept of test driven development. It's hard as hell, but immensely satisfying.
In the process of learning all the courses in Powerful Python I developed a mental capacity to imagine matured object oriented models regardless of the language (Python or Java) and I am able to easily abstract technical complexities and converse with functional and non tech savvy people in a manner they understand and grasp stuff easily.Santosh Kumar
-
I really enjoyed Powerful Python. The course is designed to take you from the beginner level to an intermediate and even advanced level in 3 months. Of course, the student must put the necessary effort to achieve such goals. I had some Python foundation before taking this course. However, Powerful Python taught me a lot more by diving deep into classes, test driven developments, generators, dependency management and especially guiding the programmer to write a complex program from scratch.Kiswendsida Abdel Nasser Tapso
-
This collection of Python courses are great! They skip the repetitive beginner stuff that every Python book has, and gets to the point quickly. He teaches you at a professional level, but it is still a very clear and understandable level. You will level up fast if you put in the work.
Powerful Python uses a fantastic "labs" format to get you to really practice and learn the content. He writes unit tests, and you write the code to make the tests pass. It's extremely effective and enjoyable.
I've learned a ton of production-worthy techniques. For example, the average Python tutorial will teach you how to read and use decorators. Powerful Python will get you to understand them, be able to write them, and then bend them to your absolute will to do amazing things!
Their coverage of generators has also transformed the way I work with geometry and graphics in Python.Chris Lesage, Montreal, Quebec Canada
-
A life changer.
I always wanted to know how Python developers were able to write such amazing and extensive libraries, but I couldn't find the right fit. Most material out there is either too broad (books) or too narrow (blog post). PP offered an opinionated approach to software development in Python, with lots of exercises and direct feedback from the Powerful Python instructor. In this case, opinionated is an excellent approach as it guides you to learn what matters to get your job done, without worrying about obscure methods or practices that are almost never used.
PP moved me from Python enthusiast to Pythonista!Rafael Pinto
-
The course for intermediate Python users. It's the exact course I needed to go beyond the basics of Python.
Material is presented in a digestible manner and the exercises help to solidify your understanding.George McIntire
-
Comprehensive, deep and highly structured. The Powerful Python (book and Bootcamp) is, as the name suggests, a powerful enabler for anyone seeking to 10x their Python development skills in a short time.
Given the plethora of courses on the subject, it might be tempting to improve skills incrementally by wading through blog posts, tutorials, and StackOverflow queries. These resources in fact are repetitive, unstructured, and can be overwhelming.
If you want to make fast progress towards your goals, have a systematic understanding of the language, and avoid wasting time by re-learning low-level concepts across various materials, Powerful Python is the surefire way to go. Soon you will find that you are incorporating advanced Python features and software engineering concepts in your own codebase.Asif Zubair
-
Take your Python skills to the next level. Powerful Python is a well structured approach to tackling intermediate and advanced Python and programming topics. I have gained a better grasp of object orient programming and approaches for implementing test driven development. The exercises and labs provide practical examples and allow you to observe your Python skills "leveling up" as you successfully complete each assignment. I highly recommend this course for anyone seeking to take their Python skills to the next level.Matt Geiser
-
NOT your typical boring 'Beginner' content - Powerful Python will take you to the next level.
If you're in that stage of your Python journey where you're beyond the ‘basics' and looking to take it to the next level, this is course for you. A while back I found myself in a rut where I wasn't making the leaps I was during the beginning of my Python quest. Luckily I decided to purchase the book ‘Powerful Python.' It was the best decision I could have made at the time. Within just a few weeks, I started incorporating advanced features into my code, in particular, decorators.
When it comes to decorators, there's some basic tutorials out there that can help but unlike those other tutorials, the Powerful Python book was able to explain them in such great detail and allow me to understand not only the ‘how', but just as importantly, the ‘why.' Furthermore, the examples he provides are not the typical unrealistic kinds I'd find in so many other tutorials; his examples helped solidify in my brain the purpose and true power of decorators. The main point is – I started writing my own decorators soon after that were able to solve several obstacles I was facing. Actions speak louder than words and the fact that I was able to utilize this feature after reading his book should speak volumes.
The other great decision I made was join Powerful Python. This is an extensive course which goes over many of the topics that never get mentioned in other tutorials such as test driven development and logging. I had never written a single test before joining PP! What's more scary is until joining the Powerful Python, I did not even comprehend or appreciate the concept of writing tests for my code. Powerful Python provides the content in such a way that you truly appreciate the ‘why' while still learning the ‘how.'
One of the best features are the workshop labs. This is where your brain actually begins to grasp the topic presented. The labs are set up in a way that allows you to truly test your understanding of the various concepts presented in the course. Furthermore, many of the lab solutions (which are provided) include powerful and downright impressive algorithms. I would spend hours simply re-typing the algorithms used in the solutions in order to make myself become a better programmer.
Long story short – there are unlimited amounts of Python “beginner” courses and tutorials out there. However, there is a huge shortage in “intermediate/advanced” content. If you are one of those people like me that gets bored quickly and needs that new challenge to take things to the next level, then Powerful Python is the perfect choice.Liam
-
A great resource for taking your Python skills to the next level.
I've only been able to work through the Pythonic Object-Oriented Programming course so far, but I love the video lessons, explanations and maybe, most of all, the exercises and challenges at the end of the lessons in the form of scenarios and tests. It's an absolutely brilliant idea and approach. I loved every minute I spent working through them. It gave me bite-sized, realistic and fun challenges to apply what I'd just learned.
It's changed the way I think about classes, objects and OO and how I can use them and apply it to my own code. And improve old code I've already written when I revisit it.
I'm looking forward to working through the additional courses and topics. I know the other courses are structured the same way and aimed at intermediate to advanced Python skills and what I need to understand about them to make sure I grasp the important Python concepts correctly... so I can move myself and my skills to the next level.Nathan J
-
Powerful Python is really power to you. The instructors explain Python so that it becomes second nature for you. Everything can be applied immediately and the concepts are explained thoroughly. The support is amazing and the PP instructors are always there to help.
The contents are broad and they are taken apart to be digested and put them back later together in a seamless way through the labs, which are a great resource for anyone wanting to apply the knowledge.
I have put TDD to work since the moment I learned it and it has made me realize how to construct software, so in essence, it has helped me a nonprogrammer, start thinking like one.
I totally recommend anyone reading this to take this opportunity and become fluent in Python once and for all.Juan José Expósito González
Pythonic OOP
-
This class is an excellent introduction to the theory and practice of object oriented programming. You will learn how these concepts can be quickly and cleanly implemented in Python. The lectures and labs are clear and to the point - EXCELLENT instructor.Mike Clapper, Oklahoma, USA
-
I'm going to use what I have learned from this course right away. I have a current application and an older one that I have been nursing through my entire Python life that I will remake and refactor.Tipton Cole, Austin, Texas, USA
-
I liked the course very much. Expect to kickstart your OOP journey ahead of an average beginner. Final verdict: recommended.Konstantin Baikov, Nuremberg , Germany
-
Right from the start of teaching myself Python, I was wishing for some learning material that was more like mentoring and less like instructions. For me, Pythonic Object-Oriented Programming is just that.Bryan Stutts, Greenwood Village, Colorado, USA
-
This course is by far the most exhaustive OOP course in Python I've taken... If you're interested in learning about OOP in Python, and even if you think you know everything there is, I highly recommend taking this course.Hana Khan, Santa Clara, California, USA
-
The course is a great introduction to object-oriented programming in Python. I was pleased with your emphasis on the Single Responsibility Principle and Liskov Substitution Principles - adherence to these two guiding principles definitely leads to more robust, testable solutions... There is a need for this course out there.Michael Moch, Sachse, Texas, USA
-
Previous Python courses I took teach OOP in a 1 dimensional way... the truth is, in Python you are free to do OOP the way you like. The instructor teaches you this freedom while also teaching you to be responsible about it.Hassen Ben Tanfous, Hammam Chott, Tunisia
-
You have assembled a really interesting, in-depth and useful course with what I now know to be your trademark qualities of enthusiasm, attention to detail, clarity and erudition.Tony Holdroyd, Gravesend, United Kingdom
-
I felt this course is much needed to really understand the power of Python as an object oriented programming language. I read a lot about Python but didn't find any such course where you learn some really interesting concepts with such ease.Kapil Gupta, New Delhi, India
-
This course is awesome! The instructor has the unique ability to make abstract (and difficult) concepts so understandable... I highly recommend this course to anyone who wants to not only use OOP, but also to understand what goes on under the hood and makes a powerful Python pattern.John Tekdek, Milton Keynes, England
-
These labs are one of the best learning experiences I've ever encountered for programming. Other courses and books feel like parroting or copying code. The instructor gives you creative space to practice developing and problem solving.Chris Lesage, Montreal, Quebec Canada
-
Even the structure of the labs provided helps me to see better what it is to be "thinking like a programmer".Bryan Stutts, Greenwood Village, Colorado, USA
-
The lectures and labs are clear and to the point - EXCELLENT instructor.Mike Clapper, Norman, Oklahoma, USA
-
Your dataclasses video was AWESOME, and I'm saying that after watching Raymond Hettinger's video on dataclasses.Konstantin Baikov, Nuremberg, Germany
-
This course is by far the most exhaustive OOP course in Python I've taken... If you're interested in learning about OOP in Python, and even if you think you know everything there is, I highly recommend taking this course.Hana Khan, Santa Clara, California, USA
-
Final verdict: recommended.Konstantin Baikov, Nuremberg, Germany
Test-Driven Python
-
This is a GREAT course. The videos are well-paced, clear and concise, and yet thorough in the material they cover.Michael Moch, Texas, USA
-
After you take this course, you'll be confidently doing test-driven development like a pro!Hana Khan, California, USA
-
I just completed the full course and it's awesome... I wish you'll continue doing such courses and help us increasing our Python knowledge.Kapil Gupta, Delhi, India
-
You will gain valuable new skills that will demonstrably lighten the load, and relieve unnecessary burden from your programming process. Improve your mental state and get healthy with Test-Driven Python.Bryan Stutts, Colorado, USA
-
As with all courses from Powerful Python, it clearly sets the problem you are solving and guides you step by step to your first "Aha" moments. The videos are detailed and in-depth enough to warrant a second re-watch after you have the main concepts settled.Konstantin Baikov, Nuernberg, Germany
-
Another thumbs-up! For some time, I was looking for resources useful for people like me, wishing to learn more about Python and not the basics over and over. Teachers like you are a big BIG blessing. THANKS!Javier Novoak, Mexico City
-
The course progression is clean, there isn't any long stretches or missing concepts. Compact and universally applicable concepts, most likely the only Python TDD course and reference you'll need for years.Hassen Ben Tanfous, Tunisia
-
This course covers a lot of ground, not only explaining mechanics and techniques of test driven development... but also delving into strategies.Tipton Cole, Texas, USA
-
This is a very well presented and structured course on unit testing and test-driven development. The instructor goes to great lengths... His obvious enthusiasm and passion is both infectious, and motivating. The practical coding exercises are well written.Tony Holdroyd, Gravesend, UK
-
It's one of the finest courses... covering from the basics, and ensuring you get a full professional hand on having fully tested Python code. The lesson on mocking is WONDERFUL.Kapil Gupta, Delhi, India
-
It's clear that the instructor is passionate... This course thoroughly covers the pros and cons and appropriate use cases for various types of tests so you know exactly when to use what type of test for your code...
Most of all, this course helped me unlock some very powerful abilities of Python that I didn't even know about. After you take this course, you'll be confidently doing test-driven development like a pro!Hana Khan, California, USA -
As someone who has used and practiced TDD for years, I highly recommend it to anyone starting down the road to TDD mastery. If you're experienced developer familiar with nUnit testing but adopting Python as your new language, I also recommend this course.Michael Moch, Texas, USA
-
The smooth presentation and progressive exercises helped to cement these concepts for me... The functionality around decorators is particularly well presented - taking one from basic to advanced usage.Asif Zubair, Memphis
-
Once again, Thank you for giving me a superpower :) Unit testing gives me the discipline to write code, and the reward I am getting is highly valuable. All of the course is greatly structured... Labs are designed perfectly.Shankar Jha, Bangalore, India
-
The course is excellent value for money, especially with the bonuses. Recommended.Tony Holdroyd, Gravesend, UK.
Scaling Python With Generators
-
The instructor does an excellent job of explaining this compelling and often confusing feature of Python. The leisurely pace of the course makes it easy to follow. I now feel confident in using generators to scale my code. Thanks!John Tekdek, Milton Keynes, England
-
I am completely amazed by the coroutine concept. I did not read ANYTHING like this about generators ANYWHERE ELSE!Shankar Jha, Bangalore, India
-
An EXCELLENT course... explaining a variety of concepts and techniques, including the concepts and uses of coroutines, iterators and comprehensions. Thoroughly recommended!Tony Holdroyd, Gravesend, UK
-
Another excellent Python class from an excellent instructor.Mike Clapper, Oklahoma, USA
-
The course went deep into Python GEMS... Every time I go over a course by this instructor, I learn a lot. Which very much helps me in my day to day Python development.Kapil Gupta, Gurgaon, India
-
This wonderful course... Greatly structured... Good for advanced programmers who want to level up their skills.Shankar Jha, Bangalore, India
-
Clearly illustrates concepts in Python scalability... Clear lectures, meaningful lab exercises... students will gain invaluable insight into Python internals.Mike Clapper, Oklahoma, USA
-
Once again, Thank you for making me a seasoned Python developer :)Shankar Jha, Bangalore, India
-
The course is excellent value for money, especially with the bonuses. Recommended.Tony Holdroyd, Gravesend, UK.
Next-Level Python
-
This course was the f*cking best training I have ever taken. You rock.Abdul Salam, Lahore
-
Next-Level-Python provides you an opportunity to learn at a deep level...
The [top secret] section is a great example of not just being taught to use a tool, but is used by this amazing teacher to further my understanding of the way Python ITSELF is designed...Bryan Stutts, Colorado, USA -
I took your other courses also. But personally, I think this one is one of the best video lectures I have ever seen in terms of video as well as in the coding exercises....
All modules are structured properly and the way you break down each and every topic was very good...
It's a great course and you are really providing the rare content which is more focused on becoming a great developer. Thank you for making me a seasoned Python developer :)Shankar Jha, Bangalore -
This course bootstraps a programmer with a good general knowledge of Python to a higher level of understanding, appreciation, and skill.
The instructor is a methodical, erudite, patient and highly focused teacher who goes to great lengths to explicate and get into all the nooks and crannies of his subject matter.
By the end of the course, if followed assiduously, you will certainly have raised your Python game.
By the end (assuming you have completed all the labs) you will certainly find yourself far more knowledgeable about Python.
This course is excellent value, and highly recommended.Tony Holdroyd, Gravesend, UK -
Final verdict: recommended.Konstantin Baikov, Nuremberg, Germany
The Powerful Python Book
-
Tim Rand, Chicago, IL, USA, Director of Data Analytics
I'd like to review Powerful Python. It's a very well written, concise, focused book that will improve intermediate to advanced Python users' abilities. I learned how to code on my own in grad school, to analyze my own data. And along the way I started to realize that there were some holes in my understanding of topics like generators, iterators, decorators, magic methods. And around that time, I encountered Powerful Python. And I was impressed by how much overlap there was between the topics covered in the book and the topics that I was already interested in learning more about. After reading the book, I feel a lot more confident in my understanding of those topics. And just as an example, I was able to find functionality that was missing in an an open source project. And open the source code, read through it, understand what was going on. Leverage testing, logging, and debugging in order to add more code, more functionality to the project. And it's a very fun feeling to be able to be able to take on something complex like that. Going into someone else's fairly large code repo, break it down, focus on the right areas, understand the way that they're using their classes and built on top of what's already there. I think that's a lot more challenging at least for me than writing code from scratch in a like, clean slate environment where you can just do whatever you want. I owe a lot of that success, that understanding to Powerful Python. And the topics that I learn more about from that book. -
Josh Dingus, Fort Wayne, USA, Programmer/Analyst
Hi everyone. I'm Josh. I'm here to share my experience with the amazing book called Powerful Python. This book is packed with valuable insights, tips and tricks that have really taken my Python programming skills to the next level. One of the things I'm most excited about is the way Powerful Python goes beyond the basics to teach advanced programming techniques. It covers topics like decorators, context managers, and list comprehensions, in a way that's easy to understand... Even if you're new to Python. It also taught me how to write cleaner, more efficient code by using Python's built-in functions and libraries. No longer reinventing the wheel, or spending hours debugging messy code. The author uses real-world examples, practical exercises, and step-by-step guidance to make even the most complex topics easy to grasp. Plus the conversational writing style makes it feel like you're learning from a friend rather than a boring textbook. I also appreciate that the book is organized in a way that lets you jump to specific topics, or read it cover to cover. This flexibility allowed me to tailor my learning experience to my own needs and interests. Since reading Powerful Python, I've seen some impressive results in my programming projects. My code is cleaner, more efficient, and easier to maintain - which has saved me time and frustration of debugging poorly written code. I've also found myself tackling more complex projects with confidence, knowing that I have the tools and techniques that I need to succeed. All in all, this book has truly helped me level up my Python coding game. If you're on the fence about reading Powerful Python, let me tell you it is worth it. Whether you're a beginner looking into deepen your understanding, or an experienced programmer seeking to sharpen your skills. This book has something for everyone. In a world where Python is becoming increasingly important, investing in your programming skills with Powerful Python is a smart choice. Trust me, your future self will thank you. -
Gil Ben-David, Bat-Yam, Israel, Data Scientist
Hey. My name is Gil. And I'm talking to you about how reading Powerful Python has boosted my career. First of all, I'd like to tell you that I'm a developer for several years with a background of C, C++, and .NET. And when I started to learn Python, it was super fluent and really easy. great for scripting and just open with a server. And I really thought that I know everything to know about the language. But after I read the Powerful Python book, I really changed my mind. And I realized that there's so much to learn. And the book really give you the most super cool concepts that change Python than other languages, basically. And what was amazing in the book was beside their super cool concepts like generators, decorators, and even teach you the most basic thing. Like how to write this properly, and how even to log. How to logging. it was really amazing. And of course the writing was super fluent, clear, and concise. And I really recommend you to to open it. Either you are a beginner or a intermediate, or a professional Python developer, I'm sure everybody has something to learn from this book. And I'll tell you after I ended the book and start to implement its concepts in my day to day work, first of all I got promoted after a couple of months. And I really like saw that my code was much, much better. More organized and I got really more confident about coding. My team saw it, my manager saw it. And I got promoted from that. And now when I look at my old Python script, I get cringe. nd it's really a nice feeling to know how much I boosted from this book. And so if you're on the fence... You don't know, not sure if you want to read it, or try something else, I really recommend you. You'll FOR SURE get something good from the book that will really excel your abilities. -
David Izada Rodriguez, Senior Software Engineer, Florida, USA
Hello. I would like to speak about the book Powerful Python. Our company, a private company, is interested in creating courses for data science. And we decided ot try to teach only the basic Python required for explaining the foundations of the designs, and leave all the deep knowledge about Python to other courses. And when we were involved writing what to indicate to our students, we found about this book, Powerful Python I really like the book. Mainly about the iterators, decorators, test-driven development, logging and environments. Virtual environments. Missing is we have had a lot of courses, some of them use a specific packages. And sometimes, they are not compatible with the latest version of Python. While in other cases, you can use any version, so all of these is interesting. It was interesting for us, as developers. Because we provide libraries for our customers. But we just put in our page page that they should go to Powerful Python to acquire that book and take care of learning why we did what we did in that implementation. Maybe in the future, we will do something between what we are offering now and what is Powerful Python. We don't want to repeat all that job is really wonderful, but our customer just need the information to understand data science. So all these details are more for developers. Professional developers than student of data science. I'm really grateful that I discovered this package. Thank you! -
Gary Delp, Principal Engineer, Rochester MN, USA
Hi, I'm Gary Delp. Just a simple engineer from Minnesota. And I'd like to talk to you about something that has changed the way I think about code. And you know, I've been thinking about code for six decades or more. It's the book Powerful Python. It gives you... It guides you into thinking about coding and data and solving problems from a different point of view. One thing is that it's a short book. It doesn't have all of the details. You can go to docs.python.com - er, .org - and get right to the actual production code. And you can look in details and find out about that. But the author has curated a set of topics, that lead you into discovering for yourself. And when you discover things for yourself, you learn them; you know them; and you can use them. so some of the things are comprehensions, which is a way to clearly and easily structure new data streams. And because there are iterators in there, the code doesn't have to run unless you're going to use the data. Because the iterator takes it all the way back to the start. And you don't have to do it. A big deal about what Powerful Python teaches you, is how to stand on the shoulders of those who have gone before. Using decorators, using the libraries, understanding how they go together for just long enough to internalize how to use them. So. I really want to commend Powerful Python to your consideration. But Only if you're gonna take the book and use it as a guide to take you through improvements. To take you through mind changing paradigms. It's just wonderful. So it's not just what's in the book Powerful Python, but it's the way that it's presented that makes it particularly valuable. So if you want to decorate your life, improve your life, get the book. Use the book. Become changed, and it sounds like i'm overselling it here. .. But It works. It works. So fair winds, and a following sea. -
Nitin Gupta, Nashville, USA, Data Engineer
Hi, this is Nitin Gupta. And today I'm going to talk about my Python learning, you know journey. And what was my experience, what all the challenges I went through. And how I like, you know, tried to overcome those challenges. So just a quick background on my side, so I'm a like a SQL and like a data-side legacy sequel and are like a data guy. Mostly working on SQL Server and then, you know on the ETL tools. Various ETL tools. And certainly like you know because of those cloud adoption and digital transformation. I was moved to another project, so initially part was on SQL Server. But like and most of the things were like on the Python, and some - Those processing and like building the data pipelines and all those things. So as a lead guy for that project, I had to like you know go and get more insight on mastering into the Python. And since it was new for me and with like, you know, complex project I was facing lot of challenges and difficulty. So I started looking around a lot of stuff, to just get a good insight into the Python and started looking at the stuff around the internet. And then subscribed for some of them, online learning courses like Udemy and other courses. And that give just an initial or whatever you think. But I would say like know for my project requirement or like you know, more like a practical "use it" perspective, it still there was not sufficient and I was still missing something. And for that purpose, I started looking some more you know and searching around like of what I can use. And in that such I found like Powerful Python. And I subscribe to the book. Powerful Python book. And I went through it, the different courses and different chapters. And it was - I was surprised that it has helped me a lot. Mainly like, you know, some of the core concept and then into the object oriented and advanced Python concept like generator functions and like a decorater and other stuff. And the more I started looking into it, I was getting on more like you know a new insight, in-depth knowledge into the Python thing. And how I can use it. So more like a practical oriented from the application side. I was getting you know a good insight or help from that material. And I really appreciate and thank to have Powerful Python for you know sharing those content and making, you know, my journey so easy and smooth. Because some of the folks who are just new to the Python, and they have to work on a project, which is practical project. Getting yourself comfortable and getting that level of mastering or comfort on the skill, is very difficult unless you have the right tool or right material. And I think in that sense, Powerful Python has helped me a lot. And I still follow whatever their courses, boot camps, or any materials what is available from Powerful Python and whenever anything new, webinars, and I subscribe and follow those materials. They help me a lot in my learning. And you know becoming a better powerful - and, you know, a better developer on Powerful Python. Thank you. -
Johnny Miller, Laramie, Wyoming, USA, Business Owner
Hi my name's Johnny. And I was I am from Wyoming. I run a handyman business, and I'm a self taught programmer. Still new in it. I'm working on building a flask app for just like simple employee time sheets and stuff. As well as basic understanding of web sites and that sort of stuff, for doing my own future web sites as I go. I just became - I just got done with my bachelor's degree in accounting, and that's the career I'm pursuing now. And in all this, programming has just a bunch of advantages for me that I can see. And I've done a bunch of different things out there. But I purchased the Powerful Python book. And it's really helped me too "get" a bunch of these ideas that I've read, and practice things in other places to really cement as I read through the book, before and after I've done these. I have it on my phone, have it on my two different computers, and it's just a great resource for me. And I don't remember - I've had it for while now, so I don't remember what I paid, but I have been very happy with it. And it's just been an asset that I use over and over. And I would definitely recommend it to people. Having the digital copy is great, and the resources that I've received from Powerful Python have been really good at breaking it down. Being intuitive, and helping me like I said get that - a better understanding every time I read through it, especially after projects I've been working on, and just kind of follow and in figuring out not quite knowing what's going on underneath the surface. Which I feel that that's what it's helped me to do. So, I would definitely recommend. I'm very happy and I continue to follow the stuff that's put out by them. And I just wanted to say those few things. Thank you. -
Michael Lesselyoung, Madison, South Dakota, USA, Owner of CSI (Computer Systems Integration)
If you're tired of searching books, videos, courses, and endlessly starting with "hello world" examples, or skipping over chapters just to find some nuggets... Powerful Python is what you've been missing. Read the book and learn REAL programming skills that you won't get anywhere else. If you code the examples in the book, you'll get an understanding of Python that others seek out for for years to obtain. And some never reach that level. The explanations for the examples are not only thorough, but also tell you what not to do, and why. I've never found an error and any of the examples. They've all been tested and work as described. So you're not your wasting your time trying to figure out what went wrong, or why something doesn't work. Powerful Python has the ability to give you deep understanding that not only gives you all the tools to be able to utilize the power of Python, but the psychological methods of learning that makes learning Python successful and build long lasting principles. I highly recommend the Powerful Python book. -
Todd Rutherford, Sacramento, CA, USA, Data Engineer
I would like to speak about Powerful Python, and a way - how it has changed my outlook and my thinking on when I approach certain programming issues. Especially when being as a data engineer, moving data around the using different type of decorators, exception handling, and errors that I come across using Powerful Python allowed me to really demonstrate that skillset, and understanding how powerful Python can actually be. And the book actually having examples and walk-throughs as well, and just the understanding of what other functions are out there that can be utilized. What other techniques that are out there that you may not get in the normal organization or developer or engineering role. And Powerful Python allowed me to really scale my coding and in a way that has made my life a lot more easier. And my day to day work allows me to automate my life a lot easier. Understanding you know classes and objects beyond just the basics. I've taking classes in Python, doing like data science, I've read books from Springer on data structures and algorithms. And that has never come as close to where I was able to fully understand... Just with generators alone has been allowing me to really be able to scale. And my code and my programs are now where I'm able to process data in larger amounts other than breaking everything down. And really using like sharding techniques, able to create a lot of collections. Comprehensions. List comprehensions. A lot more easier. Multiple sources and filters comprehension. And I think you can't go wrong for Powerful Python. As any other program or course that's out there, because it allows you to really change your way of thinking. In your mind thinking. And that so - that's where you want to be. And that's where I wanted to be as a programmer. It was really just getting to my - getting a senior level thinking, ea senior level developer's thinking, and how to efficiently write Python. I think you can't go wrong. It's great. It's comprehensive. It's not a whole lot - it's not a five hundred page book. it's not a seven hundred page book. I recommend Powerful Python for sure. I recommend also doing any of the training courses as well, because the coding examples that you get, the solutions, walk-throughs as you'll see, and you'll just see a new level of interest grow. Instead of just being an introductory level of Python, you get into more an advanced level of Python. Which you want to be. You want to be able to write your own programs, your modules, be able to debug your own code, and be able to be to a staff level engineer. And that's what one one on my biggest goals was to be a staff engineer, and moved more into machine learning. And engineering as well. And AI.
-
Your book is absolutely amazing and your ability to articulate clear explanations for advanced concepts is unlike any I have ever seen in any Programming book. Thanks again for writing such a good and thought provoking book.Armando Someillan
-
Your book is a must have and must read for every Python developer.Jorge Carlos Franco, Italy
-
Feels like Neo learning jujitsu in the Matrix.John Beauford
-
Powerful Python is already helping me get huge optimization gains. When's the next edition coming out?Timothy Dobbins
-
It's direct. Goes right for a couple of subjects that have real-world relevance.Chuck Staples, Maine, USA
-
A lot of advanced and useful Python features condensed in a single book.Giampaolo Mancini, Italy
-
I just wanted to let you know what an excellent book this is. I'm a self taught developer and after having done badly at some interviews I decided to buy your book. It covers so many of the interview questions I'd got wrong previously... I keep going back to your book to learn python. I've actually recommended it as an interview guide to some of my friends.Fahad Qazi, London, UK
-
Thanks. Keep up the good work. Your chapter on decorators is the best I have seen on that topic.Leon Tietz, Minnesota, USA
-
What have I found good and valuable about the book so far? Everything honestly. The clear explanations, solid code examples have really helped me advance as a Python coder. Thank you! It has really helped me grasp some advanced concepts that I felt were beyond my abilities.Nick S., Colorado, USA
-
Only a couple chapters in so far but already loving the book. Generators are a game changer.Ben Randerson, Aberdeen, UK
-
I'm finding your book very insightful and useful and am very much looking forward to the 3rd edition. I'm one of those who struggled with decorators prior to reading your book, but I have greatly benefited from your rich examples and your extremely clear explanations. Yours is one of the few books I keep on my desk.I'm finding your book very insightful and useful... I have greatly benefited from your rich examples and your extremely clear explanations. Yours is one of the few books I keep on my desk.Tony Holdroyd, Gravesend, UK
-
LOVING Powerful Python so far, BTW. I started teaching myself Python a while ago and I totally dug the concept of generators. It reminded me of Unix pipes -- I started using Unix in the 70's -- and the generators basically let you construct "pipelines" of functions. Very cool, much better way to express the concept, awesome for scalability. But I was a bit hazy on some of the details. PP clarified that for me, and several other features too. And I'm only up to chapter 3. :-)Gary Fritz, Fort Collins, CO, USA.
-
Thank you for your book. It is packed with great information, and even better that information is presented in an easy to understand manner. It took approximately a month to read from cover to cover, and I have already begun implementing the vast majority of the subjects you covered! I gave your book five stars.Jon Macpherson
-
This is among the best books available for taking your Python skills to the next level. I have read many books on Python programming in a quest to find intermediate level instruction. I feel there are very few books which offer the sort of insights needed to really improve skills. This is one of the few I can highly recommend for those who are struggling to achieve intermediate skill in Python. The author clearly has a mastery of the topic and has an ability to convey it in and understandable way.Darrell Fee, USA
-
Just what I needed. Very much applicable to where I'm at with Python today and taking my coding to the next level. I got a ton of insight with this book. It really brought to light how magic methods can be used to develop things like Pandas. It opened my eyes to how awesome decorators can be! The classes section, logging, and testing were awesome. I need to go back over the book again and work thru some of the techniques that are talked about so I can get used to using them every day. I currently do a lot of implementation work with data and SQL Server. Anything outside of SQL that I do, I do in Python. A problem for me has been that I get so many odd type jobs that my code is pretty spread out across a broad range of functionality. I've been wanting to stream line it, and write my code in a way that it can scale up. At my job, I'm writing, testing, implementing, and maintaining my own Python code. I don't get code reviews, and so it's hard to know if I'm writing good code or not cause I'm not getting that critique from my betters. I think you have definitely given me some broad ideas on being able to scale, and some things that I should strive for in my code.Josiah Allen, USA
-
This book taught me a great deal and was enjoyable to read. I have been developing with Python for 5-6 years and considered myself well versed in the language. This book taught me a great deal and was enjoyable to read. The complex patterns are explained well with enough detail to understand but not too much to confuse the reader. After having the book for one day I recommended it to my team and will make it required reading for our interns and junior devs. Note: I purchased this book and did not receive anything for this review.Aaron (not the author), USA
-
Great Book. By far one of the best books out there. No nonsense, just great information.Edward Finstein, United States
-
Great coverage not offered in other books.Tony, United States
-
Amazing work! I wish all technical books could be this good. As an instructor and researcher, I read dozens a year and this is pure platinum. Thanks, Aaron!Adam Breindel, United States
-
Truly next-level Python. Concise to the point and practical. Will take your python to the next level.Amado, United States
-
Great Python book. One of my favorite Python books that show great examples on using the language effectively.Bryant Biggs, United States
-
Great book. A lot of great tips for those beyond a beginner.Jeff Schafer, United States
-
Five Stars. Awesome book, helpful in moving beyond basic coding.Mark Vallarino, USA
-
Instant productivity gains. These are the best pages you will find on Python if you're an experienced programmer looking to make a leap in your python skills. The entire book takes only a few days to read, and it's very enjoyable. I'm already seeing the rewards in my code as I have shifted from writing simple scripts with 1-2 normal functions to writing a unit-tested class which creates its own decorated functions at runtime (data-driven), overloads operators, and properly handles and throws exceptions. Nowhere else have I found so many of python's unique features explained so clearly and succinctly as I have in Powerful Python.Carolyn R., USA
-
A great attribute of this book are the practical examples. I've been programming with Python for about 1.5 years and this book is right up my alley. A great attribute of this book are the practical examples, and comments on Python 2 vs 3 syntax changes. Aaron describes things in great detail so implementing his ideas is very natural.Mike Shumko, USA
-
Great book, great lecturer. Took a session with Aaron as OSCON recently - very hands on, great instructor. He handed out his book to all of us - it has a lot of useful examples and gives some great tips on how to refine your Python skills and bring your coding to the next level. If you want to move from beginner python and go to intermediate/advanced topics, this book is perfect for you.Gary Colello, USA
-
This book has a lot of useful examples and gives some great tips on how to refine your Python skills and bring your coding to the next level. If you want to move from beginner Python and go to intermediate/advanced topics, this book is perfect for you.Anonymous reviewer
-
Takes your Python coding skills from average to awesome. This man knows what he's doing. I have been reading his online stuff and have taken classes with him. And now this book. OH, THIS BOOK! He makes quick work of some advanced and esoteric topics. If you want to be a Python programmer a cut above everyone else, and ace the tough topics in interviews, this is the one for you.Hugh Reader, USA
-
Five Stars. I've studied this deeply, the author has been a big contributor to my lifetime development in software engineering.Refun, USA
-
Take your Python skills to the next level. Looking to go beyond the basics, to broaden and deepen your Python skills? This is the book for you. Highly recommended!Michael Herman, USA
-
Move to this book if you already master the basics. There are very few books that can bridge the gap between basics and advanced level and this is one of them. If you already feel comfortable with lists, dictionaries and all the basics, this book will take you to the next level. However, I would recommend reading this book AND using your python interpreter to repeat all the examples in the book and lastly make some notes like writing down a code snippet so you can always remember and don't need to read it all over again.Rodrigo Albuquerque, UK
-
I think it's a pretty fine book.Chip Warden, Kansas City, USA
-
If you have enough basics of Python, this should be you next read. This is really good for intermediate Python programmers, who have mastered the basics and are looking for new ideas on various new modules and features out in Python. Also the author explains few gotchas and secrets from the woods to make you a sound Python pro.Andrew, UK
-
Excellent book. A great book that will help in real world production-level programming. I found the explanation of some complex topics very easy to understand. An example of this are the chapters on decorators and testing. I would recommend this book to anybody who already knows Python and wants to take it to the next level. While they are other books in the market that have more detail, the selling point of this book is that it is simple yet highly effective. The author shares a lot of best practices used in the real world which I've noticed that a lot of books leave out.Raul, Canada
-
Advanced Python! Great book, Python finally explained in an advanced and in-depth way, is not suitable for beginners. You need to have some basics.Alex, Italy
-
Five Stars. This is really good book.Marcin Adamowicz, UK
-
Great book. Warmly recommended to all Pythonistas.Giovanni, UK
-
This book is exactly what I'm looking for. I found a few code examples on my Facebook page yesterday and it fires up my passion to code immediately. Today, I browsed the chapter index and just finished reading "Advanced Functions". It's exactly what I need. It skips the basic syntax and focuses on the areas where separate top developers from the rest. In fact, there aren't many topics in these core areas. However, this book will help both engineers and EMs think in Python cleverly when attacking all kinds of DevOps problems.Shan Jing, Los Angeles, CA