原文:How I went from stay-at-home mum to Front-end Web Developer,作者:Phoebe Voong-Fadel

我想过很多次写一写自己学习编程的经历,但一直没有勇气去写,一方面我觉得没啥好写的,另一方面,我想:“谁会看呢?”

每一位开发者都有自己的故事,这里我想聊聊如何一边带小孩儿一边学习编程,以及其中的挑战。

我的背景

我成为一名 Web 开发者的经历跟大家普遍看到的不同。我修的是人文专业,没有计算机科学的背景,毕业后曾经在高等院校任职,后来晋升为管理层。我喜欢我的工作,但是我对这样的职业生涯并不满足。

大概七年前,我开始为自己做新的职业规划,想进入到技术领域,也听取了一些建议,然后我开始学习 HTML 和 CSS 等 Web 基础知识。刚开始我对编程并没有全心投入,主要是因为害怕这个转型会花费太多时间,并且那时候我快要结婚了,也需要花心思筹备婚礼。6 年之后,现在,我已为人妻,有一套公寓,还有两个不到两岁的宝宝!

2015 年 1 月,我有了第一个宝宝。不夸张地说,我儿子的出生彻底颠倒了我的世界,睡眠不足的折磨、母乳喂养的困难......让我在前六个月都处于行尸走肉的状态。

好不容易各方面情况开始稳定下来,我回到工作岗位才一周,却发现自己又怀孕了!2016 年 9 月,我的女儿出生了。现在,我有两个不到 20 个月的宝宝!

2

职业转型的动力和体会

2017 年年中,我 34 岁,那时候我决定辞职。我这样做有两个原因,一是财务方面允许我可以暂停工作,二是我的孩子们正需要照顾。另外我的丈夫长期在外工作,我没办法一边全职工作一边照看两个年幼的孩子。

我七年前的想法一直都在,我可以等到孩子们长大,然后找一份兼职工作,或者最终在技术领域发展。我的丈夫已经在技术领域工作,他给了我同样的建议。

然后我学习了 HTML,CSS 和 JavaScript 这些基础知识,我觉得自己可以成为一名前端开发者。

3

在 freeCodeCamp 入门编程

于是我搜索应该在什么在线平台学习编程,读到了很多关于 freeCodeCamp 的内容,我也很喜欢它的课程结构,它适合任何零编程基础的人。

刚开始学习的时候,看到我的代码在预览窗口渲染出来,我非常开心,然后我告诉自己:“挺好的,我能做到!”

我还记得自己第一次被困住的场景。

在我学习 <div> 标签的时候,题目里描述到 “div 元素大概是最常使用的 HTML 元素”,我不明白为什么要把一个 <div> 元素嵌套在 <div> 元素中。

我丈夫跟我说 “Google 是你的朋友”,所以我开始搜索了解 <div> 是什么。

这件事并不容易。我已经毕业 13 年了,而现在我进入到一个与我以前学到的东西相去甚远的领域。起初,我很怀疑自己根本没办法学会编程,随着时间的推移,即使课程越来越难,我常常感到沮丧,我也仍然坚持努力学习,学习编程这个过程慢慢变得容易了。

4

一边学编程一边带孩子是巨大的挑战

“为人父母” 是一份没有尽头的 “工作”,这是我所担任过的最苛刻的角色!我必须是最好的厨师、表演家、管家、歌手、护士、养育者、办事员、老师、故事家…...还有很多别的身份。即使我的孩子睡着了,我也随时待命,准备放下一切以满足他们的需求。

因此,最大的挑战是找到时间敲代码。我的丈夫在外地工作,一周大部分时间都是我在照顾两个小孩,我精疲力尽!刚开始,我只能在他们睡着的时候敲代码。

通常,我从早上 6 点到晚上 8 点都在照顾孩子,一直到晚上 9 点,我才能坐下来,打开笔记本电脑,开始编程。即使那个时候我已经感觉很疲惫了,但是一开始编程,我也就恢复了活力。

有些晚上情况好一点,孩子们没那么需要我,我可以在睡觉前学习 30 分钟到 3 个小时,不过大部分晚上我根本没法学习。

坚持下去,一切都会变得更好。

最终,编程成为了我日常生活的一部分。孩子们在托儿所的时候,我暂时获得解放,可以学习一会儿。我通常这样安排时间:

6:00 早餐,亲子时间

9:00 学习

12:00 午餐,做家务

13:00 继续学习

15:00 做饭,做家务,接孩子

21:00 学习

22:00 - 23:00 睡觉

小孩子难免会生病,但是没有人告诉我小孩子生病有多频繁!当他们生病的时候,我都不得不中止学习好长一段时间。

比如,2017 年冬天,我女儿患上流感,很快,我儿子也患上了,两周之后他们才康复。当我终于可以放松下来,不再 “疲于奔命”,我自己和我丈夫都病倒了。这样,我就有一个多月时间没能学习。

所以,我得考虑到这样的中断情况并且做好准备,不能让它过多影响我的学习节奏。(每次中断之后)我努力尽快恢复学习状态,并且针对一些项目做短期编程训练,这样在我恢复学习的时候,可以很快完成这些项目。

我尝试尽可能保持自己每天的规划,这对我和孩子们来说都非常重要。例如,我必须暂停在做的某个练习去接孩子,我也不能熬夜编程到凌晨,否则就没办法在第二天早上好好照顾孩子们。

5

我的经验

最近有人问我在学习编程的过程中学到的最重要的东西是什么,我罗列出最重要的经验,其中一些是特别面向父母的,但是我相信它们对于没有为人父母的读者来说也非常有用。

1、人人都可以学习编程:无论你是什么背景,只要你有兴趣和动力,你都可以学习编程。网上有非常多的资源,可以满足各个层面的知识需求,你只需要会使用计算机,并且花时间去学习,不断地实践,你就会成功!

2、每天敲代码:这是我从 freeCodeCamp 的创始人 Quincy 那里得到的一个建议,这点非常重要!我尽量坚持每天敲代码,但如果你没办法做到也没有关系,孩子们总有各种突发情况,所以我有时候也做不到。我尝试在履行作为母亲的职责之余调整我的学习计划。灵活地处理问题是关键。

3、不要让自己疲惫不堪:尽量找时间让自己放松,不学习的时候我会去健身房。

4、处理并发任务:孩子们在托儿所的时候,是我做家务的时间。把衣服扔进洗衣机之后,我会敲代码;打扫卫生或者做饭的时候,我会看 YouTube 上的编程教程视频或者听播客;我也会在周末时多做些饭菜冻起来,以便挤出更多学习时间。

5、学会管理你的恐惧:不要让消极的情绪消耗你。在学习编程的某些时间点,你可能会感到自我怀疑。每个人对恐惧都有自己的应对方法,对我来说,我学得越多,练习得越多,我就越有自信。

6、学习如何研究:这是你需要掌握的重要技能。在遇到困难的时候,一开始我发现很难搞清楚应该搜索什么正确的关键词。其实,搜索也是需要练习的,你在网上搜索得越多,你就越懂怎么搜索。记得把有用的网站添加到书签。

7、不要被击垮:你应该思考学习编程会给你带来什么,但是注意不要被它击垮。想象你的知识是正态分布曲线,峰值意味着你非常了解两种语言或框架,而它逐渐下降则意味着你对其他部分的知识的了解没那么广泛而深入。了解新技术和趋势总是很好,但这并不意味着你必须成为专家!

8、制作你的作品集:即使你没有正式的编程工作经验,你也可以制作一个优秀的作品集。我的作品集包括两个 freeCodeCamp 项目,甚至不需要自己配置编程环境,可以直接使用 CodePen 等在线资源来演示代码。

9、版本控制:学习如何使用 Git 和 GitHub。当你开始做更复杂的项目时,你需要使用 IDE(集成开发环境)。我使用 Atom,但我不太关注工具本身。选择一个工具然后学会使用它就行了。另外你需要学习在 GitHub 创建仓库和提交代码。

10、代码审核:找人帮助你审核项目代码非常重要。我一开始很难做到这一点,但是这一步会帮助你成为一个更好的程序员。当然,你也能从审核别人的代码中学到很多。

11、学无止境:人们也会问我另一个问题——什么时候停止学习,我的回答是我会永远保持学习状态。 Web 开发领域有很多创新,我会始终关注最新动态和 “必备技能”。

我目前的状态

我已经利用业余时间学习编程将近一年了,获得了 freeCodeCamp 六个证书的其中三个。

我现在是一名自由职业的 Web 开发者,建立了两个商业网站,一个是帮客户做的,另一个是我的个人作品集,此外我正在帮另一个客户重新设计和构建网站。我也继续在 freeCodeCamp 和其他平台比如 Udemy 学习。

再分享一些想法

有人问我为什么在有了孩子之后才转行,而之前有更多时间的时候没有这么做。这其实挺讽刺的:在我有宝宝之前,我没有意识到时间有多么宝贵,我是一个满足现状害怕冒险的人;而有了宝宝之后,我想成为孩子们眼中的榜样,并且拥有我热爱的事业。

成为母亲之后,我觉得养育孩子就是我唯一的目标,在这个过程中我感觉失去了自我。而当我再次开始学习时,我有了另一个目标:我既是两个孩子的妈妈,也是一名开发者。