编程新手如何提高编程能力?

news2024/11/26 12:05:47

如果刚开始写代码时能读一读《整洁代码的艺术》那是个不错的选择。这本书会告诉您, 如何应用九大原则来提高编程能力。 良好的编程技能带来更整洁的代码, 让您更专注、更有效地利用时间,得到更高质量的结果。只要应用本书中提到的那些原则,您就能更快地成为熟手程序员。

整洁代码的艺术

程序员的实用工具书,Python网站Finxter的创办人多年经验的结晶。传递"减少和简化"的代码编写思想,教您应用九大原则提高生产力、做到事半功倍。

本书旨在帮助您过上更专注的程序员生活, 让日常工作变得更高效。《整洁代码的艺术》将告诉您如何通过编写整洁、精练、专注、更易阅读和编写、更易与 其他程序员协作的代码来提高生产力。 您将学习如何编写整洁的代码、创建专注于做好一件事的函数、打造快速和响应式的应用程序、设计专注于易用性和美学的用户界面、利用最小可行产品来规划产品路线图。我甚至会告诉您, 实现纯粹的专注状态可以极大地提高您的注意力, 帮助您从任务中体验到更多的兴奋和快乐。

对严肃的编码者来说, 不断提高专注力和生产力至关重要。做更有价值的工 作, 往往会获得更大的回报。然而, 简单地增加产出不是办法。坑在这里: 如果写更多代码, 创建更多测试, 读更多书, 学习更多, 思考更多, 沟通更多, 认识更多人, 我就能完成更多工作。 但是, 如果您不能少做事,就不能多做事。时间有限,您每天有 24 小时,每周有 7 天,就像我和其他人一样。有个躲不掉的数学限制: 在有限空间里, 一样东西增加, 其他东西必然缩减, 才能腾出地方。读 更多书,可能就会遇到更少人。遇到更多人,可能会写更少代码。写更多代码, 可能只会有更少时间与您爱的人在一起。

本书不关注做更多事的明显后果, 而是从另一角度来讨论: 减少复杂度, 从而减少工作量, 同时从结果中获得更多价值。深思熟虑、追求极简是个人生产力 的“圣杯”。而且,正如您将在后面的章节中看到的,它很有效。您可以通过正 确的计算机编程方式和使用本书提出的恒久原则,用更少资源创造更多价值。

通过创造更多价值, 您也可以获得更高报酬。比尔 ·盖茨有句名言: “车床 操作顶尖高手的工资是普通车床操作员的几倍, 但顶尖软件开发者的价值是普通 软件开发者的 1 万倍。”

其中一个原因是, 软件开发高手执行的是一种高度杠杆化的活动: 以正确的方式对计算机进行编程, 可以取代成千上万的工种和数百万小时的有偿工作。例 如, 运行自动驾驶汽车的代码可以取代数百万人类司机的劳动, 同时更便宜、更 可靠、 (也许)更安全。

本书为谁而写

您是否曾发现自己深陷于找缺陷的泥潭里?代码的复杂性是否经常令您不知所措?您是否对下一步学什么无所适从, 不得不从数百种编程语言——Python、 Java 、C++ 、HTML 、CSS 、JavaScript 以及成千上万的框架和技术——Android 应 用、 Bootstrap、TensorFlow、NumPy 中选择学习对象?如果以上问题的答案为 “是”,那么您就选对书了!

这本书是为每一位有意提高生产力、做到事半功倍的程序员准备的。如果您 崇尚简洁,并且相信奥卡姆剃刀原则——“能少费劲就别多费劲”,那么这本书就适合您。

您将学到什么

本书将告诉您, 如何通过应用九大原则, 将您作为程序员的能力提高几个数 量级。这些原则将简化您的生活, 减少复杂度、无谓的挣扎和工作时间。我并不 是说这些原则都是新概念,它们都是众所周知的既定原则——被最成功的程序 员、工程师、哲学家和创造者证明有效。这就是它们成为原则的首要原因!然而, 在本书中,我将把这些原则放到程序员身上,给出真实示例,并尽可能给出代 码范例。

第 1 章讨论提高生产力价值的主要挑战: 复杂性。您将学会找出生活和代码中的复杂性来源, 理解复杂性会损害生产力和产出。复杂性无处不在, 您需要持 续警惕, 保持简单!

在第 2 章中,您将了解 80/20 原则对程序员的深远影响。大多数效果(80%) 来自少数起因(20%)。这一原则在编程工作中无处不在。您会了解到 80/20 原则 具备分形特征: 20%的程序员中的 20%将获得 80%的工资。 换句话说, 世界上 4% 的程序员赚走了 64%的钱。对持续杠杆和优化的追求永不过时。

在第 3 章中,您将学习打造最小可行产品,尽早测试您的设想, 尽量减少浪费, 并提高“构建、测量和学习”周期的速度。中心思想是通过尽早获得反馈来了解在何处投入精力和注意力。

在第 4 章中,您将了解到编写整洁和简单代码的好处。与大多数人的直觉相 反, 编写代码首先应当最大限度地提高可读性, 而不是最大限度地减少中央处理 器(CPU)周期使用率。全体程序员的时间和精力比 CPU 周期要稀缺得多,而 编写难以掌握的代码会降低组织的效率,以及我们人类集体智慧的效率。

在第 5 章中,您将了解性能优化的概念基础和过早优化陷阱。计算机科学之 父高德纳(Donald Knuth)曾经说过: “过早优化是万恶之源!”当您确实需要优 化代码时,利用 80/20 原则:优化占用 80%运行时间的那20%函数。消除瓶颈, 忽略其余部分,然后再来一遍。

在第 6 章中,您将和我一起进入米哈里·契克森米哈(Mihaly Csikszentmihalyi) 激动人心的心流世界。心流是一种纯粹的精神集中状态,它能成倍提高生产力。 而且, 据计算机科学教授卡尔 ·纽波特(Cal Newport) 所言, 心流有助于围绕深 度工作建立一种文化。本章中将引用纽波特教授的一些观点。

在第 7 章中,您将了解 Unix 哲学, 即只做一件事并把它做好。 Unix 的开发 者没有采用拥有大量功能的单体(而且可能更有效的) 内核, 而是实现了一个具 有许多可选辅助功能的小内核。这有助于 Unix 生态系统的扩展,同时保持整洁 和(相对)简单。我们将看到如何将这些原则应用于工作中。

在第 8 章中, 您将进入计算机科学中另一个得益于极简主义思维的重要领域: 设计和用户体验(UX)。想想雅虎搜索(Yahoo Search)和谷歌搜索(Google Search)、黑莓(Blackberry)和 iPhone,以及 OkCupid 和 Tinder①之间的差异。最 成功的技术产品往往有着极其简单的用户界面。原因是,在设计中, 少即是多。

在第 9 章中,您将重新审视专注的威力,并学习如何将其应用于不同领域, 从而极大地提高您(和您的项目)的产出。

最后, 我们将做一个总结, 提供可操作的下一步措施, 并让您带着一套可靠 的工具去简化这个复杂的世界。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627365.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

springboot集成rabbitmq

简介 RabbitMQ 是实现 AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。 RabbitMQ 主要是为了实现系统之间的双向解耦而实…

【LeetCode】HOT 100(4)

题单介绍: 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。 目录 题单介绍&#…

容器(第三篇)docker-cgroup资源限制

Docker 通过 Cgroup 来控制容器使用的资源配额,包括 CPU、内存、磁盘三大方面, 基本覆盖了常见的资源配额和使用量控制。 Cgroup 是 ControlGroups 的缩写,是 Linux 内核提供的一种可以限制、记录、隔离进程组所使用的物理资源(如 CPU、内存、…

一路狂飙,性能测试流程与性能测试主要指标整理,直接上高速...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试实战 性…

什么是真正的需求,如何才能找到?

此为内容创作模板,在发布之前请将不必要的内容删除 对需求本身的误判,比错误本身更为恐怖,直接导致必然失败的局面。 工作失误必不可免,好工作核心在于有需求,自己需要去做,有动力,别人需要你…

【Cloudgetway网关】 GetWay网关入门使用

一、概述 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ow0KO8iV-1686286922163)(null)] GateWay是zuul的替代品,由于Zuul2.0迟迟没有出来,SpringCloud社区推出了gateWay网关来替代zuul1.x版本。提供了以下功能: 底层使用n…

使用 LabVIEW调用LeNet快速搭建手写数字识别系统(内含源码)

‍‍🏡博客主页: virobotics的CSDN博客:LabVIEW深度学习、人工智能博主 🎄所属专栏:『LabVIEW深度学习实战』 🍻上期文章: 【图像分类】基于OpenVINO实现PyTorch ResNet50图像分类 &#x1f4f0…

PyCaret解决二分类任务教程示例

PyCaret是一个Python中的开源、低代码机器学习库,可以自动化机器学习工作流。它是一个端到端的机器学习和模型管理工具,可以成倍地加快实验周期,提高工作效率。 与其他开源机器学习库相比,PyCaret是一个替代的低代码库&#xff0c…

多分类问题与卷积模型的优化

文章目录 1. 创建自定义Dataset类2. 基础卷积模型3. Dropout抑制过拟合4. 批标准化5. 学习速率衰减6. 最终优化整合代码 首先导入用到的库: import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import numpy as np import matp…

文章写作的诀窍:10个技巧让你的文章升华

首先要找到自己的写作声音和确定文章的中心思想,其次要使用简单明了和描述性的语言,增加细节并结构化文章: 找到你的写作声音:找到适合自己的写作风格和声音,这有助于让读者更容易地理解和记住你的文章。确定文章的中心…

QxRibbon 知:搭建 CMake 构建环境

文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…

NodeLocal DNS介绍及部署应用

目录 一、NodeLocal DNS是什么? 二、为什么使用NodeLocal DNS? 三、工作原理 四、安装NodeLocal DNS 五、在应用中使用NodeLocal DNSCache 六、验证 一、NodeLocal DNS是什么? NodeLocal DNSCache 通过在集群节点上运行一个 DaemonSet …

qrcodejs2生成二维码,通过canvas绘制带边框+中间logo的二维码图片,下载二维码

文章目录 一、通过qrcodejs2生成一个二维码二、点击【下载配置服务器二维码】来下载二维码1、通过canvas去绘制 边框二维码logo(1)为canvas增加绘制圆角矩形的方法(canvas本身不提供)(2)通过canvas绘制 圆角…

饮酒过多和腌制食品是导致中风的最大导火索

中风是一种常见的疾病,它的发生和饮食习惯有很大关系。近年来,我国中风病患人数和病发率都呈现出了不同程度的上升趋势,这给我们的健康带来了很大的威胁。下面我们可以通过数据可视化大屏来了解一下饮食健康与预防中风有哪些影响,…

ESP32-S3 边缘人工智能|使用加速度计数据和 ESP-DL 识别人体活动

边缘计算是一种分布式计算范例,指在更靠近设备的地方进行数据存储和计算。边缘人工智能(边缘 AI)是边缘计算中一项振奋人心的成果,可以令传统技术更高效地运行,在降低功耗的同时又有更好的性能。训练好的神经网络可以在…

通信算法之167: (低空无人机)机载视频通信传输系统基带算法设计

一.物理层基带仿真 通信系统的链路级仿真主要可以分成5个部分。 1.系统参数 2.发送机算法 3.信道模型 4.接收机算法 5.统计性能 其中主要组成部分很明显是中间三部分,即发送,信道,接收。但系统参数和统计性能这两部分的适当设计会大大…

linux基础命令系列之10 分钟掌握 ln 命令:创建链接,软链接,硬链接,递归链接,打印详细输出

文章目录 前言一. ln命令介绍二. 语法格式及常用选项三. 参考案例3.1 ln命令创建硬链接3.1.1 创建硬链接3.1.2 源文件被删除,不影响链接文件的正常使用3.1.3 硬链接不能跨分区创建 3.2 为什么目录刚刚创建的时候,链接数为23.3 ln -s 软链接的创建3.3.1 l…

【漏洞修复】node-exporter被检测出来pprof调试信息泄露漏洞

node-exporter被检测出来pprof调试信息泄露漏洞 说在前面解决方法结语 说在前面 惯例开篇吐槽,有些二五仔习惯搞点自研的安全扫描工具,然后加点DIY元素,他也不管扫的准不准,就要给你报个高中危的漏洞,然后就要去修复&…

C++元模板技术与traits解析:根据类型的特性来调整代码的行为,解决没有重载运算符的情况

C元模板技术与traits解析 第一章、C元模板技术简介 (C Meta-template Introduction)1.1 元模板的定义与概念 (Definition and Concepts)1.2 元模板技术的发展历程 (Evolution of Meta-templates)1.3 元模板应用场景举例 (Examples of Meta-template Applications) 第二章、 tra…

[数据结构初阶]顺序表

目录 静态顺序表 动态顺序表 初始化 销毁 尾插 ​编辑 尾删 头插 头删 Insert erase find查找 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。 静态顺序表 定义结构体&#xff1…