首页 简历|笔试面试

新手如何开始学编程?(完结)

  • 25年9月4日 发布
  • 14.73KB 共4页
新手如何开始学编程?(完结)新手如何开始学编程?(完结)新手如何开始学编程?(完结)新手如何开始学编程?(完结)

新手如何开始学编程?(完结)

今天给球友们聊聊“新手如何提高编程能力这件事?”也许不只是新手,我们任何

爱学习的球友都希望自己能在这个专业领域不断地成长。即便是做不了最好的那

一个,最起码能做到不被身边的人快速超越,保持领先的身段。

昨天还有一个读者跑过来问:“二哥,你之前的文章里提到,你的一位球友研一上学完了

Java 编程语言基础,研一下开始跟着 B 站上的视频,主要是尚硅谷和狂神说这两个 up

主,陆续学完了 MySQL,Maven,Git,Javaweb,Spring,SpringMVC,SpringBoot,

Mybatis,SpringCloud,SpringSecurity,Dubbo,Zookeeper,Linux,Redis,

RabbitMQ,Kafka,Elasticsearch 以及前端三件套和 Vue 框架。”

这件事是真的吗?

我回答他说,“没有实力,也拿不到那么多 offer 啊,这里提一句,这位球友拿到了大小

13 家 offer,包括字节的 SP,真的非常顶,按照去年的标准,应该是 SSP。”

很多时候,不要怀疑别人的学习能力,而是要反思自己,为什么学习效率低,为什么自己

一个学期只能学完一个视频,而别人能这么优秀?

?

内容

的主

是“新

如何

提高

程能

力”,

我希

望球

们都

能从

篇内

容领

到一

些二

希望

大家

悟到

的内

学习编程, 既要考虑诗和远方, 也要考虑眼前的苟且。

每年进入计算机领域的学生不计其数(更别提那些半路转行的)。

不少同学大一刚进校,学校发一本垃圾 C 语言教材,按时上课,老师在那里念念 PPT,讲

讲浮点型变量,malloc 啥的,你认真听了,那你可能懂了,但是发现不会写,你要是没

听,玩手机了,你是既不懂,也不会写,课上来上去,蒙在鼓里,人出不来,水平就一直

这样,龟速增长。

有的学生学的一头雾水,开始怀疑自己,怀疑 Java 是不是太难了,C 语言是不是太难了,

打算放弃计算机。

有的学生学懂了,但写程序时一直报错,很多问题自己是看又看不懂,问又不知道问谁,

然后也开始怀疑自己。

有的学生觉得教材写得不好,去书店转了一圈,买了三四本 C 语言的书,但结果呢,厚厚

的灰尘盖在了书上,大学就没翻过。临到考试的时候,临到秋招的时候,临到毕业的时

候,才发现自己啥也不会。

这三种学生,如果继续这样,最后都要凉凉。

马克思教给我们要具体问题具体分析,那我今天就来分析一下,计算机专业的学生,到底

应该怎么学计算机,才能效果最好,进步最快。

如果你要学习物理,我推荐你顺着物理的发展史学习,先学习牛顿经典物理,再学习热力

学,电磁学这些不那么经典的,再学习相对论,量子力学这种彻底推翻经典物理的,再学

习量子电动力学这种硬核的,比较前沿的,整个学习过程,是自底向上。

但是学习计算机,真的适合这样吗?

先学习电路,冯诺依曼结构,造一台计算机?然后再用汇编写个 mini os?写个小编译

器?最后一步一步往上走,最后开始用高级语言编程?

你要是这么学,必然爆炸。

计算机的学习最好应该是自顶向下。

这个顶,顶到什么程度?

有人说,C 语言就是高级语言了,从 C 语言开始学就好了。

但是如果让我教计算机,我第一节课教学生们的,绝对不是 C 语言,而是教大家如何学好

英语,如何利用好搜索引擎,如何使用 Github,Stackoverflow,告诉他们世界上正在发

生什么,程序员之间是如何协作的,告诉他们在这个大社区,你可以读到这个世界最牛逼

的程序员写的代码。

我还要告诉学生们,学编程直接装个 Visual Studio Code,装个 Intellij IDEA,装个

Anaconda,千万别听某些老师的,沉浸在记事本里出不来。

如果可以,我还会教同学们如何科学上网,让英文编程环境成为习惯,遇到问题

google,而不是百度,让你在上完第一节后,感受到程序的世界是如此的美好,而不是你

看到的一堆垃圾。

也许有人会这样说:

“Github 还用教?刚才你说的那些学生,如果被学习 C 语言的困难打倒,那他也不适合做

程序员,转行正好。”

像这种话,我想说,在很多时候,佛和魔仅在一念之间,你在最开始的时候点到了,给了

他引导,他以后可能会马上进入一个正反馈状态,如果你没点到,马上可能就负反馈了。

我一直觉得国内的计算机专业的学生很可怜。

当 VScode 表现越来越优异的时候,学生们还在机房用着 VC6,看着密密麻麻的报错无可

奈何。

当 Google 搜索可以精准定位你的问题的时候,学生们还在为百度搜索出来乱七八糟的搜

索结果无可奈何。

你用百度,很多时候根本就找不到自己想要的答案。

你可以去问问身边的人,有多少大一结束的学生,没上过 stackoverflow,不知道怎么在

github 里提交 issue 和 pull request,你统计一下,看看这个比例有多大?

你再统计一下有多少比例的大一结束的学生没用过 google,并且对其用不了的原因不太

清楚?

?

就别说大一的学生,有不少读者发现了《Java 程序员进阶之路》上有错误,都是直接私

信告诉我,而不是直接去提 PR,自己在秀的

这个优秀

, 的 源

知 开源 知 识库上 留 下 脚 印 ? ,

视野打不开,一切都完了。

有人说,刚开始直接学了 Java 这种封装了数据结构、有垃圾回收自动管理内存的高级语

言,或者 JavaScript 这种脚本语言,以后遇到 C 的指针、内存管理肯定被吓跑了。

事实恰恰相反,在你了解到 Java 的性能问题时,你才会了解 Java 是解释型语言,C 是编

译型语言,你才会思考为什么 C 更快,进而,如果需要用 C,去学 C。

在你在程言中涉及到了“原子性”,“同步”,“异步”,“”程 ,“”程 ,“内存分配“等概念的候,

你会自然而然地生很多疑,而去学操作系,在学操作系的程中,你之前的一系列疑逐被解

决,个程是很爽的。

当你发现某个算法,人家的实现比你快很多的时候,你会自然地去思考,为什么我的程序

运行这么慢,然后发现对方用的数据结构与你不同,甚至用了一些算法,比如动态规划

等,这也会驱使你去学习算法,学习数据结构。

有了需求和疑问,再去学,这样一个过程,是学习的金钥匙。

你指望学生自己打开野,但是那些自己打不开,需要你帮忙开下的呢?

在你的野被打开之后,我希望你些:

比如你学 C 语言,与其去做那些 OJ 题,不如在 github 上找个 C 语言项目,然后阅读,理解,修

改,模仿。

比如你学 Java 语言,与其去读编程思想,不如去读《Java 程序员进阶之路》,效率是完

全不一样的。

个人认为在知识爆炸的年代,两不要:

1、学个啥都要买本教材,试图线性地,从头读到尾。

(真实情况:经典教材都能下载到免费 pdf,语言,框架,文档往往已经写的很好,而且

最新,github 上有无数优质开源学习资源)

2、不读优质代码,不参考最佳实践,啥都要自己从头开始搞。

三个要:

1、要读文档,最好是官方文档

2、做知识输出,用文字总结自己的学习内容,最好是来星球打卡了,没人知道你是谁,

只有二哥这个班主任会不断地监督你、督促你

3、多用工具,不要抗拒,说这个垃圾那个垃圾,这个瞧不上那个瞧不上,多去尝试新鲜

的工具,比如说你用终端,用一下 tabby 啊用一下 warp 啊

我曾听过一种论调,说程序员不会用终端,不会用命令行也没关系。

我想说的是,第一,这个世界没有那么美好,什么都要给你做一个图形界面,第二,对于

命令复杂,命令多的工具,就算做出来图形界面,往往比命令行更难用,而且命令行可以

用命令行脚本进行批文件自动化执行。

两个原则:

1、有问题,先文档,再 stackoverflow,再技术文章,实在还不行,就去看一下源码

2、要用实例驱动学习,不要说你会什么,要说你做了什么,很多球友写简历就是这个问

题,只说项目是什么,就不说自己做出了多少贡献

我希望所有程序员明白一个事实是,”我会什么”这句话,其实是最没用,最虚飘飘的东

西,你说你会 java,python,c,rust,go,然后呢?你怎么明?写个 hello world?会调 api?

你要,XX 著名项目作者,那你就牛了,我也不需要让你证明什么了。

大概随便说了点,还有很多内容可以补充,先就这样了,谢谢大家。

开通会员 本次下载免费

所有资料全部免费下载! 推荐用户付费下载获取返佣积分! 积分可以兑换商品!
普通用户: 3.49元
网站会员:
本次下载免费

开通网站会员 享专属特权

  • 会员可免费

    下载全部资料!

  • 推荐用户下载

    获取返佣积分!

  • 积分可以

    兑换商品!

一键复制 下载文档 联系客服