面对新语言和跳槽,程序员如何保持技术优势?

程序员知识的半衰期有多长?通常人们经常说是5年。换句话说,你所知道编程知识的一半将会在5年内被淘汰。类似的观点是,“编程很糟糕,因为你几年前知道的东西现在都用不上了”。

咋一看,这似乎合情合理。毕竟,总有新的编程语言和技术源源不断地冒出来。不过,我却认为上面的观点是不正确的。编程知识比一些人所意识到的有更长的实用期。

语法并不难

着手学习一门新的编程语言。对非程序员来说,当你知道Java的时候学习Python就好像在你知道英语的前提下去学习法语一样。当然,但编程学习也并不是完全这个样子的,会有新的语法要学习,但这仅仅是表面上看起来有点难,所有编程语言的核心概念都是相同的。

使用任何一门语言编写一个程序,你会使用到像类型、数据结构和逻辑这样的基础知识。如果你已经了解了布尔函数、整型、浮点数和字符串,这些类型在新语言里也是类似的用法。当然像列表、集、字典和目录树这样的数据结构也是一样的,并且你使用的逻辑也将是算数运算、if语句、循环以及函数调用等等。

此外,像该使用哪一种算法、如何分解问题以及变量和函数的命名等关键技巧都能在新语言里面直接套用。这些都是在各种编程语言之中通用的编程知识。借用“没有银弹”里的术语:“语言的语法是偶然的知识,但如何编程才是至关重要的知识。”

库和工具也是这样。即使你一点也不明白新语言里的正则表达式应该怎么用,你也知道它们最可能都支持什么。找到关于怎么使用它们的知识并不难,难的是怎么使用它们,这才是有价值的知识。对于像IDE这样的工具也是这样的道理,你可能并不知道细节,但你就是知道它们能够做什么。

所以学习一门新语言并不是什么了不起的事情,但如果你跳槽了,可能仍有很多知识需要学习。我把知识分为以下3个维度:

3个维度的知识

编程:这个层次的知识是编程语言、范式、技术和工具。就像我上面所说的,即使像语法这样的细节可能完全不同,但各种编程语言中的很多核心概念是相同的。

域:这就是你知道的编程里用到关于环境的知识。例如,如果你在电信工作,就是关于各种协议如何工作、如何处理短信、如何计费和监控等之类的知识。你在某个部门工作的时间越长,你对这块了解的就越多,你对工作的贡献可能就越大。

代码库:这个是要看公司的。当你已经在某个公司工作了很长时间时,你就会明白你的编程方式:你明白哪些事情做完了,哪些部分是棘手和无法凭直觉做出判断的,为什么某件事情要用某种方式来做的整个过程等等。

活到老,学到老

作为一个程序员,当你在以上3个维度的知识都很健全时,你才是最有价值的。如果你这时候跳槽,不可避免的是你一开始将会对新的代码库一无所知,你就不得不开始认真工作和学习。

然而,即使你跳槽后,你学到的编程和域的知识还是有用的。掌握几门编程语言会给你更多的参考意见,让你明白事情是怎么用不同的方式来完成的(即使基本原理一样)。通常来说多读点软件开发的好书也是不错的。

最后,我认为能让软件开发变得有意思和让人兴奋的部分原因是总能学到新的东西。你永远都不会厌烦,所以保持学习的状态吧。你学到的大部分只是都会让你变成一个更优秀的程序员,即使每年都有新的编程语言不断被发明出来。

免费领取LAMP兄弟连原创PHP视频教程光盘/《细说PHP》精要版,详情咨询官网客服:

http://www.lampbrother.net

时间: 2024-10-08 08:33:44

面对新语言和跳槽,程序员如何保持技术优势?的相关文章

新入职的程序员如何更快的融入项目当中?

最近,我们项目中新入职的程序员比较多,于是我们花上了15分钟,就"新入职的程序员如何更快的融入项目当中?"这个问题进行了讨论. 下面是讨论的结果总结,现在和大家分享一下,希望对新人或者项目管理者有一些有益的启发,则不枉我写这篇文章. 1.解bug可以很快上手 2.善于问问题,问周围同事 3.看什么时候加入的:如果加入项目比较晚的话,一定要看项目上已分享相关文档. 4.保持和做一个类型产品的同事的频繁交流. 5.不耻下问,一定要多问. 6.了解项目和产品流程. 7. 问的时候,头一次理解

已35岁的C++语言重新获得程序员青睐:C++20将于年底完工

已经35岁的编程语言C++,依然深受程序员们的青睐. 在TIOBE公布的2019年4月编程语言指数中,C++居第三位,指数同比增长1.62%. 作为C语言的扩展,C++在1985年创建,最新的标准化版本C++17已经获得了大量编译器的支持,包括微软Visual Studio.GNU Compiler Collection (GCC)和Clang等.创一个小群,供大家学习交流聊天如果有对学C++方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学C++能够持之

程序员如何选择技术方向

程序员如何选择技术方向 池建强12月09日 17:53 分享到: 程序员 技术方向 分类 : 互联网 摘要 : 程序员三部曲之第三篇「程序员如何选择技术方向」——两个励志小故事 http://chijianqiang.baijia.baidu.com/article/39179 最近写了「当程序员老去」「程序员真正的价值」两篇文章,传播甚广,今天是第三篇:「程序员如何选择技术方向」,史称「程序员三部曲」. 那之前写的几篇程序员文章算什么呢?算前传吧.以后再写程序员文章算什么呢?算后记吧. 200

不要再迷茫了,程序员如何选择技术方向

最近写了「当程序员老去」「程序员真正的价值」两篇文章,传播甚广,今天是第三篇:「程序员如何选择技术方向」,史称「程序员三部曲」. 那之前写的几篇程序员文章算什么呢?算前传吧.以后再写程序员文章算什么呢?算后记吧. 2008年秋天的一个午后,温暖的阳光透过落地窗落在我面前这个长长的写字桌上,桌子对面坐的是一个瘦小的程序员,他的名字叫小明,小明有些茫然,他看着我,不知道该说些什么. 程序员都是很严谨的,我不得不首先发出一个 System Call: 你在客户现场这半年做什么工作? 写单元测试. 还有

黑马程序员 ---------- Java网络技术之 ---正则表达式 (Day06)

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 正则表达式 正则表达式:基本知识 1  字符,   2 字符类 , 3 预定义字符类 , 4 边界匹配器 ,5 Greedy 数量词,6 Logical 运算符 详解: 1 字符 x   字符 x \\ 反斜线字符 \0n 带有八进制值 0 的字符 n (0 <= n <= 7) \0nn 带有八进制值 0 的字符 nn (0 <= n

R语言笔记 提醒程序员注意的一些事项

经验丰富的程序员通常会发现R语言的某些方面不太寻常.以下是这门语言中你需要了解 的一些特性. 对象名称中的句点(.)没有特殊意义.但美元符号($)却有着和其他语言中的句点 类似的含义,即指定一个对象中的某些部分.例如,A$x是指数据框A中的变量x. R不提供多行注释或块注释功能.你必须以#作为多行注释每行的开始.出于调试目的, 你也可以把想让解释器忽略的代码放到语句if(FALSE){... }中.将FALSE改为TRUE 即允许这块代码执行. 将一个值赋给某个向量.矩阵.数组或列表中一个不存在

《程序员的呐喊》:一个熟悉多种语言的老程序员对编程语言、开发流程、google的战略等的思考,比较有趣。 五星推荐

作者熟悉二三十种编程语言,写了20多年代码.本书是作者对编程语言.开发流程.google的战略等的思考.比较有趣. 前面部分是作者对编程语言的一些思考.作者鄙视C++, Java,面向对象.比较有趣的是作者把编程语言和思想划分为自由和保守两大阵营.自由派希望快速发布,容忍bug和安全上的缺陷,保守派则重视安全和稳健 作者认为,设计优秀的弱类型系统比同样优秀的强类型系统更有竞争力. 作者推崇精简,认为代码最大的敌人是体格,也就是代码的行数. 作者认为Perl和Python两种语言的出现时间差不多,

一线大厂逃离或为新常态,大龄程序员改如何选择?

近日有网友爆料小米将从北京迁往武汉南京的政策,在2019年年底3月前完成搬迁的员工可享受3万元补贴,可申请当地人才公寓. 按照这份公告的爆料,小米员工从北京"搬迁"到武汉南京后,工资待遇基本不变,公司会为员工提供15天酒店住宿补贴,标准为400元/天.除此以外,还有3万元的搬迁福利费,但是领取过的员工必须在新工作地服务满2年. 住房方面,小米可为员工提供人才公寓,武汉租金为1000元/套,南京租金为2000-3000元/套,想要购房的员工不受当地限购政策影响,可立即获得购房资格. 去年

解放程序员!这项技术带来App开发革命

做为一名产品经理,你是否遇到过这样的窘境,“帮我把字体调成16号呗,颜色变成#FFFF00FF,老大说这里最好改一下”,作为一名app的开发只能无奈但心里窃喜的告诉你,“只能等下个版本了,必须要重新发布才能改”,如果你问为什么不能改了就生效啊,那说明你对技术的理解要么真的很差,要么你就是知道这项React-Native新技术所爆发出来的力量. React Native是Facebook推出的一个用JavaScript语言就能同时编写iOS,Android,以及后台的一项技术,今年9月发布了and