Learning to program can be frustrating if you’re not sure you’re headed in the right direction. How do you know you’re making real, legitimate progress? Is it when you’ve earned a certification? Completed an online course?
Chances are, you’ve taken a course from Codecademy, Data Camp, or FreeCodeCamp. You may have even completed one. Online courses are great because there are clear goals. They tell you, “if you complete an intermediate class, you are now an intermediate level coder”. You’re meant to feel accomplished after completing each course module.
I remember the time I completed Coding Dojo’s intermediate Python course. I felt happy and accomplished because Coding Dojo told me I “knew” Python. Yet, something didn’t feel right. I would look at other people’s Python scripts on GitHub and feel completely lost. I would look at intermediate-level interview problems and have no idea how to solve them. Worst of all, I would “complete” different tutorials by copying and pasting code. When I realized I wasn’t learning anything I felt uncertain and adrift. I wasn’t sure if I was heading in the right direction or completing online courses and tutorials in circles.
As accessible and simple as these courses are, they don’t paint a clear picture of what it takes to learn a language.
Almost everyone struggles with this part of the learning process. How do you get out of the copy and paste rut? How do you apply what you’ve learned so you can garner interviews and get a job? Here are the ways you can overcome all those obstacles:
If you want to apply your coding knowledge, I encourage you to find coding niches that interest you. You may have no idea where to start or what to look for. Here’s a question to help you get started:
What types of projects did you dream of completing when you decided you wanted to code?
I want you to pay attention to the types of projects you found yourself thinking about. Did you want to code a mobile app? A fancy predictive algorithm? Did you want to write a script that automated all your reporting? When I started to learn Python, I loved the idea of data mining and finding scrappy ways to pull data. I thought the idea of being a data geek was (kinda) cool and, at the very least, valuable in the job market. I started to google phrases like “data mining” and “best beginner’s data projects”. Those searches brought me to articles about API’s, web scraping, and Selenium. Most of the information was way over my head, but I didn’t care. I was having fun. Several searches later, I settled on web scraping. I found a simple tutorial that scraped a NASDAQ stock name and price. I liked this tutorial because I understood what it was saying-I wasn’t copying and pasting! The tutorial took me three hours to complete. I had a ton of fun mulling through the code, debugging, and running the script on various stock prices. You can check out my simple web scraper here.
I remember a particular time I enrolled in a online SQL course for beginners. The course took me through SELECT statements, JOINS, and aggregate functions. The course was helpful and thorough in the way it taught syntax. But there was one problem: all I was learning syntax, but unable to translate my knowledge to finding a job. I soon found out companies were not interested in my outdated SQL experience. Every company I looked at wanted candidates to be familiar with the data from their specific domain a.k.a. not outdated movie data.
If you’re in a similar position, I recommend you check out Kaggle. A good friend of mine suggested this site to me and I found it very helpful. I immediately thought, “I wish I knew about this while I was taking that SQL course with outdated movie data”. Kaggle is great because it offers Python, SQL, and ML courses that use engaging data. You’re also able to download real world data sets so you can practice solving problems in any domain. If you’re looking to get into FinTech, they have finance data sets. If you want to work in AI, they have Twitter, Youtube, and Amazon Review data to feed your model. Whatever your data needs are, they’ve got it.
Find an experienced programmer and ask them to mentor you. If you don’t know an experienced programmer, that’s okay. Here are a few ways you can find an experienced programmer to help you out:
If you’re at a company, see if you can find where your engineering department sits. Find one of the software engineers and ask if you can buy them a coffee, lunch, or both. If you kindly ask for their help and aren’t annoying, they may be willing to show you the ropes.If you’re in school, spend some time getting to know the C.S. (computer science) majors. Ask if you can buy them lunch, and see if they’d be willing to help you.Go through your 1st, 2nd, and even 3rd connections on LinkedIn. Has anyone recently made the job switch into being a software engineer?
If you’re up to it, go ahead and make the ask. The number of programmers willing to help may surprise you.If you went to school, you have an alumni network at your disposal. Go through LinkedIn and start with alumni you have connections with. Some schools have an internal database of alumni so you can also look there. You may have a professor who can introduce you to an experienced programmer. Find a way to contact them, say you went to the same school, and ask if they’d consider mentoring you.
An experienced programmer is important for a couple of reasons. For starters, they’ll show you how a real programmer operates. One meeting my coding mentor challenged me to solve a problem while using Stack Overflow. At first, I was resistant. Was this guy not experienced? Did I pick the wrong guy? Turns out, most programmers, even the expert-level ones, use Stack Overflow.
In fact, the best programmers always take time to comb through Stack Overflow. Take time to observe what your mentor does and how they solve problems. Pretty soon you’ll pick up on their behavior. Syntax will be easier to read, problems will be easier to solve, and your confidence will grow.
An experienced programmer will also point you towards helpful resources. They may send you a script they wrote to solve a real problem. They may send you a helpful website with problems to solve on your own time. A few weeks into meeting my coding mentor suggested I find a few books on data structures and read them.
I went to the public library a day later and read through a few. Up to that point, the only data structures I knew about were lists. After reading about other data structures, I started to understand more advanced problems. Terms like “hashing” or “matrix” were more recognizable to me.
There are millions of people who want to learn how to code and millions more who are willing to help. Given the demand, people have formed coding meetups all over the world. The sole purpose of these meetups is to learn from and help one another. Everyone is there provide mutual encouragement to keep learning.
Coding meetups are valuable for many reasons. You’ll get face time with experienced programmers and reap all the benefits of a coding mentor. You’ll also have the opportunity to ask a ton of questions. The best part? People won’t get annoyed at you. Finally, you’ll have the opportunity to listen. Try attending a meetup without touching a single line of code. Listen to how programmers interact, approach a problem, and come up with a solution.
In-person meetups can be difficult to attend during COVID-19. If you can’t attend an in-person meetup, virtual meetups are a great second option. Check this site out if you’re interested in virtual coding meetups.
Learning to code and applying what you’ve learned can be hard. The uncertainty and a lack of direction can be difficult to manage. But if the journey was easy, everyone would be doing it. That’s not you. You’re not going to give up because you don’t want the easy path.
You want a job that’s going to pay you well and give you the opportunity to use your technical skills. Keep learning syntax and applying what you know. Find people who are willing to help you and make sure you thank them! You’re one step closer to landing that job.
Keep up the great work.
P.S. if you’re still uncertain of where to go from here, I launched a site to help you out. I’ll be sending out tips and strategies for going from free coding course to job offer. Reach out with any questions, I always respond!