程序员打怪升级

作者: 一个人在路上走下去 | 来源:发表于2016-06-04 16:52 被阅读677次

回忆往事,很多习惯源于第一家公司时候经历的一切。有时候我会想,一个程序员的第一份工作,很可能影响了他未来的道路。

通常,软件技术人员的职业发展有几个选择:专注于技术,成为技术专家;转型到技术型销售、技术支持等;随着技术成长,从技术性管理到高级管理。前提是你一定要了解自己的特点和优势,就好比黄瓜种子是不可能培育成西瓜一样。在扎实的技术基础上(高级软件工程师),如果有着比较强的抽象设计能力,又打算专注于技术开发,架构师是个好的选择;如果 性格更适合做管理,情商能力突出,技术型管理应该是下一步的方向。决胜点在于长期的点滴积累,无论程序员个体之间差异有多大,程序员上升空间在于技术上的反思和提高。

程序员在编程序的时候,一方面会实现设计的功能,另一方面 也在对设计有一个理解、认识、熟知的过程。进而慢慢地从学习别人设计,转向到自己参与或独立设计。如果这个程序员真的非常非常喜欢程序员这个职业,则可以转向软件设计师。这个转变很大程度是程序员意识的转变,就是说要把编程的时间,逐步分摊到软件设计上,要把重点从编程实现转变到项目的功能设计上。这里强调的是“逐步”的一个过程,程序员要逐步减少编程的时间,增加设计的时间,要克服编程的强大吸引力,要主动地攀上设计这个台阶。很难有一个设计师是完全不编程的,而且我认为,会编程的设计师才是真正的设计师。一般这种转变需要花上一到两年时间。

软件设计中最重要的基本原则,其实也不仅仅是软件设计,很多地方也都是适用的:第一:坚决避免重复;第二:高内聚低耦合的设计;俗话说得好——唯一不变的就是变化本身!如何选择适当的粒度,如何进行适当的模块划分,从而把变化能够封装在一个尽可能窄的范围内,以便某个变化只会造成局部的影响,而整个软件框架能够尽可能的保持稳定不变,不会牵一发而动全身,这才是软件设计最精彩的地方,也是软件设计能从工程问题变为艺术问题的机会。

那么问题来了,具体如何做才能得出尽可能好的软件设计呢?除非你在开始一个项目前有过类似项目的经验,否则,你只能够在开发过程中不停的进行调整,也就是说,你需要不停的通过不断迭代的软件版本与用户进行交流沟通,挖掘出用户真正的需求并及时进行修正,必要时还需要对整个软件进行重构,这样经过几次迭代后,才有希望得到一个满足用户需求的接近完美设计。最后一点——你需要具有在代码中签名的勇气,这个签名就像是一个品牌标识,是代码质量的保证,表明这段代码是你引以为傲的作品。

也有一些程序员工作机遇比较好,不但负责了项目的设计工作,而且负责了项目管理工作。对项目经理这个工作有了一定的尝试。因此,这类程序员可以审视一下自 己,是否合适这项工作。如果自己对这种工作比较满意,而且具备项目经理的要求,则可以向项目经理这个方向发展。项目经理承担着项目管理的职责,对项目负主 要责任。它和程序员的作用也不相同,项目经理的重点已经从编程转移到对人、对技术、对进度、对项目的管理。由于软件的项目经理与软件项目的相关性太大,因 此,他必须要了解软件开发的各个环节、了解开发的各种技术和运用、了解开发队伍人员的水平和特点。所以他依旧和程序员脱不了干系。从程序员到项目经理可以 使得项目经理更好地理解程序员在项目中的地位和作用,了解软件开发的各种规律性的东西。从而保证项目的正常完成。而且,项目经理的收入在公司中的地位也是 比较高的。程序员在担任项目经理之前最好要把软件设计工作做好,这样在做项目经理的时 候,就会有很好的基础。

最基础的道理都是相通的,做人是一样,写程序也是一样。在你成为一名优秀的程序员之前,首先需要的不是各种神技,而是一颗责无旁贷的责任心:一旦接受了某项任务,就应该为之负起全部的责任,想方设法也要尽自己最大的努力去完成它,凭一己之力也好,寻求他人帮助也罢,这都可以,但须始终牢记:最终承担责任并推动任务前进的,绝对只能是你自己;其次,你应该要明白,千里之堤毁于蚁穴。对软件中存在的“破窗户”始终要坚持零容忍,因为一旦有“破窗户”出现,那么软件项目的失控速度绝对远远超出你的预期,等你缓过神来,一切已为时已晚,弥补代价甚至超过整个推倒重来的代价;最后一点,你需要是一个完美主义者,始终处于追求完美的途中,但同时你要深深的明白,你永远也无法到达完美的彼岸,因为这个世界上不存在完美的软件,现在没有,你也不大可能会创造出第一个,所以需要你在适当的时候为你的软件画上休止符。

成功与失败的区别在于,成功者选择了正确而失败者选择了错误。因此,我们常常能够看到一些天赋相差无几的人,由于选择了不同的方向,人生却迥然相异。选择正确的方向尤为重要。软件开发也是有层次区别的,比如,按层次从高到低通常可分为:系统开发:如操作系统、数据库系统、服务器系统开发;专业开发:如网络安全、游戏、人工智能开发;应用开发:如MIS、BI、ERP等系统开发;普通开发:如网站、简单应用系统开发。不同的层次,难度系数不一样,对技术要求、个人素质要求也不一样。要成为系统开发者、专 业开发者、高级应用开发者,需要有很高的专业知识和很强的逻辑、抽象、空间思维能力,这就要求具有很好的基础,同时具有较大的提升潜力。而要成为简单开发 者和初级应用开发者则相对容易些,正是这样,才使很多人走上了软件开发的道路。

相关文章

  • 深扒JVM,对它进行“开膛破肚”式解析!

    1. 打怪升级,你绕不开JVM JVM,对Java程序员进阶而言,是一个绝对绕不开,也不能绕开的话题。 在你打怪升...

  • 程序员 打怪升级

    你是否觉得自己从学校毕业的时候只做过小玩具一样的程序?走入职场后哪怕没有什么经验也可以把以下这些课外练习走一遍(朋...

  • 程序员打怪升级

    回忆往事,很多习惯源于第一家公司时候经历的一切。有时候我会想,一个程序员的第一份工作,很可能影响了他未来的道路。 ...

  • 升级打怪

    每一天的你都在升级打怪升级的往复循环中。生命能量补给要升级打怪,和周围的人、事物和谐相处要升级打怪,反思、自省,心...

  • 不断“打怪”升级

    人生就是一直不停地“打怪”升级中:小学生们需要“打怪”才能“升级”成为初中生,初中生们需要“打怪”才能“升级”成为...

  • 游戏人生还是人生游戏

    人生就像游戏打怪升级一样, 有师傅带的越级打怪; 有富豪带的一群人帮你打怪升级; 还有人独自升级。 人生就像游戏里...

  • 经历都是财富

    人生就是打怪升级~

  • 搭建大型源码阅读环境——使用 OpenGrok

    来源:极乐科技知乎专栏作者:mzlogin (极乐科技知乎专栏原创作者)博客:码志 RTFSC 是程序员打怪升级路...

  • 弯道超车!阿里P5~P8学习路线终发布,程序员打破瓶颈的关键所在

    前言 我们都知道优秀程序员的成长之路就是一条不断打怪升级之路。相信很多人都思考过以下问题:初级程序员如何快速成长?...

  • 标注命名规范

    咳咳... 升级打怪啦... 前言:规范的命名方式可以提高客户端程序员的开发效率和团队协作。 标识符号命名原则:尽...

网友评论

    本文标题:程序员打怪升级

    本文链接:https://www.haomeiwen.com/subject/mbvldttx.html