Category: Programming Languages

Posts about my learning and using different types of Programming Languages.

  • Learning Python From Books

    Learning Python From Books

    Recently I switched from using YouTube to improve my Python skills to reading books. Yes, actual books printed on paper. No digital or ebooks (even though there’s nothing wrong with using those, but I prefer reading from physical books). Why did I make this change to learning Python from books? Did I not like learning from video content? Should you use a book to learn a programming language? What are the pros and cons of my decision? I’ll answer those questions in this post.

    Why I’m Learning Python From Books

    I’m learning Python from books because I found myself not actually absorbing the material while watching videos on YouTube. I think this is a problem others run into, but don’t realize. Which is why they have trouble implementing what they learned into a project.

    I didn’t have a problem with focusing on the content, as the presenter was engaging. And I didn’t suffer from distractions, like from my phone, because when it’s study time I make sure to only focus on my study material. However, I found myself just watching the videos play without taking any notes. I became a watcher fully, not inspired to follow along with the presenter as that person typed on the screen.

    I would go back and rewatch the video to try to absorb the material. Sometimes I would even code along with the presenter using my code editor (usually PyCharm). Alas, those actions didn’t help me as much as I wanted. Thus, I turned to books.

    I got the idea to use a programming book from a YouTube video funny enough! As an avid fiction book reader I’m not sure why I didn’t think of this avenue myself. I’ve browsed books in the Technology section at bookstores in the past.

    I used Gemini to ask for Python programming book recommendations. Then I compared those to recommendations I got from YouTube searches. I finally purchased the following books:

    I’m currently reading Python Crash Course and will review it later on my website. So far it’s a great beginner book, and I’ve learned quite a bit from the author.

    Should You Use A Book To Learn Programming?

    While I’m enjoying learning Python from books, you, the reader, may not. Ask yourself these questions:

    • Do you enjoy the act of reading from a physical or digital book?
    • Reading requires time and focus. Do you have the ability to dedicate those?
    • Do you have the money to purchase books, or access to a library?

    If you can answer yes to all three, then I suggest you go ahead and use books. However, if you answer no to one of those questions you can still try to use a book, but I highly suggest checking one out from your local library to save on costs. Or you can try to find a used books at a substantial discount. This way if you don’t like using programming books then you won’t be out much money.

    Another con of using programming books is they can contain outdated information. Thus, it’s important to find a book (or even a book series) that’s updated at least yearly. Or if the book isn’t updated itself, the publisher or author provides online resources (like a PDF file) containing updated information for you to download.

  • CS50x C Programming Lecture Is No Longer Complicated For Me

    CS50x C Programming Lecture Is No Longer Complicated For Me

    I wrote about my experience watching the CS50x C programming lecture in a previous post. You can read it here, but I will give a TL;DR: The course’s reliance on custom files and functions hampered my learning. Thus, I stopped watching the lecture series and searched for a video to learn the programming correctly. After watching another video I decided to give the lecture another shot. I wanted to see if I could follow along now. Turns out I could! I’ll explain why and how.

    How The CS50x C Programming Lecture Isn’t Complicated For Me Anymore

    This video from the Bro Code YouTube channel made C programming easy to understand and and use. It’s fun to write the code in VS Code, and create different types of functions using the language. I also created my first segmentation fault by not calling my variable correctly in the printf function! So that makes me a real programmer, right?

    All joking aside, I really do like this video from Bro Code and I’m about third of the way through the 4 hour video. So there’s still plenty of material for me to cover. However, I’m not waiting to finish that video to go back to the CS50x C programming lecture.

    What I’m doing is learn some topics from the Bro Code video, and then go back to the lecture to watch how the instructor presents those same topics. This is easy to do because both video utilize the chapter feature in YouTube. That leads me to why I understand things so much better now.

    Why The CS50x C Programming Lecture Isn’t Complicated For Me Anymore

    The reason why I understand the lecture much better now because I understand what the CS50x’s custom headers and custom function does. That’s why I wanted to learn the proper way to learning the C programming language. As I stated in my previous post, I’m not going to use custom headers and/or custom function like get_string in my code. I’m going to use the code’s built-in headers and functions. Hmm…there could be a future situation where I work for a company using their own set of custom header files and functions. Maybe this is good practice for me after all.

  • CS50x C Programming Lecture Is Unnecessarily Complicated

    CS50x C Programming Lecture Is Unnecessarily Complicated

    As I continue through Harvard’s 2024 CS50x course on YouTube (which I discussed in this previous post) I finally came to the lecture regarding the C programming language. I’m ready to go because I want to learn the language running Python. Also, I wanted to see how difficult it was to use the language after reading about it online. Well, after watching about 36 minutes of the lecture I gave up. Why? Because the CS50x C programming lecture is unnecessarily complicated. I’ll explain why below.

    CS50X C Programming Lecture Is Complicated Because Of Its Custom Header Files

    I know that CS50x is the introduction class for Harvard’s Computer Science program. Thus, there are going to be all types of students taking the course, not just Computer Science majors. Because of that the staff behind the C lecture decided to make the programming language easier to learn by creating a custom header file. That’s why the CS50x C programming lecture is unnecessarily complicated for me.

    I get why they made this decision. There are many header files to choose from. If a student forgets to include the specific one in their project they won’t have access to the needed built-in functions.

    Even though I understand the logic behind the decision of implementing a custom header file for the students to use, I think it does them (and me) a disservice. What happens when a student becomes too dependent on it? That individual could have a hard time creating their own projects in C, or working in a code base belonging to another individual and/or company.

    Finally, CS50x’s custom header file include custom functions: “get_string” is a popular one. I thought that was part of the C programming language, but discovered the truth while researching online. Once I learned that I decided to find another course to learn C.

    The Course I’m Using Instead

    Instead of learning from the CS50x C programming lecture I’m learning from the C Programming Full Course for free video on YouTube from the Bro Code channel. Even though it is three years old now, the video doesn’t feel outdated. The trainer/presenter uses VS Code which is what I’m using to write and run my C code.

    I did find a recent video (released about six months ago) from FreeCodeCamp, but it’s 18+ hours long. Unfortunately, I don’t have the time to invest in that long of a video.