TW之旅

by Teobler on 29 / 09 / 2018

views

一切的开始源于一份“天龙八部”,拿到自己之前计划攒钱买的mac。

新手村

没能跟完入职后培训算是进入TW的第一个小小的遗憾,虽然可能以后回过头来看并没有什么,但是对于我这样自认为基础不太牢靠的人来说一次系统的训练可能能给我带来不少好处。

在培训中得到的第一个就是压力,在之前入职前线上培训的一周作业,现在是一天的量,按照林老师的话来说是“一点钟做不完就睡觉吧,不然第二天没精神上课”,于是我就成了那批1点左右睡觉做不完作业的人。现在想来,基础不牢是一回事,效率低下也有关系,总结起来主观因素占绝大部分—— 菜是原罪。

第二点就是公司文化与日常。“在敏捷实践方面,公司在世界范围内是能够处于金字塔顶端引领行业潮流的”。初次听这句话说实话我抱怀疑态度,随着进入项目组,结合之前实习的经验还有同学们的聊天来看,此话不假。大多数公司想要制定敏捷规范,而在TW敏捷已经成了日常,在项目中的一切实践都有敏捷的影子—— 从公司布局,到工位位置;从日常站会,到每天的codereview;再从卡墙,到项目管理;代码规范,到项目部署,敏捷无处不在。

第三点是学习方法和实践。授人以鱼不如授人以渔,如何学习永远是在学习中摆在重要位置的。思维可视化,以教代学,session,tasking,timebox,PDCA,富兰克林写作法,刻意练习,概念图等等方法。虽然在后面的工作中并没有全部用到,但是这些方法如果运用得当肯定能够在以后的学习中发挥很大的作用。

等级不够半路出村

回头一想其实还觉得又有点小幸运,在一个恰好的时间,进入了一个恰好的项目组,遇到了一群(哪里有一群)恰好的人。组里的技术栈恰好是自己想要发展的方向,虽然可能工作的时间并不很长,自己的技术深度也并没有那么深,深层的技术问题自己无能为力,但是自己总是有进步的,也能为组里带来一些微小的贡献。

新手任务

第一张卡第一个task是一个巨简单的proxy api,大概就是简单的将前端的query params format以后发送请求到AS24API,拿到response之后再发回给前端。怎奈从来没有接触过后端的我首先是看不懂代码,其次是逻辑稍显混乱,一个简单的api在有各种提示的pair中做了整整一个下午。半路也是磕磕绊绊,写出来的代码也几乎都是之前现成的代码换了个样子。

仔细思考,其实这张卡对我挺重要的,首先这是我的第一张卡,虽然并没有独立完成,甚至说只是将核心问题串联了起来,但是其中暴露了我比较多的问题。首先是自己之前瞎点技能点,虽然什么都会一点,但是就真的是一点。技术栈是符合项目的技术栈,但是深度远远不够。举例来说就是react我会吗,会,但仅仅是会,遇到问题我需要花大量时间查阅文档,各种论坛,最后可能还需要就具体问题请教组里的人。不夸张的说,要是一直维持这个样子,我只会是组里的拖油瓶。不过还好,刚出新手村时,系统派了一位认领我的师父,虽然师父之前不是与我同门同派,但是转到我派时日也不短,给我在前行的路上许多帮助。

任务在师父帮助下勉强完成,任务难度低,收获经验多,走出新手村第一步。

打怪升级

后来的卡都是关于静态页面的,倒也不难,但是对于当时的我来说,还是有些难度,前端问题倒还好,虽然还是会出现代码风格、算法、非最佳实践等等的各种问题,但是兜兜转转在指引下还是能够完成。这些卡更多的可能还是让我了解了后端的基本原理,换句话说算是让我对node的后端有了一个基本的了解,至少能够看得懂代码在干嘛。虽然这只是一层bff,大概真正的后端代码的数据处理还有与数据库的交互会复杂得多,但是总是让我从一个纯前端dev一只脚跨入了后端的大门。

这些卡让我提升的方面比较广,算是让我能够理解或者是跟得上大家工作的节奏。做完这部分卡后我能够明白和体会一整个工作的流程。往大了说,从写卡、开卡、工作、测试、sign off,其中还有关跟客户的沟通交流,寻求技术支持等等,到日常的站会,组内合作;往小了说,对代码的阅读,组件的复用,代码的组织结构,到对整个项目的理解都有了从零到一的进步,算是迈出了自己重要的一步。

任务在大家的帮助下顺利完成,任务难度适中,收获大量经验,成为合格新人一枚。

野外生存第一课

第一张算是我独立完成卡应该是在tulip和glacer的搜索条件中添加一个新的字段,与之前的卡相同,难度并不大。但是这张卡特殊在是添加一个全新的字段,需要对taxonomy进行更新,然后在后端api添加新的字段,之后在前端添加相关的view界面,也就是说,这张卡需要对整个项目理一条清晰的线出来,如果做一步想一步,如果不是对整个项目结构比较熟悉的话,会举步维艰。虽然过程中也是出了许多问题,寻求了组内大家的很多帮助,但总算是独立完成的第一步。

这张卡让我明白了计划或者说是task的重要性,写代码与做很多事情其实是一个道理,需要有一个比较合理的计划,虽然每一步的task我没能保证严格在20分钟左右,但是相比直接上手而言阻碍会小的多。不过这还是只刚刚掌握了task的第一步,其中有许多事情还是没有考虑周全,tasking混乱,导致其中走了许多弯路。

在寻求帮助中完成任务,难度适中,获得新技能tasking。

精英怪

后面的卡进入了orithyia,前面的XMLserver还好,可以说是对数据的format,难度不大。后面的难度来自于新站的car detail页面。客观来讲,是因为整个页面从“零”开始,自己第一次面对这样的卡,有些无所适从。主观来说,是因为自己的tasking并没有做好,做页面时陷入了无关紧要的细节,卡住了大量的时间,时间消耗远远超过预期。后来还是因为大家及时点醒自己,提了很多关键性的建议,才让自己从新着手于整体框架的搭建,最后再重新回来实现细节。最后一步步完善功能和页面。

这一张卡让自己更加认识到了tasking的重要性,一个合理的task能够让工作事半功倍,而一个失败的task却又会让工作事倍功半,往往出力不讨好。往往越复杂的功能越需要在开始前做好tasking,否则如果没有强大的技术能力支撑,将很难实现。

艰难完成任务,难度略大,技能tasking等级提升。

新征程

还有不久就要前往TWU了,在项目上的两个月对自己来说提升很大,不仅仅是技术上,更多的其实是工作的方式方法,解决问题的办法,与客户的沟通交流。能够切身的感受到,自己与刚上项目时完全不同,那时的自己可以说是什么都不懂,现在至少可以算是一个入门级工程师了—— 起码能干杂活了不是。

努力前行,未来可期。