Teach yourself a skill in 30 days — with Justin Bellefontaine.
Justin (@jbvalo) is the lead Front-end Developer here at Norex. In February, he took 30 days of paid leave from work to learn Angular JS. I was curious about the idea of sabbaticals, and I wanted to know how Justin managed to focus his learning all month. Justin very kindly agreed to answer some of my questions.
My first question is — how did you end up on sabbatical? Isn’t that usually an academic thing?
So, a few years ago, Leah and Julia started thinking about introducing sabbaticals at Norex.
Basically, after three years, senior employees get to go on sabbatical for a month to learn something they’re interested in and that may benefit the company moving forward. I think Leah originally heard of the idea from some startups who’ve done the same thing.
The idea was brought up a few times at different meetings. Since I’ve been here the longest, I was going to go first. The biggest problem was finding a time I could leave for a month and we could still handle the work. Because its a long time for an employee on leave at a small company.
Finally we said, Let’s just do this and see how it works out. We’ll just treat it like an experiment and hopefully we’ll learn some things. Really thats how it happened. One day Jenelle just said, Ok, lets set your date for February.
I chose a topic I wanted to learn — Angular JS — and then I took 30 days off work to go and learn that.
Why Angular JS?
Initially I had chosen something that was more of a hobby — a DJ music production-type thing.
But I wanted to do something that would support my career in front-end development. So, I asked myself, What’s missing from my current skill-set?
I looked at few resources online — there’s one called DevDocs and that really goes through all the key skill-sets a developer should have. I also looked at job descriptions to see what skills companies were looking for. And Angular seemed to be the big missing piece for me.
I did some research on Angular after that and saw that it had a large community behind it — and its being developed by Google so its obviously not going anywhere. So that’s really how I landed on it.
Did you have a plan for how the month would go? Or was it just a see-what-happens kind of thing?
Well, there wasn’t really a structure before me because I was the first, so I had to kind of make it.
I started with a primary goal — to learn enough about Angular to use it in projects. And my secondary goal was to bolster my skill-set as a front-end developer.
So I had those two goals at the top. From there, I basically just created a syllabus of what my daily goals were going to look like. I looked at a couple online courses for Angular and used that as a reference to structure my own syllabus.
And then really I just flew by the seat of my pants because I didn’t know anything about Angular. Its actually really tough to plan for something you don’t know anything about. You really have to lean on existing courses and things. But yeah, it turned out to be pretty good.
The only thing I would say is that the syllabus ended up changing as I went. I didn’t necessarily learning my Day 2 goal on Day 2. It was a much more organic process.
So what did the month actually look like?
The first few days, my plan was to sit down and do Google’s course on Angular. That was supposed to take a week. And it only took two days. So after that point I was a little freaked out wondering, Ok, what do I do now? Because I have all this time left.
So I had to go through and think how do I best learn. And I had to think back to college and high school and think, Ok, how did I best retain information, how did I get to that next step. Its really tough when you’re self-directing learning because you may not be a teacher yourself, so you don’t know where to go with things.
But what I figured out is that the only way I learn really effectively is hands-on. Like, practical examples. So after I finished the course I said, Ok, I know enough to build something. So, why don’t I just start a project and see what happens.
So I thought up an outline of the site that I wanted to create. I decided it would be for eCommerce, because thats what Angular is really well suited for — eCommerce and web applications.
So really, after Day 2, the entire month was focused on this practical project that I’d created, figuring out how I could apply Angular’s core methodologies to solve this specific problem. Every day I was trying to learn something specific about Angular that I could apply as a feature to the site.
After you’d solved the initial what-do-I-do roadbump, what were the biggest challenges of the month?
A big one is just keeping yourself motivated.
The other thing I found, too, is that being alone for an extended period of time is a little tough. Especially with no one to kind of bounce ideas off of. I would talk to some of the guys in the office, but you also have to think about their schedules. They’re all working on client projects versus something like this.
And I also really wanted to try and figure things out on my own. I was just determined to get by any roadblocks by myself. Because in conquering a challenge like that, you learn a lot more I think about what you’re trying to do.
Beyond that, it was really just tough not to have a mentor in the area. When I had really specific Angular problem, I couldn’t just say, Hey, can you come over here and look at this — what’s wrong with this. Just tell me what’s wrong and then I’ll understand.
Its a little bit of a hindrance, because you just want to keep moving, but you get these roadblock. There was one particular issue that I was stuck on for probably an entire week. That was difficult to get past. But I eventually did it — by myself — so that felt like a huge accomplishment.
How did you solve those kinds of problems, since there was no one to ask?
There was a collection of resources I used. StackOverflow was one, W3C schools documentation.
StackOverflow was especially great, because in my endless days of searching I found another guy who was having the same issue as I was. I went through every line of his solution and tried to figure out what he was doing to fix it. And then I’d go through my own code and comment every line — this line does this, this line does that.
Of course, with that kind of resource, its easy to get lazy. Its so tempting to just copy and paste a solution into your code base. But copy and pasting something is definitely not the same as understanding it. That was the biggest thing for me — remembering that I’m trying to learn, not just fix a problem.
Can you remember a particularly tough day?
Yeah. I can’t pinpoint exactly what made it a rough day. But it was probably mid-month and I think just being in the same spot for so long, sitting for so long, dealing with these challenges every day… it kind of just wears on you after a while.
I found that it helps to get up and do something else for a while. And thats the beauty of the sabbatical is that you can make your own hours. So if you’re not feeling particularly motivated at any given time, find something that does motivate you.
And also just go out and talk to people! Because it gets really isolating. Its not fun when it gets to that point where you’re just so focused on something. And that’s where I was. I was just so immersed in what I was building that nothing really mattered, I guess. At that point I just had to take a step back.
Do you have any other tips for people who are in that kind of working space?
Stay disciplined, otherwise you’ll keep making concessions to yourself and won’t get anything done. So, I made myself start early in the morning, even though I didn’t have too. And I did give myself flexibility with my hours but I also had a base number of hours to accomplish each day — 8 hours — and I was very careful about sticking to that.
But you didn’t have trouble staying focused for that length of time?
I find the Pomodoro technique very helpful for that. Basically, the idea is that you work for 30 minutes and then take a very short blitz-break. You just do something completely unrelated for a very short period of time, like a minute or two minutes. And then you jump back into your work for another 30 minutes. You continue doing that off and on throughout the day and it actually has been proven to increase productivity.
I’ve been using this technique since 2008 and I find its really effective to keep focused. Even though you’re defocusing every thirty minutes. That’s the important thing is that you can kind of recharge your brain that way.
How did you feel at the end of the month? Did you accomplish what you’d set out to do?
On my last day I went through the syllabus that I’d created and I asked myself, For every day, did I achieve this goal? And the answer was Yes.
Although, I don’t think this is the type of thing where you should be forcing yourself to learn the exact goal that you’ve set out for yourself. Sure, you want to learn the subject you’ve chosen, but you also want to learn about yourself, too, and how you learn effectively.
Success is measured in many different ways. For me it was by asking myself, Have I achieved what I set out to do? That is, can I use Angular on a client project? And by Day 30, the answer was, Yes I can. Day 1, I didn’t know anything about Angular. I knew what it was, but I didn’t really know what it did. Day 30 I could use it on a client project and put it out into production.
So yeah, it was a very long month, but it also went by in a blink. So you can’t squander the time you have and I really tried to make sure that every day I was doing something productive. And in the end, I achieved what I set out to do.