开发者有话说|充满荆棘却又绚烂多彩的编程之路
前言
哈喽大家好,我是三掌柜,很高兴能通过 InfoQ 写作社区这次活动来聊一下我自己的过往程序人生中的历程,乍看标题可能你会觉得标题有点大,但是我通过结合自身亲身经历来分享的话,就会缩小很多,通过三部分来分享一下我在从事编程开发中不同时期的不同感受和遭遇,也可能你也遇到了同款遭遇和经历,但是能够感同身受,说明咱们都是一个有“故事”的开发者,接下来听我慢慢道来编程的不归路。
初入开发不怕虎,从此走上不归路
正如我的某一个个性签名所讲:一名合格的、二把刀的、科班的程序猿,从高考之后进入大学学习的专业就是编程相关的,选择专业的时候也没有过多考虑就觉得只要计算机相关的专业就行,由于当时的前瞻性不足,过于盲目的选择了计算机专业,也就促成了自己以后的工作经历从此离不开计算机相关的工作。
说是机缘也是巧合,刚开始接触编程开发,自己是非常排斥和不适的,由于应试教育的原因留下来的只有教科书知识,完全没有其他方面的“才艺(如计算机办公技能、琴棋书画技能、体育锻炼技能等)”,以至于在刚开始的大学求学经历+初入编程开发之路走的不是太顺利,连最基本的“hello world”都整不出来,感觉计算机知识就是天文,非常痛苦和煎熬。好在功夫不负有心人,在大学后期,随着专业知识的深入,以及好几年的“计算机操作经验(这里指的是计算机的系统设置、安装程序、通过开发软件编辑程序等等)”,渐入佳境,通过对编程语言的学习和计算机相关知识的熏陶,慢慢找到了计算机学习的窍门和方法,也算是正式入门了,这也验证了一句老话:只要功夫深,铁杵也能磨成针。大学四年的学习经历,使我进入软件开发的敲门砖/引路石,期间也获得了一些三好学生、奖学金、优秀班干等奖励,也给了我更多的自信和认同,也助长了我毕业后一定要从事编程开发的决心。
通过四年大学求学之路的结束,让我彻底具备了成为程序猿的潜质,毕业之后就去深圳接受社会的“毒打”,外加上职场小白的懵懂,简直是一塌糊涂。上帝对待每一个人都是公平的,这句话是真的,虽然我时运不济,但是在找工作的时候还是非常顺利的,顺风顺水,这在后面的找工作中也有体现,这里一笔带过。
到达深圳的第五天就找到了一个 iOS 开发的工作,虽然工资不高,而且是个初创型的外包公司,而且是“966”,刚开始不觉得不爽,通过进一步的工作才发现这个公司好坑啊,但是自己初入职场,还是很感激这家公司给我的工作机会,我也是抱着学习+训练的态度坚持待在这家公司。好景不长,呆了一年之后,临近春节,遇到一个难缠的甲方,急着上线项目,需求改来改去,bug 层出不穷,连续加班一个月,实在是受不了了,最主要的是甲方承诺的加班费在过完春节之后一分钱也没给,彻底激怒了我,一气之下自动离职,不带犹豫的,这也是一个不好的操作,还是年轻不懂事,毕竟自己的所在的公司领导还在周旋加班费的事情,也可能是自己真的厌倦了这个公司的操作吧,毕竟每周的就休息一天的操作就已经接受不了了,这也是自己毕业后的第一份工作的经历,很深刻;后来自己又去了一家自主研发的小公司,经历也是大差不差,待遇极低,外加上 P2P 的暴雷,公司直接倒闭了,好多人最后一个月工资都没发,但是这家公司把我的外包经历洗白了。我的这些遭遇,相比有很多道友都有所遇到吧,就算没有遇到也会所有耳闻,毕竟这是非常常见的遭遇。
从大学四年及毕业之后,到找到的第一份工作,再到第二份工作,这段时间都是自己初入程序开发的编程历程,虽不能三言两语总结全部,但是可以从大的方面找到共通的内容。每个人都年轻过,年轻时候桀骜不驯的态度,年轻时候我命由我不由天的气场,年轻时候此处不留爷自有留爷处的理念,都促成了初级程序猿不凡的经历,而且这也让我吃了很多亏,踩了很多坑,你要说都有什么亏和坑,我只能说:能力不大脾气大所引起的情景都适用。后来回想一下,作为初级程序猿要做的就是苦练基本功,不要依靠任何人,只有自己掌握了技术能力,才是真正的天不怕地不怕、走到哪里都不怕,混技术圈是靠能力吃饭,而不是靠脸吃饭,所以我差一点被饿死。。。
渐入开发深似海,痛苦挣扎求突破
通过初级编程开发阶段的历练,让自己有了相对扎实的专业技能和实践经验,这也验证了那句话:技术大牛的养成都是实践的积累和沉淀。我始终觉得自己的编程思维是养不成的,怎么熏陶都不行,感觉像中学时代的英语语感,死活养成不了。不知道各位看官是否有同款感受,我个人觉得我就是一个假程序,为什么这么说?首先我的发量始终浓密,其次我的编程思维始终是举三反一,最后在开发的时候感觉是在混口饭吃,完全没有那种通过技术改变生活的喜悦和快感,每天的工作状态就是当一天和尚撞一天钟的感觉,犹如鸡肋,食之无味,弃之可惜。
但是随着开发时长的增长,以及自己职业经历的影响,在加入自己工作经历中的第三家公司,改变了我的一些认知和想法,也扩展了自己的技术方向和能力,对我的职业影响是非常大的。
首先是我的第三份工作是一家美资上市公司,属于全球第一硬件加速器,这也是自己第一次直接接触外国人和外资企业,突然觉得自己好土鳖,但是反而又一想他们既然选择了我,那肯定是我具备了胜任的能力,然后就欣然接受了他们给我的 offer;其次,在加入这家公司之后,我的工作内容也不仅限于 iOS 原生开发,由于业务场景的需要,我需要负责部门整个软件开发相关的工作:iOS、Android、微信小程序、Java 后台和服务器搭建。最后,是公司的管理理念和模式改变了我的认知,以及外国人的做事风格和特点,让我受益匪浅,也很荣幸能认识一些外国朋友,顺便练习了自己撇脚的英文口语能力,只是觉得书到用时方恨少,英文沟通真的是个很锻炼人的事情。最主要的是,我们团队做的是一个智能硬件物联网的项目,有时候会去外地出差宣讲和路演,很荣幸我被甄选了,但是由于自身从未有过登台演说的经验,刚开始是非常抗拒的,不过好在自己在大学期间担任过班干部,打下了一些沟通基础和经历,让我很快就适应了路演的形式。
在美资公司的工作经历让我受益匪浅,不仅是在价值观还是在技术技能,而且在后面的职业发展也有深远的影响,这里要强调一下,在这家公司的工作让我的收入提升了一大截,也让我的履历有了质的飞跃,可以说是我的职业生涯的一次飞跃,后期由于自身发展原因选择了离开,但是自己不后悔做出的决定,毕竟人往高处走嘛。离开外企之后,我选择了前端开发的方向,之所以做出这个选择的原因是决定做前端开发有“钱途”,不过后来的经历验证了我的这个想法,因为大环境(这里指的是一般水平的程序员,大牛级别的无影响)的原因使得移动原生端开发已经不在吃香,外加上有一个合适的机会,然后自己觉然而然的选择了跳槽,以及选择了前端开发方向。
不过在选择前端开发的工作也不是很顺利的,由于自身没有经过系统性的前端知识学习,只是自学 Vue 相关的知识,直接上“战场”,压力非常大。因为要以中级水平(当时自己的水平是初级靠上的水平)的前端开发者来工作,在短时间内达到这个水平还是需要点时间,但是工作不等人,然后就硬着头皮上,而且我的小领导非常的照顾我,才不至于让我那么难,不过通过几个月的历练之后,工作走向了正轨,也让自己适应了前端开发的新领域,不过自己之前做过微信小程序的项目,有很大的相似性,这也是能够快速上手的原因之一。
这里要重点说明的就是在工作中进行技术转型的时候,一定要根据自身情况和自己的想法来,因为每个人在做选择题的时候想法不同,尤其是做比较大的选择的时候,一定要慎之又慎,而且自己一旦做了最终的选择之后,不管遇到多大的困难和阻力,一定要坚持下去,有句话说的好:自己选择的路,就算跪着也要走下去,除非万不得已的时候,否则一定要坚持,不要轻易的放弃,过程很痛苦,但是结果会意想不到。
至此,自己的技术方向通过转型之后,并进行了沉淀,最终自己选择了前端开发领域,但是这里又要说明一点,基于前端开发但又不限于前端开发,毕竟自己是 iOS 原生开发出身,移动端的技能虽然不常用但是没有丢,以及后面接触的微信小程序开发、Flutter 开发等,都是技术沉淀下来的内容,都能快速拾起来的,可以毫不夸张的说,自己从当初的 iOS 原生开发晋升为大前端领域的开发,虽然有些方向还不是太精通,但是直接上手做项目是没有问题的,这也是自己在工作中寻求突破的最重要的选择,也是自身具备技术多元化能力的重要一环,最后也是我继续在技术道路上越走越远、“越陷越深”。
走出开发求自由,脱离编程难解脱
在经历了技术进一步的沉淀之后,自己选择了新的领域:金融领域,虽然也是前端相关的工作,但是在我的职业生涯中还没有涉猎金融(因为前面我提到的第二家搞 P2P 相关的公司,这家公司业务跟金融不沾边,所以可以忽略)相关的工作。这里要呼应一下前面讲到的我在找工作的时候还是比较幸运的,因为每一次找工作的周期都不是太长,一般一周之内的时间必上班,尤其是当前疫情反复不定,外加自己换了城市之后就赶上封城的遭遇,完全不影响我正常的找工作和上班,包括我找到的美资公司的那份工作也是一样的幸运,但是我也还是非常感谢给我工作机会的各个公司和领导,也感谢命运的安排,感谢自己的专注和努力。
在做了金融相关的开发工作之后,自己已经是奔四的大龄程序员了,而且中年危机即将到来,也迫使自己要深度考虑以后的路了,外加上遇到一个合适的转型机会,这一次自己又做了一道选择题,而且是破釜沉舟那种选择。在做了不到 7 年的一线开发工作之后,自己对于基层开发工作已经没有了任何感觉,也就是说一线开发的工作让我食之无味弃之可惜,有一种为了生存不得不做的事情,但是随着年龄的增长以及经历,在做选择的时候会越来越深重,之所以决定不做一线开发的决定,也是切合了自己的自身情况,因为自己从做开发工作的那刻起到现在,从来没有觉得编程工作能给我带来快乐,我也从来没有养成成熟的编程思维,我甚至从来没有在编程开发中体会到乐趣,这是多么可怕的一件事。
既然做出了决定,就要去付出行动。从金融领域的公司离职之后,选择了一份项目实施/管理方向的机会,虽然是基于互联网相关的,但是已经慢慢脱离了一线开发的工作。说实话刚开始还真有点不适应,之前工作天天都是在敲代码搞编程,突然之间不做编程了,感觉有点空虚,而且接触新的领域又要去适应,又要去从头开始,感觉自己的精力随着年龄的增长而变得有限,并且自己在选择这个方向之后也没有找到任何感觉,也可能是刚开始的原因,有不适,也有担忧。
新的方向新的使命,既然做了选择就要坚持下去,照应上面的一句话:自己选的路,跪着也要走下去。但是也要给自己容错的机会,我给自己的容错机会是半年,如果不行就及时收手,不做无谓的牺牲,毕竟人生短暂,浪费时间就是在浪费生命。我不知道自己这次的选择是对是错,我能做的就是在基于互联网相关的背景下,努力提升自己的业务水平和能力,在项目实施相关的工作中快速上手,早点入门。
最后
写到这里,本文内容大概也就接近尾声了。回顾一下上面的内容,也就是为大家分享一下我从成为程序猿到结束一线开发的程序猿的历程,期间的经历和遭遇,值得借鉴和深思,尤其是在编程工作中的努力和选择。希望“后人”在看到这篇文章的时候能够有所启发,尤其是初入职场的程序猿,一定要做好自己的职业方向规划,以及结合自己的实际情况做到正确的选择,还有就是遇到机会一定要把握住,毕竟机会不是常有的,错过了可能就永远错过了。最后一点,既然选择了编程开发,就要坚持做下去,一定要保持技术的及时迭代更新,只要从事一天编程开发工作,就要付出 100%的努力,编程开发的道路不会一路顺风,但是一定要持之以恒,一分耕耘不可能有一分收获,但是十分耕耘就肯定有一分收获!
今天正好是我在 C 站的访问量破 300 万,值得庆祝一下,而且我的微信阅读也正好取得了 33 枚勋章,双喜临门,最后分享一下,坚持创作和坚持阅读是养成自律的制胜法则,大家加油,共勉!
版权声明: 本文为 InfoQ 作者【三掌柜】的原创文章。
原文链接:【http://xie.infoq.cn/article/4855e4a5f8d160bf9c40e349c】。文章转载请联系作者。
评论 (2 条评论)