DEV Community

Cover image for "IWTLP is live: learn to code by building, graded for real"
I Want To Learn Programming
I Want To Learn Programming

Posted on • Originally published at iwtlp.com

"IWTLP is live: learn to code by building, graded for real"

The thing that always bothered me about learning to code online: you solve an exercise, hit Run, a green check appears, and you have no idea what it actually checked. On a lot of platforms it compared your printed output to a stored string. So you can pass with a hardcoded answer, a lucky hack, or code that only works for the one example shown. You "finish the course" and still cannot write the thing.

I wanted the exact opposite. So I built IWTLP, and it is live on Product Hunt today.

What is different

On IWTLP, every exercise:

  • runs your real code on a real server-side runtime (Python, C++, C, Fortran, and now Julia),
  • is graded by a hidden test driver that checks behavior against a reference implementation, not a memorized output string,
  • makes you build the thing from scratch first (a hash map, Gaussian elimination, an ODE solver, a heat-equation simulation), and only then shows you the built-in.

When you solve a problem, the result does not just say "correct." It says how many behavior checks passed and shows you the cases it ran against your function. There is nothing to hardcode against, because the expected answer is computed at runtime from a reference implementation:

include("solution.jl")
_ref(xs) = sum(xs) / length(xs)
check("matches reference", abs(vmean(input) - _ref(input)) < 1e-9)
Enter fullscreen mode Exit fullscreen mode

Compiled tracks do the same thing after a real gfortran, g++, or gcc compile. It is your program, judged on what it does.

What is in it

  • 19 tracks, 4,800+ levels. Scientific computing, DSA and interview prep, computational physics and chemistry, deep learning, GPU and graphics, quant finance, embedded, robotics, security, bioinformatics, and more.
  • Four languages that really compile and run, behind one polyglot runner, not transpiled in the browser.
  • A daily Code Challenge with its own streak, the same problem for everyone, solvable without an account.
  • Per-domain certifications: a three-tier ladder per track whose applied section is graded the same way the lessons are.
  • A practice playground of timed, story-wrapped rooms, plus a plain-language programming dictionary.

The newest track, Scientific Computing in Julia, is 250 levels of numerical methods built from scratch, floating-point and error, linear algebra, root-finding, quadrature, ODE solvers, optimization, Monte Carlo, and a finite-difference heat-equation capstone, all graded on the Julia runtime. We added the whole language end to end, runner included, in a matter of days, because the grading engine is language-agnostic.

Why I built it

I am not a career software engineer who decided to make a coding site. I am an aerospace-propulsion postgraduate and a cybersecurity practitioner who taught myself to code in order to build across every field I fell in love with, from gas-turbine cycle analysis to malware forensics. The reason any of that was possible is that, at some point, I stopped memorizing syntax and started actually understanding computing, and it became the most useful and the most fun tool I had.

That is the whole point of IWTLP: to help students and professionals fall in love with coding the way I did, and to understand it deeply, instead of memorizing syntax and walking away thinking programming is boring. The disciplines on the platform are the ones I have lived, which is why I can make them authoritative rather than just repackaged tutorials.

Try it, no signup

The first project of every track is free, and the daily challenge is open to everyone:

If this resonates, I would genuinely love your support on the launch: IWTLP on Product Hunt. And if you have strong opinions about how coding should be taught, I want to hear them, here or in the comments over there. Thanks for reading.

Top comments (0)