五年程序员人生的点点滴滴(旧文)

      和大家一样,我也是一名普通的程序员,很快工作五年了。现在依然记得大学时软件工程老师曾说过的一句话,大概是这样的:“工作五年之后,就基本可以分出大家的区别了”,这句话大概有两层意思,第一,大家都基本确定了自己的工作或职业方向;第二,一个人的能力如何基本已经确定了。先抛开这句话的真理性,至少它本身是有些道理的,当然随着时间的迁移,当初的五年时间对于现在可能已经不太准确了。但这句话一直陪伴着我,每过一段时间,我就会想起这句话,因为自己很想知道五年之后自己是什么样子,总告诫自己一定要找准方向,要努力学习,让自己在合适的时间能有质的飞跃,能够在同行同辈之中脱颖而出,在工作或事业上形成一个转折点。愿望总是美好的,而正因为有了美好的愿望,人类才能够不断向前走。

      读高二时开始接触电脑(那时用计算机这词也太过专业了吧),偶尔跟着同学去网吧泡泡江湖,论坛形式的游戏,那时要是能打到只凶猛的老虎那可真是令人羡慕忌妒恨啊…。也是那时第一次听了刘若英的《后来》,而且网吧经常放这首歌,直到现在,一听到《后来》就会勾起我的回忆,那感觉挺好!江湖,很侠气的词儿,估计现在的年轻人都不知道曾经有款如此简单低级的游戏了,呵!从那时起,我算是真正的接触了电脑,接着学聊Q、听音乐、玩CS…。还好自己一向比较能克制自己,以致于最终基本不影响考大学。
      报考大学的时候,许多人都是糊里糊涂的报,专业名看起来顺眼就基本差不多了。但那时我却有着明确的报考方向,那就是计算机专业,在那时我似乎就已经知道编程是怎么回事儿了,虽然我真的是没接触过。

      上了大学,读的是自己喜欢的计算机科学与技术专业。
      入门的编程语言是C语言,接触了之后挺喜欢它,那时觉得它简单易学,似乎能够解决好多问题。
      第二门编程语言是Java,经过一段时间的学习发现,Java代码之优雅、结构清晰等优点深深的吸引着我。
      C++自学过一个月左右,ASP了解了一些,C语言和Java都开过课程,那时Java在我心中绝对是第一语言。
      大三第二学期开始接触J2EE,后来基本上每天都会学习相关的技术知识。在老师和师兄的明师指路之下,开始自学了HTML、JavaScript、CSS、XML、DTD、XML Schema、MySQL、Jsp、JSTL、Sitemesh、Spring、Struts、Hibernate、EJB、CVS、Jcreator、MyEclipse等技术与工具。毕业设计与几个同学开发了一个小系统,毕业设计文档还把软件工程的几个步骤给整了一遍,结果还像模像样搞得挺自满的。
      就这样,我带着一颗对编程的热情与好奇心,慢慢的踏上了程序员之路。

      工作后,先后从事了金融行业、电信行业,工作内容经历了写代码(SSH、JSF、ExtJs、单点登录、Eclipse插件开发、GWT开发…)、Linux日常命令使用、安装配置Linux、基于Linux安装MySQL/Oracle及维护、应用系统部署及维护、技术沟通、需求调研、技术管理、工作分配与进度跟踪、项目管理、招聘等(不分先后),一路走来,真是五花八门啊,相信大多数前辈和同辈们都是如此走过来的吧!

      软件这个行业,都说是业务是灵魂,技术是手段,技术不太重要,业务才是最重要的。也许,这就是软件行业在浮躁而极富特色的中国被糟蹋的结果吧。
      但我个人始终认为,作为一家软件企业,技术永远是最重要的,技术才是软件企业真正的灵魂,我反对那些不重视技术的软件企业(虽然你们也是受害者,但却是你们把中国程序员给害的)。

下面总结点自己的工作经验:
1、没有解决不了的技术问题,关键是时间与方法
2、不要说没时间,时间真的是挤出来的
3、Bug是永远改不完的,关键是要修复严重的、影响业务的、显眼的Bug
4、随着项目的开发,接触项目的人越来越多,项目代码越来越乱,风格五花八门,潜在的Bug越来越多,以致于谁都不想去维护了
5、很多程序员写代码不负责任,写代码的水平暂且不说,更令人发指的是,代码测试都没过自己那一关,总想留着让别人去测试,那个汗…
6、喜欢技术的程序员太少了,都想着三五年后转管理,赶紧摆脱技术圈
7、浮躁,简单的注释、命名、代码风格、代码重构、代码测试、业务理解都没做好,就想着做有挑战性的工作、想着转管理,怀着这种心态的兄弟们,你们真能把其他事做好?
8、项目经理很多,但大多经验不足,基本工作是了解需求并做初步分析,简单的工作计划,工作分配,进度跟踪,对系统发表几个观点、提几个问题。这些是必要的,但我觉得有很大的不足,项目经理应该更多的参与到项目的整个过程当中。让程序员开发系统,永远是从实现功能的角度去思考问题,这一点恰恰是开发系统的重伤,因为客户关注的是业务流程。程序员总把问题复杂化,如系统功能强大、支持N多种场景、界面内容丰富等等。没错,作为程序员,我们更多的是想展现并充分发挥自己的能力,但客户想要的确是简单易用、清晰而实用的系统。所以我想说的是,程序员重在功能实现,而客户关注的是结果,项目经理应该多从客户或使用者的角度去参与项目,这样做出来的系统才能够符合客户的要求,程序员才能少加班,因为业务流程清晰、简化实现,从而减少返工的确能够节省很多时间。

      技术,将会一直陪伴着我,无论将来我处在哪个岗位上,因为我学习技术的出发点是兴趣,有时候自己想想甚至不知道为什么,反正就是喜欢。

      程序员之路才刚刚起步,路还很远,但绝没有捷径,只有脚踏实地,一步一个脚印,程序员人生才会更美好!

      写文章对我来说挺难的,想当年读高中的时候,还曾经语文考了倒数第一,所幸的是仅此一次。那时每次写作文的时候,我只写议论文,而且只会“总-分-总”,什么名言警句、典故之类的,都是瞎编,纯粹就为了凑篇幅。所以,这篇文章也花了几个小时的时间,时间虽长,内容却有限,但总而言之总结能令人反思与进步!


这是几年前写的一篇旧文,现在读起来还是很有感觉,蛮有感触的。对于业务和技术的重要程度,经过多年的工作,理解了公司首先要营利,业务是要摆在首位的。业务发展好了,才可能需要更多技术人员来支持。当业务发展到一定的程度,遇到瓶颈了,可以通过技术反过来驱动,如通过大数据分析用户行为,进行个性化的推荐;通过直播带货,带来更多的转化。

当然,如果是以技术为主的公司,那技术实力本身就是其核心,如声网、七牛之类的公司。

所幸的是,技术还依然陪伴着我,我也依然热情不减!


---转载本站文章请注明作者和出处 二进制之路(binarylife.icu),请勿用于任何商业用途---

《五年程序员人生的点点滴滴(旧文)》有3条留言

留下评论