我是如何从一个学物理的成为前端的 | 掘金年度征文

2018 对我而言是很特别的一年,也是我成长最快的一年。年初的时候,我还在抱着一本 GRE 红宝书啃着单词,心里做着“美国梦”。年中,却以前端实习生的身份加入了 Teambition,确立了自己的职业方向。

心态的转变

说起来你可能不信,其实我的专业是物理。大学里上过唯一一门和计算机沾边的课就是公共的『C 语言程序设计』,还是简化版的那种,你甚至不需要知道啥是指针就可以考满分。不过,我一直都对代码有着浓厚的兴趣,或者说喜欢折腾。大学几年里,折腾过各种乱七八糟的东西,用各种博客程序搭博客(就是没写过几篇),自学了 Python,照着教程用 Flask 撸了个简易的博客,还自学了 Swift,为社团做了一个能跑起来的 iOS App(也只是能跑起来而已)。

三月份的时候,大三下学期开始了,这个时候大家都开始考虑其自己的前途来。不少人选择了考研,可是我对科研没有半点兴趣,也不愿意多花两年时间去换取一张学位证书。还有些人选择了出国留学,虽然我也考过了托福,可是我还有个可爱的女票。所以就这样,我加入了春招的队伍。

之所以选择前端这个方向,是因为我觉得它离设计很近,离用户也很近。几行代码就能做出赏心悦目的效果,多棒。当然这只是我个人幼稚的想法。说实话,在决定成为前端工程师前,我对前端的了解还停留在很原始的地步。我知道 HTML 标签是干嘛的,但是不知道啥是语义化。我会用 CSS 实现简单的样式,但是不知道啥时 BFC,不知道 CSS3。我知道 jQuery,听说过 Vue 和 React,不过却连 JS 的基本数据类型也列不出来。

春招的经历

既然选择了前方,便只顾风雨兼程。

这是我很喜欢的一句话。既然决定好了,努力去做就好了。既然知道自己哪里不足,努力去弥补就好了。于是我开始了一边投简历,一边复习备战的生活。每天除了吃饭、睡觉、上课(和约会),就是泡在牛客网上,备战春招。

不懂算法,就去看《剑指 Offer》。不懂 CSS,就去看《精通 CSS:高级 Web 标准解决方案》。不懂 HTTP,就去看《图解 HTTP》。不懂 JavaScript,就去看各种书,包括但不限于《JavaScript 实战 300 例》、《锋利的 jQuery》、《JavaScript 权威指南》、《JavaScript 高级程序设计》、《JavaScript 语言精粹》、《数据结构和算法 JavaScript 描述》等。

为了简历上能有个能放出来的小项目,就去做了个 Hexo 的主题和一个倒放 Gif 的小工具

后来发现,现在都要求 Vue 或 React 至少会一个,于是就跑去看 Vue 官方文档,然后一边对着 API、一边跟着视频教程做了个仿美团的页面。还跑去看了 React,但是苦于其陡峭的学习曲线,也是一知半解。还顺道去学了 Webpack 和 Gulp,知道它们是干嘛的,然后自己试着配了一下。

过程中,也参加了几个大厂的笔试,但是因为基础实在太差,都没能再往前一步。期间感觉坚持不下去的时候,就喜欢跑去看别人发的面经,看看别人的经历,就有了坚持下来的动力。这里,强烈推荐Alex007 的小册《Web 前端面试指南与高频考题解析》,对于查漏补缺很有帮助。

最后,很幸运,经过将近三个月的努力,拿到了 teambition 前端实习生的 offer。

实习的经历

在 teambition 实习的三个月,是我成长最快的三个月。

实习期间,我开始潜下心来学习 React 及其周边生态。学会如何从零开始去搭建一个项目的框架,学会如何去配置 Webpack,学会如何使用 TypeScript,学会如何使用 Redux 进行状态管理,学会如何使用 git 进行版本管理和团队协作。更重要的,得益于 teambition 优秀的技术氛围,我了解到代码质量的重要性。

实习的几个月里,得到很多前辈的帮助,是他们让我知道了自己的不足,让我知道了自己前进的方向。是他们耐心的教导,让我知道编程是门『手艺』,让我不再像一个愣头苍蝇一样四处乱撞。借此机会,我想由衷地对他们说一声『谢谢』!

生命不息,折腾不止

回到学校后,由于已经是大四了,课业还算轻松,我便开始试着实现一些自己的小想法。于是便有了 ColorKitty 这个项目,一来可以锻炼一下自己编程能力、提高『代码感』,二来可以做点东西出来、做个小小的『产品梦』。这个项目主要是想解决产品设计中『色彩选择』这个问题。目前的功能还很简单,基于『你需要的色彩就隐藏在图片里』这个理念,这个工具可以帮你从图片中提取色彩,然后根据自己的需要进行组合、调整。

colorkitty.com

项目的架构很简单,前端使用 React+TypeScript,部署在 Netlify 上;后端使用 Python + Flask,部署在 Heroku 上。之所以选择这个架构,是因为我对这些都比较熟悉。中间也尝试过 serverless 的架构,不过最终还是放弃了。serverless 是个好东西,只是现在还不是太成熟,用起来总感觉有些隔靴搔痒的感觉。

2019 展望

2019,我对自己有这些期望:

  1. 买一只喵
  2. 持续输出,一年至少完成 33 篇文章
  3. 专注技术,巩固基础,深入学习 JavaScript,看完《You don't know JS》
  4. 学习 Rust 语言
  5. 继续完善 ColorKitty 这个项目
  6. 学习日语,至少到 N2 级别

Last but not least,新年快乐~

掘金年度征文 | 2018 与我的技术之路 征文活动正在进行中......

猜你喜欢

转载自juejin.im/post/5c4679f4e51d4551d045393b