What I Wish I Knew Before Coding My First Line

“Hello World”

Thong Teck Yew
The Startup
8 min readAug 2, 2020

--

Photo by Clément H on Unsplash

I first started “coding” when I was in university. I didn’t think I was doing anything outstanding. Everyone has been doing the same thing, flexing their fingers on the letters laid out on their keyboard. I thought Python was a “high-level, general-purpose” language that, in fact, a common knowledge every beginning programmers should know. I used to spend hours conducting deep learning techniques and building websites as part of my own project.

If I couldn’t get the expected output, I would create a workaround for it. I could sacrifice my sleep to finetune the code. Looking back, I really pushed Python to its limit.

Python made sense to me because I could see a new model coming to light as I added new lines of code. It is powerful.

But like many children, I started to feel different about coding as I moved on to other ventures.

As university students, we were required to work a summer internship in IT. I felt lost in choosing the job scope that I wanted. I have never wanted to do programming as a career. Seeing lines of code every day is dreadful. Instead, I had been hired to compile documents for filing, but I always had free time, so they would throw extra projects my way. My supervisor would direct me to do data visualizations for the company using Tableau. It felt self-explanatory, too, so I did it with ease. Looking back, there was virtually no code required at all, but I remembered the enjoyment of dragging and dropping elements to create a new graph model without seeing codes at all.

Fast forward 3 years later. Seeing my friends work as a developer always amazes me. I will always ask their opinions about coding. Some describe it as challenging and exciting. Some describe it as interesting. My mind would describe it as dreadful. Lines of error will always reflect on my big round glasses. (Guess I need to wear smaller glasses now. Maybe I will get fewer errors.)

Starting on a new coding project is like building a tunnel. When we can see light at the end of the tunnel depends on how long the tunnel is. Some parts of the tunnel might need rework. We never know when it is fine until we test it out. Have a problem? Debug.

As I went into my final year in university, I continued to build visualization models, but I have never thought of doing application development as a career until I began to see advertisements for coding academies. I had no interest in coding whatsoever, 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 unable to absorb any of the things that were being taught.

I know myself. I can’t learn unless I carry out practical sessions for myself. Before doing the pre-Bootcamp coursework, the only thing I knew about Java was that Gosling and his team were building a set-top box and started by “cleaning up” C++ and wound up with a new language and runtime. Thus, Java or Oak came into being. By day 1, I could read and understand basic Java, 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 I will not get far.

As the first day progressed, my Google Chrome application CPU shot up.

  1. What are some of Java use cases? What sets it apart from other languages?
  2. Is Java different from JavaScript?
  3. How do I add an element to an array in Java?
  4. Is it possible to parse JSON with Java? What is the outcome of it and what should I even expect?
  5. What are the main differences between Process and thread? Does every process has its own memory space, or do we need to have our own stack for each of them? How do they communicate with each other?

Multiple tabs were opened on my laptop browser application. I bombarded the course lecturer with information stored in my Hippocampus. I needed to ask questions to resolve my doubts. As much as I know that doing exercise after exercise benefits me greatly, 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 felt like I was learning a new language all over again. No, not coding language. It was like learning Japanese but without the programming syntax. As the course went on, I memorized snippets of Java to make pop-up alerts and other flashy features. I wasn’t really conceptualizing… I was just replicating what I had seen.

My learning style ultimately affected the way I progressed through the program. I found myself using a variety of apps to practice Java. I studied Java by reading and analyzing other people’s code.

Photo by Emile Perron on Unsplash

I wish I knew that doing it was more important than knowing it

Knowing the basic terms of a programming language is one thing, but doing it is another. I have always read and researched a lot about the fundamentals of the language. Regardless of where we all started out, I will always come from a learning background where syntax and loops are thrown at me. The truth is, these are only teaching us how to buy a packet of milk from a 7–11 shop. Learning how to open and drink it will allow us to achieve more things out of it. By doing something whilst learning at the same time, our mind is committing itself to muscle memory. This will allow us to build a program and commit our time to work things out.

I wish I knew that everyone learns differently

Many of my friends would complain about the learning structure of programming. Some prefer starting from the beginning, learning the syntaxes and algorithms. Some prefer hands-on practices. Some prefer watching examples of how others do it. It all depends on our learning technique and how we adapt to the learning environment that we have built for ourselves.

I wish I knew that knowing the basics is the key to programming

It was disheartening to hear a beginner friend of mine complaining about learning programming basics every single day. Yet, it lifted my spirits as I felt the same way before as well. Everyone wants to win in the race of being that ‘Know-It-All’ Python guy or other programming languages. Truth is, we have to start from the ground. Programming is not a race. We don’t see who typed the longest lines of code to determine who is the best. By grasping the way the code is structured and the elements required, we have mastered the basics of programming. What we need next is to understand how to solve the business problem using what we have learned.

I wish I knew that programming is not hard. Learning it is.

Humans are made to learn new things every day. The same goes for programming. Once we learn how to program, it will become second nature to us. But everyone takes a different amount of time to master a programming language. We need to put in the effort to pick up a new language and carry out practices to ensure that we are familiar with the new tool.

In the end, I finished the course. But the attempt to complete it was half-hearted. I did not find myself using Java that often, but what I found is a greater value than I expected.

I learned that practice does indeed make perfect

I never saw programming as my career in the long run. It requires me to think logically and evaluate the possible outcomes before achieving the desired outcome. Programming does not take a day or 2 to get used to. It takes months and years to get a hold of it. I did not have much passion when starting out initially, but I started sweating my butt out when I saw the endless certificates my friends were getting on their Linkedin Profile. All I saw on mine was a high school educational experience. I knew I needed to hustle.

Tip: Try out some programming interview questions or online practices to test your knowledge and see which area you can improve on. It will help to build professional-looking applications.

I learned that active learning is much better than passive learning.

I am always reluctant to start learning a new thing. It takes time and effort to retain something in the brain whilst ensuring that it stays there for a long time. Whenever I learn a new topic on, let’s say how to code using Swift, the information I learned will be forgotten within 2 months or less. This is because passive learning is taking place whereby only information is only received. Active learning involves immediately applying newly received information and using it then and there. This helps in retaining information “permanently” by encouraging interaction and learning from the mistakes we make.

I learned to get comfortable with uncomfortable

There were many “challenges” that I have to face without solutions. Being able to code HTML when we were able to a year ago is comfortable. Keeping things the way they have been is comfortable. But all comfort has done is to maintain the status quo. What has to be done is to take it a step further and take on projects that will help build experience. By doing so, mistakes that I have made no longer deter me from getting that code to work.

It is ok to fail. We fail in things. Failing to get the code to work does not mean the code will not work. It will work. We just need to get comfortable with uncomfortable.

It’s part of the learning process.

Lastly.

I wished I knew that programming is a life long 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. Critical thinking skills will bring you a long way forward, but having a consistent mindset will be the bigger winner.

Photo by Steve Halama on Unsplash

Want more?

I write about self-development, life, and technology topics. Follow me on my journey with free exclusive updates to my content.

--

--

Thong Teck Yew
The Startup

A university student specializing in Data Analytics. Lover of technology that wants to share his piece on life. This is the platform where I can be myself.