01Blu3's Blog https://01blu3.com Computer Engineering Student and Network Technician with a passion for Hardware, Robotics and AI Wed, 08 Oct 2025 03:32:12 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://01blu3.com/wp-content/uploads/2023/09/cropped-processor-32x32.png 01Blu3's Blog https://01blu3.com 32 32 224565428 S&PF – Learning the Unix OS (O’Reilly) https://01blu3.com/2024/04/spf-learning-the-unix-os-oreilly/ https://01blu3.com/2024/04/spf-learning-the-unix-os-oreilly/#respond Wed, 24 Apr 2024 16:14:16 +0000 https://01blu3.com/?p=464
Learning the Unix OS book cover

Learning the Unix Operating System, 5th Edition

Jerry Peek, Grace Todino & John Strang ( O’Reilly, 2002 )

O’Reilly’s Learning the Unix OS is now over 20 years old, but it still remains incredibly relevant. Ballparking it ~90% of the material is useful to us and the remaining 10% can be treated as a Unix history lesson.

This excerpt summarizes things well

This book teaches basic system utility commands to get you started with Unix… We cover a commands most useful features…

preface

We take our second step into Linux with O’Reilly’s Learning the Unix OS / Lab-Book Page

It is a 7-day commitment if you dedicate between 2-3 hours each day to read through the book. You can treat the book as a Practical Guide to Unix. Don’t let the title fool you, much of what we learn about Unix, specifically the command line can be carried over to Linux. We will be covering the essentials of the CLI and the Unix OS, making daily use of Linux even easier.

A Simple Question

Before you begin reading the book, I want you to ask yourself a simple question.
Why should we use Linux?
That’s the first question I asked myself before I even opened the book, because I wanted to really think about what I was doing. What was the point in going through all of this?

Reasons to Use Linux

  • The FOSS nature of the OS allows groups to have a very powerful tool. Making it a great choice for smaller teams or groups without much money.
  • Linux is also capable of running on everything, from the weakest hardware to the most powerful, although its best potential can be extracted on more powerful systems.

A very basic and uninspired answer I’ll admit, but I think those are great enough reasons on their own. As we learn more and more about technology, as we go from inexperienced amateurs to true masters, this list of reasons will grow. We’ll start to see the pros and cons of the OS, come to love it or hate it, but ultimately, understand it.

I mention this because the point of this learning journey is to go from someone who sees technology as a magic black box to someone who understands and can wield it effectively. So. Always aim to keep the big picture in the back of your mind.

Book Overview

Going off my statement in the intro section of this blog you can already tell that I have a lot of praise for this book. A lot of that lies in its brevity and conciseness. You’re given exactly what you need and a little more, enough that you can go out and do further research on your own.

Chapter 1 felt great to go through, coming right off the Linux Upskill Challenge. It was a nice review of commands we’ve already covered like ps $$, who, whoami, and ls. But I was pleasantly surprised to learn about control characters. We also go through the history of bash which is an improved version of the original shell. I found that I gained the most value when we covered the section on processes.

Chapter 2 gives a look at window systems. And this is really where the Unix OS differentiates itself from the Upskill Challenge, that’s because we start covering window systems. Believe it or not, this chapter blew my mind away! That’s because window systems such as X are a layer for GUI’s whereas things like gnome, KDE plasma, etc. are window managers built on top of these systems. And these window managers can give a completely different feel to your environment.
Another important option worth mentioning is the command & option. Which allows us to start programs and put them in the background. Trust me when I say this, I use this command a lot in my scripts and daily life, an absolute essential.

Chapter 3 goes over daily task use. We cover files, the home and working directory, networked file systems. Absolute vs. Relative paths, and file permissions, all standard daily use. Remember, root always starts with a slash ( / ).

Chapter 4, where we go over File Management. Go through any textbook or serious material that covers Linux and you will see one of the biggest ideas in Linux.

“In Linux everything can be viewed as a file, in essence Directories are simply a special type of file.”

From there we move onto covering the primary wildcards, and the big 3 text editors. Vim, Emacs and Pico. Seeing as we’ve recently gone through the Linux Upskill Challenge, I would hope that my readers are no longer scared of vim.

Chapter 5 is all about Input / Output redirection. Nothing we haven’t done before; I’m not placing it here since the blog posts are more of a write-up on my thoughts and experiences. The Lab-Book does have a list of the useful flags you’d want to use for the usual I/O operations  [ > , >> , < , | , grep ]. Following that we cover the ever-important pager programs [ less, more, pg ] to summarize this chapter; pager programs and filter operators are a powerful tool that allow us to sift through loads of information fast and efficiently.

Chapter 6 is a particularly strong chapter. We begin by covering how to remotely access computers. Going over classics like telnet, rlogin, rsh and finally ssh. Truthfully, I knew about telnet and ssh but rlogin and rsh really threw me off. I think the craziest thing I found out was that you can open windows through remote connections also known as Xforwarding. After that we were introduced to CLI browsers, which was just fun to play with, imagine browsing websites through your damn terminal! Even thinking about it again makes me giddy, I think it’s just neat.

Then the real meat of Chapter 6 is the CLI tools to transfer files between systems. Where we cover some pretty important network protocols. scp/rcp/ftp, and some useful commands to go with it.
I mentioned 10% is a history lesson, well, here is the 10%. We go through sending E-mail through the shell prompt, Usenet, talk and IRC. I have always heard them mentioned before so seeing the reasoning and story behind them was very interesting.

Chapter 7, Multitasking. It was cool to get a very small pinch of some computer science. Although CS is still very far away in our roadmap, we’ll get there eventually! The main thing to keep note of is that UNIX can do many jobs at once. The OS divides the processors’ time between tasks quickly so it looks like everything is running at the same time. From there we learn some useful processor terms like PID, TTY, TIME, CMD.

Chapter 8 – Where to go from here?

At last, we arrive at the end of the book. What to do after reading through Learning the Unix OS? Well, if you’re following my roadmap, that’s pretty simple. Keep moving forward! But… you’re always free to go down any path you’d like. For me… the next step is the “Linux Journey.” Our final introductory Linux course, you may find it overkill to do three intros to Linux courses, but I think that just shows how vast this world is. No single course or book could ever hope to cover all the basics. Look forward to what comes after though, because we’ll finally start learning about scripting and much more.

Projects

Project 2 – Your first Wargame -> Over The Wire: Bandit

A screenshot snippet of Bandit from OverTheWire

Our second project will be a wargame.
Now some of you may have heard of CTFs, and wargames are related. So let us define both.

What is a wargame?
A wargame is a cyber-security challenge where competitors must exploit or defend a vulnerability in a system or application to gain or prevent access to a computer system. A wargame IS NOT time-limited.

What is a CTF?
CTFs are exercises where participants try to find strings, called “flags” which are hidden inside purposefully vulnerable programs or websites. A CTF IS time-limited.

My experience
Bandit was fun! A lot of Fun! It’s easy to get bored or frustrated with learning because of how much material you end up pouring through and bandit was a great breather. I found myself becoming more and more immersed in it as I kept playing through it. I kept track of how much time I spent on it every day. I started with just 20 minutes, then I started doing 40 minutes, until I kept going at it in 2 hr. intervals. Before finally pulling an all-nighter and finishing it in a 5-hour session. It took me about 13 hours to finish the whole wargame.

I was always a bit hesitant to read man pages, but for bandit I found myself pushing my mind to its limit trying to find the right commands to break through to the next level. I started reading through the man documentation for the listed commands. I would go through various tech articles on networking concepts, TCP/IP, ssh, YouTube and more. It was very immersive, and now, I’m much more ok with opening man pages to get a better feel for commands.

You can view bandit as the ultimate introductory Linux lab. You’ll end up learning new flags for commands you run daily. You’ll get a better grasp on user and file permissions, go over networking topics, cover data encoding, compression and decompression. You’ll learn about git; shell behavior and you’ll be forced to read the man pages.

Closing Thoughts

Going through this 20-year-old was an enlightening experience. Linux has changed immensely over the years yet at the same time, a lot of things are still the same. I got a feel for using the window systems in Linux, how to start, stop, freeze programs. Play with GUI’s, CLI web browsers, learned about the history of IRC.

The book promised to give you enough Unix knowledge to start daily driving any Unix based OS and it most certainly delivered.

What’s Next?

Next up is “Linux Journey“, where we will be finishing up our introduction to Linux. Even though we should be comfortable with the Linux CLI there are still some important topics that warrant a lookover. Primarily, the different Init Systems, processes and networking.

Fundamentals Roadmap.sh | Learning the Unix OS O’Reilly Lab-Book | Linux Journey Lab-Book

]]>
https://01blu3.com/2024/04/spf-learning-the-unix-os-oreilly/feed/ 0 464
S&PF – The Linux Upskills Challenge https://01blu3.com/2024/01/spf-the-linux-upskills-challenge/ https://01blu3.com/2024/01/spf-the-linux-upskills-challenge/#respond Tue, 16 Jan 2024 21:21:01 +0000 https://01blu3.com/?p=381
A screenshot snippet from the Linux Upskills Challenge site

We take our first steps into Linux with the Linux Upskills Challenge / Lab-Book Page.
It is a month-long commitment that you can follow at your own pace, but if you dedicate 2-3 hours each day it will take you roughly 21 days to complete the challenge. By the end of the course, you’ll be comfortable with the CLI and will have enough knowledge to get started with self-hosting

How I Found the Course

For years I’ve been wanting to start a blog, but I always avoided taking the first steps because I thought that you first had to be a decent developer before you could even try it or that you had to have a lot of spare change to hire someone else or use an online service. These all sound like excuses and if I’m being honest, they were, however, I genuinely believed that you needed to be either a web-developer or a small business to get started. Looking back at it now, I laugh at how tech illiterate I was, yet I can’t blame myself too much since it’s need and necessity that pushes people to learn things. When I made up my mind to finally start going about my learning journey properly, I was at a loss at what to do, all I knew at the time was that “I had to seriously get started with Linux as soon as possible”.

I browsed various articles and posts, looking for the resource that would be the perfect introduction to Linux. It was difficult, there was so much noise. People recommended everything from books to online courses like Udemy or Open-Source alternatives. Eventually though, I finally found the Linux Upskills Challenge. It seemed like the right first step. Technical enough to be engaging but also practical, it also helped that it promised to show you enough about Linux to start self-hosting your own services and more. At the time I didn’t really know what any of that meant, but it was enough to get me excited. And I’m glad I did because I can’t think of a better way to get introduced to Linux.

Why This Course?

When I chose the Linux Upskills Challenge as the first course to take in the Linux Fundamentals Section I simply went off my gut feeling. I had been exposed to Linux a few times in the past but only lightly as a brief portion in an AWS Cert I was taking as well as general hobby use. The main takeaway here is that each of my interactions with Linux had been brief and I always walked away with incomplete knowledge. But over the years I’ve developed a sixth sense for learning material that I deem worthwhile, and the Linux Upskills Challenge ticked all those boxes.

  • First off, the Challenge has an explicit goal: “To serve as a course to help people learn Linux for the first time and to also help other improve their Linux command line skills.”
  • Second, there’s an explicit start and end time: “A course that’s meant to be finished within 20 days if the student dedicates at least 2 hours or more each day. And each day is it’s very own lesson.”
  • Third, there’s room for both beginners and more advanced users. “Each section includes notes on the topic followed by a set of resources that goes into further depth. Lastly there is an Extension if you find yourself wanting a challenge.”
  • Lastly, the course is focused on getting you comfortable with Linux. For each day in the course, you’re given a set of resources and tasks to do. By the very end you’ll know enough to set up your own services such as WordPress, Bookstack, Pi-hole and much more.

Projects

Project 1 – Take your first steps into the world of Self-Hosting

WordPress
Pi-hole
Grafana

Our first project starts off simple. We begin with Self-hosting.

What is Self-hosting? 
Self-hosting is the practice of running and maintaining a website or service using a private web server, instead of using a service outside of someone’s own control.

✨The aim of this project is to self-host 3 services of your choice.

The 3 services we see here are simply options you can choose if you have the interest and if you have the right hardware in the case of Pi-hole. This collection may seem random but these are among the first 3 services I ran and set up when I finished the course. Although the lone Grafana Logo is misleading as it requires a monitoring system like Prometheus in order to use it.

The world of Self-Hosting is a deep rabbit-hole and there is bound to be something for you. The Awesome-Selfhosted GitHub is an amazing collection that I recommend you browse.

Closing Thoughts

I’m surprised I was able to find the perfect first course for this roadmap. The challenge gives you a little bit of everything: Daily tasks, Various required readings, Homework in a sense and extensions if you find the base material to be too easy. And it ends with some great parting advise as well as next steps. It was a very enjoyable course for me to go through and I came away with a lot.

All in all, the course’s aim was to make you comfortable enough with the CLI to start doing your own things and it more than accomplished its goal.

What’s Next?

Next up is “O’Reilly’s Learning the Unix Operating System, 5th Edition”. Where we will get more comfortable using the Linux CLI on our own hardware using virtual machines or a Linux Host, as opposed to using a cloud provider.

Fundamentals Roadmap.sh | Linux Upskill Challenge Lab-Book | O’Reilly Learning the Unix OS Lab-Book

]]>
https://01blu3.com/2024/01/spf-the-linux-upskills-challenge/feed/ 0 381
A Roadmap for the Fundamentals https://01blu3.com/2024/01/a-roadmap-for-the-fundamentals/ https://01blu3.com/2024/01/a-roadmap-for-the-fundamentals/#comments Tue, 16 Jan 2024 21:16:58 +0000 https://01blu3.com/?p=242

Table of Contents

“When action fails you, plan. When planning fails you, Act.”

One of my best and worst qualities is that I hate viewing things as a black box. I have a strong desire to understand the world around me from the small and big things. Everything from how things are made, the science of how they work, I get frustrated when something is a complete mystery to me. While this is a bit of a tangent, it is exactly this desire of mine that has led me to the path I am about to take.

And that path is a roadmap that I’ve made: “Systems & Programming Fundamentals”

If you’ve read my first blog post you’ll know that one of my long-term plans is to take on the MIT Challenge. A few months ago, while preparing for the challenge I discovered that my math skills had deteriorated to 0, not to mention that my math foundations were already weak to begin with. This meant that the challenge would have to be put on hold while I work on building up my knowledge of mathematics from the very bottom. While I would have loved to dedicate all of my time to fixing my math foundations, delaying working on my technical skills is something I can’t afford to do.

So, the question became: “What do I work on in the meantime?

The main thing I wanted to avoid was working on computer programming too early. The reason being is that once you get through the “Intro to CS classes” on MIT’s OCW, the courses start to get very math heavy. I knew that I wouldn’t be caught up with Calculus that quickly, so I needed another option.
That’s when I realized that this was the perfect opportunity to go through two subjects that I’ve been interested in learning about for years: Linux and Computer Networking. These 2 subjects are often covered late in most Computer Science degree plans. However, one can get immense value out of the material without any advanced math, so starting here works perfectly for my situation.

Inspiration & Philosophy

Over the past 2 years, I have been self-studying programming. I’d love to say I was consistent during this period, but that would be a lie. Most of my studying was spread out and infrequent, and I was trying too many things at once. One moment I would be working on Web-Development, then I would be going through python, and I would suddenly find myself trying to dive deep into C++. This was especially true last year: I was attending hackathons, doing a fellowship, and going to work Full-Time. Suffice it to say, this all led to me getting burnt out, having accomplished nothing noteworthy.

Though painful, I don’t fully regret these past 2 years. I ended up meeting all sorts of people and had some truly life-changing experiences, It was a great period of personal development. When I first started programming, I wasn’t sure where I wanted to end up, and I’m certain that’s a big part of the reason why I never fully committed to anything. But that has changed, I now know that I want to dedicate myself to working in AI & Robotics in the future. Taking that into account and the lessons I’ve learned in the past is why I’m sharing this journey that I’ve started on.

The philosophy of this roadmap is about reaching true understanding. Looking back at my past attempts to self-study there were 2 big mistakes that I made. One was that I was trying to learn everything at once and the other was trying to rush through everything too quickly. The blog article “Play the long game when learning to codeby Daniel Chae explains the point perfectly.
To summarize why I believe focusing on true understanding is important: It is only when you truly understand something that you can start thinking about it in new and interesting ways, that you can start applying it to the real world and see unique crossovers in both related and unrelated fields.

The Roadmap

Systems & Programming Fundamentals roadmap on roadmap.sh

Overview

The philosophy of this roadmap is to take the long-term approach to studying.

For each major topic, we will go through a set of sub-topics that that involve both books & courses that give us a solid overview of the main subject. Upon finishing the course or book we will then be doing a section project, which could involve a large single project or various smaller tasks. Finally, at the end of the section we arrive at the Capstone Project, the Capstone is intended to be a holistic review of everything we have covered, as well as be a difficult challenge that pushes our understanding of the subject to its limit.

Example snippet of the roadmap

To explain the roadmap layout. The blue button behind every sub-topic will link to the full article in the Lab-Book. Meanwhile the actual sub-topic will cover a brief summary of the course, video or book we will be working through, and it will also include relevant resources. While not pictured here, the alternatives section will provide other courses/books/videos that work as a substitute, but you are free to work on everything.

One of the best ways to really cement your knowledge on a topic is through hands-on learning. So we will be rounding out a section by going through a Section Project indicated by the turquoise colored checkmark ✅. The section project is also intended to be both a decent challenge and a good review of all of the material we have covered.
Lastly at the end of a branch we arrive at the Capstone Project marked by the purple checkmark☑. The Capstone is intended to put all of the knowledge we have learned in a branch to the absolute test. This will be the portion that brings us one step closer to becoming an actual engineer. While it’s a category that’s still a work in progress, the intent is to focus on both designing and building powerful practical systems. As well as learning good practices and creating write-ups for our work.
While not pictured Lastly while not pictured, there will be a dark-blue checkmark  next to courses/books that are optional but may be worthwhile depending on your use-case.

The Lab-Book

The Lab-Book Home Page
A draft of the Linux Upskills Challenge Page

This brings us to the Lab-Book

The Lab-Book is a bookstack instance hosted at my sub-domain at lab-book.01blu3.com The purpose of the site is to serve as a place to document any personal labs or projects that I am working on. And the book, Systems & Programming Fundamentals is where I plan on posting any labs and write-ups associated with this roadmap. It will include more detailed guides and all the necessary resources to finish a topic.

I also plan on writing a blog-post for each section that I finish, detailing all of the things I’ve learned and the projects I’ve accomplished. In fact it’s the first section on this roadmap: The Linux Upskills Challenge, that gave me what I needed to finally start my blog.

The Roadmap Path

This is the current list of every subject and topic I plan on covering for this roadmap. My long-term goals are far more involved, but this can be considered as my absolute starting point. During all of this I’m also going through “The AoPS” series of math books starting from the introductory level, which I’ll be covering in a separate blog-post sometime in the future which may include its own bookstack roadmap though it will be a simplified roadmap.

This roadmap is a work in progress that will likely span years as I do not plan on stopping at the System & Programming Fundamentals level. I will continue to work on this roadmap as long as I find it interesting and worthwhile. In the future I would love to convert all of the lab-book into a GitHub repo and make it opensource when I feel I’ve progressed enough.

The Roadmap Summarized

In the following list I will be giving a brief reasoning for each main subject up unto the Intro to Programming section as there are many more things I need to learn before I can provide a proper reasoning for the future topics. If you’d like to know more of the specifics look at the Roadmap Overview in the lab-book.

Systems & Networking Fundamentals

A system can be defined as a set of parts working together, and a network as a group or system of interconnected things.

The aim of this path is to familiarize ourselves with Linux & Computer networking. We’ll learn to both configure and administer our very own Linux Servers, write powerful scripts, and come away with a sys-admin’s eye and toolset. We’ll also gain a solid foundation in computer networking, uncovering the Blackbox that the internet often seems to be, learning about various protocols, topologies, and architectures.
At the end of this path, we’ll be able to call ourselves a jr sysadmin and jr network-engineer.

  • Linux Fundamentals
    • Linux Upskill Challenge
    • Learning the Unix OS
    • Linux Journey
    • Learning the bash Shell
    • UNIX and Linux System Administration Handbook (Alternative)
    • The Debian Administrator’s Handbook (Alternative)
    • Linux Fundamentals Capstone
  • Networking Fundamentals
    • Intro to Computer Networks
    • Cisco CCNA
    • Network Warrior
    • Practical Packet Analysis
    • Core 5G and Beyond
    • Networking Fundamentals Capstone

Intro to Programming

This is by no means an introduction to computer science, that will be something to cover later. Instead, this path is all about easing us into computer programming. We’ll be learning about the absolute basics of programming and some automation as well. We’ll also cover Databases learning about CRUD and Data-In/Data-Out, then finally rounding things out with version control.
By the end of this path we’ll have taken our first steps in programming.
There’s still a long way to go before we can call ourselves software developers much less engineers, but bit-by-bit we are getting there.

  • Intro to Programming
    • Python Programming
    • Automate the Boring Stuff with Python (Optional)
    • Intro to MySQL
    • Git
    • Intro to Programming Capstone

Containers & Orchestration

  • Docker
    • Hypervisors
    • Containers
    • DevOps with Docker
    • Docker Capstone
  • Kubernetes
    • Intro to Orchestration
    • Kubernetes
    • Kubernetes Capstone

Intro to Computer Science

  • Programming
    • Harvard’s CS50
    • Programming Capstone Project
  • Hardware Fundamentals
    • Code: The Hidden Language of Computer Hardware and Software
    • Computer Principles
    • From Nand To Tetris
    • C Programming
    • Hardware Fundamentals Capstone

Computer Systems

  • Systems
    • Data Structures in C
    • UC Berkeley – CS61C Great Ideas in Computer Architecture
    • Software Construction
    • Operating Systems
    • Systems Capstone
  • Linux Programming
    • How Linux Works
    • Advanced Programming in Unix
    • Linux Programming Interface
    • Linux Programming Capstone Project

Conclusion

I will admit that the structure of the roadmap is rather strange. Starting with Linux is sensible, but then we go further into System Administration and just as deep into Computer Networking then we dive into Programming afterwards covering Containers & Orchestration finally arriving at Computer Science. This roadmap is definitely not for everyone, and I can only imagine that a handful will follow through each resource from start to finish.

But making a roadmap for others wasn’t my intention when I began working on this project. Instead, my goal was to create something that I could share with others to show my journey starting over from the very beginning. This roadmap is something I made in order to get my studies back on track, using my years of hackathons and the advice of incredibly gifted students, professionals, and passionate hobbyists to create something that covers all of the fundamentals. This roadmap of course still needs much work, I’m very confident in the early sections but I may likely choose different resources for the future topics. Either way I’m satisfied with the overall structure as is.

I’m not sure how many will follow along if any, but I do hope whoever reads through the roadmap and goes over the lab-book, that they are able to find something of value to them.


It’s a strange project but I am looking forward to what will come of it.


]]>
https://01blu3.com/2024/01/a-roadmap-for-the-fundamentals/feed/ 1 242
Hackathons:  A Two Year Retrospective https://01blu3.com/2023/10/hackathons-a-two-year-retrospective/ https://01blu3.com/2023/10/hackathons-a-two-year-retrospective/#respond Mon, 09 Oct 2023 08:24:26 +0000 https://01blu3.com/?p=44

To say that it’s been a wild ride would be a massive understatement. Hackathons have certainly changed my life in ways I could never have predicted, but recently I’ve grown a bit weary of them. Don’t get me wrong, I’m still in love with the idea of hackathons, but recently I’ve started to feel my passion for them cool off. As I drove back home yesterday morning, exhausted and tired after an all-night coding session, I began to wonder what might’ve led to my feelings of burn-out. That’s when I realized that last week marked my 2-year hackathon anniversary, and that’s also when I knew it was finally time to reflect on those long 2 years.


HackDFW 2021 Devpost Page

My First Hackathon

October 2021, in a lot of ways it feels like just yesterday when I went to my first hackathon. At the time I had been out of school for around 2 years. And it was also around then that I started doing some private tutoring sessions for some students from a local university. I was mainly focused on math tutoring but one of my students had asked me if I also did programming as well, since they had some intro CS classes next semester and weren’t too confident. It had been quite a while since I did some programming, but I felt confident that I could pick up the material I needed in no time. So, I spent the next few months learning all I could about Java and Web-Development. I only had enough time to cover the basics of Java, HTML & CSS, since I was busy with a full-time job, but that was enough to get me interested in computer programming again

As I became more and more engrossed with the field again, I started to search for events or groups that could get me connected to other like-minded people. That was when I re-connected with an old friend from university. I told him what I had been up to, and he recommended that I go to HackDFW. He wanted to join me, but due to some commitments he could not. So, I decided to go on ahead.

When the event day finally came, I won’t lie, it absolutely blew me away. I was awestruck by just how many people there were, and not to mention all the cool things that the companies were offering as prizes and free merchandise. Not to mention the free food, drinks and just the overall atmosphere was something different. Getting to talk to recruiters and engineers about their work and their day-to-day, chatting with other students and professionals about the sorts of things they love, things they want to learn, things they wanted to build that day. It was something I will never forget. My project at the time wasn’t anything too crazy, just a simple static website hosted on AWS S3, but it was the start of everything.

Since then, I’ve now been to over 15 hackathons. I’ve seen all kinds, both big and small, I’ve traveled to both the East and West Coast to compete at some of the craziest events you can think of. Just thinking back on everything I’ve done since really inspires me. So why have I grown tired?

HackDFW 2022 Floor 1 & 2

Why I started doing hackathons

I started doing hackathons because I knew that I didn’t really know a thing about programming and technology. I could use a computer pretty well; tell me you needed some finicky program installed and I could do it. But I couldn’t tell you a single thing about how computers worked, what Linux was, what sorts of programming languages were out there and what you could do with them. I was tech-savvy but I was far from a developer or engineer. I didn’t know a single thing and it deeply bothered me, truth be told I didn’t even know where to start or where I wanted to go, not that I would have known how to get there.

That’s why I became obsessed with hackathons, after HackDFW I realized just how many things were out there, and just how much there was to learn. Things started slowly at first, at the next few events I started talking more and more to fellow hackers. I’d ask them all questions about what they were studying, what projects they were doing, and so much more. I of course reached out to the mentors as well, many of them had done internships or were even full-time software engineers that were more than happy to give advice. I’d ask about things that I should learn as someone who was interested in going the self-taught route. Time and time again, I heard the same 2 things: “Master the basics and focus on what you want to do.”

Advice in mind, I went to Hackathon after hackathon, I kept learning more and more, and I went from knowing nothing about the software space to developing a basic understanding of all the different fields and roles that were available. I also started to win some hackathons which only motivated me to keep going further. It was around June of 2022; this was when I started to go down a pitfall of sorts. Even after everything I had done it felt like I hadn’t learned enough yet, I wasn’t ready to continue down a path, because there was still much more left to do. In some ways you could say I was stuck in tutorial-hell.

That was when I thought about MIT. I thought to myself, “Surely MIT would have a hackathon, right? It’d almost be crazier to believe that they wouldn’t.” So, I went online and typed “MIT Hackathon” and that was when I found out about HackMIT. Funnily enough, I’ve seen a lot of people find out about HackMIT through word of mouth, but I found it purely by accident. That was also when I started to find about a whole new tier of hackathons. I started to become obsessed with them partly because of this self-imposed tutorial hell I was in. I was looking for something, and I felt that if I went to HackMIT or someplace similar I might find it. In some ways, this line of thinking didn’t turn out to be wrong but not quite in the way I was expecting.

HackMIT, Harvard and TreeHacks

On the 1-year anniversary of my hackathon journey I was at HackMIT. This was an important turning point both for myself and for me as a hacker. I had been to quite a few hackathons by then, maybe about 5 or 6. I had thought that HackDFW was big, but that was when I learned what a BIG Hackathon really looked like. For the 2022 year, there were over 1000 hackers at the university. I was truly blown away by all the incredible people I met Hackers, Mentors, Sponsors, Organizers, everyone involved.

I met hardware engineers that were working on creating bleeding edge ASICs, Self-Driving cars, Ex-Nasa engineers, Crypto Devs, Robotics experts, and I had an incredibly pleasant chat with a Physics Professor over some interesting quirks of quantum information science. I spoke to an MIT graduate, who was working on a Start-up with his brother from Harvard, I spoke with two guys who were good friends in college who now worked as quant developers at a trading firm. I also heard about IBMs future for their quantum computing division.

That’s not to exclude the hackers themselves, the mentors and sponsors were great but the hackers themselves were incredible as well. I got to meet all the HackTX organizers for the 2022 year, a whole row of 15 people, which was an incredible thing to see. I spoke with students from all over the country and local Bostoners as well. I saw people working on Robot arms, and even small robot spiders. There were people working on Machine Learning Projects, Software Engineering, Crypto, Hardware, Health, Finance, everything you can think of.

But arguably the most important thing I took away from HackMIT was the conversation I had with one of the mentors. I asked him the same question that had been bothering me for the past year. “What do you recommend to someone who’s interested in going the self-taught path?” He then asked me what I had been doing for the past year and what I was planning on doing. And so, I told him about all the things I had been learning, and the things I was planning to do. Then he asked me “What was it that I wanted to do?” And that was when I became stuck for a moment, I couldn’t answer that question. That was when he gave me the following advice:

“Take things one step at a time and master your basics. Once you’ve got your basics down, seriously dedicate your focus to one area. You can’t be a master of everything.”

Even after going to Harvard, HackUTD, TreeHacks and so many other hackathons afterwards, I always think back to this piece of advice. Though I say that, I didn’t really take the advice to heart until much later.

Post Hack-MIT: Harvard, TreeHacks and others

After HackMIT, due to a genuine strange series of events I went on to represent a non-profit at Hack Harvard two weeks later. That’s where I got to meet my mentor from HackMIT which made for a great surprise reaction. I also got to meet the famous David J. Malan himself, the very instructor of CS50. I also got to speak and interact with almost every single hacker that was at Hack Harvard, I got to be a judge for once, and ended up seeing some truly incredible projects. Hack Harvard didn’t leave as deep an impact on me, but it was definitely very positive experience.

After that came TreeHacks and that’s when I really went all out. I wanted to do something fun and unique, if there’s one thing you can criticize hackathons for sometimes, is the over-seriousness of the projects. I admire the passion and commitment, but there’s also room for over-the-top fun projects as well. And overall, I believe my project at TreeHacks fit the bill to a t. Just for reference, I aimed for the best Cyberpunk hack category. TreeHacks was a lot of fun and it truly wowed me. We had all sorts of guest speakers, unbelievable prizes, and some crazy talent from the hackers themselves. If you’re interested in some of the details feel free to check out their medium article for 2023 ( TreeHacks 2023 Article ). Following those Hackathons, I ended up attending HackUTD and a couple of others as well.


Here I am working on Project Mira at TreeHacks

My Hackathon Malaise

Ever since TreeHacks ended 8 months ago, I’ve had this sort of malaise regarding hackathons, studying computer-science and other related topics. Now that I’ve had a lot of time to think about it, and after experiencing hackathons again last week I’ve finally figured it out. It all comes down to 2 things.

  • The reason I started doing hackathons in the first place.
  • The important advice every mentor has given me.

I started doing hackathons because I knew that I didn’t know a thing about programming and technology. But that was 2 years ago, I’ve come a long way and finally have a solid grasp of what’s out there, and what I would need to do to pursue any field I’m interested in. That leads me to a very important question:

“What is it that I want to do, what is it that I want to be?”

At my last two hackathons, HackSMU V and HackUTA 2023, I was mostly frustrated and tired. After thinking back on everything, I finally figured out what my issue was: It was that I started to work on things without direction. To me Hackathons are places where you can push yourself to the limit to work on a project YOU find interesting. To push yourself to get better and to start work on things that you care about. I haven’t been doing that, I’ve caught myself in the trap that my Mentor at HackMIT and many others have told me about, “You’re trying to do everything, but no one can be a master of everything”

My first 2 years of hackathons were incredible, they helped me grow immensely both as a person and as an overall developer. But the thing is that I haven’t taken an important step, and that is; “To work on becoming a great developer, To work on becoming a great engineer”. The hackathon format doesn’t lend itself well to long-term learning just by the nature of the format. Hackathons are places for hackers to take the first steps in things they are interested in and passionate about. They are there to help you take your first steps toward your actual goals.

I’ve taken my first steps and although I’m still in the middle of mastering the basics, it’s time for me to start thinking about what I want to focus on. To start thinking about the kind of engineer I want to be, and the path I want to take.

To others stuck in similar situation as me, I invite you to ask a similar question.

What type of engineer do you want to be?

What path do you want to take?

]]>
https://01blu3.com/2023/10/hackathons-a-two-year-retrospective/feed/ 0 44
Aiming for The MIT Challenge https://01blu3.com/2023/09/aiming-for-the-mit-challenge/ https://01blu3.com/2023/09/aiming-for-the-mit-challenge/#respond Fri, 29 Sep 2023 05:23:01 +0000 https://01blu3.com/?p=1 The inspiration for finally starting this blog was my desire to document my journey as I take on The MIT Challenge put forth by Scott Young.

In essence it’s doing MIT’s 4-year computer science curriculum without taking any classes.

Image of the main MIT Campus building at night

Why am I doing this and what are my goals?

I took a long break from school that lasted roughly 4 years. During that time, I ended up experiencing many things and working all sorts of jobs. However, the one thing that was always on my mind was my desire to become an engineer. And it was about 1 year ago, when I finally started to make up my mind.

It was during the 2022 fall semester. I had started to seriously frequent university hackathons. To briefly summarize what a hackathon is, hackathons are events where people come together in order to try to bring their ideas to life over the course of 1 to 3 days. These are software & hardware projects that can cover all sorts of fields. I was seriously invested in the scene and was going out weekend after weekend. I was only a part-time college student at the time and was really debating whether I should still attend school. But it all came together when I attended HackMIT.

My experience at HackMIT was lifechanging, the stories I heard from the hackers and the mentors blew my mind away. My desire to become an engineer had finally truly set in, it was already starting to grow when I first began attending hackathons, but HackMIT solidified it. Although I say this, I didn’t start to work towards my goal until the August of this year. That was when I decided to take on the MIT challenge.

I want to become a truly great engineer and apply my efforts to the world of AI & Robotics. I believe pursuing this path is the best way I can add to the world in my own way. I was a part-time student last year, however currently I am on break from school for another year. I plan on returning to school next year to continue to work towards my degree in Computer Engineering.

My Plan

The MIT Challenge was the perfect project to create a strong foundation for my future goals. As I take on the MIT Challenge, I plan on splitting this project into two sections.

  1. Pre-requisite Portion
  2. The MIT Challenge

Over the years I had self-studied programming, but completely ignored working on my math skills. As a result, my already weak math foundations have essentially shattered. I will be studying math starting with Pre-Algebra and working my way towards Calculus. After a lot of research I have decided that going through the AoPS curriculum would leave me with a truly strong framework for mathematical thinking.

Alongside my math studies I will be doing some Systems/Network studies that involve things like Linux and computer networking. The reason for these studies is work related, since I’m not currently able to dedicate myself to the MIT Challenge full time yet.

As soon as I finish the book on Calculus by AoPS I will officially begin the MIT challenge.

In the meantime, I will be sharing my progress on the pre-requisite curriculum weekly on my blog. And I plan on creating an interactive dashboard that will show off my current status in the near future. I belive this will make for an interesting data analysis project and it might lead to some interesting discoveries.

I look forward to sharing my journey with everyone else, and although I’ve already started, there is still much more left to learn and discover.

]]>
https://01blu3.com/2023/09/aiming-for-the-mit-challenge/feed/ 0 1