如何学习编程呢?
面对众多新手朋友关于如何学习编程的疑问,我过去常常简单地建议他们“多实践”,但这显然过于笼统,缺乏具体的指导。因此,在这一次的分享中,我计划深入细致地引导大家,逐步揭开编程学习的神秘面纱。
什么是编程,简单点来讲类似炒菜的过程,就是一个程序,把这个程序具体的写下来,就是编程。编程,这门技艺,与我们习以为常的语文、数学、英语等学科有着本质的不同。它并非仅仅通过翻阅书籍、死记硬背或是大量做题就能迅速提升的领域。编程,它呼唤着我们的思考力,激发着我们的创造力,更要求我们不断地在计算机上进行实际操作,将理论转化为实践。
准备工作
对于编程初学者而言,踏上这段旅程的首要条件是拥有一台个人电脑,其配置无需过分追求高端。接下来,配置一个合适的键盘尤为关键,机械键盘因其出色的敲击手感常成为优选。但在正式踏入编程学习的大门之前,掌握键盘盲打技巧是不可或缺的基本功。这里,我推荐使用“金山打字通”这类软件来逐步提升打字速度,这不仅是与自我较劲的过程,更是每次速度提升所带来的成就感。
正如武侠小说《倚天屠龙记》中张三丰传授张无忌太极拳的精髓——忘却招式,方能得其真谛。打字练习亦是如此,或许如今我无法准确指出每个字母键的具体位置,但一旦手指轻触键盘,便能自然而然地敲击出心中所想。这种近乎本能的反应,正是盲打练习所追求的境界。
综上所述,编程学习之旅的起点,在于拥有一台个人电脑,并辅以熟练的打字技巧作为基础。
安装编译器
接下来的一步,是亲手安装一个编译器。关于这一过程,你可以参考我之前发布的文章《从0到1学C语言》。之所以强调亲自安装,是因为作为程序员,深入了解自己的编译器至关重要。这能帮助你在遇到问题时迅速定位编译错误,灵活调整编译器的配置属性,以及熟练运用编程相关的快捷键,比如快速注释、快速整理代码(这里提供的Ctrl+A、Ctrl+K、Ctrl+F组合键VS2022上用)。
此外,代码格式同样不可忽视。糟糕的代码格式不仅让其他开发者阅读困难,也会给自己日后维护代码带来不便。虽然格式错误不会直接导致编译失败,但它们会增加出错的风险,并使错误排查变得更为棘手。因此,学会编写结构清晰、格式规范的代码,是每位初学者必须掌握的技能之一。
简而言之,学习编程的过程中,安装编译器并熟悉代码格式规范是基础且关键的两步。
学习基础知识
好多同学比较纠结要学习什么编程语言,使用什么编译器。
在我看来,在这个浮躁的世界上,需要保持住自己的本心。小时候应该都学习过《小猴子下山》这篇文章,故事很简单,无非就是捡了芝麻丢了西瓜,最后竹篮打水一场空的故事。
我想提醒大家,首先要保持冷静,不要轻易被外界的声音所左右。“零基础三个月学会OC,月薪直达18K”,“三个月速成Python,高薪不是梦”。还有那些宣扬AI能让编程小白轻松上手,或是声称掌握某个工具就能月入过万的言论,以及各式各样的人工智能课程辅导班广告,都层出不穷。
请记住,一旦有人开始大肆宣扬如何靠某个东西赚钱,那往往意味着这个领域的红利期已经过去,不再那么容易赚钱了。
有些人还在犹豫,认为随着人工智能的发展,编程工作迟早会被AI取代,那么学习编程还有必要吗?我想反问,既然计算器已经能轻松完成加减乘除的计算,那我们为何还要学习数学,甚至是高等数学呢?在我看来,无论是AI还是编程,它们都只是我们解决问题的工具,而不是用工具解决工具。
所以,请沉下心学习好学校的课程,先学好C语言,然后借助 C 把各种理论知识学扎实,做到一通百通,以后再学别的什么语言都很轻松。
学会思考
乔布斯曾言:“编程应成为每个人的必修课,因为它能教会我们全新的思考方式。”
许多同学在学习编程的过程中会感到迷茫,原因在于它与传统的学科有着本质的区别。传统学科往往侧重于知识的记忆与掌握,而编程则更多地聚焦于解决问题的策略与方法。在编程的世界里,问题的答案并非一成不变,而是充满了无限可能。面对同一个问题,我们可以尝试多种不同的解决方案,这正是编程的魅力所在——它鼓励我们不断探索,思考如何用更简洁的代码,或是更独到的技巧来满足需求。
这里可以举例说明一下,我以前写的几篇文章C语言绘制太极图案以及优化后的C语言之太极图优化,C语言之视错觉艺术,某年某月有多少天。这几篇文章充分地体现了使用编程语言实现相同一个功能,所使用的方法和步骤都有所不同。
学会上网
我了解到现在大多数人遇到问题会去抖音,小红书或者是知乎上搜索,当然这种方法也不能说不对,也是一种获取信息的一种方式,但是专业的东西,比如编程这个东西,还是需要从专业的网站上获取,还需要学习鉴别搜索结果的真伪。
现在搜索出来有的网站,感觉很不友好,想要看全部信息,就需要注册哪个网站的会员。也有些内容就是很不负责任的搬运,然后在内容的后面加上什么QQ群,宣称获取学习资料请加群。这种的都是骗人的,请不要相信。
一般使用搜索可以使用百度搜索,或者必应搜索,然后鉴别搜索结果中的广告与垃圾。
学会鉴别“官方网站”,并不是所有搜到的“官网”都是官方网站。网络中有各种钓鱼网站,做得很像官网,实际上提供的内容是为了盗取账号或捆绑木马的,要学会鉴别什么样的网站才是真正的官方网站。鉴别方法没有固定模式,只能靠自己摸索。
软件的安装
学习安装一些好用的软件,什么是好用的软件,就是一些体积小,无广告,使用方便的软件。吐槽一下现在的某些软件,恨不得将软件里面嵌满广告,一不小心就给电脑上安装好多垃圾软件。
所以在安装软件的时候,一定要从正规渠道下载安装。这里推荐几个经常使用的软件。
Everything:一款体积小,搜索电脑中文件的搜索软件。
PicPick:一个功能齐全的画图板,有各种各样的功能。
PotPlayer:一个功能强大的视频播放器。
Notepd++:一款功能强大的文本编辑器。
手心输入法:轻巧免费无广告的输入器。
7-zip:压缩软件。国内各种压缩软件都是基于 7-zip 的源码修改的
以上软件均免费,大家可以自己上网搜索下载。
谁更适合学习编程
学习编程对每个人都是开放的,关键在于个人是否有意愿去学习。我之所以能够在这条路上持之以恒,很大程度上得益于我内心的一份虚荣心。起初,当周围的人都对此一知半解时,我却能够运用程序解决他们束手无策的问题,享受着来自他人眼中的那份钦佩与敬仰。随后,这份来自朋友的支持与鼓励更是成为了我前进的动力。虽然有时我也会意识到这份虚荣心的存在,但不可否认的是,它确实在某种程度上推动着我向更好的方向迈进,让我的大学时光没有虚度。
我自认为我不是一个聪明的人,我都可以学,你为什么不能呢?还有的女生认为,我是女生,我本来就学习不好数学,也学习不好编程。编程优秀的女生少,只是因为很多女生心理上认为自己不适合学编程,并不是生理上不适合。所以解决这个问题就简单多了,先要从潜意识上摆脱社会的影响,然后做该做的练习、写该写的程序,女生一样可以学好编程。
新手如何提高逻辑编程能力
有句话叫做见多识广,想要提高编程能力,一方面要勤于练习,还需要多看看别人的代码是怎么写的。很多小伙伴看见别人写的几千行几万行的代码,就感觉很难理解。这里我推荐去Easyx.cn官网上看看别人写的优秀代码。试着去把别人的代码复制到编译器中运行一下,然后自己修改一下里面的参数看看会有啥变化。
学习就是一个积累的过程,学会了的东西就是自己的。提高逻辑编程能力,还是要在实践中领悟。巧妙地使用函数和循环的组合。
这里可以举一个简单的例子,计算1!+2!+3!+4!+5!+6!=?
使用C语言该如何解决?这个问题看似复杂,但是可以分为两个部分,加法部分和阶乘部分,所以我们可以将它分解为两个部分。
需要写一个求阶乘的函数。题目中有1到6个数。我们需要满足这六个数的求解要求,我们就需要求解任意一个数的阶乘。举个例子6!等于1*2*3*5*6。那么n!等于 1*2*...*(n-1)*n。使用程序表达就是一个数累计从1相乘。
factorial(int n)
{
int result = 1;
int i;
for (i = 1; i <= n; i++)
{
result *= i;
}
return result;
}
一个数的阶乘解决了。所以
1!等于factorial(1);
2!等于factorial(2);
3!等于factorial(3);
4!等于factorial(4);
5!等于factorial(5);
6!等于factorial(6);
那么1!+2!+3!+4!+5!+6!等于factorial(1)+factorial(2)+factorial(3)+factorial(4)+factorial(5)+factorial(6)
可以直接用循环来计算
int sum = 0;
int i;
// 计算从1到6的阶乘并累加到sum中
for (i = 1; i <= 6; i++)
{
sum += factorial(i);
}
如果1到6的阶乘和可以计算,那么是不是1到任何数的阶乘和都可以计算了。
我认为,编程能力实质上是在实践过程中,将复杂的问题逐步简化为易于管理的部分,把简单的操作封装成函数以便复用,同时对于重复出现的模式则进行统一处理。这是一个在实践中不断摸索学习,又在学习中深化实践的过程。