只有烂程序员才相信世界是由技术驱动的
转自知乎专栏(黑白互联网)作者:佯良
大概2个月前陆奇的一篇文章刷屏:“一个优秀的程序员,要相信世界是由技术驱动的”,我觉得这句话是狗屁,不过是资本家用来哄骗程序员的。我认可陆奇的五点要求,但这些只是程序员的本职工作。
别忘了,去掉程序员的职业身份,他们还是一个个活生生的“人”。
只有烂程序员才相信世界是由技术驱动的,优秀的程序员会意识到世界是由资本和权力驱动的。
人,是一种社会性动物。技术也好,商业也罢,都只是用来解决社会问题的工具。以前我认为技术是面向机器的,现在明白了,其实真正优秀的、可靠的技术,都是面向人类的。你在优化设计模式的时候,不是在优化机器,而是为了让“人”维护起来更方便;你在优化算法的时候,不是在节约内存,而是为了让“人”拥有更好的用户体验(即速度);你在做一个GUI的时候,不是在与机器对抗,而是为了让数据管理更加方便。一切因为人,一切为了人。大家都知道早期的计算机是用来计算弹道的,但这并不是为了炸弹,而是为了炸人。
我的意思是说,程序员在做好本职工作的时候,必须清晰的认识到,你所做的一切,你所设计的一切,最终是为了服务于什么。
这是你保持竞争力的前提。否则,你就等着永远被产品经理和项目经理折磨吧。
我见过很多技术人,问我“茴”字的三种写法,我一概直言不知道。这一方面是“知之为知之,不知为不知”;另一方面,也是我不想纠结在所谓“原理”上的态度体现。人类为什么创造工具?是为了节约时间,用锤子的人需要知道锤子怎么做吗?诚然,计算机技术一定不像锤子那样简单,其复杂度可以绕南极一圈。我不是在鼓吹不去学习原理,原理固然重要,但是完全可以点到为止。这点其实与陆奇所说的“站在巨人的肩膀上做创新”是一致的,如果别人已经做了,就请直接拿来用,不要重复造轮子。
深究原理,站的太低,可以影响的也非常有限,你最好学会在别人的基础设施上构建应用。
程序员,最不应该做的事情就是自己骗自己:“整个世界终究是为技术所驱动的”。事实上,这个世界上,最不缺的就是技术,技术的问题从来都不是问题。世界的参数太复杂,不是一两个对象就可以解决的。真正困难且磨人的,永远都是“人”的问题。我在自己做产品的同时,也会去做销售,在吃了无数次闭门羹,经历过很多次谈三个月谈崩的客户后,才深知“人性”的复杂。
我不知道为什么,很多程序员在听到“销售”这两个词的时候,总是露出一个嘲讽脸。是,你是读了很多书,你掌握了很多复杂的算法,还做了很多高大上的东西。但是,你可曾想过,没有销售,谁把你做的东西变现,你的工资是凭空出来的吗?销售出去不停被人拒绝,你能经受得住这种心理压力吗?你可知道,特斯拉在命悬一线的时候,是马斯克下令“人人皆销售”才把公司从死亡边缘拉回来。
我也不知道,为什么现在的程序员见谁都看不起,仿佛安静的自己在掌控整个世界,却看不清自己只是棋子的事实。你们口口声声说,互联网公司重视技术,对,你们把技术做的很好,但是技术人的地位谁不是心知肚明。社会需要坐班拿加班费的程序员,也需要看清事实不再为老板卖命的活生生的“人”。
在做好本职工作后,多了解业务、站在更高的角度构建上层建筑、接受世界是由资本驱动的事实,你get到了吗?
欢迎工作一到五年的Java工程师朋友们加入Java架构开发:744677563
本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
论编程思想
从第一台计算机诞生到现在七十多年,计算机一直遵循着冯哥提出的以二进制为计算基础,以运算控制存储及输入输出五大组件构成的体系架构,硬件的发展从晶体管到中小规模集成电路再到大规模及超大规模集成电路,体积越来越小、能耗越来越低、功能越来越强、价格越来越便宜,便携化网络化和智能化将是未来的发展趋势。 个人对硬件的体验还停留在二十年前奔腾166跳线超频到200风冷不开盖不发烫不死机的美好回忆中(可惜主板不支持否则一定挑战一把233水冷)。和几十年不变的硬件体系相比软件工程思想却发生了巨大的变化,经历了面向过程(POP)到面向结构(SOP)到面向对象(OOP)到面向接口(IOP)到面向服务(SOA)再到面向切面(AOP)的演变,不过后者的出现并不是消灭和取代前者,江湖门派总爱争论哪种思想先进哪种语言优秀,其实每种编程思想和语言各有其适用的应用场景,各有其擅长的解决之道。 面向过程(POP):面向过程的编程思想是伴随着计算机诞生最早出现的,一句话总结就是先干啥后干啥然后干啥最后干啥,程序看起来就是一个数据加算法的集合,数据以变量的形式在算法之间被调度流转和加工,这种模式与人类的日常活动非常相似,所以...
- 下一篇
Spring Cloud的核心特性
SOA和微服务的区别 其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别; 微服务架构强调业务系统需要彻底的组件化和服务化,一个组件就是一个产品,可以独立对外提供服务微服务不再强调传统SOA架构里面比较重的ESB企业服务总线微服务强调每个微服务都有自己独立的运行空间,包括数据库资源。微服务架构本身来源于互联网的思路,因此组件对外发布的服务强调了采用HTTP Rest API的方式来进行微服务的切分粒度会更小总结:微服务架构是 SOA 架构思想的一种扩展,更加强调服务个体的独立性、拆分粒度更小。 为什么考虑Spring Cloud Spring Cloud来源于Spring,质量、稳定性、持续性都可以得到保证Spirng Cloud天然支持Spring Boot,更加便于业务落地。Spring Cloud发展非常的快,从16年开始接触的时候相关组件版本为1.x,到现在将要发布2.x系列Spring Cloud是Java领域最适合做微服务的框架。相比于其它框架,Spring Cloud对微服务周边环境的支持力度最大。对于中小企业来讲,使用门槛较低。...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7设置SWAP分区,小内存服务器的救世主