Days 0-5: Code with Benny

Day 0 (March 13th, 2023)

Catching you up on what I've done so far:

I started Replit's 100 Days of Python course. I've completed Days 1-24, which included the following topics:

  • Print
  • Variables
  • Concatenation
  • If, elif, and nesting ifs
  • Casting (numbers and relating ints)
  • Math functions
  • Loops: While, While True, and For loops (included continue & exit statements)
  • Range
  • Libraries
  • Subroutines

Thoughts so far:

I have done this stuff before - I did a bit of MatLab & Python during my undergraduate, but it's been over 4 years, so I decided the refresher would be useful. That being said, taking courses is definitely not my favorite thing to do, and I can feel that I'm eager to get into building stuff asap. But alas - I'll move through the courses I have outlined for myself quickly.

Day 1

What I covered

Check out my Notion Learnings Database - Replit 100 days course page for details on what I learned. The broad strokes:

  • Parameters for subroutines, and that random.randint can stand alone (doesn't need to be defined as part of a variable)
  • return command and how it works in conjunction with subroutine arguments
  • How to use a few other libraries: os library & time library :)

Resources I used

Thoughts

Spent the morning blasting my newsletter and twitter out to as many people as possible. Then I started working through Replit again. The stuff is dense to get through but I feel good about the progress I'm making. I'm documenting what I learn and do in my Notion Learnings Database - Replit 100 days course page. It's already been useful to keep detailed notes on what I learn, as basically everything I've done so far has built on what I've done before it.

The grind continues :) see you tomorrow!

Day 2

What I covered

Days 27-31 of the Replit course I linked below!

  • Practiced all the skills I've learned so far - random, os, time libraries, and a lot of subroutines
  • end/sep/cursor functions for print() - this involved modifying print in a bunch of ways - e.g. what comes between each argument that is printed and at the end of the print statement
  • f-strings

Resources I used

Thoughts

A friend of mine mentioned how some of the stuff I'm learning likely won't be relevant for what I'm planning to do (build web apps). For instance, taking user inputs using the input() function will likely be replaced by some UI front-end. But fundamentally, the important thing for me to remember is that the logical structure of coding is what I'm here to learn.

Other thoughts: getting through the course is definitely a slog. I'm eager to start building stuff and will likely get into doing so asap (maybe by the end of this week)? My concern here is that I don't know what I don't know and want to make sure I can at least figure out some of that via courses put on by much more experienced people (like the Replit course). Then, I'll be able to understand what things I need to be Googling for better.

This is just a working theory for now though - TBD if I change my mind on this sooner than later.

Day 3

What I covered

Days 32-37 of the Replit course I linked below!

  • Lists (printing them, changing elements, using f-strings with them, and the len() function to find lengths of lists)
  • Dynamic lists (.append and .remove)
  • String manipulation (lower, upper, capitalization, titling, strip, and ordering of these functions)
  • String slicing (range of characters, individual characters, split)

Resources I used

Thoughts

Starting to enjoy the content more - reached a small step up in difficulty, with more focus on logic & less on memorization. Getting ready to start striking out on my own though - might start to move quicker, skipping project days more often, and just trying to get the facts while moving on to projects of my own. I've been convinced of this more and more thanks to a friend of mine, @mattfigdore, who showed me the tweet below, which includes a quote from one of the better known indie hackers:

Basically, it might be time to just build stuff, and I shouldn't shy away from that by burying myself in courses.

My counterargument here though is that it's worth going through learning content curated by someone else to learn what you don't know. I have only a vague idea what I need to learn at the moment to start building web apps, but specific skills/functions, I don't know yet. So I think the path forward will likely now start to be a combination of courses + trying to build my own stuff.

I already have some ideas cooking... more to come soon :)

Check out my Notion Learnings Database - Replit 100 days course page for details on what I'm learning. Updated daily!

Day 4

What I covered

Days 38-40 of the Replit course I linked below!

  • Using for loops to run through strings and do stuff to them
  • random.choice function for strings
  • dictionaries and how to print/change values in them

Resources I used

Thoughts

I've got a busy weekend ahead, so will be front loading some of my work to do, including getting through Replit :)

Day 5 (March 18th, 2023)

What I covered/did

Days 41-44 of the Replit course I linked below!

  • 2D Lists (printing and editing rows, columns, and single pieces of data)
  • DynAmIC 2D Lists ;)

I also tweeted out this thread about my thoughts on coding in the age of AI!

Resources I used

Thoughts

Ran into some challenge understanding the Day 44 challenge code. Mostly around why it seemed a line was used twice (ended up figuring out that once was to run a subroutine for a variable, and the other was to assign the output of that variable to a list).

The crazy part was that I used ChatGPT to explain it to me, and the explanation was just excellent. You can see that explanation here.

Really nice to know I've got this resource for future struggles.

ChatGPT creating an incredible explanation for some code written by Replit

That's all for this week! Head on over to my 100 days of coding challenge to see more content like this :)