How many times have you sat down determined to learn something new, but given up before you’ve reached your goal? I’m often asked, “When did you learn…” or “How do you know how to…” This blog has been a big part of my platform to learn for the past two years.
A Platform for Learning
If you asked me why I blog, I’ll probably come up with one of 9 different excuses for why I do it. Branding, I enjoy writing, Outlet for expression. The reality is that over the past two years, I’ve learned more through the process of running a blog than I have about actually writing the blog itself.
A History of My Platform for Learning
Two years ago I decided to get serious about blogging. I’ve probably only posted a dozen times in 2 years. Serious usually means building a new site, changing platforms, changing hosting providers. Here is a quick summary of the tech refreshes I’ve done in the past year and — most importantly — the technology I’ve learned doing it:
- Wordpress on AWS EC2 (running on a single EC2 instance)
- Wordpress on AWS EC2 with RDS (running the database on Amazon’s DB offering)
- Jekyll (Rails blogging platform) on Heroku
- Ghost (Node.JS) on Heroku
- Wordpress on Openshift (Red Hat’s Platform as a Service)
- Wordpress on Google’s App Engine (as part of a bigger shift to try Google’s cloud offering)
That doesn’t factor in all of the pieces and parts that go into running a blog (plugins, search engine optimization, etc).
Translate that into technology stacks I learned:
- Cloud Providers: AWS, Google, Heroku, Openshift
- Languages: PHP, Rails, Node.js
- Number of Total Posts: 12
Find an Excuse to Learn
If I had sat down to learn Amazon’s Web Services platform, I probably would have started up couple of services, played around, but not really understood how the platform comes together. In building out jayschulman.com on AWS, I learned:
- EC2 — the compute instance that runs the Wordpress Code
- RDS — the shared database product
- Cloudfront — Amazon’s content delivery network
- S3 — Amazon’s storage product
- Route 53 — Amazon’s Domain Name Hosting product
- SES — Amazon’s e-mail sending service
- And a bunch of others I’m probably forgetting
In setting up and troubleshooting a real website, I understand better how each of the components comes together.
And you should too. Instead of sitting down with a book on the topic you want to learn, find a project that uses that topic. Want to learn Ruby? Find something that you need or want developed and use Ruby for that project. If you have a specific attainable goal, it’s easier to build your learnings to meet that goal.
The problem with understanding big topics — like a programming language or technologies — is that it is so broad that it’s hard to make it meaningful unless you have an end goal. Make a useful end goal and then build a learning plan on meeting that goal.
Jay, how are my hobbies going to help me at work?
They may seem like hobbies today, but it’s amazing how they will intertwine with your everyday life.
I’m a security consultant. It’s funny how often my hobby projects overlap with my work life. Especially with something like Amazon Web Services, they come up all the time. And it isn’t about being an expert in the area, but understanding enough that it makes sense. A number of my clients use AWS and simply being able to understand whether they are using VPCs (Virtual Private Connections) is immensely helpful.
For Pleasure, Not for Work
In interviews, I often ask the question “What are you passionate about? What do you play with at home after hours?” The idea is that I’m looking for your creative juices. If the answer is “blogging,” great! That’s a foundation to learn a lot beyond what I’m expecting 9 to 5.
Build your project with learning and enjoyment in mind, not with a specific work goal. You’ll have a greater chance for success and you’ll be free to pivot where the project takes you. If my goal was to learn AWS, I would have been less likely to pivot to Heroku, Google, etc.