Building tech without a CS degree

Building tech without a CS degree

Today's interview is with startup founder Amean who got into coding and entrepreneurship without a CS degree.

Hey, so can you introduce yourself?

I am currently living in San Francisco, co-founding a startup called Commonplace focused on building the next generation of digital libraries for the internet. I grew up in Cairo, Egypt, where I lived most of my life enjoying the excellent weather. After finishing high school in Egypt, I took the opportunity to move to Canada to attend university to pursue better education in exchange for the freezing weather. I've been fortunate to work in various technical roles and learn many areas of tech over the past few years.

Before working on Commonplace, I was a distributed systems engineer at Protocol Labs, where I worked on a decentralized CDN. I previously also held roles in machine learning, full-stack development, and data science. I hold a patent for my work in machine learning in natural language processing. My current passion and interests lie in distributed systems, information theory, zero-knowledge proofs, and machine learning. In general, I simply love building technology that people use.

Why did you learn to code?

I learned to code when I was in early high school. Back then, I was interested in electronics, hardware, and building projects. Specifically, I was fascinated by aviation, and my main hobby was building RC planes. While taking some aerospace engineering courses online, I realized how long and repetitive some calculations were, even when using my handheld calculator. It was then that I discovered the world of coding.

I learned how to code so I could write basic programs to help with these long calculations, which saved me countless hours on my coursework. I also quickly started noticing how configurable some hardware could be with code. In my case, I wanted to configure flight controllers for the RC planes I was building. I also got into translating many of my math classes into programs as a way to learn the concepts we covered.

Gradually, the number of challenges I encountered where I thought, "Oh, I can write a program to do that," grew significantly. With the only requirements being a functioning laptop and decent internet connection, I was completely hooked on continuing to learn and build solutions.

Amean

How did you learn coding in high school?

My first introduction to coding was through a YouTube series teaching Java using Eclipse. I unfortunately don't recall which one it was exactly. I just remember printing my first "hello world" in my terminal after hours of installation and feeling like an absolute hacker. Shortly after, I discovered Python and immediately made the switch. I completed a MOOC on edX offered by MITx called "Introduction to Computer Science and Programming Using Python."

At that time, the world of online courses was still new, with only a handful of options compared to what exists now. I discovered Coursera back then as well and completed Andrew Ng's classic intro to machine learning course, which was taught in Matlab at the time.

The world of free online courses allowed me to explore my curiosity relentlessly. I completed numerous courses on Coursera and edX. YouTube was also an incredible resource, with many creators producing educational material for free. For a while during high school, if anyone asked what I'd be up to on the weekends, the answer would be "working on my online courses."

What advice do you have for people learning to code in the AI era?

One piece of advice I have for aspiring software engineers is that as a developer/engineer, your core job is to solve technical problems, not just to write code. Code was created to solve problems, not the other way around, and the distinction is critical. Coding is just a tool you use to build software, and even though it is currently the primary one, that might certainly change moving forward.

As a developer, you need to adapt to your tools constantly changing over time. The problem-solving aspect will never disappear. I mention all this because, in my opinion, your approach to learning how to code should be learning how to solve software problems.

Online courses are really useful because they provide a structured syllabus, exercises, and sample projects to build. In my opinion, the best courses are those that teach programming as a subject and use the coding language as a tool. The courses designed specifically to teach coding languages are rarely useful long-term and mostly feel like memorization that you forget almost immediately.

LLMs are an absolutely phenomenal tool for learning how to code. It's like having a full-time teacher ready to explain concepts at different levels. One huge downside of LLMs is that they make it incredibly easy to become complacent when solving problems, and you really need to guard against that while learning. People still need to learn the fundamentals of how to think when building software, and that takes hard work and practice. If your current learning path isn't exposing you to that, then you're not making meaningful progress.

Ultimately, my favorite method of learning is simply building projects. Find exciting problems you want to solve, sit down, and try to figure out how to build solutions yourself. The "figuring out" part teaches you the most valuable lessons. Even better, always try building projects with other people. Collaborating with others has consistently led to my fastest learning trajectories, my best products, and most importantly, the most enjoyable times I've had as an engineer. Nothing beats that.

How did you get your first data scientist job?

Read the full story

Sign up now to read the full story and get access to all posts for subscribers only.

Subscribe
Already have an account? Sign in

Self-taught developer success stories

Get into tech without a CS degree

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Self-taught developer success stories.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.