Software development is an incredibly fast-moving field. Though new technologies and frameworks are being created constantly, it is common for software engineers to focus on one particular technology instead of learning about other frameworks, languages or techniques. There is a downfall to this though; if a developer is not careful, they could end up proficient in technologies that quickly become outdated. Learning new skills helps engineers maintain their current skills by learning new patterns and techniques to ultimately become better developers. At Stable Kernel, we value constantly challenging our entire engineering team with learning the latest technologies and frameworks rather than keeping our engineers hyper-focused in one particular area. We believe in molding a well-rounded and diverse engineer, and from working at Stable Kernel for almost 4 years, here are some of the ways I’ve approached learning new technologies.
(We are also actively hiring, explore our jobs page if you are interested in becoming a Stable Kernel engineer).
Work on side projects. Coding as a skill is incredibly useful in its ability to solve problems. My best advice to people who are starting out coding is find something you don’t like about the world that you can solve with software and just get started trying to solve it. Learn by doing, and importantly try to use languages and tools that you are unfamiliar with. I only became exposed to Google’s Flutter because I decided to use it for a side project and now it is another handy tool in my mobile development toolbox.
Contribute to open source. I would argue one of the best ways to learn a language or framework that is open source is to contribute to it directly. There is a trend toward large scale adoption of open-source languages and frameworks, so if there is something new you are interested in, chances are good you can contribute. If you don’t have a particular framework in mind, you can checkout a project Stable Kernel has worked on for a few years called Aqueduct an open-source backend framework written in Google’s Dart. There are a lot of options out there, and ultimately I recommend discovering a project that is of interest to them. Most communities are welcoming and willing to help you get up to speed.
Use the right tool for the job. At Stable Kernel, we have experience in many different languages, frameworks, cloud platforms, tools or really anything else you can think of in software development. Sometimes clients have specific requirements that make certain technologies more appropriate for their use case. By having exposure to a wide variety of technologies, we have the ability to choose the right one for the job instead of focusing on a single technology that we happen to be familiar with. This in turn re-enforces our skills in these other technologies giving us more experience to make optimal decisions on which tools to use in the future.
Being a good software developer is about seeing the world from a certain perspective. Finding the simplest expression of an idea is challenging and rewarding. Beautiful code does not mean the shortest code; it means the most natural expression of the idea the code is trying to accomplish. Different languages and frameworks have many overlapping ideas, but they all have some unique features that help us to understand new perspectives.