[Python Dependency Pitfalls] Artisanal "from-scratch" development

Hey there,

The other day I got this question from Newsletter member Newvick in my email inbox:

~~~

I'm trying to get past the beginner's stage in Python and one problem I have is:

When do you use libraries/frameworks and when do you make things from scratch? (whether for learning or developing something for a client/work)

~~~

When to code functionality from scratch and when to use libraries, that's an important question.

There's a fine balance you need to strike here:

When I learned how to program I was "reinventing wheels" left and right—and it pushed my abilities forward quickly.

I was constantly writing all kinds of existing functionality from scratch and it was the right thing to do because it helped me grow my skills.

It was a great learning exercise.

But there comes a time in a developer's life when that strategy doesn't work so well any more:

Eventually I found that I wasn't learning as quickly anymore trying to build everything from scratch.

Plus my development pace was dog-slow.

I was spinning my wheels—and my productivity began to plateau.

Another downside is this:

It's difficult to work on a team when someone always wants to approach every single problem from first principles. It can drive coworkers and managers NUTS.

These days I try to use (good quality + well-documented!) third-party libraries where possible.

But again, you'll want to find a balance there:

For example, any professional chef worth their salt needs to learn how to make mayonnaise from scratch.

But eventually they'll know how to prepare it—and what great quality looks like.

From this point on buying pre-made mayo off the shelf can be a huge time saver:

In some dishes it simply WON'T make a difference on the end result.

It just *takes longer* to make everything from scratch…

Bringing it back to Python dependency management, here's my general rule of thumb:

"Only consider 'write from scratch' if time is NOT an issue. Otherwise use 3rd-party libraries and frameworks—but don't overdo it and only go for the trustworthy ones."

(Remember, you'll want to avoid another "left-pad" incident.)

Sometimes it's just tough as nails to strike the right balance here…and there's so much more to talk about on this topic.

If you want to dig deep and see how to make the leap from "amateur cook" to "professional chef" as a Pythonista, my Managing Python Dependencies course shows you how to get there.

It includes a complete step-by-step workflow for researching packages and making Python dependency decisions (and explaining them to your team, manager, or client).

Click the link below to learn more:

realpython.com/products/managing-python-dependencies/

— Dan Bader

P.S. "Re-inventing the wheel" disease was really something I struggled with as a fledgling dev. I'll show you how I got over it tomorrow.

Older messages

[Python Mastery] What does it mean to "master" Python?

Friday, November 13, 2020

Hey there, A couple of years ago I'd become quite interested in martial arts. Hours upon hours of watching "The Karate Kid" growing up must've taken their toll on me... And so, I

[Python Dependency Pitfalls] How to set the world on fire

Tuesday, November 10, 2020

Hey there, #1 on my list of dependency management pitfalls is there for a good reason: It lead to a single developer causing mayhem and breaking thousands of open-source projects around the world in

A "Pythonic" rant?

Monday, November 9, 2020

Hey there, "Why is Python dependency management so sh*t?" This is a quote that I recently heard from another developer. You know I *love* Python so hearing this instantly made me feel

What Python developers say about "Python Tricks: The Book"

Friday, November 6, 2020

Hey there, I wanted to share a few things that other Python developers have said about "Python Tricks: The Book." Here's what the Python community had to say: ~~~ “I first heard about

I don’t even feel like I’ve scratched the surface of what I can do with Python

Thursday, November 5, 2020

Python Tricks: The Book is available at a 33% discount Click here to learn more and claim your discount Hey there, There's a talented Python web developer I know of—I'll call him “Mark”.

You Might Also Like

I/O is coming, get ready

Tuesday, April 30, 2024

What's new in Google Play and Android Email not displaying correctly? View it online April 2024 Google I/O program details are now live Google I/O program details are now live Get a sneak peek at

Google and Fisker cut jobs

Monday, April 29, 2024

Plus, Getir exits most markets and real estate investors learn to Backflip View this email online in your browser By Christine Hall Monday, April 29, 2024 Happy Monday, and welcome back to TechCrunch

⌨️ You'll Want One Of These Steam Deck Keyboards — Why I Stopped Trying to Finish Games to 100%

Monday, April 29, 2024

Also: Conditional Formatting in Spreadsheets, and More! How-To Geek Logo April 29, 2024 Did You Know Babies have more bones than adults; as they age, several bones (such as the plates in the skull)

Behind the Product – Miro

Monday, April 29, 2024

Brought to you in partnership with CustomerIQ The AI platform to help teams aggregate, search, and synthesize customer feedback. CustomerIQ aligns teams with insights from channels like CRM notes,

Rapidly responsive... space stations!?

Monday, April 29, 2024

There are scant details as to the mission profile, but I can't help but feel intrigued by this news from Gravitics View this email online in your browser By Aria Alamalhodaei Monday, April 29, 2024

Daily Coding Problem: Problem #1426 [Hard]

Monday, April 29, 2024

Daily Coding Problem Good morning! Here's your coding interview problem for today. This problem was asked by Salesforce. Given an array of integers, find the maximum XOR of any two elements.

Code Story - Mar 24

Monday, April 29, 2024

Welcome to the March addition of the podcast newsletter. Please enjoy, and check out any of the episodes you might have missed below. ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏

Feature | The Best Visualizations from April on Our New App 📲

Monday, April 29, 2024

See the most popular, most discussed, and most liked visualizations on our new data storytelling app Voronoi from April. View Online | Subscribe At the end of 2023, we publicly launched Voronoi, our

😸 Tangible change

Monday, April 29, 2024

🤖 Elon is closing in on $6 billion in funding for his AI startup. 🛜 The FCC has officially voted... Product Hunt Read in browser This newsletter is brought to you by YOU MIGHT HAVE MISSED 🤖 Elon is

⚙️ AI has emotions now

Monday, April 29, 2024

Plus: Meta AI? More like Mid-ta AI! ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌ ‌