首页 > 酒店新闻 > 公司新闻

AG真人-官方平台|极光推送:软件开发技艺精进之路

发布时间:2025-10-17 11:21:46    次浏览

简评:作者用一个易于理解的结构来描述编程的技艺层次,以强调编程基础的重要性。作为非CS科班出身的我表示,要找时间补一补数据结构 与算法了。 软件开发的复杂度在一天一天地增长。几乎每年都有新的框架出现(像 AngularJS, ReactJS),有新的构建工具(像 Webpack, Rollup)。即使是Java也是每年都有新版本(ECMA 2015, 2016, 马上就来了 2017)。同样的情况也出现在软件开发的其他领域。例如移动应用开发。2 年前 Apple推出了新的编程语言 Swift。iOS操作系统几乎每年都会放出新版本,有新的功能与 API。这对软件行业是好事。但是对于我们软件开发者来说,是个巨大的负担。很遗憾,人的智力的可能性是令人佩服的,但也是有限的。你不能(也不应该)懂得所有的新框架与构建工具。软件开发者能够做什么呢?答案是 - 采取有效的学习策略:选择编程基础。编程基础包括算法、数据结构、编程语言知识。如果你想要成为牛 B 的程序员,毫无疑问你应该持续地掌握流行的技术(像 React, Redux, Angular)。与此同时,放同样多的精力在常规基础上,如算法、数据结构、编写可扩展与清晰代码的原则。这篇文章是我本人(原文作者)在处理开发复杂性方面的思考。你也会找到对于软件精进过程的有意思的划分,我把这些叫做:倒三角形、矩形、正三角形。1. 概念编程基础的一个重要部分是算法。算法是对操作的逐步描述,这些操作应该被执行以得到结果。具体地说学习算法是个有价值的体验。学习与精通算法可以培养解决复杂问题的直觉。强大的直觉是牛 B 程序员的标志。当然这与经验与原则与训练是分不开的。数据结构也是另外一个基本的部分。学习数据结构让我们知道如何正确地表达一个应用中的信息。恰当选择的数据结构有非常大的好处。它使得管理数据的代码更加简单,易于维护。数据处理、存储查询的操作更加易于实现。优质代码由有效的算法与方便的数据结构组成。2. 初学者:倒三角形为了易于表达,我们把编程能力划分为简化的场景: 基础:所有相关于算法、数据结构、计算机科学问题、应用设计原则(SOLID, KISS, DRY, SoC)、扩展性。 语言:所有相关于编程语言(Java, Swift, Java),语法、操作符、变量、编译器。 框架:所有相关于框架(AngularJS, ReactJS, CocoaTouch)与平台(Browser, NodeJS)。 第一个软件开发能力水平是初学者,他们可以表示为倒三角形。 3. 熟练工:矩形 4. 专家:正三角形 5. 建议流行框架甚至编程语言迟早会过时。他们将会被更好的工具所替代:这是进化的必然结果。你能够做的事情就是把重点放在基础上。当然基础学习起来有些难。有些算法难于理解与记忆。我的建议是「玩得开心」:你可以多次去阅读一个算法。想着其好处可能导致一个特殊的数据结构。挑战自己,变得越来越牛。不管基础是难的这个事实,有个愉快的奖励:它不会经常改变。从 80 年代甚至 70 年代创建至现在,算法与数据结构没有什么重大的改变。一次性学习透了,然后不断重复,你就在正确在道路上了。建议阅读原文。以上内容编译与节选正 The pathof softwaredevelopment craftsmanship.极光开发者微信号: jiguangdev