Continuous learning, continuous improvement
As a software developer, I’ve spent a lot of time trying to figure out new ways to gather and retain useful information. It’s frankly tough to keep pace as technology evolves. On an average week, I might have a few free hours to invest honing my skills. So I’ve got to make them count.
Are you in the process of honing your personal learning stack? Here are a few ideas free for the taking.
Start an open source project
You learn by doing. There really isn’t some magic shortcut. Just get your hands dirty and build something. Don’t have an idea? Try this.
I’m no code churning Jedi. I’ll always favor scrappy solutions over academic solutions. It’s just in my nature. But I will say the little time I’ve spent working on open source projects has taught me more about writing quality code than years of peer devs harassing me to write tests.
Open source code needs to be easily understood, stable and flexible. The same is not always true when writing single-use code. It’s like the difference between designing a high performance water bottle or a dixie cup. In many cases, the dixie cup works just fine. But try filling it with water, strapping it on a mountain bike and going for a ride.
Similar to starting an open source project but with a key difference. Open source projects help you write higher quality code. Side projects help you better understand user needs and the business side of things.
Companies have been using social listening to monitor the health of their brand(s). It makes sense. Marketers represented the majority of early social media adopters. It’s expected that their use cases dominate the social listening landscape.
But tools don’t have to be relegated to obvious use cases. Tapping into the collective intelligence of social media should be a part of your learning stack, especially if you’re a developer and have the tools to parse the stream of content.
At v1Labs, I’ve created a tool to monitor Twitter for the best UX tweets. I had to write over 10 scripts to do the following:
- Discover candidates for a list called the UXers.
- Analyze candidates to make sure they’re socially active and on topic. If so, I add them to the list.
- Maintain the list to drop inactive members and add new candidates.
- Collect a pool of tweets based on engagements from the list.
- Analyze and surface the top 5–10 tweets from a pool of ~500k tweets.
- Rinse and repeat.
Writing code to monitor tweets is a lot of work but definitely worth it. I figure I’m able to learn as much in 20–30 minutes of consuming highly filtered content as I could in 5–6 hours of idle searching unfiltered content.
Code School was a pretty inspirational learning resource for me back when Gregg Pollack produced Rails for Zombies. Excellent demonstration of how to pair story telling with guided interactive challenges. Immediately applying what you learn is a great way to retain material.
Gregg is now working with Adam Jahr on a projected called Vue Mastery. They’re diverging from the idea of producing a “course” which quickly becomes dated. Instead, they’re committed to producing fresh content weekly. Vue CLI 3 was recently launched and they already have it covered.
I’m excited to see how Gregg and Adam evolve Vue Mastery and take video content to the next level. Here are a few random ideas:
- Non-linear video content
Instead of transitioning from video to video in a linear series, it might make sense to seamlessly stitch videos together using flowchart logic powered by in-video interactions. This could be great for injecting context for beginners and skipping ahead for advanced consumers.
- Async group watching
One of the great things about Twitch is the community aspect of watching a live event together with a group of people to get reactions and commentary. In the case of watching lessons, it doesn’t make a lot of sense to do it live. Instead maybe the “liveness” can be simulated and you can see the reactions of previous viewers as if they were watching live with you.
Personalized curriculum with bots
I’ve noticed a trend where apps employ bots to direct users to associated help docs. Why not generalize that solution and have bots help you create a personalized curriculum?
Bots shouldn’t necessarily be in charge of maintaining your curriculum. I think people might be a bit skittish at that thought. Instead, bots can collaborate with you and surface new learning tracks on demand. If something sounds interesting, they can help with scheduling.
Find a cross functional collaborator
I highly recommend finding and regularly communicating with people who have diverging skillsets. I chat weekly with Austin Pocus, author of Crypto Padawan. People likely classify me as more of a frontend developer and him as more of a backend developer. Reality is far more nuanced than the broad labels we apply to things.
Austin has a deep appreciation for cryptography, random programming languages, hacker history, privacy and rap music. I am an expert in exactly none of those things. But that doesn’t stop us from exploring ideas. Sometimes ignorance helps you gain a new vantage point and sidestep the echo chamber.
Write for Hacker Noon
Maybe the idea of starting a blog is daunting because you’ve got to put so much work into building an audience. Good news, you can have an audience tomorrow via Hacker Noon! If you put in effort to document your coding adventures, I’d be shocked to see David and the Hacker Noon team reject your work. They work hard to maintain their community of over 1,000 writers/hackers.
Reading Hacker Noon is also a pretty swell idea.
Unfortunately, I haven’t gone through a coding bootcamp so it’s hard for me to properly evaluate this avenue. I’ve seen people come out of bootcamps and produce some pretty fantastic code. On the other hand, I’ve seen people become overly dogmatic about the processes and frameworks taught in bootcamps.
I believe bootcamps offer structured education which is pretty desirable for many aspiring developers. If you feel that way, feel free to incorporate a bootcamp into your learning stack. But don’t assume you’ll just be able to pick up a few quick skills and be good to go.
If you run into a problem, it’s always tempting to find the answer in Stack Overflow then move on to the next problem. Try to resist that urge as much as possible. Go read docs to build context and a deeper understanding. I know most docs are poorly organized and it can be a slog. It’s worth it.
console.log() to debug. If you happen to be working with a simple object and find yourself spending a lot of time navigating the object, try using
console.table() instead. Works great for tabular data.
My opinion on hackathons has changed pretty dramatically over the years. Initially I loved the concept. Seems like a great environment for a scrappy engineer to test ideas.
As my exposure to hackathons increased my favorable impression quickly decreased. Instead of people exploring ideas and collaborating, I saw a lot of hackathons used as a platform to launch startups. And I saw a lot of people joining as “idea people” with the expectation that they’d find a developer to build their shit.
I recently joined a hackathon designed by the Traackr team to explore problems and solutions for users of their platform. I saw a lot of the things that appealed to me years ago. People were scrappy and collaborative. It gives me hope that well designed hackathons could hold a prominent place in the learning stack.
Codesandbox builds on the idea and gives you a file system and excellent dependency management if you’re using a common dev stack such as Vue.js or React.
Personalized group learning
I previously wrote a post about leveling up your hack skill tree. I believe it would be amazing to get together a group of 10 people who all have similar baseline skills and are also interested in acquiring the same new skill. To organize, they could have a daily standup meeting for everyone to report:
What did I accomplish? Screenshots and gists should be encouraged.
What did I discover?
What frustrates me?
Normally I’m not a fan of standup meetings. In startups, standup meetings typically function as a management tool to hold people accountable for the tasks they’ve been given. In this case, it’s self-driven which makes a huge difference.
Thanks for reading! Check out v1Labs and follow me if you’re interested in UX hacks.
I hope I’ve given you a few ideas to add to your learning stack. Did I miss anything? Leave a comment to help fill in the gaps.