With the mass open source database that is the internet, you have all the resources you need to learn coding, but often the problem with a sea of knowledge is distilling it into lessons to drink.
Eric Solender is a self-taught computer programmer who teamed up with other students to start Mindset Technologies at UMBC, then left college to become full-time CTO of the company, which uses AI to improve and measure diversity, equity and inclusion in online communities. This year, Solender was chosen as one of the RealLIST Engineers in Baltimore.
Now 23, Solender has been teaching himself the programming skills he’s used to build his career since he was 15.
Of course, “learning” is a relative term, because no man is an island. His own curiosity and diligence were sustained along the way. Solender first learned by watching his father work as a software engineer at Circleback, Inc., and an internship at the company after successfully completing an AP computer science course in high school. At 17, he built a concussion detection tool using motion controls from Xbox Kinect after suffering his own concussion. This led to a position with a Columbia-based cybersecurity company Masterpeace Solutions work with startups. When does IoT security start Zuul became a business after leaving Masterpeace Launcher, Solender worked with this team.
The engine that propelled Solender’s growth from one company to the next was his desire to learn and fill in the gaps in his knowledge. Below are the tips and tricks he learned to maximize his acquisition of coding skills.
But before we get to the lessons and advice on how to maximize the journey of a self-taught programmer, let’s recognize the counterargument to self-learning: learning the skill wrong. Whatever your primary method of learning coding, whether it’s a bootcamp, a computer science course, or college Youtube, it is extremely important to learn the basics of a skill set or language correctly.
Learn the basics
Code Academy is what Solender used years ago to learn the basics of Python when it was mostly free. Now it has a paid model, but there are still plenty of free resources on the site.
These are libraries that Solender considers the best resources to “get started quickly” in the development of application programming interfaces or (APIs): FastAPI, which helps to build the web framework using python for beginners. Flask, a fast way to learn and get started in web development.
Here are some additional options:
Tackle small projects
The application of the material is one of the proven methods of learning. When learning a new coding language, Solender is always looking to do a project that will make him laugh to solidify a technique in memory.
“I don’t just do coding exercises,” Solender said. “I try to come up with a very small content project that I can write in that language that will practice everything I need to make sure I understand.”
A Texas Hold ‘Em project he did for high school AP computer class came to mind:
Here is a demo of the Concussion program he made with the Xbox Kinect:
Another way to work on those skills and create projects that lead to opportunities is to contribute to open source projects. Solender’s Most Outstanding GithubGenericName project is with Mindstand.
Read books that have stood the test of time
These are books that have survived technological changes like “Design Patterns: Elements of Reusable Object-Oriented Software” by a group of technologists now known as gang of four. Although published over 20 years ago and centered on C++, design patterns such as the Singleton pattern and the Factory pattern highlighted in this book are still relevant today.
Another widely read book is “Introduction to Algorithms” by MIT Press.
“My philosophy is that if you can understand the patterns, you can adapt them to any modern language,” Solender said.
Find parallels with what you already know
Object-oriented languages are fundamentally different from learning a functional language. But apart from this distinction, Solender found that most programming languages are very similar. Learning one at a time is closer to learning a new dialect than an entire language.
This is what makes guides like Teach a Python Programmer to Use GO and Java to GO useful.
“For almost every language, there’s a guide that someone has written…that will say this is this in language A. This is what it looks like in language B,” Solender said. “And that brings me to a point where I can kind of code in that language. Then I dig really deep into how you’re supposed to [code] in this language.
Solender’s journey into technology is an example of what early education and more of an apprenticeship-like model of learning could achieve. Since his sophomore year of high school, he’s been working in the tech industry, and it’s inspired this willingness to learn from a variety of resources that aren’t just formal education.
“If you get a little encouragement and know where to find the resources, you can pretty much teach yourself everything you need to know on your own,” Solender said.
Donte Kirby is a 2020-2022 corps member of Report for America, an initiative of The Groundtruth Project that pairs young journalists with local newsrooms. This position is supported by the Robert W. Deutsch Foundation. -30-