Warning!程序员们小心被技术绑架
通常我们说程序员需要在某个技术方向上积累到一定的厚度,要能够运用技术有效地解决实际问题。可是当程序员在某一项技术上浸淫时间长了之后,却经常会出现另外的问题,那就是:看待问题时受限于自身的技术积累。
我打算从几个方面来谈这个话题。
一定有某一项技术最适合解决某个问题
有的人对 C++ 比较熟悉,在开始一个新产品或新项目,比如做一个 Android App ,就会考虑怎么用 C++ 来实现目标,于是就会去找可以用在移动端的 C++ 框架,比如 Qt ,比如 NDK + Native Activity ……这是一种受限于现有技术的情况,其实呢,我们可以跳过 C++ 的藩篱,直接找 Java 去!
在我看来,技术是用来解决问题的,当我们要解决某个问题实现某个目标时,技术可能有很多种,可能每种都可以实现,但不同的技术面对的难度、付出的成本一定是不一样的!对于公司、个人来讲,都应当选择综合成本最低的那项技术。
当我们做技术方案选型时,应当问“这项技术适合解决哪类问题?”、“这类问题最适合用哪种技术来解决?”,而不是问“我掌握的技术该怎么解决这个问题?”。
如果你总是想尽一切办法用已经掌握的技术来解决所有问题,虽然这种担忧未知害怕变化害怕尝试的心理可以理解,但我觉得这不是一种健康良好的心态,也不是一个有益的习惯,它其实发出了“你被所学技术奴役”的告警信号。
要知道,我们学技术是用来解决问题的,是要能够灵活有效的控制和运用掌握的技术,而不是把自己交给某项技术反受技术左右的。
一字槽口的螺钉就要用一字螺丝刀,内六角的螺丝就要用内六角的扳手。这是很直接很简单的道理,我们在生活中会下意识地遵循这种规则,而一旦我们面对技术这种相对复杂的事情,却往往不能回归到事物的本源,这是需要我们思考的。
换工作时拒绝换技术
当程序员熟练掌握了一门技术(比如 Java,C++,Qt,Spark……),他在选择新工作时就经常会主动给自己设置路障,不用 Spark 的公司不去,不用 Qt 的岗位不考虑……其实我觉得这是不必要的。
学习一门技术当然有成本,用精通的技术来解决问题会有得心应手驾轻就熟的感觉,能够事半功倍。这是非常好的。但是,等等!难道你真的打算一辈子把自己局限在某项技术上吗?难道你认为你干了N年程序员就只获得了这项技术?
我觉得不是这样子的。你熟练掌握了某门技术,这当然是你非常重要的收获。但是这绝不是最重要的,真正重要的是下面两点:?
学习能力?
解决问题的能力?
对,你没看错,这才是一个程序员在精通一门技术后真正的收获。
你通过掌握、精通一门技术发现自己的学习模式确认自己的学习能力,一通百通,再学其它技术就会快很多,因为你获得的有关学习的经验和认知是通用的。所以,我认为发现自己的学习模式强化自己的学习能力是真正核心、重要的收获之一。
还有,技术只是一把剑,这把剑的威力如何,就看使用它的人怎么样因地制宜审时度势的运用它。攻守之道,妙乎于心。真正的高手,摘叶飞花皆可伤人。这就是解决问题的能力了,同样的太祖长拳,在乔峰手里就有摧枯拉朽的气势和震慑人心的威力,这就是乔峰的本事,这个本事是独立于太祖长拳的。程序员也一样。所以,解决问题的能力是一种真正重要的收获。
如果你确认你已经收获了学习能力和解决问题的能力,那具体的技术就已经不重要了,它也不应该成为你选择新工作新产品的绊脚石。不设限,天高海阔任你遨游。
招人时限定精通某某技术
我们会发现,绝大多数公司在招聘开发工程师都会列出诸如“精通 J2EE ”、“精通 MySQL”、“熟悉 Hadoop”等非常细的技术要求。
对公司来讲,招聘拥有相关经验和技术的人才能够大大降低一个产品(项目)的成本,这本无可厚非,因为公司都是成本敏感的。但是对于程序员来讲,有时这是不公平的。
不公平体现在两点。一是没有相关技术经验的程序员会因此而失去学习新技术的机会,对于那些刚毕业不久或意图转换技术方向的人来讲则更是残酷的。二是拥有匹配技术的程序员,自身发展会因为公司的这种倾向而受到限制,甚至裹足不前,他们会觉得,原来你仅仅是想利用我已有的技术和经验来解决你的问题啊,技术人员的价值是在不断战胜新的挑战的过程中提高的,失去面对这种挑战的机会,他们的能力和水平就会原地踏步,甚至回落、下降。
其实在我看来,招聘人员时,拥有相关技术并不是最重要的,一个程序员是否具有学习能力和解决问题的能力才是关键!有了出色的学习能力,他一定能够快速掌握产品需要的各项技能;有解决问题的能力,他一定能够解决新产品开发中不时跳出的各种意外。也就是说,选择程序员时,公司更应该从一个人的才干和能力出发,而不是盯在某项具体的技术上,合适的人会带给公司更多,唯有把正确的事情交给正确的人,成功才可预期。
总之,不论是程序员还是需要程序员的公司,都应该从人才的核心出发,发现关键才干和能力,不要被具体的技术蒙蔽,不要让已有的技术成为包袱,不要让自己的视野受到不必要的限制。心不设限,将来就没有终点。
版权所有foruok,网站转载请务必保留出处,微信订阅号转载请先联系我。
Warning!程序员们小心被技术绑架的更多相关文章
- 【分享】熟练的Java程序员应该掌握哪些技术?
Java程序员应该掌握哪些能力才能算是脱离菜鸟达到熟练的程度? 1.语法:Java程序员必须比较熟悉语法,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息 知道是什么样的语法错误并且知道任 ...
- Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- 腾讯架构师分享的Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- PHP入门培训教程PHP程序员要掌握哪些技术
总有那么一群人,学个半吊子就急着找工作,面试题做不出来,吹牛都吹不来所以你只能低工资.PHP程序员要掌握哪些技术?那么兄弟连PHP培训 就来小结一下. 面试前请参考:(前三阶段完成80%在北京月薪5k ...
- PHP程序员要掌握哪些技术
PHP程序员要掌握哪些技术 第一阶段: (PHP+MySQL核心编程)面向对象编程MySQL数据库,MySQL的优化细节.HTTP协议,http也是我们web开发的基石.对我们了解PHP底层机制有很大 ...
- “大话架构”阿里架构师分享的Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- “大话架构”阿里架构师分享Java程序员需要突破的技术要点
一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...
- 要做Java程序员 需要知道那些技术 重点有那些
一.Java程序员 高级特性 反射.泛型.注释符.自动装箱和拆箱.枚举类.可变 参数.可变返回类型.增强循环.静态导入 ...
- 月薪3万Java程序员要达到的技术层次
要达到月薪3万,一般要在北上广深杭知名的互联网公司,同时要在某一个知识领域达到专家级别,而不是简单的掌握SSH那么简单.虽然对部分人有点难,但目标还是要有的,万一实现呢? 首先三万的月薪在BAT实在太 ...
随机推荐
- 读取复杂结构的yml配置项
1.yml配置项示例:(List的集合在第一项前面加 “-”) rabbitmqsetting: exchangeList: - name: e1 type: topic bindingList: - ...
- 读书笔记--Hibernate in Action 目录
1.理解对象/关系持久化 2.启动项目 3.领域模型和元数据 4.映射持久化类 5.继承和定制类型 6.映射集合和实体关联 7.高级实体关联映射 8.遗留数据库和定制SQL 9.使用对象 10.事务和 ...
- windows--"git安装" 及 "使用git上传项目到github" 详细步骤
一.下载安装包 https://git-for-windows.github.io/(放在任何一个你想放的地方(系统盘或非系统盘)). 二.开始安装 很简单,双击安装包,一直next下去,到了安装的最 ...
- 解决springmvc 中文post请求乱码的过滤器配置
在web.xml中添加如下配置 <!-- 过滤器 解决post乱码 --> <filter> <filter-name>characterEncodingFilte ...
- IO流10 --- 缓冲流(字节型)实现非文本文件的复制 --- 技术搬运工(尚硅谷)
字节型缓冲流,BufferedOutputStream默认缓冲区大小 8192字节byte,满了自动flush() @Test public void test6(){ File srcFile = ...
- golang之vscode环境配置
go语言开发,选择vscode作为IDE工具也是一个不错的选择,毕竟goland收费,老是破解也挺麻烦,除了这点,不过说实话挺好用的.vscode的话相对来说就毕竟原始,适合初学者. 1.vscode ...
- 洛谷P1003 [NOIP2011提高组Day1T1]铺地毯
P1003 铺地毯 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有 n 张地毯,编号从 1 到n .现在将这些地毯按照编号 ...
- Thinkphp 不足之处
1.报错机制 //控制器里面直接输出如下内容,代码不提示.TP报错机制已经开启 echo $aaaaaa; bbbbbbbbb; eco bbbbbbbb; 正常应该给出以下提示 Notice: Un ...
- C#截取字符串的方法小结(转)
1.单个字符分隔用split截取 string str = "GT123_1"; string[] strArray = str.Split('_'); //输出:sArray[0 ...
- 使用DIV+CSS布局网站的优点和缺陷
随着WEB2.0标准化设计理念的普及,国内很多大型门户网站已经纷纷采用DIV+CSS制作方法,从实际应用情况来看,此种方法绝对好于表格制作页面的方法. 如今大部分网站仍然采用表格嵌套内容的方式来制作网 ...