本文转载自公众号《核心阅读》(ID:AI_Discovery)。提高编程技能需要大量练习,这是提高专业水平的唯一途径。不过在此之前,我们最好先掌握理论知识,然后在实践中应用,这样你的理解才会更深。在软件开发行业中,人们通过阅读文章、书籍、参加会议以及尝试新的库、模式和范例来不断提高自己。作者阅读了大量书籍来提高自己的编程技能。本文为您精选了一份书单,可以帮助您编写简洁的代码,并在您的职业生涯中达到新的高度。《算法》作者:RobertSedgwick解释了搜索、排序和绘图等基本算法。所有计算机科学专业的学生都学习数据结构和算法,这是该领域最基础的部分。搜索功能的实现和各种排序算法之间的区别在整本书中都有解释。有篇是图论的,看完你就知道怎么遍历树,找最短路径了。了解这些算法并应用它们将对您的下一次工作面试大有裨益。经验丰富的软件工程师需要能够在特定情况下使用适当的算法并预测其性能。如果您更喜欢阅读而不是听讲座,那么本书作者在Coursera上提供的免费课程值得一看。(https://www.coursera.org/learn/algorithms-part1)《代码大全》bySteveMcConnell当我合上这本书时,我惊讶地发现其中一些至关重要的基本概念。这里有一些例子。例如,只在需要使用的地方声明和初始化变量;当变量不需要声明时,只需要在代码中赋值即可。变量应该有最低的可见范围,这样做的好处是代码的可读性会大大提高,这点队友会很欣赏。另一个例子是如何有效地使用if条件。它们使用简单,但会显着降低代码的可读性。if(paymentComplete){if(errorCode!=0){...}elseif(errorCode==422){...}else{if(showError){...}else{...}}}else{...}示例有太多嵌套的if条件,无法遵循和测试其逻辑。在学习编程时,人们总是关注if条件如何工作以及何时使用它,但没有人告诉我们它被误用的情况。本书为此给出了一些建议:避免过多的嵌套块,考虑将代码分解为函数,并检查switch..case语句是否合适(并受编程语言支持)。NeilFord的《功能的思考》根据维基百科,第一种函数式编程语言是在1950年代后期开发的。从那时起,函数式编程范式就越来越流行。这意味着数据开始被函数转化,可以组合多层次的数据。但是,对于初级开发人员来说,构建无状态序列很困难。即使对于从未使用过函数式编程的经验丰富的开发人员来说,编写高效且可维护的函数式代码也是一项挑战。下面是一个在Kotlin中计算偶数平方和的例子:valinput=listOf(1,2,3,4,5,6)valresult=input.filter{it%2==0}.map{it*it}.sum()我们可以用通常的声明方式来完成,但这需要编写一些循环并保存它们的中间状态。以函数式方式编写代码更简单、更清晰且更少无状态。除此之外,重要的是要认识到函数的顺序对性能有影响。看例子,前面调用filter()方法时,后面的函数已经在一个较小的数据集上运行了。这本书解释了最流行的功能,如何有效地使用它们,以及如何在功能上编写干净的代码。本书适合已经有一定编码经验的开发者。来源:unsplash软件工程领域不乏好书,作者推荐的三本书也能找到替代品。但是在阅读本文之后,足以让您交付可读和可扩展的代码。
