查看原文
其他

【袁永福专栏】我为什么一边创业一边写HIT代码

袁永福 HIT专家网news 2022-07-03

        笔者快40岁了,南京东南大学毕业,非科班程序员,创立了一家医疗软件公司。公司规模不大,但发展稳扎稳打,已经活跃了快7年。现金流也很好,而且远没达到天花板。

        笔者有着18年的职业软件开发经历,累计写下200万行代码,著书立作。南京雨花软件谷号称有12万程序员,我能在其中脱颖而出,自认为是一个“黄金程序猿”,一名优秀的HIT程序员。

        本文就笔者经验谈谈如何才能成为优秀的程序员。

学习思考

        首先,优秀的程序员能克制懒惰,勤于学习思考。

        学习和思考是反人性的,社会上有很多人宁愿忍受一辈子的生活艰辛,而不愿意接受一时的学习思考所带来的痛苦。

        一些公司采用996的工作模式,个人觉得有点儿形式主义。但是公司中准点下班就停止学习思考的人,是不能指望其有多大能耐的。

        因此,学习思考应该不限制时间场合。它是游击战,在办公室、高铁、地铁等任何地方都可以执行。比如此文主要就是在飞机上完成。

意志坚定

        优秀的程序员应该是意志坚定耐磨的,而且能在坚定和变通中找到平衡。

        意志一直无条件的坚定就是性格固执、钻牛角尖,不少程序员有这毛病,需要改正。如果一直固执,则此生必然惨淡,这方面我吃过大亏。

        现在的我可以在较长时期内,很耐心地用点点滴滴的细节累积出一座“大厦”,并经常校准做事方向。我认为我写的每一行代码都能微小地增强中国的国力,这么一想,写代码就很认真了。

情商

        程序员大多是工科男,高智商低情商,但低情商不是多坏的事情。低情商就是简单,简单就是可靠。朝这个方向去想,就能转换为优点了。同时,人简单可靠、能力强,也容易博得部分客户的信任,生意也就好做一些。

        但低情商有时单纯幼稚,容易挨骗受欺负。我见过也听过有高技术的程序员被所谓的兄弟情分牵绊而被利用欺负。在这方面,就连我也是吃一堑长一智,至今还是有待提高。但我得出的一个初步结论就是无论何时都要争取自己的合理权益,在商言商,不必受兄弟情分牵绊。但权益和自己的重要性有着不可替代的关联。

止损原则

        另外要注意止损原则。比如,新开发某商业产品,需要考虑最坏的情况,定下止损底线。如果触及了底线原则,应立刻罢手撤出,不要拖沓。商业操作大多会失败,不要侥幸一定成功而无限投入,避免因创业而返贫。

表达沟通能力

        情商不好的一个重要表现是表达能力和沟通能力不足。大多数程序员性格沉闷、不善言辞,给人一种榆木疙瘩的感觉。

        笔者当年也是如此。为此,我专门参加了保险公司三天的新员工封闭集训,以增强表达沟通能力。此外,对客户反复讲解产品也能逐渐锻炼出表达能力。

利益分析法

        情商不行还可以用智商弥补,使用严密的逻辑思维来补充情商的不足,可采用利益分析法。

        大道至简,天下往来皆为利,这是千古真理。程序员应该抓住这个真理对客户抽象分析,建立利益数据模型。

        在这个数据模型中,顶层是各种人员角色抽象的定义。然后依次是这些人各自的利益点、利益点映射的实际问题、实际问题对应的解决方法,解决方法再落实到功能模块,功能模块包含着一行行代码。这种思维模式就是“黄金程序猿”的厉害之处。大量基层程序员只能考虑到最后一层,不能突破思维层次就不能升级。

技术工具论

        程序员们经常争论哪种编程语言更好,在我看来这种争论略显幼稚。我现在坚持技术工具论,所有的技术都是为了解决问题而使用的工具。工具的使用是分场合的,锤子和锯子不能相互替代,也不会因为出现电动工具而淘汰。

        比如,笔者擅长C#语言,JS、SQL、XML也会。虽然不会写java程序,但能看懂。其他各种新潮技术在工作需要的时候就学习。

        学海无涯,人没有精力学习过多的知识,只能现学现用。一些人学习很多最新的技术框架,很多是为了满足虚荣心,实在不值得。技术是干活的工具,程序员就是要实在的。

技术的价值

        上文的“技术工具论”引申出了技术的价值,也就是“解决实际问题是检验技术价值的唯一标准”,这也是“实践是检验真理的唯一标准”在技术领域中的体现。

        技术是解决客户问题的,因此优秀程序员的技术价值观是朴实无华的。笔者反对技术镀金,要做到尽量简单。因为简单就是可靠,可靠就是能重复利用,重复利用就是省钱,就能创造效益。笔者曾写过《打破牢笼,展望更高层次的世界》的文章,也提到不少相关思想。

        因此,有价值的代码大多是简单的代码,能用上好几年而不被淘汰。虽然简单代码的行数会比复杂代码行数多,但可维护性好,总体拥有成本低。反观复杂隐晦的代码,其价值往往很低。

行业积累

        技术和特定行业结合起来才能发挥更多的价值。优秀的程序员必须知晓行业的业务知识,对行业发展有独立的思考和实践。因此,软件外包行业不可能出现“黄金程序猿”。

        比如,笔者长期从事医院软件行业,对医院业务不是文盲,对局部领域很熟悉。对于一些不了解的内容稍微讲解一下就能心里有底。既有总体概念,又能把握局部。

代码规范

        如何写出简单的代码也很简单。把代码书写规范背下来,牢记于心,简单地照着规范写代码即可。

        大多数公司有代码规范,有很多共性也有各自的特点。公司日常管理固然要检查规范执行情况,但优秀的程序员已经将代码规范融入骨髓中,其写出的代码就是规范。

文档

        代码之后就是写文档。写文档是很枯燥的工作,我也觉得难受。但没办法,要成为一名优秀的程序员总得闯过这关。

        但写文档不是终点,还要学会制作PPT。因为用户不会看代码如何好,而是要看软件的运行效果,运行效果就要靠PPT展现。

        程序员制作PPT的水平大多不行,我也一样。于是我发展了另外一种方式来发挥能力,那就是写文章公开发布。比如,写博客。

        写文章是成为一名优秀程序员的必须关卡,有几大好处:一是锻炼文笔;二是锻炼思维;三是扩大影响力;四是积累写书的素材。

        我以前在博客园发布了很多技术文章,在2008年成为微软MVP,写过C#编程书。近几年深耕医疗软件行业,就选择在医疗行业中坚持发布文章。比如,我经常发文讨论医院软件如何解决医院的问题、软件的大致架构和原理等。这些文章都逐渐产生了广泛的影响力,并为公司销售部导入很多流量,从另一层面支撑了公司发展。

小结   

        本文是我的经验之谈,是经过近二十年的积累而得。期间经历了很多汗水、泪水甚至人生的绝境,实属不易。通过以上内容就有可能成为一名优秀的程序员,可当公司CTO、首席架构师等技术高管。

        说容易做难,长期坚持更难。一名优秀的程序员需要十多年的长期不懈才能从量变到质变。需要每天都在学习思考和进步。这是一个严重违反人性的过程,但熬过来就有可能成为“黄金程序猿”。

【作者简介】

        袁永福:男,微软MVP,80后,南京都昌信息科技有限公司联合创始人,中国医院信息化领域知名软件技术专家,长期从事电子病历编辑器等行业核心技术的研发和推广,并直接为多家三甲医院提供软件技术支持及咨询服务。


近期热门文章

想加入HIT专家网专业交流群吗?请添加“HIT专家网”小助手微信好友后提交你的申请哦

(请注明姓名、单位名称、职务、主管技术或产品领域,以便有针对性加群)

【责任编辑:封诚】


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存