程序员编程知识经验总结

不知道你有没有听说过所谓编程知识也是有半衰期的?这个半衰期限很多人普遍认为是5年。也就是说,5年以后你现在所学的知识将会有一半被淘汰。

感觉听上去也算合情合理。毕竟,新的编程语言和技术在源源不断地面世。但是我要告诉你,编程语言比很多人想得都要“长寿”。

语法不是难点

对于Java程序员,学习Python就像说英语的去学习法语。当然这两者是毫无关联的。但是相同的是,都需要学习新的语法。语法只是表面上的不同,所有的核心概念都是相通的。
无论你换哪种编程语言去写程序,我们都可以借鉴其相似的类型、数据结构和逻辑等基础知识。如果你已经学过布尔值、整数、浮点数和字符串,那么一般情况下它们在新语言中的用法也是相同的。其他如列表、集合、库和树等的数据结构,以及算数运算、if语句、循环、函数调用等逻辑也是如此。
此外,像算法使用、分解问题、命名变量和函数等关键技能,是可以直接在新语言中使用的。这在编程语言中是通用的。
库和工具也是如此。即使你并不知道新语言中的某个具体表达式的使用,也能从蛛丝马迹中发现一二。找到如何使用的细节不难——难的是如何应用自如,这才是有价值的部分。工具也是这个道理,例如IDE——你可能并不知道相关细节,但是你知道你可以让它们去做什么。
所以学习一门新的编程语言真的没什么大不了的。不过如果你想要换工作,那么需要学习的东西就多了——至少这3个方面的知识你逃不掉。

3个方面的知识

编程。主要指的是编程语言、范式、技术和工具。就像我前面所说的,很多核心概念都是相通的,虽然在细节方面(语法)有所不同。
领域。这是指程序使用的环境,例如,如果你的工作是有关电信方面的,那么这指的就是有关于各种协议如何工作、短信如何处理、如何计费和监控等方面的内容。你在某个行业领域工作的时间越长,你能作出的贡献产出的价值就越多。
代码库。这在每个公司都是独一无二的。工作时间久了,你自然而然就会知道周围这些代码为何如此了。

保持学习

作为一个程序员,如果以上3个方面你都属于知识渊博的那一类,那身价自然就高了。如果你换了工作——这是不可避免的——那么对于这个新的代码库你自然又变得一无所知。这时候你需要做的就是开始新的学习和钻研。
但是,不要以为换了工作,以前学的编程知识和领域知识就没用了。多掌握几门编程语言能让你从多个角度看问题。此外,阅读一些软件开发的好书也蛮有益处的,例如《Code Complete》、《Clean Code》和《The Pragmatic Programmer》等。
最后,我想说的是,我认为软件开发之所以如此有趣和令人兴奋的原因是,总有一些东西是我们需要学习的。你永远不会觉得无聊和枯燥乏味。所以,请保持学习的状态。你所学的大多数知识都会有助于你成为一个更佳的开发人员,即使每年都有新的编程语言面世。

译文链接:http://www.geekwww.com/programmer-knowledge.html
英文原文:Programmer Knowledge
翻译作者:极客网 – John

(0)

相关推荐

  • 程序员编程知识经验总结

    不知道你有没有听说过所谓编程知识也是有半衰期的?这个半衰期限很多人普遍认为是5年.也就是说,5年以后你现在所学的知识将会有一半被淘汰. 感觉听上去也算合情合理.毕竟,新的编程语言和技术在源源不断地面世.但是我要告诉你,编程语言比很多人想得都要"长寿". 语法不是难点 对于Java程序员,学习Python就像说英语的去学习法语.当然这两者是毫无关联的.但是相同的是,都需要学习新的语法.语法只是表面上的不同,所有的核心概念都是相通的. 无论你换哪种编程语言去写程序,我们都可以借鉴其相似的类

  • Idea公司真牛逼发行最适合程序员编程字体

    正文如下: JetBrains年初的时候推出了一种新字体,即JetBrains Mono,它是专为开发人员设计的. 推荐阅读: https://mp.weixin.qq.com/s/iF1d_I6cij9L-MeQ2QMewg JetBrains表示: 在当今的大部分时间里,我们作为开发人员都在看代码.我们一直在寻找最佳字体,以使我们更容易在屏幕上查看文本. 但是,许多流行字体中的逻辑并不总是考虑到通读代码和阅读书本之间的区别. 我们的眼睛以非常不同的方式沿代码移动,通常必须垂直移动和水平移动,

  • 程序员编程从初级到中级的10个秘诀

    这个观点很好,有关程序员如何从初级跃升到中级的信息极少.以下是为了实现这种转变需要你去做的10件事. 1.学习另一门语言 其实你学的是哪一门语言并没有关系,但是学习另一门语言(不管你已经了解多少种语言)将把你打造为更好的程序员.能学会一门与你日常使用的语言风格迥异的语言则更佳.打个比方,如果你是C#程序员,学习VB.NET或者Java对你的帮助就没有学习Ruby或者Groovy大. 我说"学另一门语言"的意思是要真正学会它.学习一门语言包括三个领域的知识:语法.内置操作符和库,以及&q

  • 程序员编程十条戒律

    1.- DRY: Don't repeat yourself. DRY 是一个最简单的法则,也是最容易被理解的.但它也可能是最难被应用的(因为要做到这样,我们需要在泛型设计上做相当的努力,这并不是一件容易的事).它意味着,当我们在两个或多个地方的时候发现一些相似的代码的时候,我们需要把他们的共性抽象出来形一个唯一的新方法,并且改变现有的地方的代码让他们以一些合适的参数调用这个新的方法. DRY 这一法则可能是编程届中最通用的法则了,目前为止,应该没有哪个程序员对这一法则存有异议.但是,我们却能发

  • 新手程序员编程必不可少的工具

    对于程序员来说,编程是一个相当耗费时间和经历的过程,而在这个过程中,一个称手而高效的工具就显得非常重要. 加上近期有不少小伙伴在问一些方方面面的工具,所以今天就总结了一些新手编程能用上的工具一一介绍给小伙伴们,希望对大家的学习和工作有所帮助. 1.Notepad++ 老规矩,每次工具第一推荐,Notepad++是一套非常有特色的自由软件的纯文字编辑器.有完整的中文化接口及支持多国语言编写的功能(UTF8 技术).它的功能比 Windows 中的 Notepad(记事本)强大,十分适合当作编写电脑

  • PHP程序员编程注意事项

    1.不转意html entities   一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意. echo $_GET['usename'] ; 这个例子有可能输出: <script>/*更改admin密码的脚本或设置cookie的脚本*/</script> 这是一个明显的安全隐患,除非你保证你的用户都正确的输入. 如何修复 : 我们需要将"< ",">","and" 等转

  • Java程序员编程性能优化必备的34个小技巧(总结)

    1.尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面: 控制资源的使用,通过线程同步来控制资源的并发访问: 控制实例的产生,以达到节约资源的目的: 控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信. 2.尽量避免随意使用静态变量 要知道,当某个对象被定义为static变量所引用,那么GC通常是不会回收这个对象所占有的内存,如: 此时静态变量b的生命周期与A类同步,如

  • Java 程序员容易犯的10个SQL错误

    Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用"模式-模式",举个例子,模式可以应用到任何地方,而且都可以归为某一类模式) 心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫) 但当Java程序员写SQL语句时,一切都不一样了.SQL是说明性语言而非面向对象或是命令式编程语言.在SQL中要写个查询语句是很简单的.但在Java里类似的语句却不容易

  • PHP程序员基本要求和必备技能

    昨天在图书馆看书,看到<电脑报>上的一篇文章,题目为<30岁不是程序员的终点>,(详情可参看<电脑报>2010年第19期,G14版数字职场的文章).大致内容是采访一位30岁的PHP高级程序员,他讲了一些关于PHP程序员必备知识,感觉很是受用,于是做了些笔记: 一名PHP程序员的基本要求: 1.精通html.CSS.JS等网站前端技术. 2.掌握PHP编程技术. 3.了解Linux及Apache.MySql 4.知道基本的网络原理,了解TCP/IP协议. 5.了解基本的软

  • 一个30多年编程经验的程序员总结

    在我30多年的程序员生涯里,我学到了不少有用的东西.下面是我这些年积累的经验精华.我常常想,如果以前能有人在这些经验上指点一二,我相信我现在会站得更高. 1.客户在接触到产品之后,才会真正明白自己的需求. 这是我在我的第一份工作上面学来的.只有当我们给客户展示产品的时候,他们才会意识到哪些是必须的.给出一个功能性原型设计远远比一张长长的文字表格要好. 2.只要有充足的时间,所有安全防御系统都将失败. 安全防御现如今是全世界都在关注的大课题.大挑战.我们必须时时刻刻积极完善它,因为黑客只要有一次成

随机推荐