工程师养成日记:从自学到进入职场,非本科系也能写扣领薪水!

作者:徐育伟
现为零一零科技工程师
台湾科技大学 工业管理系

一切都要从大四开始说起...

那年选修时因为想尝试不同领域,下定决心选修了「资料库及APP开发」课程,和组员共同开发期末APP作品。虽然组员(包含我)大多数都是零程序基础的白纸,但幸好协作过程中有赖句备程序经验的朋友相助,让我们整组得以顺利完成当期的程序作业,这也是我人生第一次接触到程序。

在那次的协作经验里,我从简单功能的实践、样式设计上获得相当大的成就感,就像初入新手村打败第一只怪一样,我慢慢的在实作中获得更多的经验值,也启发了对程序的兴趣。

我从零开始学习到成功找到工作大约花了半年的时间,今天想和大家分享我的学习历程,让曾经或此刻正走着相同道路的读者们可以相互参考。

初识程序语言:找对学习资源很重要!


我一开始主要透过 Freecodecamp网站学习,透过这个网站的手把手实作解题,教会了我对HTML、CSS、JavaScript的基本了解。


这个网站把重要的概念切成许多的小挑战,每个挑战不会花费太多时间或太困难,让学生能保持解题的热忱,同时学习到很多基本知识。

想成为一名前端工程师,JavaScript理所当然是相当重要的一环,因此後来我的整个学习历程比较着重在JavaScript上面。

最初我先参与了免费的JavaScript 30课程,实作出30个JS小作品,对DOM的操控有更进一步的了解,但因为JS 30比较着重实作,没有带到很详尽的概念,因此虽然常常在实作过程中使用某个写法、API,却不太清楚背後到底发生了什麽事情,导致最後作品虽然是完成了,但却始终在一知半解的情况下。

为了弥补不足,之後我在Udemy上购买了Zero to Mastery以及JavaScript:Understanding the Weird Parts。

前者的教学主要是设计成一个有结构性并且生动的方式,浅谈网站开发领域所需要的技能,讲解JS的常见用法、规范并马上带你实践,并把刚刚上过的教学内容做成小 Project,对加深记忆力满有帮助的。虽然课程内容都是英文,但好在这个老师的教学方法很清楚、用字也不艰深,配上字幕基本上不会有太大的语言问题,所以就算英文没有很好也不用太担心。

後者是偏重JS概念的教学,例如闭包、IIFE、同步/非同步、Recursion、Scope、This、Prototype等等,都用很简单、直白的方式解释给你听,绝对是在面试前必买必温习的一堂课。

以Udemy一堂三百多块新台币的订价来说,这两堂真的是非常物超所值,也非常适合时间零碎、手头紧、不确定自己是否要走前端的夥伴试试!

小菜鸟初入职场:融入公司与贡献是基於遵守协作的规范!

从自学的环境转入职场难免会遇到阵痛期,虽然获得了工作,但因为没有过太多共同开发经验,我到职第一周就赶紧设置系统环境、学习Git Flow开发流程及React框架Gatsby.js/Next.js,以及能快速开发样式的Tailwind、Chakra-ui框架等,从切版到跨部门沟通开发功能需求及CMS後台Schema的设计等。

由於非本科系半路出家,我在CS这块的相关知识很贫乏,以往自己的Project 只要求能动就好,但公司专案必须谨慎对待,需要考虑到很多面向,例如:程序码的可读性、可维护性及效能。

前期还很菜的时候容易先Brute Force蛮干出需求,没顾虑到时间复杂度及可读性等等的问题,所幸有公司的大神们:Gary和白白,不停给出充满爱与包容的温馨提点,例如在公司提出需求时,他们教我不要急着写code,应该要先了解「为什麽会有这个需求?此需求是否能在不写程序的情况下达成目的」,若需要写code也要事先想好程序逻辑及corner case ...等等。

举例来说近期专案为了改善文章编辑在上文章时的效率,需要自动内链关键字功能,最单纯的想法可能是逐字做比对再替换成连结,但考虑到效能问题,大神就提出了「使用断词技术」这个想法,事先设定好公司需要的单词,再以此来切割文章,用专门的套件免去掉每个关键字都需要逐字从头比对的问题。

此外,也藉由工程内部的Code Review及下了班後的自我技能补足,渐渐的,我的程序不再惨不忍睹,并学习到相当多难能可贵的经验与技巧。

在公司几个月磨练与学习下,我总共参与了6个网页专案,其中包含4个网站重构以及2个全程开发,其中的健康010是一个与许多健康方面的专家合作建立的健康知识型平台,网站从正式上线至今只有短短2个多月时间,不论是在LightHouse或WebPageTest等扩充工具运算下,网站速度及SEO都有达到很高的分数,站内还包含了非常多精美的页面设计、丰富的文章内容及多元的功能,不嫌弃的话,欢迎各位动动手指一起参观这个作品:https://health010.tw。

感谢零一零科技所有主管及同事的爱戴与耐心指导下才有现在亮眼的成绩,未来希望自己不忘抱持着当初挑战前端的这份热忱,继续专研网站开发这个广大而未知的领域,若时间允许之下也会开始研究後端领域,努力变成一个更全面的工程师。


<<:  伸缩自如的Flask [day 28] Flask-Mail

>>:  【网页设计 入门 】如何使用 Bootstrap 与 Github Pages 制作 个人网站 ?

[Day 14] 进入JavaScript,认识浏览器中的JS

前言 前面几天说了很多CSS\SCSS的介绍和学习方式,终於要踏入JS啦,边学习的过程也可以发现他要...

Day30 实作todoList(五)完成删除事项功能+完赛心得

画面完成後,该怎麽从List.js的回圈元件中的按钮去互叫function, 让function去改...

Day11 永丰金API 回顾

透过前几天的内容,我们已经大概了解永丰金流api的流程, 以及对应的api所需参数和回传内容,并且提...

[Day22]程序菜鸟自学C++资料结构演算法 – 气泡排序法(Bubble Sort)

前言:上一篇结束了搜寻的部分,终於进入到铁人赛的最後一哩路了,之後的篇幅大概会介绍排序法的各个种类,...

Day29-D3 进阶图表:合并图表(长条+折线)

本篇大纲:合并图表绘制关键、图表画面与互动效果、本次使用资料、图表绘制 今天的一天一图表,我们要来...