** If anyone is interested in trying Wyzant (reviewed below), please use my code and get $40 of tutoring for free!**
Sometimes going it alone is great. And sometimes you need help.
I’ve been teaching myself to code and backtracking to more and more basic subjects to give myself a solid foundation in programming.
I’m still not 100% sure what I’d like to specialize in, but I’m leaning towards data science and/or AI. (Will write more on my love of cyborgs and why AI later…)
But I have to start at the basics. For now, I’m doing simple toy programs (tictactoeAI) and working through several Coursera courses on algorithms.
While the code I write works, I just know it’s ugly. It feels brittle and ungainly and while I wanted to fix it, I didn’t know how. One of my biggest fears about being a self-taught programmer is that my code might work, but it’ll be a hot mess and I’ll have locked in bad habits.
If I were in school, I’d be getting design feedback, but going it alone that’s hard to get. I’ve been submitting code snippets to codereview stackexchange and while that’s been hugely helpful it doesn’t go far enough.
I really needed someone to sit down with me, walk through my code line by line, and give me feedback.
Looking into tutoring options
After a week or two of fretting over what to do I finally decided to try an online tutor.
Ideally, you could ask a friend or coworker for help, but I don’t have any close friends that code and felt bad asking someone I didn’t know very well for such a big favor. Since I’m a beginner, I need a lot of patient explanation and I thought that was just too much to ask someone who wasn’t a close friend or family member.
I looked into various meetup options, but ruled them out for much the same reason. The ones I found were group study sessions where peers helped one another – basically stackexchange IRL.
Online tutoring with Wyzant
So I took a chance in a tutor on Wyzant. I was worried about the cost ($40/hr for the tutor I chose), but since the first session is free I decided to try it out.
I met my tutor for the first time this afternoon. She was amazing! It’s incredibly helpful to have someone who knows what they’re doing walk with you through your code. I’ve done crit sessions with writing and art before, and I would put codereview closer to the crit side of the spectrum vs. the tutoring side.
We discussion some foundational CS concepts like layers of abstraction, scope, and the stack (and how/when it gets cleared out). She clarified a lot of concepts I had read about and vaguely understood. She also pointed out some problems with my code that I never would have noticed on my own.
For example, in my tictactoe AI when the user plays more than one game, I create a new instance of the board/AI objects for each new play. She told me that if a user were to play a whole bunch of games in a row, that my current setup would lead to stack overflow issues. This isn’t something I ever would have caught since I never played more than one or two games in testing.
All in all, it was great to be able to ask all the why questions that I never get to ask on online forums or when asking a quick question to a friend. When she first pointed out the issue with my tictactoe game, instead of just saying ‘ok, got it’ and fixing it, I asked why it was a problem. That led to a 10 min tangent on stacks and scopes, but it clarified the concepts I needed to know.
All in all, it was time well spent. I’m reworking the programs we looked at together now and am planning on making our sessions a regular (weekly?) occurrence. I figure $40 a week on tutoring is still waaaay less $$ than school and a worthwhile investment to learn to write legible and strong code!