How to Stay Sharp as an Engineer
The true never-ending story
One of the responsibilities I take most seriously as a manager is making sure my team feels supported in their quest to keep learning. Technology, languages, and frameworks all evolve so fast that keeping up is imperative. Here at Flatiron School, being a lifelong student is part and parcel with being an engineer. But how do you keep up as an engineer?
Learning is such a personal thing, what works for one person may feel like an absolute slog for another. The key to staying sharp is really finding what works for your personal learning style and finding a good diversity of sources to keep it fresh. Some people swear by technical books while others prefer interactive mediums and for many, price is a bigger concern.
With that in mind, I wanted to share some of the many ways to stay sharp with the hope that everyone can find something that clicks.
As a Note: Many companies will offer some sort of professional development budget to help you stay up to date, so be sure to check with your management team to see how they can support you!
Technical Books
Starting with the tried and true classic. Technical books are great pieces of education that often have a tight focus and are a great way to learn a new language, framework, or concept. They are fairly interactive, asking you to build and write code along the way and can often be found at a reasonable price point. However, the trade off is they are definitely a commitment and not as easy to pick up and put down quickly. We have a book club that we run here at Flatiron School’s Engineering Team, so here are some good places to start!
- POODR by Sandi Metz
- The Pragmatic Programmer by David Thomas and Andrew Hunt
- Refactoring by Martin Fowler
Blogs and Newsletters
This one you should know, you’re on one! Blog posts come up often as solid results when exercising your Google-fu, and are a great bite-sized way to stay up to date on newer developments. Many companies, teams maintaining open-source projects, or even individual engineers will keep blogs detailing their engineering challenges and accomplishments. A great way to stay up to date is to subscribe to a good newsletter that does the work of curating and aggregating relevant content, sometimes focused around certain communities or languages.
Here are some recommendations from our team on newsletters to follow:
- Break In Tech
- Increment
- Weekend Reading
- Diversify Tech
- Last Week in AWS
- Pointer
- Codrops Collective
- Frontend Focus, Ruby, Node, and Javascript Weekly or anything from Cooper Press
- Elixir Radar
- The Morning Paper
Podcasts
Sometimes you want to find ways to stay up to date while doing other things, like commuting, exercising, or cleaning your home. Podcasts are a great way to immerse yourself and explore learning through a more passive medium. Sometimes just hearing others talk about code can be a good way to stay up to date, or give you good ideas of what to explore next. Dev.to and Devchat.tv are two good networks that aggregate lots of great podcasts. Some Podcasts tend to focus on specific languages or frameworks, but one favorite is The Bike Shed which focuses on Ruby, Rails, and Javascript.
Here’s some episodes featuring folks from our team:
- Elixir Mix 022: “Adopting Elixir at Flatiron School and Pattern Matching” with Kate Travers
- Elixir Mix 029: “JWT Auth in Phoenix with Joken” with Sophie DeBenedetto
- The Rabbit Hole 057: “Imposter Syndrome” with Steven Nuñez
- The Rabbit Hole 068: “Why Not Use Elixir?” with Steven Nuñez
Screencasts
On the other end of the spectrum are screencasts. These highly interactive videos made by other developers show you how to solve difficult problems or learn tough concepts with coding walkthroughs. These are great options for people who learn best by doing. While they are not the cheapest option, there are a ton of good services out there that host a wide-variety of screencasts on various topics for a monthly fee. Some good ones include Ruby Tapas, Pluralsight (formally Code School, PeepCode, and TekPub), Railscasts, and Egghead. A personal favorite is Gary Bernhardt’s Destroy All Software, which covers dense, difficult concepts and pieces of technology with step by step walkthroughs on how to get there yourself. Here is a longer list courtesy of Avdi Grimm of Ruby Tapas.
Online Courses
If you prefer more structure in your learning, you might want to check a more fully fledged online course. Like screencasts these are often highly interactive, providing a mix of lectures, videos, walkthroughs and projects to help you really dive deep into a subject, new or old. Most are not free, but a good course can really be a difference maker for someone who wants a deeper, more comprehensive dive into a topic. Some great places to find short-form courses include Lynda, Sitepoint, and Frontend Masters. For those looking for more formal education along the lines of a Computer Science Degree, MIT has open sourced their entire curriculum, including for all computer science classes. For more university style courses (including some from actual universities), definitely check out Udemy and Coursera.
Practice Problems
Another very interactive (and very free!) way to get some reps in is to take on some practice problems. This might fit better in the realm of interview prep, but for those focused on a very specific niche at work, the chance to tackle a diverse set of contained problems and solve them with some creativity exercises the right muscles in the right time frame. There are numerous places that host these types of problems with varying degrees of structure, community, and features. Exercism is a great way to learn a language, offering tracks to help you master the ins and outs of various languages. LeetCode structures problems around topics and allows you to gauge yourself against others via leaderboards. Codewars has some nice community features, allowing you to see other solutions and vote on best practices or creative solutions. Hackerrank is a little more focused on interview prep and has the benefit of being a pretty common platform to deliver technical interviews. Carving out a little bit of time every day to tackle one or two problems can yield some great results when it comes to slowly growing one’s skills.
Conference and Meetup Talks
Going to a meetup or a conference is a wonderful way to start taking part in the larger community of developers. Hearing others discuss their challenges and accomplishments in person is a really good way to not only learn, but begin engaging with other developers. You’d be surprised what you can learn from other engineers over a cup of coffee or a beer — and going to meetups and conferences is a great way to start building those relationships. The talks themselves are often super-engaging and a great way to learn new tricks or just stay up-to-date. Luckily, conferences and meetups often post their talks for free on Youtube after the conference. Confreaks is a great resource for recent conferences and has links to all the conference talks on youtube. Here are a couple of good ones to start you out, the famous Wat talk from Gary Bernhardt and a fun Aaron Patterson talk from this year’s Railsconf.
Here’s some conference talks from members of our team:
- Meryl Dakin @ EMPEX NY 2019: “Process Potential: Multitasking and Fault Tolerance in Elixir”
- Tracy Lum @ EmpireJS 2018: “Living With Legacy Javascript: Event Proxies, App Seams, And Chunking Rewrites”
- Kate Travers @ Code Elixir LDN 2018: “Pattern Matching: The Gateway to Loving Elixir”
- Sophie Debenedetto @ EMPEX NY 2018: “Phoenix Presence: The Right Way To Track User Involvement in Real-Time Features”
- Bobby Grayson @ EMPEX NY 2017: “Seussical Halting, Indeterminate Faulting”
- Bobby Grayson @ Stir Trek 2018: “Elixir From First Principles”
Online Communities
Community is such an important part of learning. Coding is hard, learning is hard, but it all gets easier when you have people who are doing it with you. Whether you’re pairing on tough problems, using them as a live rubber duck, or just commiserating and sharing success together. Our community is such a big part of every Flatiron School student’s success. Finding your own community is easier than you think. Beyond meetups and conferences, there are several online communities that you can take part in. Twitter can be an incredibly useful resource, especially for staying up to date on the latest developments in the programming world. Our blog editor Kate put together a comprehensive and diverse 500+ member twitter list of some great people and organizations to follow to get you started. In addition to Twitter, Slack, Discord, and Reddit all host a variety of language/theme based communities around programming. Joining one of these specialized communities will help you both stay sharp and give you another place to go for help when Stack Overflow fails you.
Thanks for reading! Want to work on a mission-driven team that loves lifelong learning? We’re hiring!
To learn more about Flatiron School, visit the website, follow us on Facebook and Twitter, and visit us at upcoming events near you.
Flatiron School is a proud member of the WeWork family. Check out our sister technology blogs WeWork Technology and Making Meetup.