虽不可避免,但又不想说离开。 ——不知道是谁
今天是2017年8月16日,从发哥手上接下我的实训证书,我才意识到八周的ThoughtWorks特训营已经接近尾声。实训证书很精美,况且发哥说,这每一张都是独一无二的,不仅可以查证信息还有防伪功能。这让我接到证书的瞬间,感到很有成就感,这份成就——独一无二属于我。
实训证书上,提醒了我假期学了的内容有:Tasking基础(任务分解),Javascript基础,TDD(驱动测试开发),前端开发基础,后端开发基础,Node.js,RESTful API,Express.js,Redis,Git协作开发,团队项目协作。
第二周:
内容为Tasking(任务分解),安装环境。收获比较大的是Tasking的内容,之前一直觉得,程序员就是整体坐在电脑前敲代码的人。产品设计,跟咱关系不大,UI设计,那是美工的事。但这一阶段改变了我的看法,Tasking的设计,将功能分为一个个User Journey,从用户的角度出发去设计软件,就不太会遗漏用户的需求。如果按照传统的设计方式,则很难刚开始就设计出符合用户体验的产品。
第三周:
从这一周开始,就开始了Javascript的基础训练,主要是做一个pos机的练习。在特训营选拔的时候,编程题中就有一题,是posv0.2。当时我是自己写的,所以可以说已经基本熟悉了如何用Javascript编写程序。不过完全是自学,既不懂什么是es6语法,也不懂如何分割模块,更不懂使用自动测试去驱动开发。虽然我有时候会把模块分出来,但是可能模块之间有耦合在一起,没有分离。别人不是很容易读懂,也不利于版本的迭代。这周影响比较深的是童老师的上课吧,学了很多真正值得在开发中去践行的良好编程习惯 。还有TDD的测试驱动开发方法,受益良多。
第四周:
这一周的内容是,Node.js的学习,以及前端开发基础。Node.js之前都是用现成的老师写好的东西去测试,现在要求自己做一个Node.js程序,自己安装包比如测试框架等。刚开始觉得无从下手,不会Node.js引用和管理包。可以说,这一周虽然学了Node.js但是并没有真正入门。等我真正理解npm的用法,如何获取第三方包,管理package.json的时候。才发现,原来Node.js的扩展如此方便。就像平常用的随插随用的U盘一样,只需要一个命令就可以使用别人最新发布的扩展包。前端开发基础还是挺有意思的,虽然之前自己有自己尝试过做demo但是耐心不够好,很多地方是浅尝辄止,这周的练习还是让我学到了不少基础知识。
第五周:
这一周是做一个前端的学生成绩管理系统,用LocalStorage去存储数据。以前就接触过做web应用,所以上来就赶进度的写了好几个页面。结果在组成应用的时候遇到了麻烦,每一个功能都是一个页面,导致跳转来跳转去比较麻烦,用户体验也不好。当我想要修改某个学生信息的时候,我需要输入他的学号,但我就得在别的页面上查找这个学号。空闲之余,观察了一下其他组员的工作,发现他们做的界面都非常的好看。没有很多的html跳转,用户体验非常好,于是赶快请教。原来他们都之前接触过不少关于前端的知识,所以对于渲染页面了解很多。我对这里一窍不懂,所以做的页面很糟糕。于是我“偷师”学了很多渲染技术,还加入了我自己的方法,用模态框去做一些操作。挺有意思的,至少我做的页面看得过去。之前我在学习Web的时候,就不太会写页面,结果就是看到做出来的效果非常糟糕,便没有探索下去的动力,具有深深的挫败感。
第六周:
刚开始去把一个纯前端的学生成绩管理系统做成前后端分离,有数据库有服务器的应用。去医院请了一天假,所以没有得到老师的指导,这里有不少问题。等我回来的时候,我们已经开始做一个实际小项目,为了学习不太清楚的后端知识,这个项目我大量参与了后台API的工作。大概就是从这里吧,开始学懂了Node.js的正确用法。开始去看一些不熟悉的包的文档,学会用他人贡献的第三方包。觉得,哇,Node.js的npm真是太酷了!这周项目合作非常有意思,除了Javascript和Node.js,还学了关于git的团队协作方法。其实我们刚开始用git的时候,非常不规范:分支随意命名,小修改就向主分支提交pull request。导致我们协作起来很头疼,不过学习git之后,我已经差不多可以正确使用git管理项目了。
总结:
在这短短的七周时间内,我感觉我学到的东西比在学校多得多。More than technology, there are our minds. 一直不知道,周围的大佬为什么能成为大佬,自己却只能跟着教程简单的造轮子。也许,缺的就是一种思维。我以前一直不明白,为什么编程不推荐用baidu去搜索而推荐用google,甚至特地问过老师。晔哥是这么说的,百度出来的东西有很多都是什么百度知道,csdn等等这些,而不是官方文档和说明。也许,这就是我一直以来无法突破的东西,程序出了问题,或者需要实现某个功能。我只是用百度去查找别人是如何解决的,别人怎么写,我就怎么写,没有深入研究其中的原因。这样是没有生产力的,不过是搬运别人的东西而已。而特训营中学习的Node.js需要使用很多第三方包,这些包在别人的资料里面非常少,解决很多要靠自己。而特训营让我养成了一种思维,不是去问别人如何解决,而是去看官方说明文档,根据编译器的提示去修改对应的代码。思维,这是我在特训营最大的收获。