Days 11-15: Code with Benny


Hey there! If you're new, welcome to Days 11-15 of my 100 days of coding challenge! Glad you're here 🙂

If you want to see Days 6-10, head over here.

If you're curious what this is all about, check out my Introduction to Code with Benny.

What I've done so far:

Check out my last two posts: Days 0-5, Days 6-10

  • Completed Days 0-54 of Replit's 100 Days of Python course
  • Learned a variety of skills: variables, math functions, for/while/while true loops, libraries, subroutines, lists and 2D lists, dictionaries, saving, writing to, and reading from files, eval() and auto-loading/saving from files, try/except functions, and manipulating csv files
  • Kept on with my twitter daily log posts

Chugging along :)

💡
Don't forget to follow me on twitter - all of these daily logs are posted there in short-form 🙂

Day 11 (March 24th, 2023)

What I covered/did

Days 55-56 of the Replit course I linked below!

Resources I used

💡
Check out my Notion Learnings Database - Replit 100 days course page for details on what I'm learning. I log all my notes there - daily!

Thoughts

Not sure I fully understood os.popen and os.path.join, but given I plan to circle back to linux terminal commands anyways, I'll be revisiting those.

I'm also starting to think more and more about my hardware/software choices and how they may need to be adjusted to fit what I'll be doing.

On the hardware side, I'm running everything on an HP Envy, which isn't the most powerful of machines. I think while I'm in course mode, it's good enough, but as I progress to heartier software endeavors that are likely to consume higher amounts of computer resources, it might be good to start investing in an upgrade. I've long been told that Mac is the way to go, but as a PC fan, that's a hard pill to swallow 😁

But that does lead me into the software side: Linux is often said to be a great OS to work out of. I'm not sure if there is any point to setting up a Linux environment on a Mac computer, rather than just working in Mac OS, but this is something to investigate. I also want to start moving into a non-browser-based IDE (like VS Code). I have it on my computer already, but need to figure out how to optimize its usage in tandem with my current computer. I've been told it's got great Python integration, so I think VS Code is my top choice for now for IDEs.

Day 12

What I covered/did

Day 57 of the Replit course I linked below!

  • Recursion!! Been waiting for this one - learned it a long time ago in university, and kept hearing this word when talking with friends who are coders ;)
🤣
Quick note: if you Google "recursion", Google asks if you meant "recursion". Classic #programmerhumor

Resources I used

Thoughts

Recursion is, as a concept, pretty simple, so today's workday is a quick one. Basically a function/subroutine that calls itself, allowing you to build things that continuously loop until their own condition is satisfied. Imagine you have 10 cookies, and you build a function that eats two, then calls itself to eat two more, until there are none left - that's the idea behind recursion.

I imagine this could get more interesting and complex. What if you have recursion-stacking (functions that call functions that call themselves that call the functions above). Not sure how much that made sense, but I'm curious to learn more about the more involved uses of recursion - feels like the beginning of a large branch of the coding tree of knowledge :)

Day 13

What I covered/did

Day 58 of the Replit course I linked below!

  • Debugging! Another concept I've heard a lot about and have been excited to explore.

Resources I used

Thoughts

Easy enough concept: debugging lets you run only certain sections of the code to test them. I want to know more about how this differs from unit testing...

Now headed to a my Vipassana meditation retreat - will be back online Sunday 🧘

Day 14

What I covered/did

Day 59 of the Replit course I linked below!

  • practice building a recursive function to check if a word is a palindrome. ChatGPT helped me understand the recursive element a bit better :)

Resources I used

Thoughts

My head was not really in it today - I think part of this challenge is reminding myself that every day won't be an 100% output day (I talk about this in my Introducing Code with Benny blog, in the closing thoughts section - point #2).

I also had a great email exchange with one of my closest friends, Rohit. He and I spoke about a few worries I had: specifically, moving too slowly on the learning front, whether I'm skipping too many course projects, and how to balance spontaneity and routine in a place like Bali. He had some fantastic thoughts that I decided to just copy below with light trimmings:

From Rohit:

In coding classes, it takes much longer to get to where you're currently at. I think you're moving quite fast, which is great. Could you be moving faster? Yes. But you also sacrifice other things like you mentioned [in day 8 thoughts].
You should probably at least do a few projects because even though it may seem like just helping with syntax, being comfortable with syntax is important to feeling confident when you code.
I struggle with the balance between spontaneity and routine as well. I think you'll be the best judge of what feels right. You didn't go to Bali to just code all day. I think an approach of committing to a minimum amount of coding everyday might be best because then you build the habit. This is an idea from Atomic Habits where even if you do only a little bit, if you do something everyday, the activation energy to do it again the next day is very low.

I love these takeaways, and feel thankful for my friends.

Day 15

What I covered/did

Day 60-61 of the Replit course I linked below!

  • the Unix epoch - basically, dealing with time and dates in programming, and doing operations with them (datetime.timedelta, datetime.date, etc)
  • Replit DB (key/value pair review, but using it with Replit's database feature)

Resources I used

Thoughts

Replit DB is a bit of a niche thing to learn - more like Replit trying to flag its own features to course-users - but still potentially useful to understand the kinds of database-writing options there are out there.

Still getting back in my groove post-retreat, but excited to hit the ground running on Day 16 🙂 See you over there!

💡
Don't forget to follow me on twitter - all of these daily logs are posted there in short-form 🙂