DEV Community

IyanuOluwa
IyanuOluwa

Posted on • Originally published at startingcs50x.hashnode.dev

Bow to AI or Start from Scratch

“AI is taking over.”

“Programming is dead.”

“Vibe Coding’s the future.”

“Just go back to farming.”

Aritificial Intelligence
Credit: Image by iuriimotov on Freepik

While I was still struggling to understand why I had to switch between VS Code and the console just to run JavaScript, AI could build in seconds what took me months to learn.

I kept questioning whether studying anything in computer science was even worth it.

Then I realized—I was focused on studying anything in computer science. Not computer science itself.

Bootcamps and tutorials mostly emphasized one course, then another; the more you knew, the better. They never even mentioned how it works under the hood.

What even makes AI able to understand our prompts? Beyond JavaScript and the console, what is the world of the web itself?

I only wrote code to see visual progress, but never understood why it worked.

Maybe if I learned the fundamentals, JavaScript would not be so difficult, and AI would not seem so mystical.

So, I started looking.

Tutorials. Textbooks. Coursera… thenCS50x— Harvard’s Introduction to Computer Science.

Interesting—AI hype didn’t seem to affect the course, as it continued to stay focused on the same core logic from the very start.

Highly recommended by humans and AI, it felt like the right place to start.

Plus, I don’t see AI replacing its lecturers in recent or prior updates.

So, let the noise fade into the background—I’m learning fundamentals.

CS50x Lecture O
CS50 Lecture 0 on YouTube

CS50x Lecture 0 literally starts from scratch: Computers are made of millions of transistors switching on and off—1s and 0s. That’s all it understands.

AI runs on just 1s and 0s? I rolled my eyes.

It felt ridiculous that something so simple could produce something that made me feel so far behind.

Then came ASCII, mapping the characters we use every day to the computer’s language. But mapping every character is a lot of work, I think I am better off just knowing it exists for now.

Then, algorithms: finding a name in a phone book. You could go page by page (a hellish search if the name starts with a Z) or start from the middle and cutout the half without the letter(literally) and search again.

Computers aren’t that much of a mystery after all; they just do what they are told (obviously), and go off course if the instructions aren’t specific enough.

CS50x is starting to get really interesting.

But as the lecturer introduced Scratch towards the end of the lecture, I paused.

A visual representation of programming—as I understood it.

Scratch consisted of characters (called sprites)—its most prominent one in the form of a cartoon-like cat, and puzzle blocks to tell it what to do.

Scratch Interface
Scratch Interface

It seems a cartoon character was to help me defeat AI. Funny.

Programming had to be more serious than this, or it would be too simple for me—most concepts in this lecture were actually fun to grasp anyway.

But the memory of HTML, CSS, and notorious JavaScript deadened my smile before it got any wider.

With a raised eyebrow, I skimmed the assignment requirements, then opened the Scratch website, created an account, and made a project page. Maybe I could make a simple game and be done with it.

However, the Scratch cat stared back at me for a good few minutes, and my mind went completely blank trying to figure out what to do next.

Coming up with an idea for the project was daunting—what I thought would be simple was already taking up more headspace from the get-go.

The background and Scratch options I kept scrolling through were so hard to connect with, and I spent way too much time pulling at my hair in frustration.

In time, I considered a few ideas: Basketball game? Probably overdone. A chasing game? That’s literally what the lecture used. Storytelling? Well, that might actually work.

My weary confidence started to creep back.

I was going to do something “unique”.

So, storytelling it is—although it had to meet pretty rigorous requirements—

My project should have at least two sprites, forget about the cat. (Hmm, let’s say I create a project about two girls talking about CS50x… that’ll do.)

At least three scripts (Okay, one script for each character—that’s two)

Third script? I paused. (I’ll figure that out later).

There had to be at least one conditional, loop, and variable

(Conditional — If the girl says this, then say that.

Loop? Repeat a reaction?

Variable? I have no idea.)

Then, at least one custom block. I scratched my head. (What could I even create as a custom block for?)

It also had to be more complex than most projects demonstrated in the lectures. My eyebrows raised a notch. (This potential project is definitely not that complex, but storytelling isn’t common either, so— “unique.”)

I smiled, satisfied.

CS50x is off to a bright start. I think learning fundamentals might actually help me figure out AI’s weakness.

But for now, I have to finish my “unique” cartoon project.

I say unique a lot— this is definitely gonna be a disaster.

See you in the next blog.

Top comments (0)