Learning… to Program

I am currently trying to get into the “world of programming”.

This endeavor began in May 2014, when I attended Coder Camps, a 9-week coding bootcamp in Houston, TX. Following the program, I took the scenic route and rather than diving straight into a job as a programmer, I was hired to open the Bay Area Coder Camps office. After the campus was up and running, I felt that my time and utility as Campus Director had come to its end and I wanted a more technical role, so in November 2015 I took a short-term (3-month) coding iOS contract with an early-stage startup.

So here I sit, almost two years after deciding to go to Coder Camps, and in many ways I feel like I am still such a NEEEEEEEEEWB.

I originally learned JavaScript at CC, but I have since then decided to pursue iOS development. Why? Mainly because I like the idea of building iOS apps, but also because I think the timing is right. Apple released a new coding language called Swift in June 2014, which means that even though I am new to coding, I have the opportunity to learn a language basically from the beginning of its time here in this universe. (And I think iOS developers are more in demand here in the Bay Area. #Capricorn)

So how does one go about learning a language?

Many experienced developers will tell you: just start building an app. But there is no “just” about that. What many experienced developers forget is that when you are new to the world of programming, even knowing how to literally start a new project can be a near impossible task. There are so many options in every screen! What is a single page application? What is a tabbed application? What is a playground? How do you even choose what tools to use to develop?

So I’ve found it helpful to follow a more structured approach. I find online tutorials to follow. There are many out there, and my only advice is: pick one and stick to it. It’s difficult to use one tutorial provider for one subject and then jump over to another tutorial provider for another because tutorials often build on one another in ways that are similar, but different enough that one new to programming will get confused by.

Arguably the most important aspect of learning to code is to find a mentor who you can ask questions to. While I know that you can’t “just find a mentor”, you can do things that will increase your chances. Go to a Meetup and make friends. I’ve found that most people who are experienced coders are willing to help out and share their knowledge.

However be prepared for this…

Imagine you are blind, but you are learning to see, and you need to know what color the sky is. You ask you friend/mentor who can see and understands color distinctions, and you ask them: “what color is the sky?” The straight-forward answer would be: you guess it, “blue”. But imagine if you instead received the answer, “Well, it depends on the time of day, on the weather, and really it all depends on how someone perceives color. In fact, the sky is “blue” during the day because molecules in the air scatter blue light from the sun more than they scatter red light. When we look towards the sun at sunset, we see red and orange colors because the blue light has been scattered out and away from the line of sight.” Although this is a very thorough and accurate answer, this would be a very confusing and probably frustrating answer to someone who was just beginning to understand what color is.

This is what programming is like. There is so much to learn, and everything is intertwined. Asking someone for help to solve a seemingly simple error can open a world of questions that dig into the ontology of computer science that is so out of the scope or understanding and your frame of reference, that it just leaves you feeling helplessly unknowledgeable and with your original problem still unsolved!!

But my word of encouragement is this: Have no fear, for everyone must start somewhere. And the only way to get from point A to point B is to take one step after another.

My advice to one who wants to learn to code (and to myself), or to anyone trying to learn anything for that matter, is to just. keep. trying. Set a balanced and realistic schedule, and stick to it. A few hours a day of undisturbed focus, and next thing you know it will be months later and you will be an expert! Or at least know a lot more than you did a few months ago. THE SKY IS BLUE!!



One thought on “Learning… to Program

  1. Welcome to the world of wine knowledge. The same dilemmas, plus the fact that it is all subjective. In coding there is typically a right answer, in wine, well, your opinion counts, but it is not always right or wrong.You have to just keep drinking,. The vintages change, so dof your perceptions.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s