Want to boost your Python ๐Ÿ problem-solving skills?

I am looking for highly-motivated individuals that want to stay ahead of the curve!

If that's you, keep on reading ๐Ÿ‘‡...

Because tomorrow I'm launching the Python Problem-Solving Bootcamp!
This is a bootcamp focused on writing code.

Throughout the bootcamp you will solve 50 programming puzzles over the course of 25 days.

By going through the puzzles, you'll be practising your Python skills, and writing code is the best way to improve!

But there's more to it.
You will be getting 2 challenges/day.

Does that sound scary?

Good! If it does, then it's because it is an excellent growing opportunity.
If you only do what is easy, you will not improve... But you are highly-motivated, and so are your peers!

By joining the bootcamp, you will get access to a private Discord community, where you can exchange ideas and hints about the challenges with your peers!
If you think you can improve passively, then this bootcamp isn't for you, sorry ๐Ÿ˜ข

But, if you are passionate about learning and improving, and are willing to work, you will find that this bootcamp is very rewarding.

But wait, there's still more to it.
The goal of the bootcamp is for you to solve the 2 challenges each day, but you are encouraged to explore alternative solutions, different approaches, new ideas!

You learn more about the pros & cons of a solution when you compare it to other solutions!

That's where I come in ๐Ÿ˜‰
After you've had time to solve the problems, I will send you a Jupyter notebook with:

๐Ÿ‘‰ an in-depth analysis of the challenges of the day & different approaches;

๐Ÿ‘‰ code-reviews of different implementations;

๐Ÿ‘‰ actionable tips to tackle similar problems in the future.
To top it all off, when the bootcamp is done, I will send you an ebook with a compilation of all the challenges, analysis, code-reviews, tips, everything!

With the book, you'll be able to study all the materials and deepen your understanding even further.
Now, what are the requirements?

There are no requirements for this bootcamp.

All it takes is for you to know some Python and to be willing to learn a lot more.

For example, you don't need to be an algorithm expert, and you also don't need to know fancy data structures.
That's because we will be drawing the challenges from Advent of Code.

The challenges from Advent of Code are very practical and they teach you transferable skills, like handling I/O or data parsing.

In other words, ...
Advent of Code is designed to make you think, not regurgitate some algorithm you memorised in university because they forced you to.

(Not saying those are not useful! Just saying they are not the focus of this bootcamp.)
All in all, even if a problem ends up being more difficult for you, remember:

I'll break it down for you with the notebook review, and I'm sure you'll be able to understand the problem and the solution.
You are still reading this? Hats off to you!

I will be launching the bootcamp on Black Friday with 40% off!

However, the subscribers to my newsletter will get access with an exclusive deal of 50% off!

Subscribe to get access to the -50% deal ๐Ÿ‘‡

mathspp.com/subscribe

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Rodrigo ๐Ÿ๐Ÿ“

Rodrigo ๐Ÿ๐Ÿ“ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mathsppblog

25 Nov
I enjoy thinking about multiple possible solutions to the same Python ๐Ÿ problems.

I do!

Call me crazy ๐Ÿคช, I don't care!

In the past, I've tweeted simple challenges ๐Ÿ†, you tweeted solutions, and I wrote a thread analysing your solutions.

Here is a meta ๐Ÿงต of past challenges!
The first challenge I ever posted was to implement the Caesar cipher

This is the thread with the solutions ๐Ÿ‘‡

The moral of the story was that very little people know about the `str.maketrans` and `str.translate` methods.

Read 21 tweets
21 Nov
I have been tweeting about Python ๐Ÿ string formatting.

I have been preaching ๐Ÿ™ that f-strings are the best string formatting alternative.

Then comes the string method `.format`.

And only then, %-formatting.

Here is a thread ๐Ÿงต comparing the 3 ๐Ÿ‘‡
In its most basic form,

๐Ÿ‘‰ %-formatting uses % and a letter inside the string
๐Ÿ‘‰ `.format` replaces sequences of {} with the data
๐Ÿ‘‰ f-strings use {} to insert the data _inside_ the string

Here is how it looks like ๐Ÿ‘‡
An undervalued feature of string formatting is that you can easily determine whether your data should be formatted with its string (str) or with its representation (repr).

For debugging, `repr` is usually more useful.

Here is how this looks like ๐Ÿ‘‡
Read 10 tweets
6 Nov
The Python ๐Ÿ Standard Library is one of the reasons I love ๐Ÿ’™ Python.

๐Ÿ“‚๐Ÿ” dealing with your filesystem is super simple.

All you have to do is use the `pathlib` module.

This short thread is a mini `pathlib` cookbook ๐Ÿณ, showing some example usages of `pathlib`.

Ready ๐Ÿš€?
๐Ÿ“‚ Creating a `Path` object

`Path` objects are the bread and butter of `pathlib`.

Here, I just create a path with no arguments, which defaults to the path `.`

Notice how I used `Path` but I get a `WindowsPath` back.

`pathlib` automatically detects your OS ๐Ÿ˜‰
๐Ÿ“‚ Getting the parent

The `parent` attribute returns the logical parent of the path you have at hands ๐Ÿ‘‡
Read 11 tweets
5 Nov
๐Ÿ—“๏ธ the weekend is coming ๐Ÿฅณ

If you want, use it to rest! You deserve it!

Or, make this a memorable weekend:

Let this be the weekend you implement your first neural network ๐Ÿง  from scratch, in Python ๐Ÿ

Here's the roadmap ๐Ÿ›ฃ๏ธ

๐Ÿ‘‡๐Ÿงต
By the time you are done, you'll have

๐Ÿ‘‰ a minimal neural network framework
๐Ÿ‘‰ solved a ML problem with accuracy > 90%

And all this with a surprisingly short amount of code!
First, we start with an appetizer.

It will spark your interest, and acquaint you with some terminology.

Your appetizer is this amazing video by @3blue1brown ๐Ÿ‘‡

Read 9 tweets
5 Nov
I gave you a Python ๐Ÿ challenge ๐Ÿ†...

You delivered ๐Ÿ’ช!

This thread ๐Ÿงต will review some of your `argmax` implementations.

I'll also tell you what's good โœ… and bad โŒ about them.

I'll also tell you which one I think is the best, most Pythonic โœจ one.

Let's go ๐Ÿš€
The `argmax` function returns the index of the maximum element of the argument.

So, why don't we write this solution?

Compute the maximum, and then use `.index` to get its index! ๐Ÿ‘‡

But there are two issues here...

Can you see them? ๐Ÿ‘€
๐Ÿ‘‰ first issue is that it traverses the argument twice;
(once to get the max, one more time to find its index)

๐Ÿ‘‰ second issue is that it assumes the argument has a method `.index`, which might not be the case.

However, let's try and fix the first problem first...
Read 20 tweets
5 Nov
Python ๐Ÿ objects have one important characteristic about them:

Some objects are mutable, which means their contents can be changed.

This โšก๐Ÿงต will explain what (im)mutability means in Python ๐Ÿ.

Let's go ๐Ÿš€
The (im)mutability of an object depends on its type.

In other words, (im)mutability is a characteristic of types, not of specific objects!

For example,

๐Ÿ‘‰ ALL integers are immutable.
๐Ÿ‘‰ ALL lists are mutable.

With me so far?
But what exactly does it mean for an object to be mutable?

Or for an object to be immutable?

Recall that an object is characterised by

๐Ÿ‘‰ its identity
๐Ÿ‘‰ its type
๐Ÿ‘‰ its contents.

I wrote about that in this thread ๐Ÿ‘‡

Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Thank you for your support!

Follow Us on Twitter!

:(