The offer email arrived in Lilian’s inbox at 10:09 pm on a chilly Friday night in late October. She printed, signed, scanned, attached, and hit “Send.” After hearing the Apple mail “whoosh” sound, she officially landed her first developer job.
I want to share my wife’s story of changing careers to become a web developer in hopes that it will help others on a similar journey.
She wanted a change
Lilian has a master’s degree in linguistics from the University of Toronto. After graduation, she taught Mandarin at a private school in Toronto to mostly professional adult students taking night classes to learn a new language.
The headmaster had spent 20 years teaching and running the school. She started at noon, spoke non-stop in three to four back-to-back classes, and still wished each student a warm goodbye at 9:30 pm. She genuinely believes that teaching is fun.
But that wasn’t the case for Lilian. Being with people for a long time was exhausting, and she often arrived home late, collapsed onto the sofa with her face glued to the phone screen. After a year, she quit her job and joined an EdTech Customer Success department.
She answered inquiries from clients around the world. She didn’t have to teach anymore, but the job was intrusive and demanding. Since clients were in different timezones, she often took calls at night and patiently explained information about North American university program requirements. She received a bonus for the highest client retention rate among the team, but after four months, she decided the job wasn’t for her.
She wanted something that required less interaction with people.
What about coding?
Lilian has superior skills for shopping and decorating. I’m amazed that with just one glance, she can single out an outfit among hundreds of others that suits me perfectly. She’s excellent with colors, layouts, and other visual patterns. I thought she might enjoy making web pages.
To test my hypothesis, I showed her some HTML source code. I launched Chrome and went to one of her favorite fashion websites, Sephora, and opened the dev-tools on the right side of the page by selecting View>Developer>Inspect Elements. Then, I hovered the cursor over images, buttons, and text. As I did that, the dev-tools auto-focused on that HTML section.
“To make this image, you simply put together these codes. Let me show you how to change the button colors.” I chose a button, clicked on the Styles tab, and changed the color to #ffc0cb (pink), her favorite. “See? Making websites isn’t that hard, and you can make your site yourself with whatever you choose.”
Next, we needed to find a way for her to learn more. I had a full-time job as a full stack Ruby developer, so homeschooling her would not be possible. And reading books was slow and boring.
I selected a few of the highest-rated classes with large student counts:
- The Complete Front-End Web Development Course!
For a programming newbie, she would definitely come across concepts and jargon that were completely unknown to her. When that happened, I told her to make a note and move on. Later, we went through her questions together.
The good thing about online courses was that she could play back the video where she became lost. Or, she could switch to another instructor, explaining the same problem differently. Lilian was still working full-time, so she only had nights and weekends. Nevertheless, our strategy worked. In two weeks, she could:
- Recognize basic HTML elements like a, img, and input,
- Use VS code to edit CSS stylesheets of an existing web page, and
Going through these exercises built her confidence. By seeing the underlying mechanics, coding became something tangible, sort of like Legos, that she could tinker with and assemble to make new things.
But recognizing the elements was only the first step, and she still looked things up from time to time. To advance, she would need to use those elements more often to form working memory. Two weeks is a very short time for a brain to absorb all that knowledge after all.
To qualify as a front end developer, she needed at least two things:
- Hands-on experience building real websites and
- Mastering one front end framework, such as React.
We came across a Juno (formerly known as HackerYou) coding bootcamp. A friend, who graduated from there and landed a job not long after, highly recommended it.
However, the next session didn’t start for two months, and the tuition was $12K, a price we seriously needed to consider. She was also hesitant because she wasn’t sure whether web dev was the right fit. To reduce the risk, we decided to take a slower approach.
It turned out to be a great decision. For the next two months, experienced teachers explained the concepts and required her to write several PSD conversions, translating a design into responsive landing pages with HTML / CSS.
By the end of the course, she had a solid working knowledge of CSS, including:
- Flex / grid,
- Media queries / responsive, and
- Accessibility, which Juno was big on.
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 was worth it, we looked at the bootcamp intro page again. A few keywords stood out: immersive, best practices, and 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, 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 could branch out to learn more things like Redux, testing, and Storybook or learn more on the server side, such as NodeJS and Bash/Linux. At a minimum, knowing a little React would probably land her a job. We finally decided to sign her up for the bootcamp. She borrowed money from her parents and paid the tuition.
But Lilian’s prep paid off, and she understood most of the lectures and only focused on the parts that she missed or was fuzzy about. For the milestone projects, she used different ways to write functions, while her partners struggled with the basics.
Near the bootcamp’s end, she signed up for the Visibility:Hidden coding contest. The “traditional” Juno event went like this: Given a PSD image, each contestant had to write a landing page on his/her own laptop. The laptop was connected to a rendering screen that faced the audience, meaning the developers couldn’t see the screen. They could only write code based on their memory and familiarity with HTML and CSS.
The first prize went to an experienced dev who graduated years ago. Lilian won SECOND PRIZE! When Heather, Juno CEO, was giving the prize, she announced that Lilian was the only currently enrolled student to enter the contest final. “Lilian’s graduating soon. If your company is hiring, she’s right here!” The crowd cheered loudly. Hearing those words, I bottom-up’ed my beer bottle and couldn’t stop feeling proud.
During the bootcamp, Lilian built five projects. She started with a make-up picker site that used REST API and jQuery to implement a simple dynamic effect. Next was a StackOverflow web app, built with React and Redux. See the complete list on her website.
As she practiced more, ES6 syntax became second nature, and she started to appreciate how Redux made her code more organized. She couldn’t believe that just two months ago, she had a hard time explaining callback functions. At the end of Week 9, she submitted her final project zip, and the intense bootcamp ended. She was ready to find a job.
For a newbie in tech, coding interviews are challenging. To prep her for the last mile, we did quite a few things together:
- We set the expectation that her target role was a junior position.
- Solved two or three LeetCode questions (level: easy) every day to practice algorithmic thinking.
- Kept learning other frameworks and tools, including React router, redux-saga, Jest / Enzyme, and Storybook.
- Took every interview seriously. Whenever she had an upcoming interview, we did a few mock interviews. I asked her to do whiteboarding, solve puzzles, and explain her recent projects.
Tech scenes were booming in Toronto in 2019. But for junior developers, getting interviews from local companies wasn’t easy. Most of them wanted 3+ years of experience, which creates a bootstrap problem for juniors.
Lilian sent out 20+ cover letters and only received a few rejections. Most HR departments didn’t bother to reply. But one month later, she had a referral from a friend at a dev agency. It was a good opportunity that we took seriously. We prepared for the interview together the night before. I asked all the questions I could think of. The entire process took three hours, but it was worth it. The next day during the on-site interview, her performance impressed the Director. They weren’t planning to hire a junior dev, but they made an exception for her. She received an offer.
I’m so glad to see Lilian succeed. Quite a few of her bootcamp classmates quit or went back to their old job afterward, but she didn’t. It was not easy when others expressed doubt about what she was doing. She deserves praise for her courage, determination, and persistence over the past year. Check out her website.
Also, it’s a judgment call. We tried to balance her interests with the resources / time / money / connections we had at the time. We were lucky to find something she likes doing on our first try.
Another lesson I learned is patience. After making a decision, don’t overthink it. Sometimes, we simply have to accept a leap of faith. Things don’t always appear to be moving ahead, but patience wins at the end.
Update: Lilian has been a full-time developer for the last six months, and she loves it!
(Edited by Samantha Mason with ❤️)