程序猿的修行

2014年的7月,大学毕业,2017年的7月,工作3年,是该记录下,想想过去、现在、将来。对于以前做过的事,一一梳理下来,对自己也算有个交代

由于记忆力不错,所以从刚开始工作到现在,做的每个工作,还都可以清晰的梳理下来,由于牵扯到商业信息,当然还是代号表示为好,
我自己看时肯定是明白的很,旁人看了,就权当了解下吧,哈哈。

2014

年初

年初几个月即2-4月份,我做数据采集,主要是根据网页源码结构写正则表达式,从而进行匹配抓取。使用的工具是火车头,看似乏味的这几个月,其实带来了几点收获

  • 正则

其实这些在大学学习编程都会学过,但是学习和使用是两码事,在实际的运用中,不得不佩服正则的作者,能够设计出这么美妙的东西来,如果一个小白用户在使用word中的文本检索或者win系统的检索时,又怎会想到背后都体现了正则的思想呢,可以说文本检索的背后,都有正则思想。

  • 网页爬虫,数据采集

这段经历,使我初步对于数据采集,爬虫有了了解,让我对http协议,网页源码,网站结构等都有了很多扎实的基础认知,当然我并没有深入去做,但是这些对我的影响很大,我也一直认为技术都是相互影响、相互贯通的,理解才能受益,受益有早晚而已。

7、8月

我开始进入项目组进行web开发,这个项目叫A,这个开发周期时间跨度到了2014年过年也就是2015年初,所用的WEB框架是Grails,当然背后还是java下的SpringMVC,这是我参与的真正意义的第一个web开发项目,记得当时我只是负责一个模块的开发,但是随着逐步的开发,我又喜欢探究,思考的特质使得我并不单纯只了解我所做的这一块,而是全局,在开发期间,久而久之,我无论是本身的coding水平还是对于整个平台的理解都到一定的程度。

期间有位同事付*离职了,记得他的辞职理由是压力大,因为短期内肯定进不了,我就同时承担起他原本开发的一块,因为本身我们的两块工作都有交集,所以问题并不算大,再后来,整个项目的主要模块也由我负责了,这个时候,我基本已经掌控了整体web平台的开发,除了其中一块个人中心不归我dev,2015年初,WEB顺利上线,对于我而言,经过这么半年的磨练,我第一次感受到了dev带来的喜悦
反思有以下几点收获

  • fusioncharts、pd4ml、solrj.etc
    在实际的开发中,根据不同的需求,需要用到一些解决方案,如上,fusioncharts是可视化图标解决方案,pd4ml是pdf生成方案,比如html转pdf,solrj是索引化工具solr为java语言提供的接口类包,等等,这些技术本身之间是没有具体的关联,但是这些都可以统称为轮子,在不断dev,使用这些后,对我的影响是,利用成熟的解决方案,并且根据方案给出的官方API,去用,如果用有意思的话说就是轮子,干好自己的一环,利用现有的轮子去解决问题
  • java
    这个项目的架子是我的领导李*搭建的,当我在不断的dev时候,我真的愈发觉得架子搭建的真的不错,我记得当时我还主动跟CEO说了下,他搭建的真不错,代码也很简练,规范,我记得领导跟我的回答是”对,这就是架构师,他有着丰富的经验,所以任由你如何开发也逃不出他的架子”,我当时表示赞同,同时也认为,要不断吸收别人的技术、经验,哪怕是代码风格。

我一直认为,一个人保持不断学习,去吸收任何比你优秀的人的特点,这个过程就要像是一块海绵,海绵扔到水里,很快就会去吸收水分。

记得当时,领导需要内部搭建几个系统,就用A作为架子,基本都一样,些许修改即可,由于我是最熟悉这个系统的人,我就利用SVN分支化做了4个类似的系统。

2015

年初

2015年初,公司由于业务需要,需要开发内部系统,由于本身个人喜欢挑战,和工作,被分配了最重要的一块,任务管理模块,这块真正的难点,并不在于开发,其实在于架构,所以当时我记得流程图,我是画了又画,废了又废,记得用的软件MicroSoft Visio,期间我还多次跟领导交流,毕竟他很有经验,最终,我将这最难啃的骨头啃了下来

  • 流程图
    这个项目,对我影响最大的就是流程图,也就是设计,因为设计整个会影响dev,还有在上线之后维护,及未来不确定性的功能增加,也就是拓展性
  • 沟通
    李*是我们公司最为优秀的人,我认为也是最聪明的人,一把手您看见我这样写甭生气,这里的聪明姑且限定在coding、架构上,嘿嘿。我有时想不通或者拿不准自己设计的是否OK的话,就经常跟他聊,因为我意识到,考虑周到,系统设计的科学,未来的代价就会减小,借鉴别人的经验,很重要,实际果真如此,沟通中,我的确发现了我考虑有欠缺的地方,在他的提点下,我弥补了自己设计上的不足。最终开发非常顺利,这个模块,在今天看来,我也认为当时的设计是OK的。

年中

2015年中,开始参与一个网站项目B,背后的框架还是Grails,这个项目复杂度高于14年的A,实际去dev,还是会有很多的碎问题,因为之前的系统是内部系统,所以说并没有非常大规模的用户反馈,而这个确是面向了一定规模的用户群,所以,在这中间,就出现了很多的细节问题。
这个项目的dev,让我有以下几点的收获

  • 协作
    其实之前项目dev也会有协作,但这个项目本身属于另一个部门,虽然公司并不大,但本身也存在着组织结构,这个项目的dev使得我对另一个陌生部分的同事,有了深入的了解,另外对于他们做的事情也有了了解。

  • 改造
    在dev中做到了一块,记得叫做Alert,这个模块本身是由一位同事张*做的,当我去看得时候,发现他做的很复杂,但是其实这个功能是个很简单的,但是直接推翻别人做的又不行,那么就需要调优,改造。

    于是我,将原来的逻辑进行梳理,及本来该实现的功能也进行流程图绘出,最终将原来完成同样功能的逻辑进行调整,我记得在我改造后,代码体积缩小了40%,但是由于时间成本等因素,我并未完全改造完,但是看到最终的收获,我还是很开心的,因为我真正的将其化繁为简,提高了维护性。

    记得看过danel父子写的java书上讲到的一个理论,代码量越大,维护成本就越高,我深表赞同。

其它

2015年下半年,除了B的开发,我也参与了某政府客户的一些项目维护,其中包括了一个PHP项目的维护,APP项目维护及一个平台的些许帮忙,整体来说,这些项目技术支持做的并不算多,更多的是跟客户沟通及协调。
所以这段经历,给我了几点体会:

  • 客户即朋友
    在不断的与客户沟通中,我真的体会到,关系有时候太影响效率及结果了,平时我们做技术的只是根据上面的要求去做,但这中间会存在一定的问题,物理上曾说过能量损失,即使做一个产品,客户对公司提出了需求,
    但是当公司层层往下传达的时候,其实是会有损失的。
    因为我不断的跟客户沟通,跟客户建立了熟悉且不错的联系,所以在很多事情上,客户有时候会根据实际情况给与方便

记得有次,我们的服务异常中止了,但是因为安全性考虑并没有远程桌面,那就意味着要外勤过去,
其实来回路途就需要2个多小时,但是到达那里也不过是1分钟的事情,重启服务即可。这个时候客户那边,跟我说,这样吧,你远程操作我的电脑,当做跳板机,然后连接目标服务器,我听了非常高兴,连忙道谢。
就这样,2个多小时的时间省了,于公司,于自己,都是成本上的大幅节约。

紧急应对

2015年的9月份,是庆祝抗战70周年,对于世界,对于祖国都是难忘的,对于我也是难忘且苦逼的,因为抗战前夕夜晚,我是在客户那边的机房度过的,事情原委是由于安全性考虑,为避免服务器被黑客攻击,造成不良影响,层层要求,必须保障安全,一旦出问题,就要立刻处理,所以考虑到如果待在家里,一旦出问题会应对不及,所以,我主动提出去那边通宵守护。其实后来发现真正去通宵应对的企业,只有两家,另一家是客户那边的第一服务商,过了一夜,什么事也没发生。

想想服务商,其实那么多,真正愿意来值夜的只有两家,我还是为公司树立了良好形象的,至少这两家中间有我们。记得之前听周立波讲过一个段子,雷锋做好事还写日记呢,生怕别人不知道。

在这种关键的时间节点,一定全力保障是服务商的责任,责无旁贷。

2016

年初

年初公司整体业务并不紧张了,我有了充沛的时间去学习,一个长期合作的客户需要做个内容APP,公司给了我机会去锻炼,记得当时花了2-3个月的时间去做APP开发,包含了前端和后端,前端采用的是ionic1,后端采用的是phpcms2008,在这中间,各种的碰壁,因为之前都是java开发,所以思维并没有扭转过来,并且还有php的挑战,总之很辛苦,各种看资料,各种查阅,最终APP在4月份(大概)上线。

这个APP其实开发的很辛苦,记得当时老总催了我好几次,怎么还没做完,因为他认为这个很简单,比如一个老手,前后端加起来也就是1个月的事,但是我记得我的回答是,我要做的好,做的我自己首先要满意。

其实这个项目论技术点,并不难,但是对我来说,是一次全方位的历练,我认为是彻底。有以下几个点

  • 频发与客户的沟通,进行需求分析与了解
  • PS制作APP效果图、APP图标等UI工作
  • PHPCMS部署搭建内容管理系统,学习PHP,基于CMS定制化开发部分功能
  • 根据REST规范,制API接口
  • ionic1+angularjs进行APP开发
  • JPUSH实现消息推送
  • APP版本控制
  • 安卓打包,证书签名
  • IOS打包、审核
  • CMS平台生产环境部署

等等,零零碎碎的一堆问题,后来上线了,那一瞬间,当我能在商店了检索到了自己dev的APP时候,即使后面的作者写的不是自己而是公司名称的时候,我也是喜悦的,因为我知道是我自己dev的。

当时APP还有个注册功能,我当时写了个功能,一旦有新的用户注册,就会邮件编辑们,当然还加上了我,因为我是技术支持,现在每当我收到注册邮件,我都很开心,因为我知道又有新的用户了。

这个APP从16年dev后,再也没更新过,我其实很惋惜,因为毕竟是自己亲手打造的孩子,但是由于客户本身重心不在这里,所以也就没有资金去维持它,但是它之于我的意义还是很大的,因为全面把关这个体验,是它第一次给了我,我也知道,不用多久我就会感谢这段经历,我相信,我的认真是有回报的。

主旋律

当结束长达3个月的APP开发后,公司便安排我进入项目组,进行一个重大项目dev,这个项目叫C

其实一开始,我并没有想到这个项目开发会是这么崎岖,这么痛苦,而又让我倍感成就感和兴奋,也可以说是最大限度、和深度地历练了我。

关于技术选型,其实都纠结了很长时间,SpringMVC是很稳定且成熟的框架,用这个应该是最为高效且省时间了,并且,公司队伍对于java也是最为熟悉,
但是技术总是在不进步,并且考虑之前项目dev上的架构弊端及要更新公司的技术栈,最终我们选择了Angular2作为我们的前端框架,expressJS作为后端框架,jersey作为我们的服务框架。总共抽象看会是3层,其实这个架构跟阿里架构类似,angular2+expressJS可以统称为大前端,这个词我很喜欢。
技术选型OK后,就开始开发着手设计和dev了,但是实际上却没有那么的顺利,主要原因在两点

  1. ng+expressJS这个平台架构的背后是必须是懂前端dev,而公司本身是没有这方面过硬的人才储备
  2. ng2本身很新,在项目开始时候ng2刚刚发布RC版
    按照公司既定的人员安排,这个大前端部分由我和一个同事一块去做,ng2前端开发本身有3个语言选择
    • TypeScript
    • JavaScript
    • Dart

但是官方推荐TypeScript,这是我第一次听说这门语言,我们选什么呢,我很纠结,不过官方既然推荐了TypeScript,我认为首先要多考虑它,另外我查了下语言语法,其实是面向对象,倘若学过
JAVA,这个并没有那么难,我和同事都属于不怕困难,开放学习姿态的人,所以最终下决心就它了。
就这样dev工作开始,另一位同事,由于更为擅长做UI层面的工作,所以他负责页面显示这块,而我本身有相对扎实的JAVA功底,及实现因为已经积攒了很多的经验,并且对于业务上已经
很熟悉了,所以大致的架子、逻辑、功能都是由我来做了。

其实实际dev上的不顺利,比想象的还严重,本身ng2还是RC,文档没有中文的,还好英语本身是我的长项之一,所以不惧之,但是大量的阅读,还是不小的挑战,所以几乎每天都是在跟英文文档打交道,另外,很多的细节技术点,由于公司人没有这方面的人才,所以只能自己去找答案。

谷歌、github这个时候,成为了高频访问站点。

这中间,加了一个QQ群,里面真的有一批大神,在这中间,我总是一堆子的问题,有几个人一直很热心的回答我,给了我不小的帮助,其中一个叫K,
他的前端水平的确很高,这中间,我就不断的受他打击和带,不断的提升,很多没勇气的事情还是他带出来的,比如ng2的组件,我一开始不知道如何设计好,他就说看material源码啊。
我知道他说的很有道理,因为material就是ng官方组件库,理论上,它的设计肯定是值得参考的,但是看源码对我来说还是很有挑战的。有时候就是差那么点的勇气。

终于,我冲破了自己的心理束缚,开始了看源码,时间长了,也就不觉得这个有多难了,并且从这些优秀的代码中学到了好多实际技巧。

在不断的dev中,时间一直向前走,但是我们却遇到了几个致命的难题,从而本身我就有点心灰意冷,一个是兼容性,一个是性能。

  • ng2官方给出的兼容性列表是IE10+,如果要支持IE9就加入兼容类包,但是实际做的时候,发现IE11都有问题,我有点不自信了,万一IE11不支持,那直接宣告项目失败
  • ng2做出的web,经过前端打包,发现体积很大,所以首屏加载非常的慢,这个如果是产品级应用坑定是接受不了的。

项目面临被毙的危险,记得那天晚上公司开会,来探讨下怎么办,面对大家本身对于这个项目目前技术上的质疑,我真的很无话可说,并且很内疚,是不是太冒进了,另外,如果项目失败了,是公司的失败,也是我的失败,因为这种相对大型的项目,我已经是架构师的角色,后来探讨出了解决方案就是,如果真的兼容性不行,那么就提示对应的老浏览器用户使用旧的站点。

一旦这样子,浏览器问题就至少不是那么严重了,那么下来就是性能,ng2是提供了懒加载还有AOT编译方案的,但是由于技术很新,真正去做并不顺利,各种报错,各种问题。
记得中间有一天,这个项目要面临汇报,如果真的解决不了系能,直接就宣布失败了,我真的不甘心,当时的确对我来说,也只是差一点了,我就拿这纸笔,去分析。

记得大晚上的时候,真的解决了,AOT成功后,整个体积缩减了一半,后来又加入了懒加载,整个性能好了太多,终于活了,我记得我彻夜兴奋难免,也第一时间通知了公司的领导们。

后来的gzip预压缩、CDN、TSC升级等等,细节点,这个项目一直在面临风险、挑战、我自己也是一直在发现问题、解决问题的道路上、久而久之,竟然成了angular2大神群的活跃分子,也成了半个大神,这个群是有1500人的,而把ng2玩到那个程度,应该也是前几名了,由于经常的问问题和沟通问题,几个活跃分子还成了好友,并且我们单独又建立了群,叫angular2源码分析群。

这个项目一次次的延期,直到2016年年底,当然那个时候已经心里有谱了,知道上线已是板上钉钉,大家都在做最后的努力dev。

可是在这之前,其实有次,我打算放弃了,我记得我短信了CEO,说真的尽力了,看来无法实现了,但是领导安慰我,说如果尽力去做,失败那没事,但是如果放弃,这是不对的,我反思领导说的,是啊,我坚持了一年,所以我又重振旗鼓去做。

事实证明,坚持胜算就会更高,放弃,注定失败。

小插曲

2016年全年全年时间几乎都是在C项目的摸索及dev中去,但中间也做了一个小项目,如果把B作为2015主旋律的话,那么这个小项目就是个小插曲。

记得是一个周三,领导直接给我叫过去,跟我说,客户打电话问,有这样一个活,做个展示类APP,需要尽快做出,领导问需要多长时间,我回答领导,如果赶紧点,一星期就能做出来,领导说,不行,如果从现在开始做,这周就出来,可以不,我听到说这周就做出,还是很吃惊,但我想了下,还是很负责的说,可以,加班加点可以做完。
我之所以这么有底气的回答,是因为有两点

  1. 我年轻,体力上,我能够支撑的住
  2. 之前的3个月的全方位锻炼,已经打下了基础,简单的展示类APP开发,并不需要从零做起,还是有一定的基础,另外这次开发并不需要后端开发,说白了可以理解为,将数据进行可视化展示即可

基于这两点,我认为可以做到,所以我答应了领导,我也不想拒绝领导,因为我想去做事,这样很有成就感。领导给了我客户那边的联络人电话,说他们那边后端那块及APP需求都会尽快给你,干吧。

就这样,周三的下午,我就快速的将APP架子搭建起来,然后开始了与客户的不断沟通,不断dev,记得一开始我还是在公司工作,但由于客户那边的数据敏感,又因为有沟通上的不便,我之后索性直接去客户那边工作,记得周五、周六、周日这三天都是很晚才睡觉,但是看到合作伙伴们也都在那努力,我也并不觉得困顿,同时,也认识到,当我们都是在那休息的时候,何尝想过别人其实一直再努力,那么不久的以后,又怎会不被别人超越呢,就这样,周日的晚上11点左右,我终于做出客户满意的一个版本,交差了,然后深夜,大家分别打的回去睡大觉了。

后来这个项目还是有多次的小修小改,但是整体算是稳定了,后来领导跟我说客户电话对我的工作表示满意,我听了也很高兴,有点自得。

其实这次的3天半的挑战,背后的顺利,最大的原因是之前同类的APP,有充分的时间去磨练,所以对于现有技术并没有任何大的问题。这给我带来最大的深切认识是,做已经富有经验的事即擅长的事,效率会出奇的高。

无年假

2016年年假一天也没修,也没时间去修,准确来说,好多个周末我都没有完整过,全部用来进行C的开发,但是现在想想这种经历何尝不是很好的体验,修行,这种历练刻骨难忘,并且即使未来,这种机会也并不多。

2017

APP

16年的C项目无论从技术还是任务量都是巨大的,所以一直处于dev中,记得是1月16日,突然领导把我叫过去说,跟我一块去客户那谈一个小项目,我就跟领导一块去了。

原来这个客户找我们是因为之前那个APP做的不错,客户A他们推荐的我们,看来这就是口碑,口口相传吧。

客户那边,这是我第一次跟着领导一块去客户那里当面聊项目,不时客户也会问一下技术方案,及一些细节点,由于之前已经进行了丰富的开发,所以在沟通中还是游刃有余的。
最终敲定可做,但是因为是应急项目,所以时间上,就还是很紧张,对我来说还面临的挑战是B项目也要继续做,这个相当于是额外的。面对这个我已经很拿手的项目,我真的不愿意放弃.
在回来的路上,我跟领导说这个可以做,同时我也苦笑道,本来B项目在一年的攻坚后,基本已经心里放心了一半,所以我定了张17号也就是明天的机票,看来,回不去了。因为下来的一周要快速把这个APP做出来。

这个APP与之前的还不一样的是,这个后端也要我们做,当然由于这个后端只是提供APP的数据接口服务,所以难度倒并不是很大,由于之前有过APP开发经验,再加上B项目这种大型项目的架构及dev经验,
面对这个我其实内心倒是已经是绝对的自信。

由于之前的APP方案是ionic1,而查看官网知道ionic也有2了,并且基于angular2,由于B项目是我从零做起的,中间已经得到了大量的锻炼,所以我考虑用ionic2,虽然
还没玩过,但是ionic1的熟悉度,加上本身ng2的熟悉度,我知道不会有难度,由于APP还需要后端来提供API服务,所以我选择了expressJS,这个B项目的后端有用到。

就这样,17日的下午,我就快速前后端同步开发,一周后,我就初步开发完毕,给与了客户,客户表示很满意这个进度。然后新年到,终于可以歇息几天了。

二选一?

APP年前的工作顺利完成,但是我们都万万没有想到的是年后还要大量的dev,主要是需求总是在变,在大大小小的改变,并且频率挺高,而之前的重大项目C还在继续赶工,因为仍没有上线呢,这样时间上就会产生诸多的冲突。
期间发生了一次很严重的事情,至少我个人认为严重。
在APP开发中,我曾带人来做部分的APP开发,其实已经基本都做差不多了,就是让他练练手,入门下,时间给了他一周时间,却是毫无进展,并且做的东西,让客户说,就是还不如之前的,最终耽误了客户的APP进度,记得客户还批评了我,其实我也很愧疚,虽然我知道是带的这个助手不行,导致一周并无进度,但是对于客户而言的确是我的过错,我不得不挤出所有的时间全力将APP做完,同时进行C的开发,还好我的领导跟我已经带出了几位不错的人进行C的开发,而我主攻解决一些技术的问题。

纵使有三头六臂,也是分身乏术,并且早已筋疲力尽,无奈,我电话CEO,陈述了我的困难,领导跟我说我自己考虑吧,原则是C重要,APP不行就放弃吧,算作违约了。
我挂了电话,心想绝不放弃,两者兼得,我再撑一撑,违约对于我个人的信誉,公司的信誉,经济损失等等都是不值当,所以绝不!

就这样咬牙坚持了下来,3月底APP基本结束了,终赢得了这个战役,虽然也有些许遗憾,那就是给客户服务不周,存在不足。这点我至今有歉意。

C项目+

2017年除了这个APP,其实最为重大的还是C项目及延伸出的C-GROUP组,C项目的背后是一系列项目的dev工作,C项目在摸爬滚打中,终于在愚人节上线了,我自己调侃,愚人不愚人,上线那天,队伍人似乎没什么感觉,我自己却感慨万千,因为我知道这个项目我曾经放弃过,这个项目经历过跟我一样的生生死死。自以为可以歇息几天,但似乎力量越大责任越大。
随即,公司要求,尽快出移动版,这个时候对我来说我的架子就要调整,因为这并不能直接拷贝一份,因为这样子未来的维护就会是大问题,并且,web版做的并不是面面俱到,我们要考虑如何改进。
最终,我觉得进行一定程度的复用,很快,1-2个月时间,移动版就上线了。

客户对们的移动版上线进度表示满意

但战斗并未结束,C项目的衍生项目要按计划逐步做8月底要再上4个网站,这些网站都可以说是同类型,但是同中有不同,所以对我来说就要考虑提炼项目代码,改进项目结构。

如何复用呢,经过调研,及分析,我决定利用git-submodule对代码来进行组织。就是项目本身可以将另一个项目作为第三方类库去使用。
经过一段实践,的确是很合适的选择,就这样继续dev。截止目前,一切都按照既定计划前进,客户也对我们的开发表示满意。

回顾着一些,我真的感慨良多,团队里面的人按照既定的架子去做,当他们说一些困难,问题的时候,我都尽可能的去解答,但是其实我更想告诉他们的是解决问题的方法,比如如何去描述问题,如何去找答案,甚至如何去找师傅。

因为这些困难与我之前遇到的相比,其实都不算什么。

总结

不知不觉的写了这好几千字的流水账,这应是我写的最长博文了,毕竟是3年的事儿嘛。
3年来,我自己认为,这三年带给我的并不是会什么node、angular、ionic、java、php之类的,而是下面这些

  • 开放的思想
  • 如何描述问题
  • 如何找答案
  • 如何找师傅
  • 思先于行

这些心得,这些认识,这些方法,已经形成了烙印,深藏于心,使得我能不断的提升,正如我一个朋友说的,编程更多的是内功,思想才是最重要的,掌握了思想、掌握了方法,学什么,做什么才会更高效。


这些认识,这些心得,这些进步,我要感谢这几个人

自己

首先感谢的是我自己,这3年,如果对比那些正常上下班,只是当成工作来挣钱养家的话,我恐怕就不是3年,是5年了,因为我真的付出了大量的时间,消耗了大量的脑细胞,即使只是简单的问题,我愿意去思考最佳实现方法,另外为何如此去做,我也要探个究竟。因为我一直要求,自己,多做多想,并且要做好。
其中,16年,是我3年来最累的一年,累到,我有时真的上不了班,无奈请了一天假的地步。但这种经历,真的很刻骨,也塑造了今日的我。

CEO

ceo,公司一把手,我很明白,即使你愿意干,也需要舞台,是金子不一定发光,而CEO给了我这个舞台。当你努力积攒知识,技术,一旦机会来临,你就真的腾飞了。

APP项目给了我全面展示,释放自己能力创造力的机会,我一瞬间,觉得自己可以高质量高效的完成一个项目

16年的C项目使得我能够有充足的时间去学习,去设计,去dev

北京也是个多机会的地,有很多的会议比如GDD,Microsoft Build,大数据大会等等,也都是CEO支持,给了机会,允许我去听,这么多的思想碰撞,使得我能够不闭目塞听。

我的领导

领导李*,进入公司第一次的web开发,所用的架子是他搭建的,我由衷的佩服,的确很有水平,我们都需要承认一个好的领导很重要,正如一位好老师,另外李思想也很开发,积极吸收外界知识,
是我的领导,其实也是我的朋友,即使我发牢骚有时候跟他说,他也耐心开导我什么是对什么是错。我们一块攻克很多的技术问题,也一块改变着公司,比如一块推动gitlab落地等等。

那些网友S

做技术的,首先要用技术,这3年来,我前后加了不下50个QQ群,也加了无数的网友,中间由于过于活跃,还当了几个群的管理员,被某些不明真相的网友误视为大神等等。
github上,之前angular等一些开放项目,也成为了contributor(只是提问题和交流,pr暂时还没做到,嘿嘿),

网友们都是不求回报的帮助,这就是开源开放的感染力和力量吧,所以我自己现在也多写技术博文,多活跃于社区中,从而积极的帮助别人,彼此帮忙这样才能促进整个行业也发展。

结束

长文总有结束,此文是只猿在不断摸爬滚打,走了一段路,而对走的这段过程进行的叙述,路漫漫其修远兮,编程这条路没有终点,因为技术日新月异,整个行业也是竞争激烈,不进必退,第一个3年已过,继续努力,继续fighting。MARK。

octocat