Python and TypeScript: Learning How to Code

This article was written in 2024, looking back at my previous home lab projects and where my journey into IT began.

This article is part of a series on Other Projects.


Python banner

Introduction

This article tells the story of how I started working with Python and TypeScript. As I made progress in both languages, I created Git repositories called Python collection and TypeScript collection, which contains a bunch of scratch projects I worked on during this time – these projects can be found on my GitHub, and are directly accessible by following the links.


My First “Real Coding Language”

I was feeling pretty good about my progress from the past month. I had completed thePrimeagen’s data structures and algorithms (DSA) course a few weeks prior, finished the first pass of the debian-dwm project, and written my own Neovim configuration files in Lua. I was also getting used to the new Kinesis keyboard, and had starting learning how to use Git better. However, I was weeks out from the DSA course, and I hadn’t made much use of it. While I gained a ton of insights into programming, I was being self-critical: “Bash isn’t a real language”, and “Lua is a real coding language, but all you did was set a bunch of options”. I felt it was time to start learning a “real coding language.”

Since I had the Frontend Masters subscription for another few weeks, I wanted to get as much value out of it as I could. So, I thought about what language I wanted to start with. I considered TypeScript/JavaScript heavily, as the DSA course was done in TypeScript. But, I wasn’t sure if TypeScript would be the most accessible first language. I considered some other languages, and then made my decision: Python.

I made the decision to start with Python for a few reasons. The primary reason was that I thought Python might be more “noob-friendly”, and would be a better starting point than any other language, because of its accessibility. While this was the case, it incidentally also became the reason that I moved away from Python - I felt that the DSA course wasn’t necessary to use Python. To be more clear, Python is a great language, and has a bunch of use cases, such as data analysis and machine learning. However, none of those use cases were directly applicable to me. In addition, because of Python’s “noob-friendly” syntax, I had concerns that I wouldn’t be able to build the same foundation of understanding that I would from using other languages. I didn’t necessarily need to understand how things worked “under the hood” in order to do some basic projects, and that bothered me. As I would find out from using Python, I wanted a language that would punish my lack of understanding, and would force me to better appreciate what I was trying to tell the computer to do.

Getting a Handle on Python

During this time, I completed a handful of projects using Python. I worked on a simple “gambling game” by watching a video by the YouTuber “Tech with Tim” and gained some experience writing simple functions. I completed a crash course on Python from Frontend Masters, in which I learned some tips about how to work with Python virtual environments on Linux. I even took a swing at some Leetcode problems, where I got to work with data structures such as hashsets, and maps/dictionaries. In addition, I got to apply some of what I learned from the DSA course and think about clever ways to implement algorithms to solve problems. By working on these projects, I was excited to continue learning to code; however, I didn’t really see how Python was going to assist me with the types of things I was already doing.

So, after about a month of playing around with Python, I started to move away from it. Throughout 2023 September and October, I also tried out some Leetcode problems in TypeScript as well, just to see if that was a better fit for my first language. But, neither Python nor TypeScript gave me what I was looking for. While I had benefitted from the time spent working with Python and TypeScript, and I had gained a better understanding of how to write code, I couldn’t see how either language would help me with the other stuff I was doing. In contrast, I felt that getting better at Bash would be more useful to me, and the projects I was working on. Therefore, I kept working on my Neovim configuration, and continued to improve my debian-dwm project.

However, later in 2023, I eventually discovered the language that would be my true “first coding language”: Rust.

Related
Home Lab · Other