My Journey to Computer Science

Yin Mei
6 min readMar 9, 2018

--

I moved to New York City after three spectacular years in Beijing, China. I had never lived in New York before, so settling in was an incredible adventure. I started working at an amazing non-profit called the New American Leaders, and co-founded a support community for friends like me who had returned from living in Beijing called “Beijing Club of New York” (We now have over 900 members!). A few months later, I was elected to the organizing board for the Asian American Journalists Association where I found joy contributing to a community of content creators. Through this community, I met my editor at the School Library Journal for whom I reported. What impressed me while covering these stories was seeing cases where school libraries acted as a resource for underserved communities by providing access to technology.

That year, I resolved to learn more about technology in order to tap into this knowledge for creating impactful value.

That is when I fell into the rabbit hole…

A part of my “offline books” collection

(Feel free to scroll down to the bottom and see where I landed. For the short version, just read the short parts in bold.)

My journey officially began in 2014, with learning how to code.
2014 Summer: My greatest gift in this journey was when my friend Hubert Lee taught me how to use Github and Terminal Command Line over the summer, as I applied to a coding bootcamp where I learned how to code!
2014 September: I moved out of New York City and back home in the Bay Area to joined the 12 week Full-Time General Assembly Web Development Immersive (GA WDI) in San Francisco. I created responsive web applications using Javascript, Node, Express, Angular and Facebook authentication while collaborating heavily via Github and hosting everything on Herokuapp. This helped me create a portfolio, and I proved I could code!
2015 January: I graduated from GA WDI and moved back to New York City, because I didn’t get enough the first year. I set up numerous interviews and was introduced to my first freelance position via my GA Digital Marketing course instructor to work with the brilliant team of Try the World. They even sent my family a Try the World package after my brief time with them! This was the first time I collected income from coding.
2015 March: After many interviews for full-time positions, I secured a junior software developer role with a small group of brilliant engineers at a startup healthcare company. They were working on a Javascript, Angular, Node application — the same set of skills I happened to be fine-tuning for my own projects. I was excited to join such a talented team to work as a software developer.
2016 June: A year had passed working on an Angular, Node stack at the healthcare startup and I had more questions about the technology and the methods that we chose than ever before. In order to satisfy my cravings, I enrolled into the pilot course for NYU CS Bridge. The course was founded on a vision offer higher education for those who want to offer greater thought diversity into the field. Their first iteration was a grueling 12-week crash course of fundamentals necessary to tackle computer science. We used C++ to construct linked-lists with pointers in order to understand basic data structures, and eventually even learned how to read machine assembly language. As someone who regularly organized social gatherings, I barely saw any of my friends that summer — this new routine was a drastic change to that which I was accustomed but my thirst for knowledge was quenched. That summer, I went from coding to learning about computer science concepts.
2016 Fall: I enrolled in my first course (Computer Security with Prof. Justin Cappos) where we covered a broad range of security concepts such as access control policies, key management strategies and containerization. We were assigned to accomplish practical projects involving code cracking and a heavy use of threat modeling. In the meantime, I continued working full-time while our team changed to a new framework. I studied and assessed ReactJS vs EmberJS.
2017 Spring: The following Spring, I enrolled in two classes. Foundations of Computer Science and Computer Networking. I was also accepted into the NYU Cyber Scholars program to attend a series of seminars to practice conducting research for a subject of our choice. After reading many papers, I discovered that there are many “best practices documents” for information security for journalists. However, effectively applying these practices appears to be a challenge — I hope to write more about this in the near future. Balancing a full-time software development job while learning new frameworks, two core classes and self-driven research was challenging. Over all, I had my toughest semester.
2017 Fall: I applied to and received a grant from PEO International, a wonderful organization of “women helping women reach for the stars.” Additionally, I applied to and received a scholarship from SWSIS. NYU was very supportive of me, and helped share my story on their website. Thanks to their vital support, I received a second boost of energy for my learning trajectory. Meanwhile, I left the startup and enrolled full-time into my graduate program to finish core courses for a M.S.in Cyber Security. I studied Network Security and Application Security, and having studied Python programming on my own over the summer, I worked as a TA to an Intro to Programming in Python undergraduate course.
2018 Spring: I studied algorithms necessary for processes that scale. I also studied operating system concepts while implementing my first programs in C. On the side, I met the Tor Project community organizers and was exposed to open source projects to which I could contribute. I also had several meetings to brainstorm effective workshops that could help inform the public about the application of available technology. I also met with several interesting students at the OSIRIS lab, where I participated in my first official CTF and experimented lightly with understanding bluetooth vulnerabilities.
2018 Summer: This summer, I am taking two classes while teaching the CS4CS Summer Program with the NYU Tandon K12 STEM department. http://engineering.nyu.edu/k12stem/cs4cs/

And that is where I am today.

So, that is my story in a nutshell!
Since I receive many questions about entering the field of computer science and becoming a software developer, I’ve broken them down into a few broader topics to help address them in separate posts:

  1. How do you learn to code? What are some free resources for learning how to code? I want to make a website, should I learn to code?
    In response to this popular question, I decided to make another post with a bunch of links and tips for what you need to code!
  2. How can one understand Machine Learning, AI, Cryptography and other hot keywords being thrown around today?
    Whoa. So my response to this is multi-level. I’m someone who feels that a basic understanding of “how” something works actually sheds light for “why” it works. First of all, just “learning how to code” is not the answer. And sure, I can tell you to “GOOGLE IT” as if it were that simple. But that was never a satisfying answer for me. There are so many online explanations for each of these topics, often using key terminology interchangeably. Too many. I still remember the hours I’ve lost falling down the infinite rabbit hole of looking up definition after definition. I will make another post about each of these topics and select high-quality presentations that I find can clearly explain these concepts.
  3. What’s in a degree in Computer Science? Is it necessary? Is it worth the money?
    In my view, a Computer Science degree is a piece of paper that acts as proof that you meet basic level of understanding of important core topics for the application of technology. A degree is also not easy to obtain: it is time consuming and it is often expensive. Depending on what you want to do, a degree may or may not be necessary. I will share my own analysis on this point in another more in-depth post. Trust me — “Is this worth it?” is a question I’ve asked myself many times, especially on beautiful sunny days when I’m stuck indoors stressing over an upcoming exam.

If you have any other questions (about anything), please feel free to send them to me over Twitter or via a comment on this post!

--

--