Categories
Career Programming What I’m Up To

My upcoming “Learn Python” course for Computer Coach

Computer Coach’s “Learn Python” course banner: “Live, online, instructor-led / Starting Sept 7th 2022”

The TL;DR

Here’s a quick summary of the course:

  • What: An introductory Python course! I’m teaching it on behalf of Computer Coach, a Tampa-based training company and friends of mine.
  • Where: Online, via Zoom.
  • When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting this Wednesday, September 7th.
  • How to enroll or find out more: Contact Computer Coach’s Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

You’ll need the following to participate in the course:

The state of Python

Selection of headlines showing how in-demand Python is.

All you have to do is look at the current developer surveys and tech news headlines to know that right now, Python is having its “moment”:

Graph showing most in-demand programming languages 2021-2022. Python is in the #1 position with almost 150K job openings in the U.S. and almost 100K job openings in Europe.
Found via SiliconRepublic.

CodingNomads, a coding school in California, looked at thousands of job postings in North America and Europe and declared Python as the most in-demand coding language for 2022.

As for salaries…

Map showing Python salaries around the world (US: $111K, Canada $95K, UK $84K, Germany $97K, Australia $103K, India $14K).
These are salaries from 2020, found at CareerFoundry.

…you can say that the pay is decent. Pair Python with another tech skill (for instance, JavaScript) or a people skill (say, managing developers), and you can make even more.

The schedule

This is the course schedule for Learn Python. It’s flexible — if there’s a need spend more time on a specific topic, we’ll do that. The point isn’t to cover every topic on the list; it’s to give you the necessary grounding in Python and programming to continue after the course is over!

Sessions will take place via Zoom, which means that you can take the course from wherever you happen to be. There will be ten sessions, and each will run from 6:00 p.m. to 10:00 p.m., with ten-minute breaks at the end of the first, second, and third hour.

  • Day 1 : Hello, Python!
    Wednesday, September 7, 6:00 p.m. – 10 p.m.
    • Setting up the programming environment
    • Introducing Jupyter Notebook
    • Variables and simple data types
    • Programming in sequence
  • Day 2: Algorithms aren’t just for Facebook
    Monday, September 12, 6:00 p.m. – 10 p.m.
    • Branching (a.k.a. “If” / “elif” / “else”)
    • Lists
    • Looping
  • Day 3: Organizing data and code, and listening to the user
    Wednesday, September 14, 6:00 p.m. – 10 p.m.
    • Dictionaries
    • Functions
    • Getting input from the user
  • Day 4: Getting serious
    Monday, September 19, 6:00 p.m. – 10 p.m.
    • Object-oriented programming
    • Working with files
    • Handling exceptions
  • Day 5: When the going gets weird, the weird turn pro
    Wednesday, September 21, 6:00 p.m. – 10 p.m.
    • Running Python programs from the command line
    • Importing Python modules
    • Organizing files
  • Day 6: The web and data
    Monday, September 26, 6:00 p.m. – 10 p.m.
    • Web programming with Flask
    • SQLite: The database built into Python
  • Day 7: Just enough data science to be dangerous
    Wednesday, September 28, 6:00 p.m. – 10 p.m.
    • Introduction to data science and Python’s data science libraries
  • Days 8 – 9: Using your Python powers for good
    Monday, October 3, 6:00 p.m. – 10 p.m.
    Wednesday, October 5, 6:00 p.m. – 10 p.m.
    • Using Python to handle all sorts of programming tasks, which could include:
    • Building the scripts that generate the Tampa Bay Tech Events list
    • Automating email and spreadsheets
    • Building a weather app
  • Day 10: Just the beginning
    Monday, October 10, 6:00 p.m. – 10 p.m.
    • Review of everything covered
    • What you should cover next
    • Programming interview questions

What happens in the course?

Photo: Woman’s hands typing on Mac laptop.

This is not a passive course! This isn’t the kind of course where the instructor lectures over slides while you take notes (or pretend to take notes while surfing the web or checking your social media feeds). In this course, you’ll follow along as I write code on my screen. You’ll actively take part in the learning process, entering code, experimenting, making mistakes, correcting those mistakes, and producing working applications. You will learn by doing. At the end of each session, you’ll have a collection of little Python programs that you wrote, and which you can use as the basis for your own work.

The course will start at the most basic level by walking you through the process of downloading and installing the necessary tools to start Python programming. From there, you’ll learn the building blocks of the Python programming language:

  • Control structures that determine what your programs do,
  • Data structures to store the information that your programs act on,
  • Functions and objects to organize your code, and
  • Using libraries as building blocks for your applications.

Better still, you’ll learn how to think like a programmer. You’ll learn how to look at a goal and learn how you could write a program to meet it, and how that program could be improved or enhanced. You’ll learn skills that will serve you well as you take up other programming languages, and even learn a little bit about the inner workings of computers, operating systems, and the internet.

What kind of apps will you build?

We’ll build as many applications as we can, based on your suggestions or needs. These include (and aren’t limited to):

  • CoverTron: My generator for cover letters for job applications. I actually used it in my last job search!
  • Tampa Bay Tech Events Transmogrifier: Every week, I put together a list of tech events for Tampa Bay, culled from Eventbrite and Meetup. It would take me hours to do it by hand, but it’s so much quicker with the automated help of a couple of Python scripts.
  • Find out when and where a digital photo was taken: When you take a picture with your phone or a present-day digital camera, that picture has EXIF data embedded in it, with the date, time, and location where the photo was taken. I’ll show you how to extract that info!
  • Editing photos: If you were assigned the task of shrinking a set of 100 photos by 25% (or any other similar basic photo editing task), you could do it manually, or you could make Python do it.
  • Creating interactive documents with Jupyter Notebook: It’s more than just a Python tool used by data scientists, Nobel Prize winners, and Netflix, but a useful programming environment and operations platform for everyday tasks!
  • Writing web applications with Flask: Just as Python makes programming much easier, the Python-powered Flask framework makes programming web applications much easier.
  • Passing interview coding tests: Learn how to deal with the most dreaded part of the interview for a programming job, and why Python is a key part of my coding interview strategy.
  • Using databases: Using databases is a key part of programming, and luckily, Python comes with a built-in database!
  • Data science: This is a giant topic and could easily take up the time to do this course three times, but I’d be happy to go over the basics.
  • Interactive storytelling and games: Python’s quite good at this, and I can walk you through the PyGame framework and Ren’Py interactive story system.
  • Mobile app development: Yes, there are ways to do mobile app development in Python.

How do you sign up for the course or find out more?

Once again, you’ll want to contact Computer Coach’s Kasandra Perez at Contact Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

Categories
Career Programming What I’m Up To

What you’ll learn in my online course: Using Python to detect startup founder megalomania

Poster for the Apple TV+ series “WeCrashed”.
WeCrashed was a good podcast and a great TV miniseries.

One of the more ridiculous aspects of the S-1 Form that WeWork filed during their first attempt at an IPO was the fact that the name “Adam” (WeWork’s founder / personality behind the cult Adam Neumann) gets mentioned in it a ludicrous number of times. It’s not unusual for an S-1 Form to mention the founder’s name a couple dozen times, but nowhere near as many times as WeWork’s original S-1 did.

You could go through WeWork’s S-1 and count the number of times “Adam” appears in its text. You could load WeWork’s S-1 into a text editor and have it give you that number. But what if you had to do that for a dozen, or a hundred, or a thousand companies and create a list of the number of times each company’s founder was mentioned in its S-1? You will write a Python script to do just that in my upcoming course.

I’ll guide you through the process of writing that script and running it on not just the text of WeWork’s S-1, but also for other hot tech companies, such as Zoom, Uber, Lyft, and Slack.

It’s just one of the practical things I’ll cover in the Learn Python online course being offered by Computer Coach. Here are the quick details:

  • What: An introductory Python course!
  • Where: Online, via Zoom.
  • When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting Wednesday, September 7th.
  • How to enroll or find out more: Contact Computer Coach’s Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.
Banner: Computer Coach - Learn Python - Live, online, instructor-led - Starting September 7th 2022

For more details, see this post: I’m teaching another 5-week / 10-evening Python course starting September 7th!

Categories
Career Programming What I’m Up To

I’m teaching another 5-week / 10-evening Python course starting September 7th!

If you’re getting this feeling…

…and you’d rather have this feeling…

Creative Commons image by Nick Youngson — CC BY-SA 3.0 Pix4free.
Click here to see the source.

…then the course I’m teaching might help:

a close up of text and logo over a white background
Graohic: Computer Coach Training Center logo

I’ve been programming in Python since 1999, and I’ll be teaching Computer Coach’s upcoming 10-week online Learning Python course!

The “TL;DR:”

  • What: An introductory Python course!
  • Where: Online, via Zoom.
  • When: Monday and Wednesday evenings, from 6 p.m. to 10 p.m., starting Wednesday, September 7th.
  • How to enroll or find out more: Contact Computer Coach’s Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

What will you get out of this course?

The biggest things that you’ll get out of this course are the tools to succeed in a tech career, namely:

  • An introduction to the most-used and most useful parts of the Python programming language,
  • a solid basis in programming principles,
  • and a bag of tricks that you can use in your tech career.

The course will use one of the best books on Python out there: Automate the Boring Stuff with Python by Al Sweigart (whom I had the pleasure of meeting in person earlier this year at PyCon):

…but we won’t just stick to the book. We’ll look at all sorts of programming examples and tricks, based on your suggestions or needs. These include (and aren’t limited to):

  • CoverTron: My generator for cover letters for job applications. I actually used it in my last job search!
  • Tampa Bay Tech Events Transmogrifier: Every week, I put together a list of tech events for Tampa Bay, culled from Eventbrite and Meetup. It would take me hours to do it by hand, but it’s so much quicker with the automated help of a couple of Python scripts.
  • Find out when and where a digital photo was taken: When you take a picture with your phone or a present-day digital camera, that picture has EXIF data embedded in it, with the date, time, and location where the photo was taken. I’ll show you how to extract that info!
  • Editing photos: If you were assigned the task of shrinking a set of 100 photos by 25% (or any other similar basic photo editing task), you could do it manually, or you could make Python do it.
  • Creating interactive documents with Jupyter Notebook: It’s more than just a Python tool used by data scientists, Nobel Prize winners, and Netflix, but a useful programming environment and operations platform for everyday tasks!
  • Writing web applications with Flask: Just a Python makes programming much easier, the Python-powered Flask framework makes programming web applications much easier.
  • Passing interview coding tests: Learn how to deal with the most dreaded part of the interview for a programming job, and why Python is a key part of my coding interview strategy.
  • Using databases: Using databases is a key part of programming, and luckily, Python comes with a built-in database!
  • Data science: This is a giant topic and could easily take up the time to do this course three times, but I’d be happy to go over the basics.
  • Interactive storytelling and games: Python’s quite good at this, and I can walk you through the PyGame framework and Ren’Py interactive story system.
  • Mobile app development: Yes, there are ways to do mobile app development in Python.

What happens in the course?

Photo: Woman’s hands typing on Mac laptop.

This is not a passive course! This isn’t the kind of course where the instructor lectures over slides while you take notes (or pretend to take notes while surfing the web or checking your social media feeds). In this course, you’ll follow along as I write code on my screen. You’ll actively take part in the learning process, entering code, experimenting, making mistakes, correcting those mistakes, and producing working applications. You will learn by doing. At the end of each session, you’ll have a collection of little Python programs that you wrote, and which you can use as the basis for your own work.

The course will start at the most basic level by walking you through the process of downloading and installing the necessary tools to start Python programming. From there, you’ll learn the building blocks of the Python programming language:

  • Control structures that determine what your programs do,
  • Data structures to store the information that your programs act on,
  • Functions and objects to organize your code, and
  • Using libraries as building blocks for your applications.

Better still, you’ll learn how to think like a programmer. You’ll learn how to look at a goal and learn how you could write a program to meet it, and how that program could be improved or enhanced. You’ll learn skills that will serve you well as you take up other programming languages, and even learn a little bit about the inner workings of computers, operating systems, and the internet.

What will you need for the course?

Nothing fancy:

How do you sign up for the course or find out more?

Once again, you’ll want to contact Computer Coach’s Kasandra Perez at Contact Kasandra Perez at kasandra@computercoach.com or (813)-254-6459 to find out more about the course or register.

Categories
Conferences Programming What I’m Up To

I’ll be in the Auth0 booth at PyCon US 2022 this week!

PyCon US 2022, the U.S. edition of the Python conference, happens this week in Salt Lake City, Utah at the Salt Palace Convention Center — and I’m going to be at the Auth0 booth!

Come drop by the booth — we should be pretty easy to find. Just listen for the accordion.

My history with Python

Toronto programmer D’Arcy Cain was looking for a programmer to help him develop an ecommerce site for a client. At the time, the stack that web developers needed to know was LAMP — Linux, Apache, MySQL, and Perl (later expanded to include other languages whose names start with “P”). D’Arcy’s preferred stack was BSD, Apache, Postgres, and Python, which at the time was considered to be a contrarian choice.

He asked if I was willing to learn Python, and I said “Sure! I can pick it up after I get back from Burning Man, on the first day after Labor Day…”

He said “No — I need you to hit the ground running on the first day after Labor Day.”

The edition of Learning Python I used — the first edition!

And I said, “All right. I’ll make it happen.” So I packed my laptop and a copy of O’Reilly’s Learning Python and took it with me to Black Rock Desert.

Those were wild times and even wilder hair, man.

Since Burning Man is more of party-all-night place, it can be quite peaceful in the morning. The rental RV that I shared with San Francisco-based artist David Newman and our friend Nancy was an oasis of calm with a good generator, and I was able to spend a couple of hours a day going through Python exercises, catch a nap, and then strike out onto the playa in the afternoon for the next evening’s mayhem.

By the time I got back to Toronto, I was ready to start coding in Python, and a descendant of that original site and its business still exists today. I figured that any programming language you can learn at Burning Man has to be good, so I’ve been using it to get things done since then, including putting together the Tampa Bay tech events list that appears on this blog weekly.

In spite of my long-time use of Python, even during that period when Ruby was ascendant thanks to Rails, I’ve never gone to PyCon — until now. I’m looking forward to it!

Categories
Meetups Programming Tampa Bay

Building a “Wordle” function, part 1

These slides capture what we worked on Tuesday night’s “Think Like a Coder” meetup: coming up with a first attempt at a “Wordle” function. Given a guess word and a goal word, it should output a Wordle-style score.

We came up with a solution that I like to call the “close enough” algorithm. It goes through the guess word one character at a time, comparing the current guess word character with the goal word character in the same position.

When making those character-by-character comparisons, the function follows the rules:

Here’s the “close enough” algorithm, implemented in Python…

def wordle(guess_word, goal_word):
    
    # Go through the guess word one character at a time, getting...
    # 
    # 1. index: The position of the character
    # 2. character: The character at that position
    for index, character in enumerate(guess_word):
        
        # Compare the current character in the guess word
        # to the goal word character at the same position
        if character == goal_word[index]:
            # Current character in the guess word
            # matches its counterpart in the goal word
            print("green")
        elif character in goal_word:
            # Current character in the guess word
            # DOESN’T match its counterpart in the goal word,
            # but DOES appear in the goal word
            print("yellow")
        else:
            # Current character DOESN’T appear in the goal word
            print("gray")

…and here’s the JavaScript implementation:

function wordle(guessWord, goalWord) {
    
    // Go through the guess word one character at a time
    for (let index in guessWord) {
        // Compare the current character in the guess word
        // to the goal word character at the same position
        if (guessWord[index] == goalWord[index]) {
            // Current character in the guess word
            // matches its counterpart in the goal word
            console.log('green')
        } else if (goalWord.includes(guessWord[index])) {
            // Current character in the guess word
            // DOESN’T match its counterpart in the goal word,
            // but DOES appear in the goal word
            console.log('yellow')
        } else {
            // Current character DOESN’T appear in the goal word
            console.log('gray')
        }
    }
}        

I call the solution “close enough” because yellow is a special case in Wordle. If the guess word is ATOLL and the goal word is ALOFT, the first L in ATOLL should be yellow and the second should be gray because there’s only one L in ALOFT.

We didn’t settle on the “close enough” algorithm — it was just enough for that night’s session. In the next session, we’ll refine the algorithm so that it matches Wordle’s!

Want to become a better programmer? Join us at the next Think Like a Coder meetup!

Categories
Programming Reading Material

Get $411 worth of Python books for $18 with this Humble Bundle!

Once a year, Humble Bundle releases a bundle of No Starch Press’ excellent Python books, and it’s that time of year again! For the next 18 days from the time of this writing, you can get $411 worth of ebooks for as little as $18.

What you get for $1

The bundle is sold in tiers. If you pay only $1, you get this portion of the bundle, which makes for a great starter set for younger readers or if you’re thinking of getting into game development:

If these books alone for a dollar have piqued your interest, you can get them now by going to the Humble Bundle Python book page.

If a dollar is all you can spare, you’ll still be well-served by this deal. However, if you can spend a little more, the deal gets better…

What you get for $10 – $17.99

Pay between $10 and $17.99, and they’ll add these to the bundle:

In my opinion, the stand-out book in this tier is Serious Python, which cover languages features, tools, and techniques that you’ll need as you start writing applications that you or your customers will regularly use and rely upon.

If $17.99 is the most you can spare, you’re still getting a good deal, and you can go to the Humble Bundle Python book page and get your bundle now.

However, if you can part with $18 or more, you should read on…

What you get for $18 or more

And finally, if you pay $18 or more, they’ll throw in the gems of the collection:

If you’re serious about learning Python, you’ll want to pay $18 or more I used Python Crash Course and Automate the Boring Stuff with Python in the Python courses I taught last year.

Even though I bought the 2020 edition of this bundle, I bought the 2021 edition just to get Real World Python is a great way to learn some new tricks through its tour of algorithms and Python libraries. It was cheaper to buy the bundle than to buy Real World Python on its own. Do the math: You can pay $28 for Real World Python, or get all the books in the bundle for $10 less!

Beyond the Basic Stuff with Python is a great guide for writing more Pythonic code, Python One-Liners is worth it for just the NumPy and regex chapters alone, and Natural Language Processing with Python and spaCY packs an NLP course with lots of practical exercises into under 200 pages.

If the $18 bundle is what you’re looking for, go to Humble Bundle and get it while it’s still available!

The money goes to good causes

The proceeds from sales of this bundle go to:

The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers. The majority of the PSF’s work is focused on empowering and supporting people within the Python community. The PSF has active grant programs that support sprints, conferences, meetups, user groups, and Python development efforts all over the world. In addition, the PSF underwrites and runs PyCon US, the primary Python community conference. Being part of the PSF means being part of the Python community. Recently we changed the PSF to an open membership organization, so that everyone who uses and supports Python can join.

To learn more, visit https://www.python.org/psf/membership.

The No Starch Press Foundation is an IRS 501 (c) (3) tax-exempt non-profit corporation created to support and grow the collective knowledge and contributions of the worldwide hacker community.

We support hackers of all types, regardless of experience — whether that’s the passionate beginner or the lifelong hacker wishing to make a broader contribution to the hacker community and the world.

The Foundation was formed to give back to and strengthen the hacking community. The Foundation’s founder, William Pollock, has been closely involved with the hacking community since about 1999 and much of the success of his company, No Starch Press, is due to the support of the worldwide hacking community. To date, Pollock has given over $800,000 to the Foundation and is working to expand its donor base. The Foundation’s funding will be used to help strengthen and expand the hacking community, by educating the public about hacking and working to create safe and central places for the hacking community.

Categories
Current Events Programming Tampa Bay

“Python: A Bicycle for the Mind” — 9:00 a.m. this Wednesday at the Women Who Code Tampa online meetup!

I’m talking about Python at this Wednesday’s Women Who Code Tampa online event!

This Wednesday, May 12th, from 9:00 a.m. to 10:00 a.m. Eastern (UTC-4), I’ll be in an online session where I’ll talk about using Python as a “bicycle for the mind”. I’m going to present a couple of Python tricks that I actually use to be more productive.

This session is this week’s installment of Women Who Code Tampa’s Coffee + Code, a weekly online networking event featuring a tech topic.

Here are the relevant links:

What’s this about “Bicycle for the mind”?

It’s how Steve Jobs describes computers in his appearance in a 1990 documentary film called Memory & Imagination: New Pathways to the Library of Congress.

Here’s what he said:

I think one of the things that really separates us from the high primates is that we’re tool builders. I read a study that measured the efficiency of locomotion for various species on the planet.

The condor used the least energy to move a kilometer. And, humans came in with a rather unimpressive showing, about a third of the way down the list. It was not too proud a showing for the crown of creation. So, that didn’t look so good.

But, then somebody at Scientific American had the insight to test the efficiency of locomotion for a man on a bicycle. And, a man on a bicycle, a human on a bicycle, blew the condor away, completely off the top of the charts.

And that’s what a computer is to me. What a computer is to me is it’s the most remarkable tool that we’ve ever come up with, and it’s the equivalent of a bicycle for our minds.