前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >程序员必看!避坑式入门新编程语言,保饭碗保生命(文末赠试读)

程序员必看!避坑式入门新编程语言,保饭碗保生命(文末赠试读)

原创
作者头像
程序员吾真本
修改2024-10-08 16:25:53
修改2024-10-08 16:25:53
17200
代码可运行
举报
文章被收录于专栏:用AI私教速通Rust
运行总次数:0
代码可运行

讲动人的故事,写懂人的代码

如今,生成式AI技术已取得显著进展:ChatGPT和Claude等AI聊天工具能根据程序员的自然语言描述快速编写高质量代码并逐行解释;Cursor等AI代码编辑器可自动补全多行代码并回答关于整个代码库的问题;甚至一个8岁的小女孩借助Cursor仅用45分钟就构建出了一个AI聊天机器人。在AI写代码比人更快更好的背景下,当程序员学习新的编程语言(如Rust)时,是否还有必要像从前那样,通过"产品说明书"式的编程入门书、视频或培训课,从"Hello World"开始学习编程呢?

借助生成式AI和行为经济学理论,我们现在有了一种比"产品说明书式入门"更有效的方法来学习新编程语言——既快速又富有动力。这种方法正是本书的核心——为新编程语言Rust打造的"避坑式入门"。

什么是"避坑式入门"?这是一种顺应人们"怕踩坑"心理的入门新编程语言的学习方法。它利用新编程语言能避免的其他语言的陷阱,以及程序员常犯的错误作为诱饵,激发学习兴趣。这种方法让学习者有动力去了解与避坑相关的新语言知识点。简而言之,它用"怕踩坑"的糖衣包裹避坑场景,并从中引出新语言的核心知识,从而让人充满动力地入门新语言。

例如,当你看到本书目录中以下章节标题时,是否会立即产生探究的欲望?

  • 手工内存管理4大坑
    • 指针使用前忘记初始化
    • 指针用完后忘记释放导致内存泄露
    • 释放内存后再次使用已经悬垂的指针
    • 双重释放同一块内存
  • 使用已经超出作用域的变量
  • 使用所有权已经被移动的变量
  • 使用栈上数据类型不当导致栈溢出
  • 忽视String与&str的区别
  • 使用String类型不当耗费大量内存

再比如,程序员所编写的下面这段能正常运行的rust代码踩了什么坑?该如何避坑?答案见我正在创作的《Rust避坑式入门》第4章。可以把你的想法发到留言区,我必回复哦~

代码语言:javascript
代码运行次数:0
复制
#[derive(Clone, Copy, Debug)]
struct MyStruct {
    data: [u8; 1000000],
}

fn main() {
    let s1 = MyStruct { data: [0; 1000000] };
    let s2 = s1;
    println!("s1.data[0]: {} \\ns2.data[0]: {}", s1.data[0], s2.data[0]);
}

为什么避坑式入门效果优于产品说明书式入门?原因有三。

第一,怕踩坑的恐惧能持续激发程序员学习新语言的动力。

人类天生倾向于避免损失。从进化心理学的角度来看,这是在漫长进化过程中形成的生存本能。远古时代,我们的祖先面临严酷的生存环境,稍有不慎就可能丧命。因此,人类进化出了对潜在损失高度警觉的心理机制。即使在现代社会,这种本能仍深植于我们的基因中。与单纯被利益吸引相比,人们为了避免损失往往更有行动力。那么,我们能否利用这种心理来激励自己学习新编程语言呢?答案是肯定的。

避坑符合人类损失厌恶的心理特点。损失厌恶是一种心理现象,也是行为经济学的重要原则。它表明人们往往强烈倾向于避免损失,而非获得同等收益。这意味着损失带来的负面情绪影响,明显大于同等规模收益带来的快乐。换句话说,丢失100元的懊恼感,可能需要捡到200元才能得到心理补偿。

当程序员翻开一本"产品说明书"式的编程入门书,逐一阅读知识点时,最初的兴奋可能很快就被困意所淹没。相比之下,如果让程序员阅读一本介绍如何在编程中避坑的指南,对于踩坑造成损失的厌恶感会持续吸引他们读下去。因此,相较于"产品说明书"式的入门方法,避坑式入门能让学习动力持续更久。

第二,熟练掌握避坑技能能帮程序员更好地保住饭碗。

在生成式人工智能快速发展的时代,连几岁的孩子都能用自然语言让AI生成高质量代码。如今,写代码已不再是难事。那么,专业程序员的职业价值该如何体现?

俗话说"上山容易,下山难"。同理,借助AI写代码容易,但避开所有代码(包括AI生成的)中的bug却很难。众所周知,AI不仅时常出现"幻觉",其生成的代码中隐藏bug也司空见惯。即便在生成式AI出现之前,人类程序员编写的代码中的bug也是无处不在。

对编程新手而言,这是个坏消息。当程序运行出错时,他们往往不知所措,甚至不知如何向AI寻求修复bug的帮助。

然而,对专业程序员来说,这反而是个利好。修复bug、避开陷阱不仅是他们的日常工作,更是他们职业价值的体现。

企业的IT系统经常遭遇由软件bug导致的生产故障。要快速修复这些故障,企业离不开精通避坑的程序员。因此,避坑技能自然能帮助程序员更好地保住饭碗。

第三,熟练掌握避坑技能有助于保护程序员的生命。

在软件开发过程中,生产系统难免会遭遇崩溃或数据丢失。此时,程序员往往需要在巨大压力下深夜加班修复bug,这已成为行业常态。更令人担忧的是,因长期过度加班而导致过劳死的程序员案例时有发生。

Threado AI公司(为客户支持团队提供AI代理服务)的联合创始人兼CTO Abhishek Nalin于2022年在LinkedIn上发布了一则引人深思的帖子,获得近万人点赞:"没人会记住你的薪水、响亮的头衔、繁忙程度、承受的压力或工作时长。他们只会记得你那次引发生产系统问题的代码提交。"这个帖子生动地反映了程序员提交代码时所承受的巨大压力。在这种高压工作环境中,频繁的错误和返工可能导致程序员长期处于高度紧张状态,严重影响身心健康。

熟练掌握避坑技能不仅能提高代码质量、减少潜在安全隐患,还能帮助程序员避免因重大失误造成的职业声誉损害。因此,精湛的避坑能力不仅能保护程序员的职业生涯,还能在某种程度上维护他们的身心健康——从更广泛的意义上说,这就是在"守护生命"。

有人可能会问:"一个尚未入门新编程语言的程序员,如何能学会避坑?不是应该先入门,再学避坑吗?"在生成式AI出现之前,这个问题确实成立。那时,自学编程语言的程序员遇到问题时,通常会求助身边的高手、聊天群里的大佬或像Stack Overflow这样的问答平台。然而,从这些渠道获得靠谱答复并非易事。即便获得了专业答复,出于不想麻烦他人的顾虑,程序员也难以持续追问以彻底理解问题。因此,他们只好从"产品说明书式"的编程入门书开始,逐步了解新编程语言,之后才考虑如何在工作中避坑。

但现在,我们有了知识渊博且不厌其烦的生成式AI聊天工具。自学过程中难以获得即时专业答复的障碍已被扫除。程序员现在可以直接跳过"产品说明书式"的入门,转而学习如何在编程时避坑。遇到不懂的概念就询问生成式AI,这样也就顺便完成了入门。

再看看"产品说明书式"入门和实战式入门的编程书中较大规模的项目代码示例,它们基本上都是从零开始教程序员如何完成一个项目并运行代码。这些书很少讲解如何在现有软件系统中避坑。然而,避坑恰恰是专业程序员在日常为现有软件系统添加新功能或修复缺陷时最需要掌握的技能。遗憾的是,避坑技能很少有编程书涉及,主要靠程序员在反复踩坑中缓慢摸索。

本书提出的"避坑式入门"方法旨在帮助程序员节省踩坑时间,快速掌握编程避坑技巧。这种方法利用对踩坑的心理恐惧,激发程序员更积极地学习与避坑相关的新编程语言知识。最终,这一方法有助于程序员实现"要避坑、保饭碗、保生命"的三重目标。

如果喜欢这篇文章,别忘了给文章点个“赞”,好鼓励小吾继续写哦~😃

小吾正按上面的思路,创作《Rust避坑式入门》一书。目前已经写完3章。如果你想试读,那么可以在评论区留言哦。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档