Source:-
http://www.businessinsider.com/why-i-quit-andreessen-horowitz-2015-9
What about grad school?
I considered graduate school very
seriously, particularly given the many programs in Computer Science,
Data Science and Machine Learning available at great schools like
Stanford, UC Berkeley and MIT.
I did a lot of research on various Computer
Science programs at Stanford, UC Berkeley, MIT and others. Eventually, I
decided that I didn’t have the patience to spend many months studying
for the GRE and completing applications and then waiting another
two-to-four years to get a degree. I would much rather use that time to
learn these technical topics through real world experience. I simply
don’t believe that a degree is the only way to get into a new field.

Where software engineering comes in
Now, you might be wondering why I wouldn’t
just follow my major and go into Industrial & Systems Engineering,
rather than diving into the entirely new field of Computer Science. And
honestly, if I’d known any better in college I would have declared a
Computer Science major as soon as possible.
The reason I didn’t is because, when I was
younger, my idea of what a software engineer does was completely
outlandish. I imagined dimly-lit sweatshops filled with unpopular nerds,
returning home to their parents’ basements after a long day of staring
at screens and writing code. I didn’t see software engineering as
something for creative, passionate people. Simply put, it wasn’t for me.
Even my mom was against me doing software
engineering. Like every typical Indian parent, her dream was for me to
become a doctor.
Arriving at college and meeting actual
Computer Science students completely changed my assumptions about
software engineering. I started dabbling in Computer Science by taking a
couple courses in C++, and to my surprise I really enjoyed them. But I
was too nervous about switching majors in Junior year to pursue it
head-on, and anyway I was enjoying my Industrial & Systems
Engineering classes enough to convince myself to take the “safe road.”
Silicon Valley seals the deal
In summary, I’m not one of these
programmers who’s been tinkering with computers since she was a kid. I
wasn’t “destined” for Computer Science — my story is a little
different.
My story started after graduating college
and moving to Silicon Valley, the tech capital of the world, where I
found myself surrounded by some of the best engineers in the business. I
started to learn about the things they worked on and the problems they
solved, and it blew my mind. I became fascinated by Computer Science
topics like Machine Learning, Computer Vision, AI, Robotics, and
Knowledge Representation, and was reading everything I could to learn
more about them. I reached out to software engineers, data scientists
and machine learning researchers to pick their brains and learn more
about what they do day-to-day, and what I learned was all incredibly
exciting, and gave me immense respect and admiration for them in the
process.
It was only natural that before long I wanted to become one of them.
First attempts
How does a computer compile code? How does a
programming language get created in the first place? How do you build
machine learning algorithms? What makes a “good” systems design versus a
“bad” one? How do great digital products get built? I began my journey
into Computer Science with an endless number of questions like these.
Along with these questions came the need to learn code. So I went for
it.
I distinctly remember the first time I made
an attempt to “learn code.” It was winter of 2013 and I was home with
my parents and siblings for Christmas. My first step was a day spent
researching what language to start with. After stumbling through lots of
forums and blog posts, I settled on Python. I picked up “Learn Python
the Hard Way” by Zed Shaw and started practicing. Sadly, the experience
only lasted two weeks. It was hard, uncomfortable and frustrating and I
gave up too early.
“Who likes this stuff anyway?” I thought to myself.
Exactly a year later my interest in
learning to code reappeared. I convinced myself to give it another try,
and this time my resolve lasted twice as long: one month. Unfortunately,
I had just started a new job and was struggling to find a livable
work-life balance. Coding is unlike picking up a new hobby, like dancing
or yoga, that can be acquired casually. Few people find themselves
saying “I’m going to code and take my mind off work.” I hadn’t yet
reached a high enough comfort level with the basics for the nitty-gritty
aspects of coding to become fun. Once again I set it aside.
“I’ll do it later on when I’m more settled in at work,” I thought to myself.
Self-doubt
I wasn’t just struggling to reach my
goal — I was failing. Coding stayed on the back burner for another year
while I struggled with negativity, convinced the only thing I could
excel at was repressing my feelings of self-hate. Yes, self-hate. I was
ashamed. If 18 million people (according to IDC)
in this world can do it, what the heck was wrong with me? Why couldn’t
I? People tell me I’m smart all the time, but I was convinced they were
wrong.
I started to become envious of every
programmer in the world, jealous of anyone who knew how to “speak code.”
I even cried to my boyfriend about how I wished I could help him code
the app we’d been dreaming up together. This went on until one day the
desire to learn to code was simply unbearable.
Flickr/nyuhuhuuPython is not easy.
“Hello world”
In the end, it took reaching the emotional
breaking point to get me over the initial hurdles that had beat me
before. It was 5am and I’d been running on the treadmill for an hour,
turning over new approaches to my coding dilemma in my head. Suddenly I
had an epiphany: feeling bad about coding was making me miserable, but
feeling guilty about it wasn’t changing anything. I had to just either
do it or forget about it.
I decided I’d stay home from work that day
and hit the books. This time the momentum took hold, and after one week
of nonstop tutorials and online courses like CodeSchool and TreeHouse I
created my first website with HTML/CSS.
Next I took on the fundamentals of
JavaScript and started a side project to put everything I’d learned over
the past two weeks into context. Another week later, I finished a
working (but incomplete) version of my first front-end coding project.
Looking back at it now, the product seems
rough, hard to maintain and update and the spaghetti code is
embarrassing. I recognize how much more modular, maintainable and better
structured it could be written if I were to re-build it from scratch
today (I do plan to rewrite this as one of my weekend projects).
However, the point isn’t what I built in that one week, or even how well I built it. The point was to actually make something using code.
And I loved it.
Driven by the enthusiasm of the
mini-project, I worked through late nights and unexpected challenges,
yet it never once felt like “work.” I loved every minute — breaking up
the project into chunks, thinking about how to design the project,
figuring out what tools and libraries to use — and best of all, I loved
that my brain would hurt as I tried to figure out how to get the code to
work in the way I wanted it to. I finally understood why people become
so passionate about coding. Programming lets you be a creator, and it’s
an art as much as it’s a science. I had been doing it all wrong this
whole time — I was approaching programming as something I needed to
learn, and a skillset I needed to have, which made it feel like a task.
But this project helped me realize that programming is not just about
knowing how to code, but rather about creating something you care about
and something that you want the world to see. Programming is liberating
and empowering, and it enables you to create. The sparks were flying and
I was fascinated.
I continued to learn on nights and
weekends. Soon enough, the only thing I could think about was code.
Everything else felt like a distraction. I would hold onto coding
problems that I got stuck on the night before in my head and explore it
during the day. Then I’d rush home from work and code a few more hours
at night again. This lasted a few weeks before I finally said to
myself, “What if I could just do this all day?”
Where I am today
It was at this point that I decided to stop
dabbling and commit myself full-time to coding, and it was the toughest
decision I’ve ever had to make. Andreessen Horowitz is an incredible
place to be and I knew I was leaving a lot behind.
Needless to say, my mom is completely
against it. She thinks I’m absolutely nuts for leaving an amazing job
and using up all of my savings to do something that I have so little
concrete experience with about. I’ve even had a few people with more
experience in the industry tell me it’ll be tough to get a job at Google
or Facebook without a CS degree.
Sure, I don’t have a CS degree from
Stanford or MIT. Sure, I might not get a job at Google or Facebook. But
whether or not I get into Facebook or Google is not the point of why I
want to do this. My goal is to genuinely learn. The road map I have in mind looks like this:
- Figure out what I like developing on the most: Front-end vs. Back-end, Mobile vs. Web, and what application areas I find most interesting: Machine Learning, Artificial Intelligence, Robotics, Computer Vision, etc.
- Get really good at it
- Use those skills to change the world. That could mean building a world-changing company or something else entirely.
So yes, I might not have the CS degree from
Stanford, but I will as work hard as humanly possible to supplement the
degree I don’t have by gaining real-world experience building
real-world products. I realize that as I’m starting out some recruiters
and hiring managers will still disregard me for not having a CS degree,
but that’s OK. I’m confident that I will find at least one person who is
willing to trust me by giving me a chance to prove myself, and
fortunately that’s often all you need in the tech world. I’m willing to
start from the bottom and work my way up, just as I did in finance.
As next steps, I’ve chosen to pursue a
12-week coding bootcamp in San Francisco called Hack Reactor. This will
accelerate my learning and help build a strong foundation, and also
allow me to get a few projects under my belt, at which point I’ll go out
and recruit for a developer role.
I know this will be a tough battle. The
honeymoon phase of “learning to code” is over. I’m getting into deep
computer science topics like algorithms and data structures and it’s
only getting harder. Hitting walls as I learn new things is
uncomfortable and frustrating, and I often feel completely lost.
Sometimes it takes hours for the walls to come down, sometimes days,
other times weeks. I lose confidence and question my competence.
But this time, I love all
these feelings because they mean I’m growing, learning and getting
stronger. With enough persistence, I will get better at managing them. I
will grow thick skin and learn to enjoy the struggle even more. As long
as I keep pushing at these walls, they will eventually give way to me.
After all, this isn’t Rocket Science, even if it feels like it
sometimes.
Looking forward
The craziest part of all this is that I
know there’s a chance I might end up not even liking software
engineering in the long run — or that I might not reach the high level
skill set I desire — or worse, that I might end up not liking it and
being a bad software engineer. Honestly though, I don’t consider any of
these outcomes as “failing.” In my mind, I’m just taking another chance
in life, taking one step closer to changing the world.
So, here’s to taking another chance in life
and reaching for more. I can’t promise you that I’ll end up being the
best software engineer, but I canpromise
you that I’ll learn a ton and be better than what I am today. I can
promise you that I won’t “fail” — I won’t let that happen.
Now it’s your turn. Find the thing on your back burner that’s upsetting you and take the first step.
Disclosure: Marc Andreessen, co-founder of Andreessen Horowitz, is an investor in Business Insider.
No comments:
Post a Comment