V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shaoyaoju
V2EX  ›  程序员

freeCodeCamp DevTalk 004 丨琚致远:优秀 Web 全栈工程师的成长之路

  •  
  •   shaoyaoju ·
    juzhiyuan · 2019-06-12 22:59:39 +08:00 · 1631 次点击
    这是一个创建于 1994 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文请戳 FCC DevTalk 004 丨琚致远:优秀 Web 全栈工程师的成长之路


    第四期 DevTalk 嘉宾致远,是一位 97 年的小朋友。叫他小朋友是因为他的年纪比我小好几岁,记得之前我们合影的时候他总是有点腼腆地抿着嘴哈哈~但是,自我们 2017 年认识以来,这位小极客的独立、坚韧、认真的品质,始终对世界保持好奇与不断探索的态度,都给我留下深刻的印象。尤其喜欢他叫我 Miya 而不是 Miya 姐,然后 balabala 跟我讨论问题,启发我以开放包容的心态提升自己工作的价值。

    本文标题取自致远的自我介绍 “正在努力成为一名优秀的 Web 全栈工程师”——我知道,“全栈工程师” 绝不会只是一个定义他的人生的标签,而会是帮助他不断拓宽人生边界的能量之源。

    这个夏天,致远就要大学毕业了。当被问到对于未来的期待时,他说 “希望自己可以踏踏实实、继续做自己喜欢的事情,在此前提下,能够鼓励、帮助身边人自我实现”。很感恩我们拥有致远这样的年轻的朋友们,他们在化思考为行动,为我们的社区注入活力,让这个世界变得更好。

    1、简要介绍一下自己吧。

    hi 大家好,我是琚致远,即将本科毕业。我喜欢交朋友,热衷于 Web 技术,正在努力成为一名优秀的 Web 全栈工程师。

    2、可以讲讲你的童年生活吗?

    我的童年和绝大多数人的童年没有什么不同,有家长的严格管教,有自己的不安与顽皮,有探知的好奇心和探索的破坏力。唯一不同的,或许是对一件事的好奇与坚持比别人久了那么一点。

    对每一个孩子来说,家庭的影响力都是排在首位的,我也不例外。在别人眼中我也算是出身于书香门第,这对童年的我来说还是有一定的压力的,毕竟我的成绩不能惨淡。但幸运的是家人也开明地在我的爱好和思想上给予了更多的自由。我的母亲是小学教师,教书育人,不仅教课,也弹的一手好琴,写的一手好字。小时候,母亲在弹琴和阅读上对我也是下了大功夫的,可惜我志不在此,也就荒废了,现在看来,当时的自己太年轻。

    孩子的爱好总是广泛的,在家人的影响下我喜欢打乒乓球、陪爷爷杀两局象棋。也和同龄人一样喜欢周杰伦和林俊杰的音乐,打小喜欢看 Disney 等工作室出品的动画以及诸如「 Harry Potter 」、「 The Lord Of The Rings 」等奇幻系列电影。小男孩嘛,总是沉迷于拆卸各种电子产品,从遥控车到电脑电视,拆着拆着就多了螺丝,哈哈,破坏力也是很强了。关于电脑,家里书柜中各种电脑书籍就是我的启蒙教材了,撺掇着撺掇着就发现更有意思了,深陷其中。

    我的童年影响并造就了我为人处世的方法以及平时思考的问题,它是磕磕绊绊的成长过程中的生成物,无论好坏,无关成败,都密切关系着我的未来。

    3、你是什么时候开始学习编程的?在这个过程中遇到什么困难,是怎么解决的?对于初学编程的小伙伴你有什么建议呢?

    因为家人工作单位会用到电脑,我便打小接触到了计算机基本操作相关的图书,这算是我的启蒙读物了。

    在小学三年级我拥有了自己的第一台电脑,是叔叔在中关村组装的。当时用电脑纯粹用于娱乐:看《大长今》、玩《魔兽争霸》以及各种 Flash 小游戏。

    在玩儿 Flash 小游戏时,就想到自己可否也做一个呢?后来,我在县城书店找到一本厚厚的《 Flash 制作从入门到精通》,但是妈妈觉得没用便拒绝给我买,为此我一路生闷气,回到家也不说话,最后妈妈还是迫于无奈又带着我买了一本。随后的很长一段时间里,我便在电脑上按照教程、一步一步跟着做,并不时地鼓捣出一些小玩意儿。

    初中自己比较“活跃”、到处乱窜,有天突然看到校长在办公室手动搜索并整理几十份各个班级的 Excel 表,我便想:能否做一个程序帮助他提高办公效率?于是在初二升初三那年暑假,自己用了接近两个月时间系统地学习了 Visual Basic 编程语言,并使用它开发了一套学生信息管理系统。打开该系统并登陆后,即可进行学生查询、学生编辑、报表生成与打印等功能。

    在 08 年暑假,我的 QQ 号码被盗取了,我就想自己是否可以盗回来?然后便迷上了所谓的「黑客」技术。从最开始下载各种木马工具到后来开始翻看、学习某些工具源码,再到后来使用社会工程学手段「恶搞」我的同桌:在过年时和他打赌能盗取他的 QQ 号,他不信,2 个小时后便把他账户的密保、安全手机全部解绑。

    年少轻狂的我也曾渗透过中学教务处,改了考试成绩,还特别开心的和妈妈说:我能进尖子班了!妈妈听完后便训了我一顿。自此我知道凭技术手段改成绩是不对的,便逐渐向白帽子靠拢。

    学习 Web 安全的历程中,最大的一次渗透经历是中学时曾渗透过某省教育厅,并可以访问到大量敏感数据,但我没有脱库、而是找到管理员并发送了一封描述具体漏洞问题的邮件。

    进入大学后,我想到如果自己清楚 Web 系统是如何构建的,那定将有助于我学习 Web 渗透技术。于是我通过搜索引擎查询大量资料并自己在本地模拟示例,用了将近两周的时间才初步了解传统 Web 系统是如何搭建并运作的。紧接着,我及其幸运的为学校、政府以及部分大小企业定制了一系列 Web 系统。

    在学习 Web 开发的这将近 4 年时间里,我也尝试了各种不同的编程语言。根据项目需求选择最合适的语言就好,不必追新。另外,不要因为语言繁多而苦恼,尽可能学精通某几门即可,因为语言只是一种表现形式。

    学习一门语言,要把基础打扎实,有自己的一把刷子。什么是扎实呢?在我看来不是说你有个印象,而是信手拈来不需要去频繁查询,有自己的框架、技术栈,构建自己的护城河。

    4、你在大学期间做过一些外包项目,可以介绍一下其中比较有挑战的吗?你觉得自己通过做这些项目收获了什么?

    大学四年做过的项目还是蛮多的,从 Visa、PICC 到当地政府甚至私企都有深入负责过。其中的每一个项目都是有挑战的,左耳朵耗子陈皓说:“要去经历大多人经历不到的,要把学习时间花在那些比较难的地方。要写文章就要写没有人写过的,或是别人写过,但我能写得更好的。”所以那些只是写重复的业务代码的项目,我会尽可能转交给其他需要赚外快或者攒经验的朋友们。

    那么聊一下我的第一个正式项目吧。

    在大一上学期,一位学长问我能不能帮学生处蓝天网改版页面?我欣然答应了,但那个时候我并没有学习过如何制作网页、搞不清楚打开浏览器输入网址为什么能出现各种页面、为什么同一个网址展示的内容却不一样,但我还是答应做这个事情了,我总觉得:这事儿靠谱,应该能成。我知道不能只想着怎么做,而应该马上试着去做。通过搜索引擎,我了解到一个网站是如何搭建的、知道了制作网站需要用到什么语言,这就足够了。

    当时我在学生会有一个公共办公室,做学生处网站的日子里,我每天早上 8 点准时到办公室,晚上 11 点才回宿舍(那个时候不熄灯)。耗时一个半月,终于更换了旧网站。这期间,网站界面改了两次,第一版界面是我自己想的,我觉得效果很酷,但是学校不这么认为并且给了我一些其它高校网站作为参考。从这件事儿上我第一次明确认识到:一定要提前确定好需求与界面设计。

    为学生处改版过程中,我不仅写了代码、做了设计、顺便又做了一次伪产品经理,所以专心做一件事儿,它真的不会很单调,因为有那么多坑等着你去踩、有那么多内容需要你去学习,对于这些挑战,我是非常乐于接受的。做完学生处网站后,我在其底部留下了自己的昵称与个人站网址,随后接到了多个大大小小的项目,这些例子不再一一赘述。

    实战极大提升了自己的技能,虽然岀现了非常多的问题,但是摆正好心态,一遍一遍搜索、排查,总能够解决的。而且通过实战解决的问题,你对它的理解并不是理论学习所能达到的。

    现在看来,第一个项目并不复杂,但引用阿里云王坚博士的话:“其实年轻人很了不起的地方在于,TA 觉得 TA 什么都能干,但是没有说 TA 什么都能千成。这是两件不同的事。可能年轻人明知道干不成,TA 还要去干,这是一件非常了不起的事情,要有巨大的自信心才可以做到。挑战天生就应该离年轻人更近,因为只有年轻人想学习东西,年纪大了的天天想教别人东西。所以我相信,只有这个世界的挑战离年轻人更近,未来才会离我们更近。“

    5、你平时热衷于参与社群或者参加技术会议,这些经历对你的成长有什么影响?

    互联网圈子是异常活跃的,众多的社群组织在等待你的加入,我非常鼓励大家在确定自己的某个兴趣点后主动查找、加入相关社群。无论线上或者线下,形式不重要,重要的是你加入后应当积极融入进去,因为很少有人会主动邀请你。加入社群后,要去学习别人的想法、分享自己的见解并尝试与成员交流。

    freeCodeCamp 是我加入的第一个社群,加入后我会主动与成员聊天、结交朋友。起初我也觉得不好意思,一直在窥屏,认为彼此不熟悉不好开口,但有一天突然想通了一件事儿:“既然大家都不认识,那就试着唠吧。如果对方回复,那就太好了!如果对方方便,就可以继续唠;如果不回复,那也没关系,反正大家原本就不认识,不理我我也不会感到尴尬。"有了第一次开口,就有了第二次、第三次,久而久之,这种行为就变得自然而然。

    互联网会议是异常多的,但我不能告诉你需要参加什么会议,因为我不知道你的兴趣点在哪里,我只能鼓励你和你的小伙伴积极查找、选择、参加高质量的、自己感兴趣的会议。

    这四年里,我用做外包获取到的收入参与了多个跨界的社群或技术会议。列举某几个会议~ 乌云白帽大会

    阿里云栖大会

    Web 前端交流大会

    ArchSummit 全球架构师峰会

    生财有术社群

    积极参加合适、正确的社群与会议,并不会给我带来一时的“利”,我知道,自己需要做的是循序渐进地学到讲师们的思想、与讲师们交朋友。有几位小伙伴之前从未参加过类似活动,这几次带着 TA 们参加活动既拓展了视野又促进了我们之间的友谊。不仅仅如此,通过这些活动使我有幸结识了诸多跨行业大咖。今天的世界已经没有人可以教给你什么了,但是你可以从别人那里学习很多东西。和 TA 们聊天,对方并不会有高人一等的感觉,而是很朴素、很平常。所以,作为刚入门的新人,摆正心态、提出问题、大大方方讨论就行了。但是需要注意,大咖们时间也是非常宝贵的,不要和大咖拐弯抹角,自己用一定时间组织清楚语言以及问题,有事儿说事儿,这是对对方起码的尊重。

    6、身边的同学也都像你一样对自己的学习和社会实践有明确的规划吗?你尝试通过哪些方式带动他们?

    我不认为自己在学习和社会实践有明确的规划,但我知道自己在尽可能做自己喜欢并利他的事情。

    附上两张截图吧,这是在 2017 年时尝试在学校做了一段时间 Web 前端培训,参与者是我的朋友们,不过大部分人是零基础。

    我并没有手把手教 TA 们如何去写,而是给 TA 们列出时间周期以及某个周期内的任务。TA 们总会遇到各种各样的问题,如果直接向我求助效率很高,但是,我希望 TA 们可以通过自己的努力、在遇到问题时通过查询搜索引擎来解决,这远比我直接告诉 TA 们该怎么做要好。

    在有朋友给我发来下方截图中的文字时,我心里是异常开心的,有一种满满的成就感!但,好景不长,没有兴趣或利益驱动的事情,往往大部分人是坚持不下去的。

    在一段时间后,TA 们倦了,因为短时间内看不到回报。这不是 TA 们不努力,而是大部分人希望短期内可以产生效益:比如拿到高回报外包,或者找到一份工作。可是技术学习哪有这么容易,前期需要耐得住寂寞、死扛过去。

    于是,在学习一项技能时,以 Web 技术为例,我的建议是首先确定是否真的要做 Web 方向; 接着请教有相关经验的朋友,都需要学习什么技能; 最后用一定的时间规划学习周期,持久地、分阶段性学习。

    于我,在学习(做)一件事情的时候便是按照上面的步骤来的。过程不复杂,但在最后一步,坚持下来的又能有多少人呢?提供一个可以支持自己长期做一件事儿的小技巧:尽可能做自己喜欢做的事儿。

    想做一件事情的时候,快速分析一下,觉得可行那就只管去做好了。瞻前顾后可以理解,毕竟这是一次选择,需要用一定时间来考虑。可过于瞻前顾后,觉得这不行那不行,或者在等等,大概率这件事最后也不会去做。况且,就算这件事情最后”失败“了,自己也不会损失太多。相反,我们从这次”失败 / 试错“中可以学到许多,比如:下次不会再做同样的事儿或者同样的事儿不再跳坑。

    另外,在学习从未接触过的领域时,建议自己先摸索一下。如果有必要,那就请教该领域的高手,或许 TA 们一句话就可以点醒你,不过记住:最终还是要靠自己。

    三个月学习 Web 技术,勤奋一些,是可以达到一定高度的。不要因为马上毕业就随意找一份工作,用三个月时间掌握这项技能,你越熟练、越有经验,自己的机会也将越多。

    不过令我开心的是,我在去年回国后,把远程工作转给了一位朋友,他通过绝对的努力,胜任了这一职位。从最初零经验到如今已经可以独立开发 Web 前端项目,每个月还能拿到不错的薪水,一举两得 :)

    7、聊聊 2018 年你在德国作为交换生的学习和生活经历吧,你觉得这段经历中最有意思的是什么?

    去年我作为交换生去了德国法兰克福,国外学习的确更自由,上课与否都没有关系,只要最后考试通过即可。但是,这也需要极强的自我驱动,因为德国老师不会提醒你该做什么、怎么做,必须自己操心,否则考试大概率无法通过。

    我所见到的大部分国外学生非常严谨、认真,这是我暂且所不能及的。

    在这里,顺理成章的我结交了新的朋友,TA 们来自不同的国家,偶尔也会有联系。

    在德国生活,因为我的住处离美茵河畔走路只需要 2 分钟,所以每天早上或傍晚,我便顺着河边跑步或遛弯儿,但我依然胖了很多_(:з」∠)_ 可能是这里有许多好吃但热量极高的食物吧。

    在这里,我会和朋友们偶尔出去玩,比如阿姆斯特丹、德国汉堡、捷克布拉格等等。

    比较刺激的一件事是与朋友们一起在布拉格跳伞,当喷气机飞上天空后,说实话当时心里确实一怂,不过很快便平稳下来:无非两种极端结果嘛~ 在飞机到达跳伞高度后,我们一个个挪到机舱口,然后像下饺子似的跳了下去(我怀疑自己是被风吹下去的)🤣🤣

    很快习惯高速下落后,放眼望去,幅员辽阔,我甚至看到了地平线。原本在地面上如此渺小的我,现在以「上帝视角」审视着它们。这次跳伞,极大地拓宽了我在日后审视问题的角度。

    8、这个夏天你即将大学毕业,你也拿到一些很不错的 offer,为什么之前选择在 Team247 远程工作呢?分享一下远程工作的体验吧。

    在回国前一个半月,我开始准备秋招,并选择性地投递简历给一些企业或团队。自然而然的,阿里是我所期望的企业,这是一种信念。

    在将近一个月的各种面试中,先后拿到了扇贝单词、轻芒、网易等公司的 offer,但此时阿里的面试仍未结束,于是我便选择了网易。在阿里将近 40 天的面试流程后,我在第 5 面被 HR 以学历不够拒了,因为应聘部门相对较新,且有足够多的研究生以上学历应聘者。阿里失利后,我确实会有一定失落,但这已经不重要了。

    在网易的这段日子里,感触颇深的是网易确实很像一所大学,因为年轻人真的很多。但由于我不喜欢一进入办公区、黑压压一片人在敲键盘这种氛围,我最终离开了它。

    随后,申请加入了远程团队 Team247,感谢团队给我的这次机会。团队成员真的十分厉害,每个人手里都有不止一把刷。

    在回国前,我在德国有申请到一份远程工作。只需要确定需求并与对方确定时间后,按时按质交付即可,具体什么时间工作并不作限制。我可以一周不工作,趁着下一周用两天时间集中处理;也可以每天工作两个小时,总之只要在约定时间内按时按质量交付即可,这才是我所理解的远程团队。

    在 Team247,我感受到了朝九晚六的感觉。每天按时上线后,开始处理当天的任务。经常性地,我会在多个不同类型的项目中处理任务,比如处理完 Web 应用后,就需要抓紧去处理原生应用,这对自己的技术栈还是很有挑战的,所以压力会很大。

    有时问题卡住了,我就不得不继续处理,当然这不是强制的,我完全可以放在第二天做,但是作为一名工程师,我喜欢尽早处理完问题的快感。

    总之,做远程工作是需要较强的自我驱动的,因为大家彼此不可见,所以更需要自己合理安排进度,否则久而久之,自己经常完不成任务,同事便会考虑你的工作能力。一时的偷懒,从长期看是不利己的。另外,远程工作对自己技术栈有极强的要求,因为自己不单单做自己熟练的,也会让你做你所不熟悉甚至完全陌生的领域,大家都很忙并不会一步一步带着你做,因此唯一的办法就是自查、自我解决。

    投入时间与精力,并结合搜索引擎进行有效的搜索,问题被解决只是迟早的事情。因为远程团队,大家彼此不见面,你能证明自己的最好方式就是能担此重任,解决问题。

    9、你是如何找到远程工作的?

    我主要是通过在远程工作平台申请到远程职位的,推荐两个平台:一早一晚 https://yizaoyiwan.com/ 与 远程.work https://yuancheng.work/ ;除此之外,因为我比较活跃,也会有不同的朋友介绍远程职位给我。但是,职位虽然很多,也需要自己实力硬才可以顺利申请到的。

    10、你说自己正在努力成为一名优秀的 Web 全栈工程师,那么你是怎么定义”优秀“的?

    我认为工程师在技术能力上可以分三个层次:基本、中等以及优秀。

    基本:可以按时保质地完成任务;

    中等:有自己的想法,可以分析出开发过程中产品有哪些点是不合理的、又有哪些点是值得我们借鉴、学习的;能合理设计架构、有大局意识。

    优秀:触类旁通、举一反三,所掌握的知识不仅仅局限于专业技术,还能够主动将其它方面内容合理组合、加以应用。

    11、除了工作,你有些什么兴趣爱好?

    电影 异常喜欢看悬疑破案、逻辑推理、武打格斗、奇幻系列(动画)电影。

    旅游 说走就走的旅行,如果没有伴那就一个人孤身前往。这段时间和小伙伴就要驾车从成都去稻城了~

    读书 小时候读了太多计算机、管理类相关图书,缺少阅读历史人文类图书,大学后便坚持阅览优秀公众号文章、阅览历史人文类图书。

    写作 更精确的描述是:把所见所想记录下来。

    乐器 十分喜欢钢琴、笛子,但是长时间不接触也就淡忘了。

    12、对于未来你有什么期待?

    希望自己可以踏踏实实、继续做自己喜欢的事情,在此前提下,能够鼓励、帮助身边人自我实现。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2425 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 16:07 · PVG 00:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.