打破牢笼,展望更高层次的世界

打破牢笼,展望更高层次的世界
--------------------------------------------------------------
笔者袁永福是一个十多年的老程序猿,一穷二白的出来创业多年,期间经历许多曲折和磨难,成功的在炮火连天的商业战场上活了下来,并持续发展中。其中不少体会,于是提出本文的主题--打破牢笼,展望更高层次的世界。
回顾过去,我认为每个程序猿都关在一个透明的牢笼中,限制了思维、蒙蔽了眼界、蹉跎了岁月而不自知,如果不尝试走出去是一辈子都不能感知到牢笼的存在。这个牢笼就是技术本身。
一些程序员就要说,我们就是靠技术吃饭的,天天考虑各种编程技巧,技术怎么成为束缚我们的牢笼呢?那是因为很多人只是看到软件技术的表象而没看到本质。[袁永福原创]
孙子兵法说:不知兵之害者不能尽用兵之利也。套过来说,不知技术之害者不能尽用技术之利也。技术也存在有害的一面,它是程序猿谋生的工具,同时也是关着程序猿的牢笼。为什么是牢笼呢,这就涉及到技术的两个本质:社会本质和价值本质。
现在信息化社会是分裂的,一边是普通的自然人,一边是计算机,也就是机器。普通人类和机器之间存在着巨大的壁垒;人类擅长思考、创新、情感;[袁永福原创]机器擅长记忆和精确计算。人类不能理解机器,机器不能理解人类。而我们程序猿就是帮助沟通人类和机器,各种软件就是人类和机器中间挖掘出来的管道。因此在人类社会中,技术的社会本质就是挖掘管道。只不过有的管道宽敞笔直,有的像老鼠洞一样窄小曲折。
那么如何挖掘宽敞笔直的管道呢?这就涉及到技术的价值本质了。
马克思的经济学中,价值决定价格。程序猿的价值是由其编写的软件的价值决定的,而软件的价值是由客户的价值决定的。因此技术的价值最终是由客户的价值决定的。如果没有给客户带来价值,则技术是毫无价值的,程序猿也是失败的。[袁永福原创]那么如何给客户带来价值,那就是解决客户的痛点,如何得到痛点,那就从客户需求中挖掘,如何得到客户需求,那就需要和客户足够多的有效率的沟通。于是技术的价值和客户沟通是必要非充分条件。沟通的好未必会带来价值,但没有沟通肯定不能产生价值。
技术的价值除了满足客户需求外,还有一个因素就是应用范围。也是有效客户数越多,处理了越多的信息,价值越大。而且满足客户需求不等于有效客户数多,此处需要市场销售人员的辛勤推广。
更进一步的讲,除了技术,数据本身也是用得越多越有价值。比如网页搜索引擎中就以网页的引用次数作为很重要的价值参考的。可以说软件只有被人用上才有价值,没有人用上就是一堆垃圾。
认清了技术的本质,再回头看看技术如何成为程序猿的牢笼。
人的智力是有限的,只能擅长一部分而另外一部分弱小。另外人的能力是用则涨,不用则废。我们程序猿长期从事技术工作,有意无意的以机器的方式思考问题,擅长和机器沟通,逐渐的荒废了和人的沟通能力。很多程序猿性格内向,技术工作确实需要性格内向些,因为内向的人大多能坐得住,才能长期集中精力钻研各种技术问题。[袁永福原创]但是导致一个很严重的问题,程序猿除了讨论技术问题,对其他的兴趣不高,活在机器的世界中。导致和人的沟通能力明显下降。很多电影中描述黑客也是这种套路。于是出现两个不好的系列反应:沟通能力差--不能获取客户需求--无法做出正确的软件--不能给客户带来使用价值;沟通能力差--不能充分向客户展示软件功能--客户数量少--不能给客户带来规模化的价值。
大多数程序猿存在这种问题,于是企业为了生存,使用了大量的市场销售人员来帮助弥补程序猿的缺陷。市场销售人员具有2个功能:挖掘客户需求;推广软件使用范围,也就是提高客户数量。
因此一个可持续性发展的软件公司,技术和销售是同等重要的,谁都不能缺。因此一些程序猿认为自己技术很好而就认为创业一定能成功的想法实在是非常幼稚。同时光靠人脉关系而没有足够技术实力的软件公司也是不长久的。
因此从公司整体团队来看,消瘦(销售)猿其实是程序猿的搭档。不过文人大多有点酸,程序猿也相似。程序猿之间相轻,同时程序猿也很瞧不起市场销售人员,觉得那帮消瘦猿成天吃喝玩乐,还尽给程序猿添麻烦。
程序猿鄙视消瘦猿的程度大多大于消瘦猿鄙视程序猿的程度。因为程序猿有牢笼,而消瘦猿是没有牢笼的。不过不能说消瘦猿对程序猿是有多大优势的。[袁永福原创]因为在当下自由市场竞争的环境下,消瘦猿也是很苦逼的,也是分为层次的。程序猿的世界中有着大量的码畜在熬夜加班,而消瘦猿的世界中也有着很多低端人士在苦苦挣扎。程序猿的寿命不比消瘦猿的短。笔者见过一个做弱电的老板,痛风而导致手背上长着鸡蛋大的结块,但还是要天天喝酒应酬。
不过消瘦猿确实比程序猿多点牢笼方面的优势,[袁永福原创]具体表现为各类公司的老板大多是市场销售出身的。[袁永福原创]特别是在有中国特色的社会主义市场经济环境中,由于行政频繁干预市场,强化了这种现象。
我们现在可以理解到,实现技术的价值最大化是一个很复杂的系统工程。“需求调研-系统设计-编码-测试-部署和运维”这个流程只是这个系统工程中的一部分。跳出这个范围,仍然有着更高层次的世界。
那么我们程序猿如何打破牢笼、展望更高层次的世界呢?
那就是做到2个重构:代码的重构和人性的重构。
代码的重构只是一个代表,完整的意思就是不断提高自身的技术水平,在千万个屌丝程序猿中异军突起。人无我有,人有我优。掌握有不可替代的核心技能。编程的基本功和高级技巧都要信手拈来。而这就要日积月累的学习进步和一些天赋。
人性的重构就是不断的重构自己的思想。中国这30多年的崛起就起源于“解放思想,改革开放”。而当下的互联网思想就是一种更为激进的“解放思想”,于是能造就一批企业的急速崛起。
程序猿在重构自己的思想就是压制思想中的机器属性,弥补人的属性。重视起和同事、和客户的的交流和沟通。需要揣测出人的各种表面反应后隐藏的真实意图。[袁永福原创]就是要“妄猜圣意”。
程序猿通过和客户的沟通,了解客户需求,就能逐渐掌握行业应用业务知识,只有技术和业务知识结合起来才能发挥最大的价值。笔者一直不看好软件外包的程序猿,就是因为软件外包行业无论从技术的积累还是行业业务知识的积累都是很差的。
人性的重构还有一个重点就是项目管理能力的提升。这也是以和同事的沟通为基础的。技术高手的一个通病就是追求完美,当看到手下的小弟做出的软件粗制滥造,心中不爽,于是凡事都自己做。这样不能起到一个示范作用,不能复制自己的能力;也是一种用战术的勤劳来掩盖战略的懒惰。不能让自己的价值最大化。
当一个程序猿经过上述的改进,掌握了扎实的技术,理解行业需求,能带领团队。那么CTO的职位指日可待。那就恭喜这位程序猿初步打破了牢笼,探出半个身子,就能够窥见更高层次的世界了。
那么如何更完全的打破牢笼而跳出来呢?简单粗暴的说法就是要把软件卖出去、卖上价。技术加销售,割据一方;技术加销售加市场,争霸天下。这需要人的眼界、运气、天赋,需要天时地利人和。这种完全打破牢笼的程序猿实在是高手中的高手,精英中的精英了,已经不是程序猿这三个字所能描述的。这是笔者正在探求的境界,经验不多,谈论不了很多。而且完全具备这些能力的人基本上不存在的,现实当中只能是多个合作伙伴搭配着一起闯。[袁永福原创]不过程序猿没有强大的市场销售能力也必须要有基本的市场销售的意识。
最后祝那些积极向上的程序猿们好好学习、天天向上,早日打破牢笼,展望更高层次的世界。
-------
作者简介:袁永福,2008年微软MVP,2012年创立南京都昌信息科技有限公司,专门从事医疗信息化,电子病历行业,擅长C#和GDI+图形编程。另外招收南京程序猿,有医疗行业经验者优先,简历请发至28348092@qq.com。

转载于:https://www.cnblogs.com/xdesigner/p/break-self.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/424121.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring mvc学习(26):处理数据模型--从表单到controller传输数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

第一课 回归问题与应用

本系列是七月算法机器学习课程笔记 文章目录1 不同类型的学习2 基本术语与概念3 线性回归模型3.1 什么是线性回归3.2 损失函数3.3 最小化损失函数-梯度下降3.4 学习率有什么影响3.5 过拟合与欠拟合4 逻辑回归4.1 为什么要有逻辑回归4.2 什么是逻辑回归4.3决策边界线性边界判定非…

[推荐] TechNet 广播 SQL Server 2000完结篇

TechNet中文网络广播在之前已经推出了SQL Server 2000的基础系列和管理专家系列&#xff0c;使广大听众认识并掌握了SQL Server 2000的管理技巧。本次系列作为前两次系列课程的完结篇&#xff0c;将会从性能调优及维护的角度为广大听众提供了一道实用而精致的大餐&#xff0c;本…

spring mvc学习(28):get乱码解决

get请求乱码情况 编写一个RegistServlet处理用户的Get请求数据 View Code 运行结果发现输入中文提交后显示结果为乱码&#xff1a; jsp页面中 <meta http-equiv"content-type" content"text/html; charsetUTF-8">通知浏览器以utf-8解码 get请求…

第二课 决策树与随机森林

本系列是七月算法机器学习课程笔记 文章目录1 从LR到决策树1.1 决策树1.2 决策树的终止条件1.3 决策树划分依据1.3.1 信息熵1.3.2 信息增益1.3.3 ID3模型1.3.4 信息增益率1.3.5 基尼指数1.3.6 信息熵与基尼指数1.3.7 连续值属性2 回归树2.1 回归树构建方法3 从决策树到随机森林…

在ASP.NET中自动给URL地址加上超链接(好东东)

首先&#xff0c;要想在ASP.NET(C#)中使用正则表达式就必须把 System.Text.RegularExpressions 这个命名空间包含进来&#xff1a; using System.Text.RegularExpressions; 第二步是用正则表达式识别URL超链接&#xff1a; Regex urlregex new Regex("(http:\/\/([\w.]\/…

android apk 反编译

Apk文件结构  apk文件实际是一个zip压缩包&#xff0c;可以通过解压缩工具解开。以下是我们用zip解开helloworld.apk文件后看到的内容。可以看到其结构跟新建立的工程结构有些类似。java代码&#xff1a; |-- AndroidManifest.xml |-- META-INF | |-- CERT.RSA | |-- CERT.SF…

spring mvc学习(27):处理数据模型--从表单到controller传输数据续

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

第三课 SVM

本系列是七月算法机器学习课程笔记 文章目录1 问题2 key idea 13 key idea 24 key idea 35 key idea46 拉格朗日乘子求解7 核函数的发现学习SVM不要先看数学公式&#xff0c;这样把SVM的精华都丢掉了。学习SVM学习作者是如何构建出这样一个算法的过程。1 问题 无论线性分类、逻…

百度新闻的索引机制(二):智能聚类

百度新闻的索引机制(二)&#xff1a;智能聚类http://net.chinabyte.com/377/2520877.shtml 转载于:https://www.cnblogs.com/cy163/archive/2006/09/23/512337.html

spring mvc学习(29):modelandview向页面传输数据

创建maven项目就不说了&#xff0c;需要的找我前面的博客 pom.xml文件 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http…

C#远程开机

http://tryios.com/article/473.aspx C#远程开机 http://baike.baidu.com/view/1965454.htm 远程开机 http://www.cnblogs.com/whssunboy/archive/2007/12/05/984059.html C# 远程唤醒转载于:https://www.cnblogs.com/jacktang/articles/3309258.html

RESTORE DATABASE命令还原SQLServer 2005 数据库

今天在sqlServer20005 的management studio里使用bak文件还原数据库的时候,总是失败!Restore failed for Server ADANDELI. (Microsoft.SqlServer.Smo)An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfoThe bac…

第一百一十九期:支付宝历年双十一背后的技术揭秘

和过去10年一样&#xff0c;2019年天猫双11又创造了一个全新的纪录。这个数字背后&#xff0c;是数代支付宝工程师们殚精竭虑、不断突破技术难关。 作者&#xff1a;蚂蚁金服科技 自从有了双十一这个电商节日&#xff0c;很多技术人的生命轨迹都改变了&#xff0c;这种年度高…

第五课 机器学习中的特征工程

本系列是七月算法机器学习课程笔记 文章目录1 特征工程与意义2 数据与特征处理2.1数据采集2.2 数据清洗2.3 数据采样2.4 特征处理2.4.1 数值型2.4.2 类别型2.4.3 时间型2.4.3 文本型2.4.4 统计特征3 特征选择3.1 为什么做特征选择3.2 特征选择的方法3.2.1 过滤型3.2.2 包裹型3.…

局域主机做服务器,安装DNN,外网访问的解决办法

局域主机做服务器,安装DNN&#xff0c;外网访问的解决办法 问题&#xff1a; 如图&#xff1a;局域网主机IIS安装了DotNetNuke 4.0.x版本&#xff0c;设置虚拟目录为&#xff1a;dnn &#xff0c;安装好之后&#xff0c;内网用户通过http://192.168.19.9/dnn访问是没问题…

第一百二十期:终于有篇看的懂的B树文章了!

索引&#xff0c;相信大多数人已经相当熟悉了&#xff0c;很多人都知道 MySQL 的索引主要以 B 树为主&#xff0c;但是要问到为什么用 B 树&#xff0c;恐怕很少有人能把前因后果讲述完整。本文就来从头到尾介绍下数据库的索引。 作者&#xff1a;安静的boy 索引&#xff0c;…

csharp:Nhibernate Procedure with CreateSQLQuery and GetNamedQuery

<?xml version"1.0" encoding"utf-8"?> <hibernate-mapping assembly"Domain" namespace"Domain" xmlns"urn:nhibernate-mapping-2.2"><class name"DuCardType" table"DuCardType" la…

第六课 多算法组合与模型调优

本系列是七月算法机器学习课程笔记 文章目录1 前序工作流程1.1 数据处理1.2 特征工程1.3 模型选择1.4 交叉验证1.5 寻找最佳超参数2 模型优化2.1 模型状态2.2 模型优化12.3 模型优化22.4 模型优化32.5 模型优化4&#xff1a;模型融合2.5.1 bagging2.5.2 staking2.5.3 adaboost2…

我的分页代码

private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 if(!this.IsPostBack) { string PageIndexRequest.QueryString["PageIndex"]; if(PageIndexnull||PageIndex.Length0)//这种方法判断快一些 { …