What I Wish I Knew Before I Learned to Code

The questions that held me back

Photo by Chris Ried on Unsplash

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 know myself. I can’t learn unless I understand why and how things operate. Before doing the pre-bootcamp coursework, the only thing I knew about JavaScript was that it’s blocked on school computers so that kids don’t play games, and if you don’t enable it, websites don’t always function as expected. By day 1, I could read and understand basic JavaScript, and I could regurgitate it with different variables, but I had no idea why I was doing it or what type of situations would prompt me to use these particular snippets of code.

I knew right away that this would hold me back.

As the first day progressed, I filled a notebook with questions.

  1. How do I know which language to choose for a particular application?
  2. Why JavaScript? What sets it apart from other programming languages?
  3. Why do people use Ruby for the back end and JavaScript for the front end? Could you theoretically use Ruby for the front end? Why or why not? Could you use JavaScript for the back end? Why or why not?
  4. How do you create a programming language? Don’t you have to program it in another programming language?
  5. 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?
  6. Where exactly do I PUT the code when I’m done? Where do I put the JavaScript?

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.

As the course went on, I memorized snippets of JavaScript to make pop-up alerts and other flashy features. I wasn’t really conceptualizing… I was just replicating what I had seen. I aced the object-oriented tasks, though.

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.”

My learning style ultimately affected the way I progressed through the program. I found myself using a variety of apps to practice Ruby and being able to transfer what I learned to my real-world projects. I studied JavaScript by reading and analyzing other people’s code. It was almost like learning a spoken language; I had to learn to read before I could write.

Photo by Christopher Gower on Unsplash

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.

Photo by Steve Halama on Unsplash

How did you learn to code? What were the biggest obstacles that you faced? Share your thoughts in the comments.

Connect on LinkedIn.