How I Learned to Code

image

Learning to code is one of the most empowering things that I’ve done and I’m thankful for learning it everyday.

My journey started in January of 2011 when I signed up for a beginner web development class at New York University’s School of Continuing and Professional Studies. My motivation was mostly out of curiosity of being able to make beautiful things on the web, and partly because I’ve read about news articles of past employees from the hedge fund where I was working that had left to build tech startups in foreign countries. Thus when I received a catalog from NYU out of the blue, I opened it up and found myself planning out my computer science curriculum.

That was how my journey first began.

Attending Classes and Stumbling in the Dark
My New York University’s class was a great entry point. Learning HTML, CSS, and networking made me marvel at our current state of the web. My first webpage was my resume on a simple HTML page. With a background in art, I realized that there’s a lot of creative control over design and style.

Yet, it soon became much harder. Making HTML pages is far from building a web application. After the class is over, I started digging into the online tutorials like nettuts+, books, and papers - anything I could find for free from public libraries and online. Theory came easier to me first than practice. I enjoyed reading academic papers with the likes of Sergey and Larry’s paper on Google’s PageRanks, but coding itself was hard. It was often frustrating when the instructions didn’t make sense, or that I encountered a bug that only appeared in a newer version of a framework. Searching for the answer seems tough because a) I didn’t know what to search, and b) the answers have so many jargon that they read like an ancient Sumerian text. There were weeks that I was motivated and made progress, and there were weeks when I was stuck on an error and doubted what I was doing.

Self-learning is hard for the uninitiated. I realized that after reading how other people learned on their own, I needed to develop my own method. After all, learning by attending classes is limited, because classes can only take you so far.

Hackathon’s Wannabe Hacker
I had wished that I knew more developers. In finance, being in the center of bankers and hedge fund folks gives you a great flow of information, and keeps you current on new developments. In a different industry, I imagined that it would be the same. For this reason, I attended hackathons. If I couldn’t code well, at least I could pitch ideas and discuss business models. To my unwitting self, hackathons in New York City were filled with business folks and far fewer developers, so finding a developer to carry out an idea is not easy. Even though I liked the structure of building a product within a short period of time and validating a business idea, I often felt that I would better provide value if I could build the product. Moreover, learning how to code during hackathons works if you have met a minimal level of proficiency, and just needed someone to point you in the right direction.

Learning to Ask for Help
I’ve seen meetings where real hackers hang out and build things together on meetup.com. Unfortunately, it took me awhile to work up the courage to go to these gatherings. More often, I found myself going to Show N’ Tell events where the speakers would talk about their projects. Listening to other people’s projects is not equivalent of learning to build your own. When I finally worked up the courage to go to a meetup with hackers, they were gentle with me and there were other young developers.

The Moment When You Make a Real Commitment.. Accelerated Learning
I really started to learn how to code when I started building my own startup and was desperate to build the product. There was no other way that I could do it except to build a proof of concept. That was when I no longer had the luxury to think of coding as an hobby or as a self-improvement project. Rather it had became something that I desperately needed to know. It took a lot of grunt work, sleepless nights, leftovers, and takeouts, as the road to mastery of any craft it is not enough with brain and no heart. It was an incredibly humbling experience, but true commitment makes hard things less hard.

Hacker School - Getting on a Rocket Ship
Be it luck or coincidence, when my startup didn’t work out, I saw a note about Hacker School in my inbox, and I applied, figuring that I had nothing to lose and not knowing that it was a rocket ship. I didn’t know much about the movement of unschooling and self-directed learning or the idea that you should learn what interests you most. But I went, had a wonderful time, and you can read about my experience here. It requires a commitment of putting your life on hold. It was a right time for me, because I had achieved enough proficiency that I knew I could build. Being able to do well at Hacker School has validated for me that I have been initiated to this path of software engineering. I think the best experiences gained from Hacker School are from programmers who have met some level of proficiency, and can gain the most from the incredible residents and leaders of open source community that are there.


Advice I Wish I Knew
- I wish that it took me less time to work up the courage to attend weekly hacking sessions, because I have met a lot of really interesting and helpful people there. I saw very early beginners who were there being taught by more seasoned developers. I wished that I had asked for help earlier.

- I wish that I had spend more time building a product that I cared about instead of reading programming books. That is not to say that reading books isn’t the right way to learn, but it wasn’t the right way to learn for me. Each person needs to figure out her own style of learning.

- Find the language that works best for you. Some languages are more popular than others, but that doesn’t mean it is the right one for you. As your first language, instead of following the herd, figure out what language you like. Your first hurdle is getting to know the syntax, so pick something you like makes the hurdle lower.

- Stick with one language, instead of bouncing around. First, I tried Ruby, then Python, and then JavaScript. I would strongly caution against bouncing around, since the process may make you feel like you are making progress, but, on the whole, you are just scratching the surface of each without going for depth.

- When things are difficult and I bet they will be, be easy on yourself and do not expect that you will do it perfectly the first time. You will keep trying, redoing, and expecting the outcome to become better each time. If you have an expectation that you won’t learn something immediately and give you time to dwell and to figure things out, then you are less likely to become discouraged. When things do become more difficult, you can say that you now have the opportunity to figure things out, instead of becoming frustrated or thinking that you lack the ability.

- Don’t ever think that you lack ability. Make mental adjustments and stay positive. It is important for perseverance.

This article is published on Women 2.0.


Jane Wang


Jane Wang is an hacker at Etsy, a graduate of Hacker School, the founder of Parkit Labs, and formerly a product manager at financial tech startup and an investment banker. She is a strong supporter of female hackers and entrepreneurs. In her free time, she blogs at Isometric Cube, writes for content platforms, including Forbes, Women2.0 and TechWomen, and makes things with brackets, numbers, and paint. Follow her on twitter at @janeylwang.

Photo Credit: POGO
Blog comments powered by Disqus