How I Learned To Code

Web

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.

By Jane Wang (Hacker, Etsy)

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 NYU 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 to dig 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. Unfortunately, it took me a while 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 take 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 meeting 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 from 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 experience 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 programming 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. 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 it 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 they are less likely to become discouraged.

And when things get more difficult, you can say that you now have the opportunity to figure it out, instead of becoming frustrated or think that you lack the ability.

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

This post was originally posted at Jane Wang’s blog.

Women 2.0 readers: How did you learn to code?

About the guest blogger: Jane Wang is a Hacker at Etsy. She was a hacker in the Summer 2012 batch of Hacker School and the founder of Parkit Labs. Formerly, she worked as 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 makes things with brackets, numbers and paint. Follow her on Twitter at @janeylwang.