龙空技术网

程序员讲述:我的故事,写代码十五年

盛安德软件 103

前言:

当前咱们对“adobe flex教程”大概比较着重,你们都想要剖析一些“adobe flex教程”的相关知识。那么小编在网上收集了一些关于“adobe flex教程””的相关资讯,希望咱们能喜欢,朋友们快快来了解一下吧!

这是一篇难产的小记。半年前就被约稿写我程序员的职业生涯,然而,这半年来,我总处在各种困顿之中,每次动笔时都在自问:我到底想要表达什么观点?而作为一个老程序员,每每想谈论工作方式和钻研方向这类话题时,又会觉得这些话题大家都知道,还有什么可谈的?

观点为辅,讲故事为主,编辑这样和我说到。可是,任何故事总归要有一个主题。我与盛安德的故事,到底选一个什么样的主题来记录?

我爱五台山与文曲星

思维有些跳跃,谁让我是程序员呢?想不到一个能涵盖我大部分故事的主题,于是想到了上小学时写过的一篇作文的题目:我爱五台山。我想我可能最终会拟一个类似的题目吧。

说实话,那是一篇即时作文,在课上花45分钟就写完了,我觉得它普普通通,并不是自己最喜欢的作品。可老师却将它拿来帮我向一个出版社投稿,最终编纂进一本小学生作文范文书里。鼓动同学们购买这本书使它得以出版那都是后话,而且也着实让年幼的我大跌眼镜。这件事带给我最大的印象是,原来自己的写作能成为可以出版的作品让很多人看到,还会因此有收益。若干年后,我的高中数学老师说过类似的话,又过了若干年直至今天,每当我用某种编程语言编写程序时,我都在想,这会是一件很多人都能看到的作品,写得要经得起推敲。

早年还有另一件事更直接地影响了我后来的职业生涯。80后的同龄人也许会对一款叫做文曲星的掌上电子词典有印象,当时它风靡中学生群体。文曲星里除了电子词典,还有一个QBasic语言编程模块。我至今仍然记得自己当时是如何痴迷于在上面编写各种程序,比如,通过循环和画椭圆构造出一个不断变化形状的动画程序。我很感激我的父亲,身为普通工人的他,在我的教育上却总能抓住一些比较超前的关键节点,以(如今看来)有限(但当时已尽其所能)的投入在我心里种下兴趣的种子。比如文曲星,比如学习机,比如领着我去购买各种编程书籍和软盘。也感谢那个刚刚开放的时代,虽然互联网还不发达,但很多有价值的材料已经可以通过简单的渠道被普通人获取到。

若干年后,当我要填报高考志愿,一位长辈提到软件工程专业时,昔日在文曲星上写QBasic程序的场景突然闪现在我脑海里,我很快就确定了自己的大学专业,随后,编写软件成了我感兴趣的终身职业。

昔日的播种

总会在不经意间开花结果

除了写作、编程启蒙,早年的我还喜欢绘画,音乐和英语。出身工人家庭的我,从小学到高中都在工厂的子弟学校就读,可是谁能料到,我就读的小学竟是一所藏得很深的艺术特色学校。学校里每天下午上课前各班学生都会在教室里进行10分钟的口琴合奏。学校还开设了丰富的课外活动,其中包括绘画。我在绘画班里接触了素描、临摹,每天下午都有很长时间呆在画室里乐此不疲,有太多的小事我难以忘记。

我清楚地记得,有一次父亲为我买了一盒水彩笔,我听到教美术的杜老师连连向其它老师称赞父亲对我的支持。我不确定老师的举动是有意还是无意,也许当时工人家庭的大部分家长不会这么做,总之这件事极大地触动了我,让我在相当长的时间内对美术怀有热情。在初中,我同样加入了美术小组,继续学习素描和速写,还让父亲带着我出去写生。小学期间,我的一些美术作品多次在当时的教育处(类似现在的学校集团、学区的概念)获奖。这样的经历,让我有了对作品质量的初步感知,对优美和优雅的执着。即使有着行业的隔离,在我后来的编程生涯中,我都有着类似的追求,这种追求帮我避免了做机械的代码工人,而始终对软件设计保有兴趣。

我一直认为程序员如果有一定艺术方面的兴趣是极好的,因为对美的追求能潜移默化地影响我们的工作方式。我的小学和初中都有音乐课,而且我在小学直接接触五线谱,初中反而只学了简谱。我有一个亲戚是音乐老师,小时候经常听到表妹弹钢琴。在初中的一节音乐课上,老师让我们随性写一段脑海里现在闪现的曲子,我突然就想到了一段之前在表妹家听到的练习曲的旋律,于是原样copy了出来。我的目光热切地看向老师,老师意会,让我把我的曲谱写到了黑板上,然后她在钢琴上弹奏出来。她说,这段旋律很惊艳。我心里有点不好意思,但依然很开心。(作者说这段貌似和程序员生涯直接关联不大,可以去掉。但编辑小姐姐觉得,这段足以证明这是一个充满了艺术气息和浪漫主义色彩的程序员,必须保留。)

我们那届学生还是当时试点小学英语教育的第一届,教我们的是一位年轻的英语老师,我很喜欢上英语课,没有人告诉我或监督我学习,但我很喜欢反复听磁带跟读,喜欢听老师表扬我的语音标准。和绘画一样,对英语的兴趣也从小就种在我心里,不论后来的我在英语学习上继续坚持还是变得懈怠,兴趣其实一直都存在。当时的我根本不知道,这颗种子竟也会在某一个节点给我的人生带来转变。

上初中的一天,我习惯性地早起朗读语文报上的文章,读到了一句话:好学生的心里总有一个指南针,他们自己知道什么是好的,并且会一直向着好的方向前进。好多年过去了,原话是怎么说的我早已记不清,但那句话当时对我的影响极大,几乎一瞬间就种到我心里,直到现在都时刻影响着我的每一个行动。我感激从小学到高中遇到的每一位老师,感激那个教育纯粹的年代,大多数老师对我的认可,塑造了我不断追求卓越的品质。

起步

大学毕业时,我放弃了去上海某外资银行写大型机程序的offer,选择了入职深圳K公司。我当时的选择完全出于对这个知名ERP厂商技术的崇拜,那时的K公司发布了第一个国产中间件软件。如果真有平行宇宙,我想当时的我一定很想知道做了另一种选择的我后来的人生会是什么(安稳的)样子,尤其是后来听说那家银行在四川省只给两人发了offer,另一个接受offer的人告诉我实习时就发IBM笔记本电脑的时候——话说好装备对学生的吸引力。而且,当时我的毕业论文导师还专门打电话给我,告诉我选择上海对今后发展的好处。然而在我的现实中,多年以后回顾过往的种种经历,我虽然觉得自己挺折腾的,但也没有后悔。人的每一个选择造就了现在的自己,我对自己的现状是满足的。

入职K公司的选择带给我最大的益处是,我在职业生涯的一开始就能对软件系统的一个基础部分——图形部分有比较深入和清晰的认识。我当时在一个基础平台的图形控件研发部门,小到按钮,大到类似微软Excel的报表工具都出自同事们之手,而且这些都是基于Java AWT/Swing图形库的深度开发。Swing是一个非常学术化的图形基础库,本身包含了很多经典的设计模式,在深入了解了之后,其可扩展性非常大。

在K公司工作的两年里,我在导师和同事们的指导下在Swing的世界里玩出了各种花儿,在这门技术上打下了比较深的基础(当然比起其他人还相当菜)。对图形系统底层如何工作的了解,也为我后来的工作带来了更多自信,让我在以后接触其它界面技术时能更快和更深入的掌握。对Swing的掌握也是我第一次入职盛安德的契机。

入职盛安德:初识敏捷

离开K公司后,我短暂地加入了一家广州的小公司,参与完善一个电力监控系统的客户端。职业路上,我一向认为每一份工作都是程序员在当时最好的选择,能够坚持在一家公司工作一段时间都是因为程序员在此期间得到了某种方面的收获,可能是金钱,也可能是技术或其它方面的东西。因此,每一个工作过的公司都值得感激。那家广州的公司虽小,但我遇见了从美国回国创业的技术牛人竹老板,现在到了腾讯做基础研发的校友小马哥,还有C语言牛人黄老板。

更重要的是,我开始从一个听从任务分配的毕业生,转变为一个为解决实际业务问题而灵活运用技术的专业人员。这样的转变,我想每个在职业发展初期的程序员应该都有印象,转变过程中的每一天都让我欣喜。在技术之外,竹老板一直在帮我们解决午饭的就餐环境问题,后来还组织了一次去清远的封闭开发(在一个学校住宿开发,晚上一起打篮球、出去吃大餐,很纯粹的一段日子),甚至在得知我将要离开公司的前夕,还专门为我办了一次生日party。

当一些生活上的因素促使我必须离开广东去一个离家近的地方发展时,我只能放下对竹老板的愧疚,将目光投向北京。我在招聘网站上偶然发现一家叫盛安德的公司正在招聘Swing开发人员。不知道也没了解过它的业务模式,仅凭JD上的描述,我投了简历,没想到很快接到了面试电话。技术面试对我来说很easy,提问的点很专业,不懂的肯定也答不上来。2010年三月的一天,天空中飘着小雪,我见到了来北京火车站接我的同学,第二天便入职了。

盛安德是我在北京加入的第一家公司,这次入职是我们之间的第一次邂逅。当时的客户是一家做思维导图软件的英国公司,我的主要任务依然是开发Swing控件,来满足其软件在各个操作系统上不同的观感和行为,这是我的拿手好戏。事实上,在我职业生涯的前4年,我基本上是靠着基于Swing的专业技术谋生,它成了我的一招鲜,但也成了后来前进路上的障碍——当你长久地沉浸在一项技术中时,自然会产生惰性,不愿去学习其它技术。然而,在加入盛安德最初的时候,技术惰性还不是一个能够被我感知的问题。

除了在技术方面游刃有余,在盛安德的工作也让我有了一些与前面两份工作不同的体会,这种体会的最初印象是:紧张。入职的第一天,可以开始工作时,我记得已经到了下午,我被要求写一些单元测试。我猛然发现,自己前三年的工作中竟然没有写过单元测试!头皮有点发麻,不过好在后来发现那些要写的测试都比较简单,照猫画虎也能完成,哈哈。第二天一早,郭峰开始询问每个人当前任务的进度和今天的计划,任务中有没有什么障碍。还看到一个专门用来管理任务的内部系统,上面出现了Sprint这个单词。这样的场景有点熟悉又有点新奇,这是我第一次接触敏捷项目管理。

再往后,我逐渐习惯了这样的工作模式,也习惯了北京朝九晚六的工作节奏,中午大家经常一起出去搓一顿。工作中除了写Swing组件,我开始对单元测试了解得更深,开始和英国的程序员在邮件里讨论问题,甚至聊到各自喜爱玩的电子游戏。当时,郭峰事业部好几个项目的开发人员搬到了同一个大办公室,我们用着宜家的大桌子(和红色大垃圾桶),三三两两拼在一起,彼此之间没有隔挡,随时讨论着各种技术问题。有时跨项目组的大牛也能给出建议,然后彼此再接着讨论一番,大家都很开心。

多年以后,我依然怀念那时候面对面工作的氛围。很神奇的是,那样的工作环境并没有让我觉得自己的工作经常被打断,反而感觉每天都成长得飞快。类似的工作环境,我后来只在与T公司合作的一个项目里遇到过。

进项目的前两周,每天下班后天已黑,我在寒风中等着公交,心里想着,北京的生活真的比在南方紧张,也挺累的;再往后,春天渐渐来了,也就没那么冷了。紧张和劳累?我现在只感到了充实。

程序员的成长

是一个和自己较劲的过程

记不得当时在盛安德的试用期是多久,但我记得在试用期一半的时候郭峰就直接让我转正了。后来的工作一直很顺利,客户满意度很高,直到有一天,客户毫无预兆地叫停了我们这个ODC项目。

现在的我对这样的事情接受度还算高,但在当时心理冲击极大——在此之前,我所有工作过的公司都是做自己产品的,相应的,我的职业生涯一直有着确定性的规划和预期。从项目里下来的我,没有在公司内部找到适合我“一招鲜”的技术岗位,事业部内其它项目组有一个Android项目缺人,于是我开始硬着头皮学Android编程。这个时候,曾经的优势突然变成了我的劣势。我发现,任凭我表面上怎样试图去做一些转变,内心却在极力地抗拒这门技术、固守着自己的优势技术。我坦承,在那个时候,“学习能力强”并不是属于我的标签。那次转变最终失败了,我心中怀着不小的挫败感,对于将来可能会频繁更换项目的困扰也出现在我的脑海。

这些负面情绪在我以前的工作中从来没有过,年轻自负的我没能很好地处理它们,遂决定再次跳槽,重新找一个做产品的公司。这次跳槽同样是怀着一丝愧疚,事实上,当时很快出走的另一个理由是,公司在我为新项目做准备的这段时间,一直在负担着我的成本,我想着,既然心已不在此,那就赶紧离开别让公司再破费了。

离开之后,我辗转来到了S公司——一家低调的行业大佬。S是继K公司之后在职业素养上带给我很大提升的第二家公司。

入职S之初,我反思自己前几年跳槽太频繁,和我的经理说希望自己至少能工作五年不跳槽(后来也的确做到了)。在S公司,Java Swing依然是我进入项目的敲门砖,对技术的精通让我在北京研发中心和美国总部合作的团队中都获得了很好的声誉。然而,对于在一个已经成立40年(到今天已经50多年了)的技术型跨国公司工作而言,一切都不止于此 。技术架构的升级往往比国内早5年以上,产品开发的方式、技术运用的深度和广度也是我前所未见。五年之后我反观自己,之前的一招鲜在这样庞大的系统面前,真的只是九牛一毛。

在短短的五年间,诺大一个公司众多的产品,前端的技术栈已从过去使用多年的基于Java Swing变成Adobe Flex然后又变成了响应式HTML5,后端的架构则从传统的Java应用服务器、JNDI调用异构模块变成了围绕中心化内存计算的微服务集群,而当时在全球微服务化潮流刚刚兴起。

身处这样快速更新自我的公司,我极大地开阔了眼界,也经历了从之前狭隘的自我认知到开始拥抱变化、学会如何快速学习、如何与团队合作的剧烈转变,这样的转变既包括技术层面,也包括沟通等软技能层面。如今,在我的记忆里,在S的日子,我似乎每天都处在和自己的较劲之中。从最初进入项目时的恍惚,到熟悉之后相当长一段时间的安逸懒散,再到后来开始自省、开始与前一天的自己较劲提高效率,发冗长的邮件来处理与他人的协作问题,和经理一次次地聊工作上面的提升。

整个过程并不是很让人身心愉悦,但我雄心勃勃不愿放弃,在技术和生活方面也受到了我经理的深刻影响。每个人一路走来都会遇到一些良师益友。在我身上,K公司的第一任经理和导师、Team Lead、同事们给我树立了痴迷技术的榜样,S的经理让我认清了一个产品和一个人在成功路上会经历的残酷和必须跨过的各种坎,教给了我很多项目管理中的原则和教训。事实上,和自己较劲的说法一开始就是从我在S的经理那里听到的。

技术之外,低端人口

除了在做事层面的积累,在S的五年还有另外一些影响我以后职业发展的事情发生,基本上发生在后期快要离开S的一两年间。

2014年2月中旬,我得到了一个去S美国总部出差的机会,我认为这算是公司对我这几年工作和“追求进步”的认可吧。实际上我没什么特别的任务在身,经理说主要就是让我去看看,感受一下。公司帮忙准备签证、机票,通过美商会的通道去面试,我顺利地拿到了我的第一个美国签证。

出差到在美国的两周,我的认知每天都在被革新。当然,两周的体验只能让我对这个国家有一些相当表面的了解。多年以后回顾,除了清新的空气,当时给我带来最深触动的依然是一些小事、小的片段,包括,北卡随处可见的高耸入云的松树,一条条穿梭于稠密植被中间的道路,百看不厌的天空,纽约时代广场的繁华、中央公园晨跑的男男女女清澈热烈的眼神,以及在S园区过马路左右看时,远远就停下来等候行人的车辆。

从美国回来,我开始在工作上更加努力和自己较劲,并且相当一部分精力花在思考如何与美国同事的沟通上。如今回想,当时的努力囿于自己的有限认知和格局,成效其实并不算大,但至少让我极深刻地体会到了沟通的重要性。有限的认知还带给我另一个今天看来不切实际的想法,而当不切实际的诉求最终碰壁时,我第一次在工作中感到了挫败。

再后来,搬了家,小儿子出生,大女儿也快要到上小学的年纪了,而我们还没能在北京买房。没有房产的我们想让孩子入学很困难、麻烦。作为典型技术男的我,不擅长、也不情愿去处理这些事情,最终,我决定结束北漂回太原定居。太太持不同想法,但最终还是随我回去了。

重回盛安德:太刺激了

离开北京时,我已找到了一份太原本地的工作。工资当然比在北京时降了一大截,但我还是回去了。现在回想,我当时在内心深处并没有感到太多的无望,认为往后余生就会一直待在几乎是IT业荒漠的太原了。不知为何,我觉得我回去只是去蛰伏一段时间。为什么是蛰伏?因为到美国工作生活的种子已在心里种下,在到达那里之前的一切生活都是在蛰伏,对此我有莫名的自信。如何以及何时能结束这样的蛰伏?我心中不知道答案,又似乎知道。

太原的生活起初很恬静,我也需要这安静的时光和父母、孩子相处,平复北漂生活的洗刷,和过去的自己和解。但是,生活很快告诉我,在哪里都不容易。二三线城市的低工资不代表工作会更轻松,事实有时甚至相反。新工作的辛苦不在工作本身,而是由于更长的通勤时间和压抑的工作氛围,以及机械重复所带来的疲倦。两个月后,我在心中对自己默念:你还是幼稚了,然后拿起手机给郭峰发了一条微信。

永远认真工作,即使知道要离开了,也保持一贯的工作质量,这是我不知从何时形成的原则。五年前从盛安德离开到现在,原先项目小组的同事们还一直保持着良好的联系,而公司也很快回应我,把一个很好的项目机会给到我,以便我能重新加入公司。只不过,生活有时会和我开玩笑——新项目是一个在北京驻场的机会。我知道远程工作是盛安德的主要工作模式,我只要能够再次加入,最后一定可以回到太原远程办公。为了能再次加入拥有我所认可的文化的公司,我顶住家人的压力,再次回到了北京,在望京租了一间卧室,每周五坐高铁回太原家里度过周末。

我所加入的项目,是T公司为某客户开发的下一代销售系统,团队刚刚组建,盛安德作为T的外部合作伙伴提供候选人,经T面试通过后录用。团队成员大部分都是T从全国各地调来北京的优秀同事,在望京驻场办公,为他们这个大客户服务。和当初我第一次加入盛安德时的办公室布置类似,这里也是把一张张的大桌子拼起来一起工作,无隔断,使用敏捷软件开发模式。所不同的是,T的团队更加重视卓越的技术应用能力,而且整个公司形成了较为统一的工作规范和文化,也践行着更加纯粹的敏捷开发实践。

在驻场工作的日子里,我飞快地学习着各种我需要用来完成工作的新知识,全身心地投入工作,对于之前在S公司时遇到的同样问题,开始下意识地用之前得到的经验教训去解决,也彻底改掉了工作中懒散的习惯和计较得失的心态。记不得有多少次,我自愿加班,只为了把功能实现好,把代码写得经得起全组人推敲——每天下午,全组的开发人员都会走到某个开发的电脑前一起review他的代码。或者我只是单纯地喜欢和那些小我几岁,但更有卓越技术追求的同事们在一起多工作一会儿。也许是因为少了家人在身边的缘故,也许是因为正好到了这个时期,这是迄今我在工作上最刺激、最纯粹的一段时期。不存在工作和生活的平衡,只有,工作。

念念不忘,必有回响

在T公司工作了近5个月时,我已凭借自己相对较多的工作经验,设计实现了一些较复杂业务的后台服务。几年前还在S公司时,我就深感于纯前端的局限性,开始了从前端向后端转型的尝试,可惜机会不多,而在这里,我终于基本完成自己的技术转型。鉴于我的工作成效,项目经理找我谈话,希望我能加入T。我有些心动,但最后还是坚持了自己的规划,践行自己给家人的承诺,在工作6个月后最终回到了太原,留在盛安德,开始了远程工作的生活模式。

工作也许可以短暂的忙碌甚至疯狂,但终究需要平衡生活。回到太原,经过一小段时期的等待和几个小项目的过渡,我开始有了ODC项目,同时参与了一些公司运营层面的讨论,贡献了自己这些年来的一些经验想法。一切工作都是远程进行。

再后来,我开始尝试在太原开设分公司,谋求在本地更大的发展。几年后,当我们全家人移居美国生活后,每每在生活上感到不适,妻子向我抱怨嫌我没长性,总是在各个地方跑来跑去时,我反思了自己过往的职业生涯。诚然,在刚工作前几年,我的跳槽略显随意,但之后的每一步都是为了让我的家庭能有一个更好的生存环境,即使有时需要走一些看似背离最初方向的路。如果能在一个地方长足发展,我也并不愿四处奔波。彼时,家人团聚是我的心愿,让孩子呼吸健康空气是我另一个埋藏已久的心愿。第一个心愿已经实现,虽然是以一种被动的方式。出乎我预期的是,没过多久,念念不忘的第二个心愿的竟也有了希望。

我尝试开办太原分公司的那年,去苏州太湖参加了年度的分公司经理会,在那里见到了多年未见、以前同在郭峰项目组的王冕。王冕那时已经在经营大连分公司,想把美国一个大客户的部分项目转出来,因为那个客户很难合作,而我表示愿意试着接手那个项目。后来,公司计划重新梳理与这个客户的合作关系,并且派一些人去客户现场办公一段时间,得知消息的我,没做过多的考虑,立刻申请了这个机会。

2018年初夏,我在时隔四年后第二次降落到芝加哥机场。凭借上次跟着S公司大部队在这里转机的模糊记忆,我独自一人转机,争分夺秒的同时心里紧张的怦怦直跳。好在当天晚上在客户所在城市的机场,我见到了接我的同事。

这次出差待了近两个月,白天去客户办公室,晚上独自一人住在酒店,从最开始对一切的新奇到最后的酒店早餐吃到想吐。两个月间,我基本摸清了客户项目的脉络,搭建好了适合在国内远程开发的复杂开发环境,和已经驻场的其他同事一同与客户团队建立起了新的合作关系。待八月底回国后,我已经可以在太原招聘开发人员进入项目了。另一个收获是,我从国内菜鸟级别的开车水平进阶到敢在美国上路开车了。

在此之后,我又因为各种原因陆续到这个客户这里出差了两三次。随着与这个客户合作关系的稳定,我也表达了想要长期在海外工作的意愿,公司经过斟酌为我办理了工作签证。在2019年底,我劝说当时工作极度紧张的太太辞掉工作,携全家来到美国体验生活。多年的奔波让我和他们聚少离多,我要给他们更好的生活,并且是全家人在一起的生活。

结语

盛安德CEO张纪伟先生说,每个盛安德人都有一段不寻常的故事。我是一个80后的普通孩子,不是天才,也不是特别聪明,只是愿意在工作和世事中不断完善自己,听从心底的指引,以此书写自己的故事。我感激一路走来盛安德对我的包容和支持,感激过往每一个帮助我的同事。常怀希望,不轻易放弃,我与盛安德的故事,还在继续中。

作者简介

骈耀,80后全栈开发工程师,2007年至今一直从事程序员岗位工作。在盛安德工作七年多,现属于盛安德运营中心总部,工作地点:美国。

标签: #adobe flex教程