Retooling for HTML5 Development [Part 1]
So the books are closed on 2015 and 2016 lies before us like a blank canvas. I must admit that, while I've never been a fan of New Year's resolutions, there's something about the beginning of a new year that gets me fired up! How do you plan to fill your canvas this year? What kind of picture do you want to paint? For me, the last few years have been pretty full with a constant and steady stream of billable work. While this is a great problem to have, a full schedule presents unique challenges when it comes to keeping your skills sharp and current. So, call it an informal resolution, but my goal is to knock off some of the moss that's been gathering on my toolkit. As I retool for HTML5 development, I plan to share the neat and interesting parts of that journey with you. And this article represents the first step.
If you don't know where you're going, you'll never get there.
I've always liked that little saying. You need to have a plan if you want to accomplish something big so this first post will outline my general plan for getting this project off the ground and keeping it in the air. As a consultant and senior instructor here at New Toronto Group, I've had to do this sort of thing before and I think there's some wisdom to be gleaned from my hard earned experience.
So, here's the plan:
Assemble a team
Some people are lone wolves but I am exactly the opposite. Personally, I benefit from the mob mentality that a small team can offer. Billable work and other priorities can and will take precedence over the course of this little project. But it'll be a lot harder for me to let my goals slip out of sight if I work on them with others. In a group where every member shares a common goal, each person can play a role in keeping the train chugging along. And I'm very lucky in that regard because colleagues who are always up for a new challenges surround me. And I see them every day. I am wary of the "too many cooks in the kitchen" scenario so I'm planning to keep things lean and mean, at least in the beginning.
Schedule formal meetings
Create a group calendar and fill it with formal events. Invite your team to regular meetings and use the reminders feature to make it impossible to "forget". It's too early for me at this point to put any real detail in the agenda but that will come as things begin to move forward.
Plan to build something real
You run the risk of losing focus (or never gaining it in the first place) if you take the "learning for the sake of learning" approach. I've always liked the idea of applying my knowledge to solving specific problems. Since I've always got a few pet projects simmering on the back burner, that part won't be a challenge at all. But the goal should be to find something that inspires every team member. It's so much easier to work on something that you really like. Spending the first group meeting in a brainstorming session will be time well spent.
Put together the project's infrastructure
The infrastructure pieces that are required for building a new application can be defined somewhat by the tools that you plan to use. Regardless of the specifics, though, you'll want to consider systems for source control, continuous integration, issue tracking and the like. I'm planning to leverage what I already know as much as possible because I want to concentrate on learning one thing well. I don't want to get bogged down in the details of some peripheral technology. For example, I have already decided to use Git for source control because I'm already comfortable with it.
Assemble your learning resources
In the history of the world, there has never been an easier time to learn and that is especially true for technology related topics. But Googling "free html5 tutorials" can render an overwhelming set of results. This list represents some more effective, more focused strategies, in my experience.
- stackoverflow.com is a very active Q&A site
- Join a Meetup group that revolves around your topic of interest
- Follow subject matter experts on social media
- If time and budget permits, take an instructor-led course. I can suggest, without reservation, this [http://www.newyyz.com/mm/training/find-a-course/] as a starting place.
Track your progress in a "study journal"
A long time ago I used to take notes in paper notebooks. Then I discovered Evernote. Trees everywhere rejoiced and my notes are a lot more useful now that they are searchable. If you already have a favourite way to take notes, use it, but do something. The simple act of recording your thoughts helps to solidify the knowledge and facts you're recording.
Plan to teach someone what you've learned
If you've ever been in one of my classes you might have heard me say, "You never learn something so well as when you prepare to teach it to someone else". If you really want to solidify your understanding of a new topic, just try to explain what you've learned to someone who isn't already an expert. Teaching is a rewarding experience all by itself but it can also serve as a valuable learning tool. Teaching others can reveal just how much you "thought" you knew. Facing questions from curious students often forces you to think about a topic in a new way. Take it from me, because I've been there. Addressing real questions leads to a better, deeper understanding on the part of the teacher.
I have a steady supply of captive audience members here at NTG because we do regular Lunch & Learn sessions. If you aren't so lucky, I'd suggest that you look for a willing participant who is at least somewhat knowledgeable and experienced in the area where you're focusing your learning. Your dog doesn't count.
I could go on forever on this topic but billable work is beckoning. Stay tuned for the next post in this series where I plan to talk about the results of our first brainstorming session!
Happy New Year and all the best in 2016! It's already shaping up to be a good year!
Stay tuned for part 2.