Surviving the AI era as a CS Student

Some thoughts on self-guided learning, hiring, AI use, and how to make yourself stand out.
11 min read

There’s been tons of “AI is going to take CS graduate and programmer jobs” going around. While this doesn’t seem to be the case (https://agglomerations.substack.com/p/a-viral-chart-on-recent-graduate), here’s some thoughts on college, learning, and standing out as an engineering student.

This originally was a post on how to make yourself stand out, but I think this is also a general commentary on university education and how to make the most of it.

Written for CS students - but the general premise applies to a lot of creative and startup-oriented disciplines

First, The “Degree” Rant.

School won’t prepare you to be an developer. Most CS programs teach you important fundamentals, and is definitely a valuable experience and foundation — don’t get me wrong. But - just doing a CS degree won’t position yourself to be a stand-out in the competitive hiring landscape. The things you’ll learn are valuable, but that alone is like learning about paint without ever picking up the brush for yourself.

Computer science is unique from many fields in that the tools are all in front of you. There’s no reason you can’t go and build something while still in school, even if just for fun. With the advent of AI - it makes it even easier.

This post describes some of the learnings I found valuable, and some things for you to try, or discover — for yourself.

You Can Start Now

founders working on app

Following your school curriculum is fine, you’ll learn theoretical computer science, sorting algorithms, trees, etc. I knew plenty of fellow students who did very well in classes, they participated in clubs, etc. But (some) of them didn’t have much experience outside that. One thing that I think helped me tremendously, was to build things, outside a school project, and even better - not as an “independent project”.

I have always been very startup minded - so naturally, so I found [shout-out to Matt!], a group of fellow students. We built a handful of apps, with varying levels of success. Prior to Facebook Marketplace, we had built an app for students to sell textbooks, game tickets, and other random stuff. We built an app to pre-reserve parking for Beaches - for one summer, you could reserve parking at a beach in Misquamicut, to skip the line!

I won’t got into the business reasons why those companies didn’t succeed, but that may be a future podcast episode.

My main piece of advice for an engineer - is build as many things as you can. It’ll give you things to talk about in interviews. Leet-code problems are cool (and you’ll need to be able to solve them), but in my opinion - an app or site that applies some interesting CS concepts is way better. Doubly so when you’re learning collaboration with peers.

Learn All You Can - By Doing!

You can read plenty of books online about the valuable lessons you find while building things. But it’s another thing entirely to start knowing not much, and hack your way into building a full fledged app or product — and to evolve it over time.

In my humble opinion, it’s that evolution that leads to the most personal growth. As you grow, the things you built in the past won’t look as shiny anymore. You’ll see imperfections and a clearer path to get where you arrived. That experience in knowing how to get things done - is the thing I value most in an engineer.

Especially in startups where moving fast is the crucial operating mode - It’s better to cruise quickly down a wrong path and course correct, than it is to take a month and build the wrong thing.

I’d also highly suggest publishing your work and sharing it. Even if via a personal site like this, open source contributions, or other projects you share - it’s often a good source of ideas and also helps refine your craft. It’s also nice for someone hiring to be able to read your code or see what you’ve done on Github.

Don’t let AI think for you

ai thinking

AI coding tools are very useful. Sometimes, too much so. It’s a weird feeling to be online, using AI powered copilot or autocomplete - and then to lose that access. The speed impact is perceptible.

The core thing here is you need to be the driving factor for the change. Sitting in the passenger seat, being passive, and letting the AI drive, is how you end up deleting your production database. As a CS student entering into the workforce, you should be harnessing AI in ways that don’t harm your ability to think and understand code.

For example - AI tools are decent at explaining existing code, doing code review, or even some providing auto-completions. I also use it as a sounding board for architectural ideas, and for high level brainstorming. But - it’s important not to let those auto-completions become a crutch. Personally, I’d recommend not using them for someone learning to initially code or honing their skills. I personally think there’s a lot of power in spending time with a codebase, refactoring things over and over.

Building your ability to visualize systems and their relationships is a key skill, I fear over-use of AI will make it harder for students to learn.

There’s a fine line to having an AI tool be an extension of yourself, versus you being a manager of what the AI does. There’s nothing wrong with being a manager, but someone needs to be able to debug and architect things, which is what you signed up for in CS education, right? Anyone can vibe code - the value you bring to the table isn’t in the code you push itself, but your understanding of how the code you push works, and how it fits into a system.

Otherwise, are you doing more than just QA?? Not that that’s a bad thing (sometimes, you might want this), but like we established before — that isn’t exactly productive for learning?

Standing Out

You don’t need to believe any of the things I wrote in this post, but if you can have one takeaway, it’d be this:

Learn by doing. Books and podcasts are cool, AI can write you some vibe-coded crapware, but the main product you’re building in college isn’t the code - it’s your mind.

Anyone can use AI - including your managers, and co-workers. So just passing your work to AI as a sub-routine isn’t a great way to stand out in the workforce. Your reasoning, experience, and judgement when to - or not to build something a certain way is crucial.

Do as much as you can to learn how to build new things, use design patterns, avoid pitfalls, to position yourself to come out of college swinging. If you need some ideas - check out my list below for some ideas for things to try. Some of these might be part of your curriculum, others might not be.

Things to Learn

Not sure what you could be learning? Check out the list below!

student working at terminal

The List

Here we go! In no particular order:

  1. Learn git - most programs don’t always teach this. If writing code professionally, you’ll save yourself hardship by getting comfortable with it. Github Student Dev Pack offers some useful free stuff.
  2. Get comfortable with the command line. Learn to manage files, use git, grep, find, mv, cp, tmux, screen, etc.
  3. Build a personal website / blog. You can host it on Github Pages for free. this site started as a project during one of my classes.
  4. Get comfortable with browser devtools. It’s useful for reverse engineering, debugging your own sites, etc.
  5. Build a mobile app - natively and not.
  6. Try React - this and similar frameworks are very popular
  7. Learn what assembly is and how to write code in it.
  8. Then, Try C and C++.
  9. After that, Try Python or JavaScript. Learn to appreciate the higher level languages.
  10. Try Go, Rust, or Zig
  11. Learn about Stack Machines.
  12. Learn about Markov Chains.
  13. Learn about how Encryption works - Asymmetric vs. Symmetric. Why Base64 isn’t encryption.
  14. Learn what can be done with Hashing Algorithms.
  15. Learn how a CPU works. How the stack is used, and memory allocation works.
  16. Learn the basics for how an operating system boots and runs.
  17. Learn how HTTP works. Then, try out using WebSockets for realtime communication.
  18. Learn how TLS/SSL work, and what TLS Certificates are. Self host something with LetsEncrypt.
  19. Learn what Bearer Auth, JWTs, and Oauth are and how they work.
  20. Learn about theories related to Artificial Superintelligence, The Dead Internet Theory
  21. Get comfortable with Maps/Hashtables/Dictionaries - in scripting languages such as JS/Python/etc, these are a power up for many things.
  22. Use LaTeX for typesetting papers or homework. (Or - your CV/Resume!). Learn how to pronounce it “correctly”.
  23. If your curriculum doesn’t include LISP style languages - try implementing some common algorithms in it https://www.scheme.org/. LISP makes you think differently when implementing some of them.
  24. Learn what Prolog is, and how it solves problems.
  25. Learn about security - e.g. how to securely hash passwords. Familiarize yourself with the OWASP top 10. Learn Ethical Hacking. Don’t end up in prison.
  26. Double down on your networking class, the OSI stack, and how the internet works. Try WireShark and Bettercap on networks you control or have permission to (e.g. at Home)
  27. Learn about what Compiler Backdoors could do.
  28. Do some of the above with other engineering students, business students, etc - as a side project, startup, etc.
  29. Learn what happens when you load a page in your browser.
  30. Learn how to use AI effectively within your apps. Learn about AI security prompt injection.
  31. Learn what Tensorflow, Pytorch, and friends, are. Learn how how AI, machine learning models are trained and architected.
  32. Try using Figma, even if for some basic vector editing. This and similar tools are very popular in the industry.
  33. Learn how to use SSH.
  34. Learn what FTP, FTPS - and sFTP are, and why sFTP is better.
  35. Sign up for AWS, Azure, and learn the core offerings for one of them. AWS has a decent free tier - but be aware of costs and set billing alarms if you scale things!
  36. Get a micro-controller (e.g. Arduino, or Adafruit’s Feather devices), and build something. Stemma QT is very nice for not needing to solder in your dorm!
  37. Get a Raspberry Pi, and build something with it.
  38. Try your hand at making a game (do a game jam?). Try building something 2D. Then, try your hand at 3D game engines, OpenGL, etc.
  39. Participate in a Hackathon.
  40. Install Linux (or more challenging: Arch Linux - just follow the Wiki). Learn about file systems, boot loaders, etc.
  41. Install Windows (even if a very old version), inside a VM.
  42. Try installing “vintage” operating systems, e.g. Windows 95, or Windows 3.1.
  43. Understand Ascii, UTF8, hexadecimal, octal, and binary.
  44. Try serverless hosting such as Vercel, etc.
  45. Read the bitcoin paper and understand how digital currencies work.
  46. Read the hacker’s manifesto, and other popular folklore, stories like the 500 mile email, or text files.
  47. Find an issue of 2600 magazine in a physical location
  48. Watch some Defcon talks - like this, or this. Often very entertaining and educational hacking content
  49. Watch Mr. Robot, Hackers, Wargames, and other hacking / coding movies. The Social Network is also a personal favorite, even if inaccurate.
  50. Hone your code style and learn how to write clear code, write tests, and effective comments.
  51. Read about the history of various successful startups (e.g. Facebook, Apple, Amazon, Netflix, and Google)
  52. Get out of your dorm room and network with fellow students. [Responsibly] party it up!

That’s all

Was this useful? Have additions to the list? Let me know!.

A special thanks to Matt Gagliano for providing suggestions and helping me shape this post!

Feedback

Found a typo or technical problem? report an issue!

Subscribe to my Newsletter

Like this post? Subscribe to get notified for future posts like this.