Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
62 lines (34 sloc) 7.71 KB
layout title date categories
post
2017-10-19 回头看
2017-10-19 09:00:05 +0800
回顾

See The Big Picture.

做事情要站在更高的角度看问题,See the whole picture,才能够理解当前做事情的意义,不然会认为自己的工作毫无意义。

回头看

我武汉理工学生,今年大三。大学一直过得忙忙碌碌,就像打了鸡血,怀着创业梦,但是至今为止没有开启我的事业,有出没入。

由于想创业,我学习过一些管理、经济学以及编程技能(我软件工程专业),关于管理、经济学,我就只是停留在阅读某些热门书籍,激起我对企业的热情的是德鲁克的《创新与企业家精神》,我喝了德鲁克不少的“鸡汤”,他的思想令我兴奋,但上一次阅读该方面的书籍已经是大二上了。

我编程起步不较慢,大一下才正式开始学习编程(注:武汉理工大学大一上不允许带电脑 unfriendly)。先是学习了JAVA,学习JAVA的原因是什么,应该是当初听了一个师兄说未来需要学。

学了JAVA基础后,那时候网上比较多Android教程,比如慕课网、极客学院。我跟着慕课网的教程开始学习Android,没有阅读过书籍深入了解Android,学习Android过程更多只是停留在UI上,如何布局等知识。后面学深入一点,就跟着《Android权威指南》(推荐),该书本是通过做一个APP的思路去教授知识,我也跟着做了几个小APP。这种教学方式很适合入门者,能够快速看到成果(APP),能够坚持学习下去。

后来我进入了实验室,我对Android的学习也就停止了,转而投向了JAVA WEB开发。至于为什么是JAVA WEB,很大的原因就是有一个丰富JAVA WEB项目经验的广东老乡兼师兄带,后来也来了一个朋友一起学习JAVA WEB。说实话,学习JAVA WEB的过程非常枯燥,由于急于求成,“吃快餐”,在易佰教程菜鸟教程上学习有关JAVA WEB、数据库方面的知识。没有深入理解其中的原理,很多代码都只是按照教程执行,照葫芦画瓢。

第一次外包

大二下有一天,我接到一个电话叫去谈外包的问题。这个项目叫店小二365,没错这个网站已经不存在了,因为该团队前几个星期宣布创业失败了。本来这项目是由上面提到的带我的师兄接的,后来他要毕业了,要忙各种事情,后来这外包就落到了我头上来,甲方创业团队是武汉理工大学的一个创业团队,产生了一个由于电商的想法,分级会员体制(微商+“传销”,具体游戏规则我就不透露)。

对于新手来说,能够接到外包是很兴奋的,而且对方还是创业团队。第一次接外包,当初很多需求都没有弄清楚,甲方不懂软件工程,我们当初也不懂,于是我找了两个伙伴(一个是上面提到跟我一个学JAVA WEB的朋友,另一个做前端的是我舍友)。开启了大量逃课的日子(即使不做外包,我也会逃课),在实验室里面吭哧吭哧地写代码,没有明确需求,甲方对于UI方面就是说就按照聚美优品做,Deadline为6个星期后。

后来由于需求不明确等问题,我们的代码改了很多遍,也没有项目经历,甚至出现了git conflit。接入支付宝、阿里云短信接口、邮箱服务等也遇到了不少问题,做事太着急,从网上找来了一个demo就往上面跑,到底其工作原理也没弄清楚,有时候遇到了Google也无法回答的问题(我们不会搜),我们只能够请教师兄,还被师兄训了说没有耐心看官方文档。从此以后我认识到耐心阅读官方文档的重要性,至少要把其基本运作原理弄明白。由于缺乏Linux方面的知识,在部署服务器上也遇到了不少问题。做外包的期间很累。

上述的第一个外包对我影响极大,无论是软件工程方面的(虽然我们只是一个小团队,但是也遇到了很多问题),还是责任心(接了一个任务,即使不想再做下去了,也要对当初自己的选择、对方负责)。甲方负责人很用心,也很有耐心,能够包容我们的错误,如果能再选择一次,我还是会接这个外包。

第一次实习

大二下的暑假,留在了实验室老师公司实习,使用Python + ZeroMQ + TinyDB + Electron + Vue.js + Element UI,做了一个数据库方面的客户端管理系统,这个软件是一个可以在局域网内共享信息、桌面版的前后端通信模型。在真正写代码之前,我们有一个月的时间来学习,准备其他方面的知识,在这段时间我们参加了互联网+比赛。

需求:有一些做生物信息方面研究的人,他们拥有海量的数据,数据可能分布在多个移动磁盘、服务器磁盘阵列上。如何管理海量数据成了问题,他们需要一个软件去帮助管理数据,查看磁盘、服务器上文件的变更(增删改)状态。

这次开发中我们开发团队中有6个人(都是大二),Project Manager是老师的研究生,吸取了上一次外包的教训,我们尽可能详细地弄清楚需求,但是还是没有需求文档。很多需求,PM也不是很清楚,更多的是靠我们大家的想象力和参考别的软件类似功能如何实现。

这个过程也遇到了很多软件工程方面的问题,前后端开发不同步,大家拥有不同意见没达到共识,数据结构与算法方面没有做好文档,导致后面需要用到的时候需要阅读之前代码,效率极低,没有对意外情况(xxx病了)做好准备。虽然遇到了很多问题,但整个过程下来还是觉得很高兴的。

经过这个项目后,我发现需要阅读更多关于软件工程方面的书籍,比如《人月神话》(至今没看完)。

搭建博客

计划与舍友(外包中做前端的)一起搭建个人博客,在锻炼到技术的同时,能够拥有自己的网站为自己做营销。site: whoyoung.me

说起这博客,在做第一个外包之前我们已经在动工,后来因为接了外包和暑假实习原因,一直把这个博客拖到了大三上(至今没有完成,还有想法需要实现)。博客的前后端也经历过改版,由最开始的服务器端渲染到现在的SPA(单页应用),前端也引入了Vue.js框架,服务器端由JAVA SpringMVC到Python Flask,数据库由MySQL到MongoDB。

作为技术人员,除了提高自己的技术水平外,还应该多学习如何营销个人,《软技能》中John Sonmez 提到了程序员应该多学习除编码外的其他知识,比如营销、健身、理财、学习等。

我的普通话比较差,口音很重,语文水平差,所以表达能力(口头表达、书面表达)一直是我的弱项。在比赛、组织中表达能力是很重要的,比如一个比赛答辩,上台的机会都是留给表达能力好的人。在今后,应该多锻炼自己关于表达能力。

纠结

由于做了好几个关于Web后台的项目,目前对WEB开发有点疲乏感,有想法向转数据或者机器学习应用方面,目前在学习coursera上吴恩达的机器学习课程。

而工作中一般做数据或者机器学习方面的都是研究生等有研究背景的人才,我又不想继续读研究生,距离我找工作时候剩下来的时间只剩下不到一年的时间了。昨晚和一位目前在饿了么工作的师兄聊天,他给的建议是找到自己真正热爱的方向,不要看到哪个方向火就往哪个方向转。

到底要不要转使得我很纠结,希望大家能够给点意见。