What I Wish I Knew Before I Learned to Code
The questions that held me back
I’ve been “coding” since I was a child. I didn’t think I was doing anything remarkable; I thought HTML was common knowledge back in the era of AOL 3.0 and Geocities. I used to spend hours creating websites (and graphics to adorn them), even though my AOL account had a time limit (thanks, parental controls) and I could only work on my websites for an hour a day.
If I couldn’t figure something out, I created a workaround. I had a workaround for everything. Looking back, I really pushed HTML to its limits.
HTML made sense to me because I could see my work evolving as I added new lines of code. It was self-explanatory.
But like many children, I eventually forgot all about this hobby and moved on to other ventures.
As a teenager, I worked a summer job in IT… by accident. I had been hired to remove staples from documents to prepare them for scanning, but I always had free time, so they would throw extra projects my way. My supervisor would print out pages and pages of SQL and ask me to find the mistakes and correct them manually. It felt self-explanatory, too, so I did it with ease. Looking back, I have virtually no memories of what the code was expected to do, but I remember learning the syntax and finding typos all over the place.
And then I moved on to other ventures.
As an adult, I built websites for my own projects, but never thought of doing web development as a career, until I began to see advertisements for coding academies. I had no idea what coding was, so I ignored the ads. At some point, though, I saw an ad for a coding academy that included a video… and then realized that “coding” is something I already had experience with.
I breezed through the pre-bootcamp coursework, but on day 1 of the class, I found myself plagued with questions that would eventually prevent me from internalizing anything.
I knew right away that this would hold me back.
As the first day progressed, I filled a notebook with questions.
- How do I know which language to choose for a particular application?
- How do you create a programming language? Don’t you have to program it in another programming language?
- Each project on the syllabus has a checklist of requirements. Is this just to force us to use certain languages so that we can be assessed? Wouldn’t it be better to assign a project and make us use critical thinking skills to figure out which languages and frameworks we should be using?
I bombarded the instructor with these questions before we had even opened a text editor. I needed to understand the bigger picture before I could focus on the programming concepts. I knew that doing exercise after exercise wouldn’t help me retain anything. I needed to see the process from start to finish so that I could know what exactly I was working toward.
I remember offering a suggestion: “I really think future cohorts should start with object-oriented programming because it makes sense,” and being told, “I’m pretty sure you’re the only one who feels this way.”
I wish I knew that everyone learns differently.
It was disheartening to watch some of my peers build professional-looking applications in a single afternoon while I was still counting brackets. But it lifted my spirits when I mastered a concept that was causing everyone else grief and anxiety. We all learned differently, and in the end, we all relied on each other’s experiences.
I wish I knew that it was okay to ask questions.
I felt bad every time I raised my hand (and I raised my hand very often). I looked around the room and saw that half of the class had the same questions, but the other half had tuned out. I felt like I was wasting everyone’s time, but I wasn’t. I made an investment in my future, and I gained nothing by keeping my questions to myself.
I wish I knew that everyone brought a different skillset.
Some people were expert designers. Others were fluent in Python. Some were career changers who brought years of experience in non-technical fields, and along with that, realistic ideas for startups. Others had worked in IT for decades and just wanted a refresher. Everyone had something to contribute.
Ultimately, I ended up withdrawing from the program 2/3 of the way in because of logistics; it became harder and harder for me to go 4 months without any income, and a few emergencies popped up that made it difficult to get there on time (bye bye, car).
But the lessons I walked away with changed my perspective on education.
I developed a deep appreciation for sharing works in progress.
I learned more from my classmates than from the digital resources I had been using to study. Seeing code that worked was just as helpful as seeing code that didn’t work.
I know how I learn now.
I was able to complete my portfolio at home. I was able to spend more time on certain languages and frameworks and less time on others. Now, I understand why and how things work, and I’m able to choose the right technologies on my own. I figured out what works for me.
I learned to appreciate collaboration in education.
I used to be one of those people who ran away from group projects. I was wrong. It turns out that collaborating with other programmers allows you to build off of each other’s strengths, and that Github makes collaboration seamless. There is no “he said/she said”; it’s clear who contributed each component of a project.
I learned to be comfortable with the unknown.
Some “challenges” didn’t have a solution. Other challenges had dozens of solutions. Some projects were self-explanatory. Others appeared to make no sense at all. I began to accept that the questions I had on day 1, while valid, were simply part of the unknown at that time.
It IS okay to spend time figuring things out. That’s the whole point. It IS okay if you finish an entire project today but then you spend all of tomorrow staring at your screen and wondering what you’ve done wrong.
It’s part of the learning process.
I wish I knew that this would be a lifelong journey.
Learning to code is not a race. Even senior-level software engineers are still learning something. This is one of the few fields where you can spend your entire life learning, and still not have learned it all. But this is also one of the few fields where you can use critical thinking skills to figure out something you don’t know instead of taking a class or watching a tutorial.