- Published on
Getting the Most Out of Exercism.io
First - Why?
I owe Exercism my career. When I landed my first coding job, I had no idea what I was doing. My CS undergrad taught me a lot of what java could do, but no idea how to solve simple problems. I had never done code review. And I was mostly on my own at work. I sat every morning for months, working on Exercism for an hour or two every morning, and I got passable FAST.
Flat out, Exercism is the best way to learn how to program, and get feedback on your code.
Join us Here and post your code for feedback too! Or especially if you're stuck. Making coding friends is another thing I owe my career to, it's more important than you think.
The whole Exercism idea is to solve the problems, get feedback, and learn little patterns that you'll use in real code, all the time. Writing big software is just solving lots of little problems, and Exercism teaches you how to do that. It's part puzzles, part confidence builder, and part mentorship system.
Test Driven Development
The problems you are given have tests written for you. To solve these problems, we read the specification, then look at the tests to figure out what it all means. Only once we understand the problem and the tests do we write code, working to pass just one test at a time until we're done. If it's easy and you pass everything first time, cool! But don't stress when stuff fails. Just focus on the next failing test. It gets easier as you go.
If you're just starting out, remember your function has to take in arguments, and return a value. Prints don't count! To run the tests, from your command line run
pip install pytest, then
pytest inside the folder you download the exercise to. If you're using VSCode, you can use the "Test Explorer UI" extension to see the tests visually, and I like it.
Train How You Work
Exercism recently did a site redesign, and they have an in-browser editor. Don't use this. I highly recommend VSCode, and I have a bunch of extensions that I recommend here. Use the Exercism command line tool to download and submit exercises. The walkthrough here is really good.
Go ahead and start a git repo for this work (I'd make it private), and keep your progress there too. I like GitHub for this! Here is their beginner's tutorial. It's a little involved, but git is a life skill you'll need.
Don't be afraid to google stuff (It's more of the job than you think), but try to solve it on your own first. Definitely do google specific functions you need - I google "python string lowercase" just about daily. Don't google how to solve the problem, this is cheating. Solve it first, then look at other solutions to see how else you could've solved it.
Make it kludgy. It's fine if it's slow or verbose. Get feedback and iterate on it. This iterative approach makes programming so much more fun.
Don't Get Discouraged.
Exercism is hard. It took me months to get through the main track. It ramps up difficulty fast, but don't let it slow you down. When you're really stuck, do some little problems in CodeWars. Just do some warmup on the lowest difficulty you can quickly solve, it'll get you thinking about solving problems with code, and those little problems help solve Exercism problems!
Really stuck, or feel like you weren't ready? Try SoloLearn to get the syntax down. Google more too. It only gets easier with practice!
Exercism is a big part of my plan, but there are a few more resources at The Python Powerhouse Plan! And join us on LinkedIn Here, post your successes and struggles! Meeting other folks that are learning is a huge help.