百分之五的神话
Posted 码农洞见
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百分之五的神话相关的知识,希望对你有一定的参考价值。
“我应该学习 C++ 还是 Java ?”,我会经常收到有关计算机职业建议的请求,我将尝试阐述我对选择计算机职业所涉及的真正问题的看法。
C++
以C为背景,以Simula(最早的面向对象程序设计语言,它引入了所有后来面向对象程序设计语言所遵循的基础概念:对象、类、继承。)思想为基础。C++语言的程序因为要体现高性能,所以都是编译型的。但其开发环境,为了方便测试,将调试环境做成解释型的。
为了理解C++语言为何既令人不愉快且复杂,同时又是精心设计的,必须要牢记C++中所有内容的主要设计决策:与C. Bjarne Stroustrup(该语言的创造者,即“C++之父”)的兼容性决定。这样的设计似乎是为了可以让大量的C程序员透明地转移到对象(代指C++)上:允许他们在C++下编译他们的C代码。这是一个巨大的限制,一直是C++最大的优势......而且也是它的祸根。这就是使得C++成功的原因,也是使它复杂的原因。
Java
一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java前身叫Oak(根据嵌入式软件的要求,对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,因生成硬件的风险过大无法进入市场而被搁置)。互联网的蓬勃发展给了Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台,由于它是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java(在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语)。
在这里并不是和那些已经知道自己使命的人聊,因为无论别人怎么说,你都要去做,你已经知道答案了:你当然会学到 C++ ,Java ,Python 和许多其他语言和技术。即使你只有20岁,你也已经知道其中几种语言。
当 Internet 刚兴起时,你所要做的就是花一些时间学习html,就可以找到一份工作并赚到很多钱。但是,当情况恶化时,你很快就会发现需要的技能层次结构很深。HTML 程序员(例如劳工和石膏板工)排在第一位,而高技能的码农和木匠则被保留。我想在这里说的是:除非你准备致力于终身学习,否则请不要从事这项工作。有时,编程似乎是一份报酬丰厚,值得信赖的工作,但确保这一点的唯一方法是,始终使自己变得更有价值。
举个例子:开发软件就像盖房子一样。我们并不是指每个在房屋上工作的人都一样。有屋顶工,水管工,电工,石膏板工人,抹灰工,瓷砖铺砌工,普通劳工,粗木匠,精整木匠,当然还有总承包商。这些中的每一个都需要一套不同的技能,这需要花费不同的时间和精力。 房屋建造也受制于繁荣和萧条的周期,例如编程。为了快速起步,你可能需要当普通劳工或石膏板工人工作,在那里你可以在没有太多学习曲线的情况下开始获得报酬。只要需求旺盛,你就可以稳定工作,而且如果没有足够的人来工作,你的薪水甚至可能会上涨。但是一旦经济低迷,木匠甚至总承包商就可以自己将石膏板挂起来。
分之五的神话
统计数据发人深省:50-80% 的编程项目失败。这些数字是如此广泛,因为人们不会吹嘘他们的失败,所以我们必须猜测。无论如何,这让世界听起来很不可靠。工程获得更好的结果,主要是因为它必须这样做。糟糕的软件通常只会惹恼人们,但糟糕的工程可以杀死人。
一个令人着迷的指标是:5% 的程序员的生产力是其他 95% 的 20 倍。如果这是一门科学,就像它声称的那样,我们可以弄清楚如何让每个人都达到相同的水平。
假设这遵循 80-20 规则。大约 80% 的程序员不读书,不参加会议,不继续学习,除了他们在大学学习的内容之外什么都不做。也许他们在一家大公司找到了一份工作,在那里他们可以一遍又一遍地做同样的事情。另外 20% 的人在他们的职业上挣扎:他们阅读、尝试学习、听播客、参加用户组会议,有时还参加会议。这 20% 中的 80% 还不是很成功;他们还在开始,还在努力。这 20% 中的另外 20% - 大约是整个生产力提高 20 倍的 5%。
如何成为这些神话般的 5% 中的一员呢?
这些人不是那些能记住所有动作,手指在键盘上飞来飞去,发出系统命令的人。根据我的经验,5% 的人必须努力到达那里,努力留在那里,而持续学习的过程才是关键。
您必须不断学习并自学新技术,但这并不是那么简单。学习更多关于编程的知识当然很好,但你不能仅仅学习更多关于编程的知识。例如,就在代码世界中,这里有两个最大的痛点:
- 代码读得比写得多。如果人们无法阅读您的故事,他们就无法改进或修复它。不可读的代码会带来真正的成本,我们称之为“技术债务”。
- 代码审查是发现软件缺陷的最有效方法,但我们通常“没有时间处理它们”。
总结
有些人对这个答案感到失望,但是实际上,我应该学习什么? C++ 还是 Java ?”,我将在这里重复一遍:我知道似乎所有的 1 和 0 都应该使一切具有确定性因此此类问题应该有一个简单的答案,但事实并非如此。这与做出选择并完成选择无关,这是有关持续学习和有时需要大胆的选择。相信我,这样你的生活会更加令人兴奋。最后为理想的求职者提供一些原则:
- 将学习作为一种生活方式。
- 知道在哪里以及如何获得新知识。
- 研究现有技术。
- 我们是工具使用者,即要善于利用工具。
- 学习做最简单的事情。
- 没有正确的答案……但总是更好的方法。
关注公众号『 码农洞见 』,每篇有进步,有你才狂热。
以上是关于百分之五的神话的主要内容,如果未能解决你的问题,请参考以下文章