The offer email arrived at Lilian’s inbox at 10:09pm, at a chilling Friday night in late October. She printed, signed, scanned, attached, checked the spellings, and hit “Send”. Hearing the Apple mail “whoosh” sound, she officially landed her first developer job.

In this post, you would hear about her story and how I helped as a partner. In particular, for those who thought similarly about switching career to tech, reading her experience may help.

She wanted change

Lilian has a master degree in linguistics from University of Toronto. After graduation, she taught Mandarin at a private school in Toronto. Students were mostly professionals who take nighttime classes to learn new languages.

The headmaster was a senior lady who spent her 20 years teaching and running the school. She could start from noon, speak non-stop in 3-4 back-to-back classes, and still greet each student a warm goodbye at 9:30pm. She genuinely believes that teaching is fun and helping people.

Lilian found it differently. Although students liked her way of explaining vocabularies and her rating was high, being with people for a long time was exhausting. She often got home late, collapsed into the sofa and glued her face to the phone screen. Knowing she had a worn-out throat, I avoided letting her speak any more.

After one year, she quit her job and later joined an EdTech Customer Success department. Her job was to answer enquiries from clients, mostly parents and students, who live in different timezones.

She thought she didn’t have to teach any more. Yet the job turned out to be intrusive and demanding. Since clients were in different timezones, she often took calls at night and had to patiently explain to them on the phone while gathering information about North American university program requirements.

She sticked through four months, and got the bonus for the highest client retention rate among the team. Regardless, she decided that the job wasn’t for her.

She wanted something that requires less interactions with people.

What about coding?

Lilian has a good taste in shopping and apartment decorations. I was amazed by her ability that, with just one glance, she could single out one outfit, among hundreds of others in ten aisles, which often suits me perfectly.

She’s good with colours, patterns, layouts, and all other visual patterns. I guess she might enjoy making web pages.

To test my hypothesis, I decided to show her some HTML source code.

I launched Chrome, and went to her fashion website: https://www.sephora.com/, and opened dev-tools on the right side of the page. Then I used the selector to hover over images, buttons and text. As I did that, the dev-tools auto-focused on the HTML section.

“Look, to make this image, you simply put together these codes. Let me show you how to change the button colours.”

I picked a button, clicked on the Styles tab, and modified the colour to #ffc0cb (pink), her favourite colour.

“See? Making websites isn’t that hard, and you can make your site yourself, with whatever colour and layout?”

“Really?”

“Yeah! I will help you.”

When we had that conversation, I already had a few years of working as full stack Ruby developer at startups, so demoing the basic knowledge about HTML / CSS / javascript wasn’t a hard thing at all.

Next was to plan how she learned. Since I had a full-time job, home-schooling her would not be possible. Reading books was slow and boring.

My solution came from Udemy. There were lots of intro-level classes on Udemy. And they were having huge discounts, something like 90% off. We were basically paying less than $20 for a course that had 3 hours of video, covering HTML / CSS / Javascript. That’s really cheap.

I picked a few highest rated classes with large student counts. Below were my selections:

  • https://www.udemy.com/course/front-end-web-development/
  • https://www.udemy.com/course/the-complete-javascript-course/

For a programming newbie, she would definitely come across concepts or jargons that were completely alien to her. When that happened, I told her to take a note, and then move on. When I got home from work, we would go through her questions together.

A good thing about online courses was that she could play back the video right at where she got lost. She could also switch to another instructor explaining the same problem in different way.

By then, Lilian was still working full time. So she only had nighttime and weekends.

Nevertheless, our strategy worked. In two weeks, she could:

  • recognize the basic HTML elements, like a, img, input
  • use VS Code to edit the CSS stylesheets of an existing web page
  • write the basic Javascript statements, including if-else, for-loop, etc.

Going through such exercise built up her confidence. When seeing the underlying mechanics, coding became something tangible, sort of like legos, that she should tinker and assemble to make new things.

However, her understanding was rough. Recognizing the elements was the first step. She still looked things up from time to time. To go further, she would need to use those elements more often to form working memory. Two weeks were a very short time for a brain to absorb all those knowledge, after all.

Part-time courses

To qualify as a front end developer, she would at least need two things: 1) hands-on experience of building real websites, 2) master one front end framework, like React.

We came across HackerYou coding bootcamp. A friend graduated from there and landed a job not long after, and highly recommended it.

However, the next cohort would be in two months. And the tuition was $12K, a price that we needed to think about it seriously.

She hesitated, because we were not sure whether web dev was the right fit. To reduce the risk, we decided to take a slower approach.

HackerYou offered a part-time course which was designed for newbies to prep for full-time bootcamps. We looked at the curriculum and it covered HTML / CSS / Javascript / jQuery. It was hands-on, project-based learning. The classes were at 6-9pm, Tuesday and Thursday night. It cost $1,200. Not cheap, but bearable. This amount can be deducted from the bootcamp tuition if she eventually signed up.

Timing and curriculum were perfect for her. So she signed up for the part-time course.

It turned out to be a right decision. For the following two months, they had experienced teachers explain the concepts to her. She’s also required to write several PSD conversions, translating a design to responsive landing pages with HTML / CSS.

By the end of the course, she had good working knowledge with CSS, including

  • flex / grid
  • media queries / responsive
  • accessibility (HackerYou was big on this)

The part-time course covered some vanilla Javascript, but it wasn’t the focus. Nevertheless, I was glad to see she knew how to make good-looking landing pages.

When the course was over, she took the bootcamp coding challenges. It had two questions, one was for modifying a given HTML / CSS files to implement some visual effect. The second question was writing jQuery to manipulate the DOM to implement a dynamic effect.

She did well for the first question, but struggled at the second. That made her realize she needed more work on Javascript.

For the following three months, she re-took the Udemy courses and went over the videos about Javascript.

Jumping from CSS to javascript, she just couldn’t understand why would javascript has such abstract concepts like objects or functions, and why she couldn’t see what the program does. Printing logs with console.log() was not interesting at all. She could’t see using javascript to implement dazzling visual effects like CSS.

I would not blame her. For newbies, Javascript is a beast. Without experience, it’s hard to fully understand why things were written in certain way. And there is no remedy to lack of experience than increasing exposure to more code.

Knowing that, I was particularly patient. And tried my best to use different ways to explain to her why people invented this. When I saw her confused, I advised her to let it go, and everything would make more sense when she learns more frameworks, like React.

Web development bootcamp

The part time course ended. Lilian couldn’t wait to learn more. The natural next step was the web development bootcamp.

To decide whether it’s worth, I looked at the bootcamp intro page again. A few keywords stood up to me: immersive, best practices, high employment rate.

I went through the curriculum again and saw that they taught React, which was nice. If she could get enough exposure to React, then she would be able to build modern, component based frameworks. She then could deliver stand-alone web apps, and complete her front end stack. From there, she would branch out to learn more things like Redux, testing, Storybook, etc., or to learn more server side, like NodeJS, bash/Linux. At the minimum, knowing a little React could probably land her a job.

Foreseeing the benefits, we finally decided to sign up for the bootcamp. She borrowed money from her parents and paid the tuition.

There were still 1.5 months before the bootcamp started. She worried that the bootcamp was too fast-paced and she would not be able to catch up. To prep for that, she took more online courses from pluralInsights.com. I used my personal learning budget to pay for an one-year subscription, and shared the account with her.

She took the time to go over all the Javascript basics again, including objects, functions, scopes, event loop, etc.

By the time the bootcamp started, she was well familiar with vanilla Javascript. The only new thing was React.

The bootcamp pace was fast, as she estimated. HackerYou teachers spent the first three weeks covering HTML / CSS / Javascript and then started teaching React. Some of her classmates were still scratching heads about objects or functions by Week 4.

Her prep effort paid off. She understood most of the lectures and only focused on the parts that she missed or was fuzzy about. For the milestone projects, she tried using different ways to write functions while her partners were struggling with basics.

Near the end of the bootcamp, she signed up for the Visibility:Hidden coding contest. The “traditional” HackerYou event went like this: Given a PSD image, each contestant was required to write a landing page on his/her own laptop. The laptop was connected to a rendering screen facing the audiences. The contestants were not allowed to look the rendering screen. They could only write code based on their own memory and familiarity with HTML and CSS.

The first prize went to an experienced dev who graduated years ago. Lilian won a SECOND PRIZE! When Heather, HackerYou CEO, was giving the prize, she announced that Lilian was the first current enrolled student to enter the contest final.

“Lilian’s graduating soon. If your companies are hiring, she’s right here!” The crowd cheered loud.

Hearing those words, I bottom-up’ed my beer bottle and couldn’t stop feeling proud.

During the bootcamp, Lilian built five projects. Starting from a make-up picker site that uses REST API and jQuery to implement simple dynamic effect, to a StackOverflow web app, built with React and Redux, and Firebase to support user login/logout, and a companion Chrome extension, which was mostly written in vanilla Javascript. Her portfolios were listed in her own site: https://linghaolin.com

As she practiced more, ES6 syntax became a second nature to her. She started to appreciate how Redux made her code much more organized. She could’t believe just two month ago she had a hard time explaining what is a callback function .

At Week 9, she submitted her final project zip. The intense nine-week bootcamp ended.

Lilian’s become a good junior dev, eager to build stuffs, and qualified for hire.

Interview prep

For a newbie in tech, coding interviews are challenging.

To prep her for the last mile of getting hired, we did quite a few things together:

  • Keep in mind that her target is junior positions, and set the expectations.
  • Solve two or three LeetCode questions (Level: Easy) every day, to practice her algorithmic thinking.
  • Keep learning other frameworks and tools, including React router, redux saga, jest / enzyme, Storybook (I basically pushed her to learn our company’s front end stack, since I was quite familiar and could provide guidance. Our goal was mainly exposure.)
  • Take each interview seriously. Whenever there is an upcoming interview, we did a few mock interviews before. I would ask her to do whiteboarding, solve puzzles, explaining her recent projects, and also ask cultural questions, just to de-surprise her about the interview.

Tech scenes were booming in Toronto in 2019. But for junior developers, getting interviews from local companies wasn’t easy. Most companies ask for 3+ years experience, which creates this bootstrap problem for juniors.

Lilian sent out 20+ cover letters, and only got a few rejections. Most HR didn’t even bother to reply.

Luckily, one month later, she had a referral from a friend at a dev agency. It was a good opportunity and we took it seriously.

We prep’ed the interview together the night before. I tried all the questions I could think of. The whole process took 3 hours. It turned out to be worth it.

The next day, she went for an on-site. Her performance at the interview impressed the Director. They were not planning hire any junior dev, but made an exception for her.

She got the offer.

Concluding thoughts

I’m so glad to see Lilian pulled this off. Quite a few of her bootcamp classmates quit, or went back to their old job afterwards. She didn’t. It was not easy when her mom expressed doubt about what she’s doing. She deserved the praise for the courage, determination and persistence over the past year.

Also, it’s a judgement call. We tried to balance her interests and the resources / time / money / connections we had at the time. We were lucky to find something she likes doing at our first try.

Another lesson I learned is patience. After making a decision, don’t overthink. We simply have to accept a leap of faith. Things don’t always appear to be moving ahead straight. But patience wins at the end.

Keep trying!


Junji Zhi

Senior Software Engineer. @Hockeystick.co.