First ever mailbag post!

Big milestone, you guys. I got TWO questions since setting up my contact page last week. This necessitates (drumroll) a mailbag post! 

Question from a reader on learning callbacks:

Thanks so much for detailing your thoughts and preparation!

How did you further practice callback functions? I have my interview with HR in a week and I feel I still need some practice with them.


My response:

I found that the most useful references for callbacks were the Udacity course that Marcus (cofounder of HR) teaches (he does a good job explaining how the compiler runs through code), and this book.

The best way to practice is to find someone (if you are at university, this should definitely be doable) who can sit down with you while you code, and give you guidance and feedback. At least, that's what worked best for me.

I sat down with a friend and worked through writing the reduce function, using the each function as a callback. That is when I finally understood what I was doing.

For studying the underscore functions (reduce, each, map, etc) in particular, I found that lodash (a superset of underscore) has a more intuitive way of writing the code. You can see how they implemented collection functions like each and reduce by browsing their documentation, or just by opening up the console while on the lodash site and running console.log(_.reduce);

Good luck and don't give up. If this is something you really want to do, you will be able to make it happen.

Best, JK

Question on finding a mentor online:

I was wondering about how would one go about finding a good mentor if they don't live in a city where tech is a big deal. Since I doubt any senior person in the Baton Rouge, LA area is hugely into the web(python especially) I know I would have to find a mentor online, but how?

My response:

It is very hard to find a mentorship from scratch, I agree. Instead, I would look for meetups ( in your area, or, if you're able to travel a bit, in the nearest major city.

Then go for a smaller goal of just finding a study buddy who is more of a peer vs. a senior dev.

Ultimately, I think a study buddy is more useful than a mentor when you're starting out in programming (if that is indeed the case for you). You can learn from people you admire online by following their blogs, tweets, LinkedIn articles, and Github activity. But when you're starting out, nothing beats having someone to slog through problems together, and to help keep you accountable.

If you are looking for more structure, Udacity has a Nanodegree program that you might be interested in. It is $$ though ($200/mo). They do provide Coaches and a private community forum for support, so it kind of gives you that mentorship feeling. They also give you code review and feedback on projects, and that can be really helpful when you're learning. [Full disclosure: I work for Udacity, but I do not benefit financially from new sign-ups or anything like that.]

Best, JK