How I learned to code in my 30s

Immerse, get mentorship, and don’t look back.

作者照片

People often ask me how I started coding, and they are always surprised to hear that I learned after 30.
This is my story about starting from zero to becoming a full stack engineer at Udacity— a Silicon Valley startup whose mission is to democratize education. Specifically, it is about how I got a job despite every junior web engineer posting seeming to require “a degree in computer science or two years of professional experience.”
Along the way I strained relationships, depleted my savings, collapsed my self-confidence, and gave up. Then, after reflecting on that failure over a year, I tried again with a new mindset, and succeeded.
Today, I lead a team of ten engineers with responsibility for several core systems including admissions, student project code reviews, in-classroom mentorship and live help, forums and our in-person learning experience, Udacity Connect. We support hundreds of thousands of students taking free courses and paid Nanodegree programs for cutting-edge career paths like AI, machine learning and self driving car engineering, in addition to more mainstream software engineering like React, iOS and Android.
This is how it happened.

How to fail
I had fallen out of love with my first career of seven years — I couldn’t see myself doing it for the rest of my life — and I decided that I wanted to be a software engineer. I don’t know why I wanted to do it. I just felt a magnetic attraction. I wanted to build things. For context, I am bad at math, I didn’t know anyone who was a programmer, and I had no idea what I was getting into or whether I would like it. Friends helpfully suggested a) this was nuts and b) I was too old.
In January 0f 2014, I went to a General Assembly bootcamp for Ruby/Rails in SF. It was relatively early days for bootcamps and the experience was pretty raw. There was a large class size (they had combined two cohorts) with different levels of preparation. The curriculum was in flux. It felt chaotic. A few weeks passed, we began to hear stories about grads still looking for jobs, and a palpable sense of herd anxiety set in — were we actually going to become software engineers after quitting our jobs and investing $10,000? I left before I had to pay for the second semester. However, I did learn a lot, there were some good instructors, and a number of my classmates went on to great careers as web engineers, but it didn’t seem obvious at the time.
I then took a month to build a front end portfolio, and bootstrapped myself as a Javascript contractor applying for small projects. This early focus was productive — I actually landed some work. But just as my optimism was up, a few months passed with unsteady work, and doubt set in.
Things I learned from contracting as an independent junior engineer:
You spend as much time sourcing work as coding
Getting projects lined up back-to-back is very hard
You don’t get a lot of technical feedback
Inconsistent income creates stress at home
There is no one to tell you if you are learning the right things

I felt adrift. I started looking at what it would take to find full time employment. I had heard there were a lot of self-taught programmers in Silicon Valley. I was confused and frustrated when all the job postings seemed to indicate otherwise. Every junior web engineer posting seemed to require: “a degree in computer science or two years of professional experience”. How do you get two years of professional experience without a degree, if a degree is required? How do self-taught engineers get jobs?
I started sending out applications despite the requirements. I began to research the interview process, hoping that I’d get one. I realized I knew zero about data structures and algorithms and had no idea how to get started. Suddenly, I felt hopeless. I wasn’t on track to meet the requirements for any jobs I wanted, and I doubted I would pass the interview if I did.
It was a humbling moment. Six months in, having strained my finances and relationships, I was little more than a bootcamp drop-out and a semi-employed Javascript contractor. So I made a very practical decision—I gave up. I told friends and family I had made an impulsive and expensive mistake, and I found a job that was a better fit based on my prior career.

How to succeed
I soon became remorseful. You have only truly failed when you give up, and I had given up.
A year went by and I couldn’t let it go. For whatever reason, I continued to code, a little here and there. It became a vexing hobby, absorbing a lot of time, often frustrating, and I had little to show for it, but I couldn’t free myself from the magnetism of wanting to build things instead of admiring other people’s work.
I did a retrospective of why I had failed:- I had quit- I had no idea what I was doing- I wasn’t getting high-quality experience or feedback
So I made a plan:- Don’t quit- Find a mentor- Work unpaid if the experience is good
I told everyone I knew that despite having failed a year before, I was going to do it again.
First step, I would need work experience.

How I got an internship
A year previously, I had read a security article on Hacker News by Loren Sands-Ramshaw. I realized we went to the same college a few years apart, but while I had been busy getting average grades in liberal arts classes, he took CS seriously and went to work for the NSA. I wrote him, asking about the feasibility of learning to code, and he sent back a thoughtful and encouraging response.
Remembering this a year later, I looked him up on LinkedIn, and saw that he had a mobile betting startup called Parlay: Javascript with Meteor + Cordova and a Bitcoin vault. I immediately wrote him to volunteer. After a brief interview, he agreed to take me on for a nominal stipend. (By the way he is now a core contributor to Meteor/Apollo and a highly paid consultant!)
This completely changed my trajectory. Now I just had to make it work.

How to be a great intern
I came from a client service industry and my instinct was to just apply those lessons to being an intern. The key takeaways are responsiveness, positivity and immersion in your work.
Try not to let five minutes go by without acknowledging a message.
Start answers with ‘yes’ whenever possible.
Invest an exorbitant level of energy into your work. Your mentor will reflect your intensity.
Try not to ask your mentor what code does, or where a feature lives, before you have made an effort to find it, read it and understand it. If you still have a question, it will be more constructive.

But, you are not being unpaid just to read! I was certain to commit code at all hours of the day. 2am pull requests always look like hard work.
If you are serious, and you immerse, you will learn fast.

What I learned from interning: Immersion is the secret to rapid learning
In my experience, how to learn a language is a good model for how to learn to code. The key is immersion. I lived in Russia for a few months in college. Deprived of language you understand, you become desperate to understand what is going on. It is physically painful. But after a few weeks of suffering from immersion, learning becomes exponential.
I tried to learn to code the same way.
Immersion means 100% focus. If possible, no friends, no drinking, no TV, just reading and writing code. If you take five minutes off to read the news, be aware you are breaking the mental state of immersion. Stay focused, be patient, your mind will adapt. Eliminate all distractions, of which you may find doubt to be the loudest. Immersion is the difference between success and failure.
How do you know if you are immersing? If you are not dreaming in code, you are not immersing yet.
Everyone has time commitments, so to learn as fast as possible, try to apply the principle of immersion as best as you can.

How I got a job
When I shifted from my internship to looking for paid work, I began to put together an updated portfolio with a focus on React and Node — there are a lot of posted web jobs in this stack, it is a pleasure to work in, and I thought I’d have a better chance at success. My internship was grounded in Node, and I then took Stephen Girder’s very excellent React+Redux courses from Udemy. After the intensive Javascript internship, I found I was far more productive and more confident than I had been before — learning React felt easy. Redux not so bad. Graphql was a treat. Immersion and mentorship had paid off.
During my internship, my mentor Loren had sent me to Udacity for a browser rendering optimization course produced with Google. The course was great, and I noted that they had career-focused Nanodegree programs. I was intrigued and made a mental note.
While I was applying for web engineering jobs, I thought that I would benefit from formal career coaching and I went back to Udacity to look at their programs. The full stack Nanodegree program at the time only had a Python focus, and I was personally focused on full stack Javascript jobs. But my mentor had encouraged me to learn a strongly-typed language when time allowed. So I signed up for the iOS program to learn Swift, which was a lot of fun. I don’t specifically recommend splitting your focus between web/mobile and front/back end when looking for your first job! (Hint: we now have a React Nanodegree program!). But I do strongly recommend learning a strongly-typed language — it transformed my Javascript. And I found Udacity’s structured approach to building a portfolio while getting resume feedback and interview practice to be super helpful.
Near the end of the the course, when I was finally starting to get full-time interviews, I was invited to interview to do a React contract for Udacity-Blitz, which is Udacity’s student contracting platform. The recruiter said my three-month Javascript internship plus my React portfolio got me the interview. For contracts in general, I believe the quality of your portfolio is more important than preparing for technical interviews. If you are a Udacity Nanodegree graduate, you should definitely reach out to Blitz. They have executed hundreds of projects for clients including Udacity itself, where I got a gig and applied my “how to be a great intern” experience.
I worked so hard. Six weeks later I had an interview with Udacity for a full time position. I spent two weeks preparing intensively, specifically by using Udacity’s technical interview course which seemed very meta. The course gave me a helpful framework and a lot of confidence. Udacity interviews are more focused on code challenges than algorithms—which I think is a positive trend in the industry — but knowing about data structures is very useful.
I will always be grateful to Oliver Cameron for taking a chance on me as an engineer, and later James Richards for giving me the shot to manage a new team.

Final thoughts
Reflecting on my path to becoming a software engineer, I made a lot of mistakes and I got a few things right. In total, I was unemployed for over a year. I learned humility, perseverance and focus.
I am fortunate to be working with awesome colleagues, for a company whose mission I value, doing work I love. My advice: immerse, get mentorship, and don’t look back. I can promise it will not be easy.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容