This post is a response to this month's T-SQL Tuesday #108 prompt by Malathi Mahadevan. T-SQL Tuesday is a way for the SQL Server community to share ideas about different database and professional topics every month.
This month's topic asks to share how we learn skills other than SQL Server.
I enjoy learning to do new things; there's a major sense of accomplishment I feel when I can tell myself, "Wow, I went from knowing almost nothing to being able to have this new skill."
Over the years I've realized I'm pretty consistent in how I go about learning something new, so what follows is my process for learning a new skill.
What I Am Learning
And so the appeal here is that if I can ditch the overhead of a large library, my code will be simpler, easier to maintain, and faster to load and execute.
Steps to Learning a New Skill:
me, the hardest part to learning a new skill is time management: if I don't
make time for it, it won't happen on its own.
I think the easiest way to make time to learn a new skill is to incorporate it into a project at work. By aligning it with your day job, you're guaranteeing some time to work on it most days. Yes, critical projects and deadlines do come up where learning has to be set aside temporarily, but if you can find a project that doesn't have urgent deadlines AND aligns with learning goals, then you'll be good to go.
working through a library like jQuery.
Now obviously this won't work in all scenarios: if you want to learn to build drones and you do development work for a chain of grocery stores, you probably can't figure out a way to align your interest with work (unless of course your company is trying to build out a drone delivery service).
In that case, you need to set aside time at home. This essentially comes down to your own discipline and timemanagement. The key here is that youneed to set up time regularly and set yourself deadlines. Instead of having the deadline of a workproject to help motivate you to learn, you need to tell yourself "I'mgoing to get this chunk of plastic and copper wiring up in the air by the endof the month" and try to deliver on that goal.
2. Go Cold Turkey
This is the hardest part of kicking any old habit.
Ideally when learning something new, I like to use it exclusively in all
scenarios where I can.
This may not always be possible: sometimes there is a deadline you have to meet and trying a new skill that slows you down is not always the best idea.
But even if that's your scenario, pick at least one project to go completely cold turkey on for learning your new skill. Going cold turkey on a project will force you to work through the hurdles and actually learn the necessary skills.
3. Build a Collection of Resources
The internet is awesome: it contains nearly all of the information you could ever want for learning a new skill. The internet can also be a terrible place for learning a new skills if used incorrectly.
When learning something new, I try to find resources that guide me through a topic. Whether it's a book, a website with a structured guide, a video course, or documentation with clear examples, it's important to find something that will teach you the why as well as the how. I prefer using something with structure because it helps me learn the fundamentals correctly.
What I don't like doing is searching for each question I have on StackOverflow. Don't get me wrong, I love StackOverflow, but when learning some brand new skill I don't think it always provides the best answers. Sometimes you get good answers, but sometimes you'll come across answers that, while technically correct, apply to some edge case, old version of a language, etc... that make them less-than-helpful when learning a new skill.
4. Document and Share
As I learn, I document what I learn. This could be as simple as code snippets that I find myself using all the time, or it could be links to additional helpful resources.
Eventually I like writing up what I'm learning. Even if no one reads it, summarizing your thoughts and ideas will help clarify and retain them better. A summarized document or blog post also provides an additional reference for you to use if you need to in the future.
taking notes and sharing with individuals who are learning along with me.
5. Rinse and Repeat
That's it! On my first pass at learning a new skill I try to finish a small project to get some immediate satisfaction. I then pick a new project that's a little bit more ambitious, but still be manageable because I now have some knowledge that I didn't have before starting my first project.
Baby steps. A little bit each day (or every other day). Do it enough times and eventually you find yourself being fully capable of whatever skill you set out to learn.