学习编程的正确姿势
发布日期:2022-02-27 02:38:07 浏览次数:38 分类:技术文章

本文共 2396 字,大约阅读时间需要 7 分钟。

说明

本篇文章为知乎专栏Live《学习编程的正确姿势》(牛岱)学习笔记。

知乎网址为:

网站篇

推荐两个网站:

  1. GitHub:代码托管——程序员的聚集地。
  2. Stackoverflow:问答社区——提出你的问题/回答别人的问题。几乎所有有价值的问题、容易遇到的问题,上面都有答案。

搜索引擎

好的搜索引擎具有的特点:

  • 广告可以有,但不要太多。
  • 搜索结果公平公正,不会照顾个别网站。
  • 能够对英文搜索提供好的结果。
    推荐三个浏览器:
  1. Google
  2. Bing国际版
  3. Quark (只有移动端)

小Tip

搜索无处不在,pdf阅读、写代码、浏览网页、都要会用搜索。搜索是面对大量信息快速获取目标信息的最有效方式。

我学东西不是从头看文档,而是直接搜索关键词,在关键词附近阅读。只看相关的部分。

你不是学生,你是开发者

!!这是最重要的一部分:自我身份的认同。学编程,最需要摒弃的东西就是“学生气”。在学习编程的过程中,不要总把自己当成学生。否则,你就一直是学生的那种思维状态。

举个例子:就拿我与旁边的人相比,如果我学习一个东西的时候,假如说我学习Java,我第一步就是先 Google:How to learn Java?或者是 The best way to learn Java.先看看那些老手推荐的学习资源。第一步先是找资源,而不是直接拿学校的教材直接看。在学的时候我不会像学生那样,从头到尾去读一本书、记笔记。我不记笔记,好奇吧,诶,我不记笔记!是在这样的,我学习一个东西之后,我下意识的反应是写成技术文章发表在网上,而不是哪一个笔记本记。因为写成技术文章或者教程的形式发表在网上有一个好处就是:你必须逼着自己给别人讲清楚。这个就是我们所说的费曼学习法。 (即:你检测自己是不是真的学会一个东西是看你能不能给别人讲清楚!)

学生有一个特点:他们的思维逻辑很奇怪,就是他们永远在准备,他们永远在夯实自己的基础。在他们的思维中,做一件事情有一个严格的先后顺序:即我要把所有的知识全学会,然后再去开发就很流畅、什么都会。

一个开发者的逻辑是:我先学最基本的东西,就马上开始开发,在开发的过程中不断遇到问题,再以问题为中心去惊醒拓展延伸的学习。针对性强。

有很多学生会问:已经学完了C语言的基础知识,我接下来该如何进阶学习?我问问题就不会这样,我会这样:我现有一个目标:用C语言实现一个图形界面的小游戏。我会问很实际的问题:如何用C语言实现图形界面。

遇到问题,去Google,去读文档。读文档往往比看视频教程效果更好,因为首先文档是最新的,若去买书那么很可能是过时的。

学生经常问这样一个问题:学了这么多知识,忘了怎么办?学生的思维方式就是这样,总是以一种修炼内功的方式,把自己的人生活成一种升级打怪那种,不断增长经验增长经验,到等级最高后秒杀所有人,他们就是这种想法。

但是开发者不这样,它永远关注自己开发出了什么东西,他不关注自己学会了什么语言!

比如Linux的作者Linus,人们在提到他时会说Linux的作者,而不会说C语言大师。在开发Linux的过程中,他一定就是开发者的思维,他一定想着:我一定要开发出一个很好地操作系统。他一定不是想着:我一定要夯实基础,我要把所有东西都学会,开发之后就没有问题。又比如说同样是学习Java语言,学生会这样想:我一定要学好Java语言,在考试中取得高分,为以后的学习打下坚实的基础。学生就会这样想。如果我学Java我就会这样:我第一部绝对不会是拿学校发的那本教材去读,我会去Google:Java语言适合用来做什么?学习一门语言之前一定要明白可以用来做什么,然后再给自己定目标。比如Java用来作Web开发,我就给自己定下目标:学习半年后,要做一个中小型的基于Web的企业管理后台,我定的目标绝对不是“我要学会Java”。!!这个思维方式特别重要!!

有很多学生把编程搞得就像修行一样:学习就是要坚持,就是要座冷板凳,他总是把学习搞成一个很痛苦的事。就编程这个东西,他的实践性很强,一个实践性很强的东西,你一定可以把他变得很有趣的。兴趣这个东西很空泛的,只有成就感和反馈是实实在在的。搞一个东西完全没有反馈那就很难坚持下来。编程就有反馈,你完全可以自己做个小东西出来。所以说学编程不要拿着一本教材就是去看,然后一遍一遍跟着书上的例子跑程序。你要先给自己定个目标学完基础之后开始做,边做边学,边做边学。不断遇到问题,再返回来去看知识点,再反过来用有这样一个交替的过程,你的进步速度特别快,而且成就感特别强。

把自己当成学生的人,他的简历很可能是这样的:我熟练使用XXX,我精通XXX,我会XXX。这种简历是最差的。呵!啥都会!

最好的简历是这样:我是XXX项目的作者,我用XXX语言是现了XXX东西,我的Github账号是XXX,我有一个500星的项目,一个链接给过去。

知识储备与项目实战的关系

现实世界中的人,处理现实世界中的问题,往往不是一口气完成所有知识储备,然后一口气顺畅的进行开发,进行实践

现实世界是,先进性最基础的知识储备,然后马上开始实践,实践中不断遇到各种问题,不断解决,以问题为中心延伸,完成细节知识的补充
You can never understand everthing. But you should push youself to understand the system.
吾生也有涯,而知也无涯。以有涯随无涯,殆已! 不要想着把所有的知识都学会!

习惯篇:写出好的代码

小习惯

  1. 不要嫌变量名长,最好可以直接通过变量名推测变量的作用。
  2. 重复出现的代码要封装成独立的类或函数。
  3. 提前降低代码的耦合度,不同作用,不同类别的的代码不要混在一起,最好分成独立的文件.
  4. 电脑内存最少8G,否则很多软件用不了.

计算机的四大课程

转载地址:https://blog.csdn.net/weixin_43402259/article/details/108778010 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:二叉树层次遍历,记录层次/每层节点数/每层最左边最右边的节点
下一篇:832.Flipping an Image

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月25日 14时13分07秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

mysql like 数字结尾_重拾MySQL之正则表达式 2019-04-21
mysql where从句_《快速念咒——MySQL自学入门指南》:第1章第8节:模糊查询LIKE——一窝兔子(上)... 2019-04-21
mysql 重置密码_mysql忘记密码如何重置密码,以及修改root密码的三种方法 2019-04-21
python-docx tables后追加内容_Mac brew安装MySQL8.0.21后忘记密码(重置密码篇) 2019-04-21
python中两个时间相减结果转为小时_Python起步(二)基础数据类型1 2019-04-21
定义泛化。举个例子_网易考拉应用的dubbo泛化调用,是如何实现的? 2019-04-21
mysql里可以用cube吗_sql server的cube操作符使用详解_mysql 2019-04-21
php mysql 图书_使用PHP+MySQL来对图书管理系统进行构建 2019-04-21
单片机c语言 int1,51单片机into、int1中断计数c语言源程序.doc 2019-04-21
c语言课程设计工资管理建库,C语言课程设计工资管理系统参考.doc 2019-04-21
c语言case中途跳出,break语句在switch结构语句中的作用是终止某个case,并跳出switch结构语句。... 2019-04-21
c51写c语言外部ram头文件,C51中访问外部RAM的方法 2019-04-21
51c语言产生随机证书,基于51单片机的随机数产生器设计-LCD1602-KEY-(电路图+程序源码)... 2019-04-21
C语言编写程序计算高考倒计时天数,基于51单片机LCD12864大字符校时万年历带高考倒计时程序... 2019-04-21
c语言打开一个html文件路径,C语言文件处理-C语言文件的打开和关闭 2019-04-21
普职融通信息技术课本C语言,“三步走”扎实推进“普职融通”办学新模式 2019-04-21
Android多个签名,【Android】Android批量重签名 2019-04-21
html unicode编码转换,JS实现的Unicode编码转换操作示例 2019-04-21
html页面角落放动漫人物,L2Dwidget.js L2D网页动画人物添加 2019-04-21
html图片水平居中,CSS制作图片水平垂直居中 2019-04-21