hey welcome back to coffee time with
your host 2x Google X Facebook tech lead
and today I thought I would tell you
about how I personally learned to code
and achieve the role of staff software
engineer with a salary of $500,000 per
year but I wanted to keep this real
especially for the beginning programmers
out there who are looking for career
advice now why don't we head on over to
my LinkedIn profile and I'll walk you
through some of these experiences quick
pause are you launching a website check
out our sponsor squarespace.com slash
tech lead from websites and online
stores to marketing tools and analytics
Squarespace is all-in-one stuff to build
a beautiful online presence and run your
business get 10% off your next order at
squarespace.com slash tech lead the
first thing though you need to
understand is that I had pretty much
begun programming in elementary school I
was working on cue basic visual basic
making a bunch of games and gaming is
probably what motivated me I had always
wanted to be a game programmer in high
school we had the AP computer science
class and I was probably already the top
student by then I went over to Community
College to learn C++ and that was tough
because I didn't know about pointers at
the time and I remember even crying over
it because there was such an obscure
topic but once I figured it out it
wasn't that bad through good grades I
graduated in valedictorian in high
school I was able to get into UC
Berkeley under the eeks Department
electronic engineering and computer
science and that's a very competitive
program half of all students drop out in
the first class and I was still just
making hobby games for me and my brother
to play with randomly in my spare time
now here's where things get interesting
the computer science programs they don't
really teach you much they teach you
actually really obscure useless
languages like Lisp scheme assembly code
some Java but without the web frameworks
do you need to make it practical they
don't even touch JavaScript or Python
and so I would go looking around that
random languages like Perl flash regular
expressions
most of these are outdated by now but
what they did for me was allowed me to
create web applications that would
launch to the entire school class
schedule organizers event finders a
dating site for those school and over
time these small pet projects they
caught the eye of a local school tech
administrator who offered me a job and I
did some random work for him here and
there doing web scraping using Python
Perl and then my aunt who was a director
at juniper Networks referred me into the
company
has to interview for an internship and I
was doing like cleanup of technical
documentation using pro scripts regular
expressions and this was really a pretty
basic job nothing to write home about
but there are two important lessons
first is I accepted help from somebody
else I didn't try to do it on my own and
a lot of people go out there and they
say they want to do on their own they
don't need anybody's help they want to
be a self-made man and I just don't
think that's a way to go about it
everybody gets help from somebody
accepting help from friends and family
for referrals or even seeking it out is
completely fair game so many engineers
and thing that's actually how they get
in the other thing is I focus on project
work a lot of the languages that I
learned for the sake of learning they
didn't really get me anywhere I just
learned them and not forgot them they
went away but it was the project work
that I did that actually went on my
resume and had lasting impact even
though the underlying language like Perl
pretty much faded out in my senior year
I studied abroad in Japan which I highly
recommends that the inner brother is a
great experience it really opens up your
mind and perspectives when I came back
actually it was pretty difficult for me
to get a job even with credentials like
graduating out of UC Berkeley while I
was able to get interviews at Microsoft
or Google the interview process was so
tricky there was no lead code it was a
bunch of brain teasers questions that
would be banned by today's standard so
instead I decided to just apply to grad
school get my master's degree and plus I
really wanted to do computer graphics
right I wanted to be a game programmer
and I felt that I had only taken one
class in computer graphics and needed
more knowledge anyways so I applied the
UC San Diego and UCLA and got into both
and I chose UC San Diego because I
wanted to be closer to the beach and
their computer graphics department was
also just much stronger personally I had
a lot of fun in grad school it's like a
second chance at college and I was able
to hone my skills in say advanced
algorithms advanced operating systems
computer architecture just really get
more into that at th4 databases and
computer graphics took some more classes
in computer rendering computer vision
and by the time I finished I had also
completed internships at Microsoft and
Sun Microsystems essentially just having
a graduate degree opens a few more doors
gives you some more time to apply to
internships so in my opinion it's not a
bad option if you just want to buy
yourself some more time especially these
days if you want to get into say like
machine learning having some additional
knowledge in these advanced areas
augmented reality virtual reality
computer graphics data bases security
networking it could be beneficial and
that degree sort of follows you
throughout your lifetime now the funny
thing is after this I was still not able
to land the job at thing the interview
process was still so tricky
I remember getting tricked up on stacks
and queues which they never taught us
over in any of the computer science
programs we just don't use those that
much and yet in tech in industry you end
up using stacks and queues a lot these
days we know that but I landed a role as
Sony Pictures doing special effects for
movies mostly working in Python C++
doing computer graphics shaders and it
was a great role it was a lot of fun and
I was doing almost exactly what I wanted
to do it wasn't the game industry but it
was the movie special effects industry
and that was just as good if not better
in my opinion because game industry is
they don't pay as well and I easily
could have stayed at that job for my
lifetime probably things were good but
perhaps fortunately for me I started
getting into web development at the time
the whole Facebook platform apps
business was starting to take off some
of my apps started taking off as well
and eventually I quit the hole graphics
gaming industry and got into web
technologies this shift into web
technologies is really what brought me
to Silicon Valley and brought my salary
range probably interstate 120k range
from there I've worked on my own apps
and games as an indie eff developer I
joined the few startups I worked at some
larger companies like Groupon played
them which was later acquired by Disney
and this was a risky time for me I was
jumping in and out between jobs hopping
around and for my projects I tried to do
two things I would never just learn a
language for the sake of learning
usually that ends up in disaster like I
once learned to Swift because I thought
it was cool I never used it and I just
forgot it I've learned half-a-dozen
JavaScript frameworks but I never used
those either they just wasted away so I
would encourage project-based learning
where anytime you're trying to learn
something you're also trying to develop
a project that goes onto your resume in
this manner anything you learn you can
put on your resume twice like if you
learn typescript you can put the
language on there and then you can also
put in the field for whichever project
you've developed on and kind of talk
about the impact that that had as I
mentioned earlier this also ensures that
even if the language fades away or if
the company
doesn't have used for the specific
language they can see what
accomplishments you had and those
accomplishments the amount of impact you
were able to drive that still has
retaining value it's much better than
listening a laundry list of languages
like asp.net on your resume that many
companies may not care much about as an
independent app developer I did pretty
well actually I was already a self-made
millionaire by writing technology trends
like if the iPhone came out a Facebook
app platform came out Twitter platforms
came out I would just start building
apps for those as they came out and then
people would be eager to try out these
new apps my basic technology stack is
fairly old school
it's like Linux Apache MySQL PHP some
jQuery CSS HTML that's pretty much it
and I can get very far with that throw
in some memcache and Citians for
scalability and they integrate with a
bunch of other micro services that are
online like Google Maps Twitter API is
Facebook API is chat services Amazon AWS
for their email services and really just
integrating with a bunch of other
platforms and bringing in their
functionality can help you launch
features quickly this is essentially
full stack web development it's probably
my favorite area to be in because the
impact is so large you just throw up a
website and anybody can access it
through just a URL but at some point I
wanted to also get into mobile iOS
development because I had a bunch of
apps and games I wanted to bring them to
the Iowas platform natively so I taught
myself objective-c but again it wasn't
just for the sake of learning the
language I had the project in mind that
I wanted to launch and I knew that if I
could get this done I would be able to
put objective-c on my resume with the
list of projects that I knew I would be
pushing out at least four games so I
traveled around working remotely
teaching myself mobile development and
you'll notice that even if the project
failed I would still have learned mobile
development and that is valuable so
several months later when I was applying
to jobs again I was going for full staff
web developer or iOS mobile developer
Google at the time happened to need iOS
developers they were really ramping up
their mobile offerings and I was able to
land a job there because the opportunity
fit my skill set and probably also
because I had just been doing so many
interviews along the way that I pretty
much knew what they were looking for at
this point I spent three and a half
years working there on the YouTube iOS
app and then switched on over to
Facebook working in the
or under mobile platforms and that's
pretty much my career trajectory and
you'll notice that I did try to guide my
career along within the same type of
domain like user facing web mobile app
features I could have jumped into crypto
Security database administration but I
think that especially in this field
where it's quite broad and you can go in
a number of directions that you try to
develop a little bit of a narrative a
story about the technical background and
skillsets that you bring it's just going
to make you a little bit more of a fit
so that though for me overall my big
takeaway is to try to do project-based
learning I see a lot of people learning
Python for the sake of learning Python
and they don't have a project in mind or
they ask questions like which language
is the best what should I learn and you
know you should really have a project in
mind such that you can put that project
on your resume and then the language is
the tool that you use to accomplish that
project if you're launching a web
project presentation matters which is
why you want to check out
squarespace.com slash tech lead
Squarespace empowers people with
creative ideas to succeed every day they
empower millions of makers doers and
dreamers by providing them with the
tools they need to bring their ideas to
life on Squarespace is all-in-one
platforms customers can build a custom
website claim on domain sell online and
market a brand their suite of products
combines cutting-edge design and
world-class engineering make it easier
than ever to establish and own your
online presence so check them out
squarespace.com slash tech lead and get
10% off let me know if you have any more
questions in the comments below or what
helped you in your career path if you
liked the video give it a like and
subscribe and I'll see you next time
Thanks bye