# How to get good at programming without a CS degree

> How to get genuinely good at programming without a CS degree: build hard things, learn the fundamentals deeply, practice deliberately, and prove it.

Getting genuinely good, not just employable, comes down to four habits: **build hard things end to end, learn the fundamentals underneath them deeply, practice deliberately every week, and get feedback that you cannot argue with.** A degree packages those for you. Without one, you have to supply the structure yourself.

## 1. Build things that are hard to fake

Tutorials feel like progress and are not. Pick projects where the result either works or does not: an interpreter, a database, a ray tracer, an emulator. Interpreters are an especially good first one because they touch parsing, data structures, memory and performance, and [Crafting Interpreters](https://cracked.guide/crafting-interpreters) walks you through two of them with a test suite. See [how to build an interpreter](https://cracked.guide/learn/how-to-build-an-interpreter).

## 2. Learn the fundamentals deeply, not broadly

The gap between self-taught and degree-holding programmers is usually not frameworks; it is algorithms, data structures, and the math to analyze them. You can close it, and go past it, with the deepest source there is: Knuth's [The Art of Computer Programming](https://cracked.guide/taocp). It is slow. That is the point. If you want broad coverage of every CS subject instead, see the [self-taught CS roadmap](https://cracked.guide/learn/self-taught-computer-science-roadmap).

## 3. Practice on a schedule

Skill comes from repetitions with feedback. Two algorithm problems a week, every week, for over a year adds up to all of [NeetCode 150](https://cracked.guide/neetcode-150). One Knuth section a week with real exercises adds up to the whole series in about two years. A fixed weekly slot beats bursts of motivation.

## 4. Get feedback you cannot argue with

Tests that pass or fail. Accepted or wrong answer. A program that runs in an emulator or does not. Checkboxes are easy to lie to; external checks are not. cracked.guide verifies interpreter chapters with the book's own test suite on GitHub Actions, NeetCode problems from your public LeetCode profile, and MIX programs in a [browser emulator](https://cracked.guide/mix).

## What about getting hired?

Getting good and getting hired overlap but are not the same. For a job soon, portfolio projects and interview practice matter most, and a structured program can help (see [bootcamps](https://cracked.guide/vs/coding-bootcamp) and [the degree](https://cracked.guide/vs/cs-degree) compared). For depth that lasts a career, you need the slow work above. You can do both: the cracked.guide path keeps two NeetCode problems a week running for 75 weeks alongside the deep work.

## Questions

### Can you become a great programmer without a degree?

Yes. Plenty of excellent programmers are self-taught. What they share is years of building hard things and learning fundamentals on purpose.

### What should a self-taught programmer learn first?

Program fluently in one language, then build something substantial like an interpreter, then study algorithms and data structures properly.

---

Source: https://cracked.guide/learn/get-good-at-programming-without-a-degree
cracked.guide: A free, dated 145-week path to getting genuinely cracked at programming.
