写点什么

靠谱,这是我见过最好的编程指南了!赶快收藏吧,错过大学就白上了!

  • 2021 年 11 月 12 日
  • 本文字数:3639 字

    阅读完需:约 12 分钟

对于某些工作来说,这些课程可能没用,但做算法和机器学习的同学肯定知道,这些课程有用到不行。


之前看过这样一个视频。有个同学问一名老师,“老师,学习古文诗歌有什么用啊?”老师一开始觉得很懵逼,因为他之前没想过这个问题,学习古文和诗歌又不能挣钱,又不能当官。但思索了片刻后答道,在教育学的理念当中,有 3 个因素是很重要的。第一就是想象,它决定了你有没有创造性,比如说李白说“为楼高百尺,手可摘星辰”。第二就是直觉敏不敏感,我们看月亮它可能是个月亮,但宋朝有个混蛋说月亮像寡妇的脸,因为他心情不好。第三就是逻辑严不严谨,有些古文严谨到滴水不漏。


同样的道理,你觉得某些课程没用,可能是因为你没用到而已。大学面向的是“面”的教育,什么课程都讲一点,但又不讲那么深。当你工作或者读研的时候,更多的则是面向“点”的学习,用到的知识更专业,更深入。


如果学校安排了某些课程,你感兴趣的话,就使劲学,如果不感兴趣的话,可以放轻松点,做到不挂科就行了,然后把精力投入到你更感兴趣的方面。没必要很抗拒,这门课没用,打死我都不学,这种态度是不可取的。


大学的时候,学校不知道你以后是搞算法还是搞架构,还是搞服务器开发或者搞硬件,所以学校需要你多学习一些课程,尽量都有个了解。对于学生来说,一方面可以从中选择自己感兴趣的方向,一方面对未来的就业方向有所启发。


我给大家一些建议吧。


如果你是在校大学生,可以在学习一段时间理论知识后,做个小项目,将做项目遇到的问题记录下来,针对性地学习相关知识,然后再实践,让知识成网络发射状地变大。


如果你已经参加工作,那么就针对工作中遇到的疑难杂症系统性地学习,做个能够解决问题的人,这样你不仅能够成为公司不可或缺的那个人,还可以最有价值的知识学到手。

03、学习编程是否需要指定计划

其实不只是学习编程需要制定计划,其他任何学习和工作都需要制定计划。小北在上大学的时候就开始定期给自己制定计划,这个习惯一直保持到他工作以后,按照他自己的话叫做受益匪浅。


我自己在平常学习的时候,也喜欢先做计划,然后按照计划表去落实。比如我在学习 Java 基础的时候,会先画一个思维导图,然后按照里面的每个节点再深入地去学习。



下图是 2016 年 10 月 30 日的计划,那时候小北已经大四了,并且已经找到了工作、签了满意的 offer。当时已经没有什么课了,按理说可以放松放松了,不过小北还是制定了一些学习计划,并且选择在 11 月去百度实习。


从内容上看,主要是学习英语和计算机专业课,因为大一大二的时候小北确实不明白为什么要学习专业课,到了大三想清楚原因后,就一直在重新学习,因为计算机专业课真的很重要!学好了这些课,能让你在日后的学习工作中轻松不少。



除了大四制定的计划外,大二的时候小北也制定过较为详细的学习计划,见下图,我都有点自愧不如,说实话,太强了。他把需要学习的内容编了号,存入表格,做起来就有条不紊了。当然了,很难完全按照计划去执行,不过制定相应的计划能让你清楚地知道自己应该干什么。


04、编程是否需要做笔记和写博客

反正我一开始的时候,把写博客当成了做笔记的形式。虽然博客写出来是给大家看的,但一开始没什么浏览量,读者就只有自己,很无所谓的心态。不管你写不写博客,我都强烈建议你记笔记,并且记笔记是一个长期的过程。


就编程而言,我们需要善用搜索引擎,因为搜索引擎会给我们提供各式各样的答案。但答案毕竟是别人的,如果只是照搬的话,可能有用,但你记不住,知识就不属于你,之后你遇到同样的问题,还是要再搜索一遍,并且搜索引擎提供的答案不是一成不变的,可能过了一段时间后,你就找不到原来你想要的那个答案了。


但记笔记不一样,笔记是定制化的,按照你自己的风格定制的,你用自己最喜欢的方式,自己既能看得懂,也能记得住。之后再遇到相同的问题时,也可以快速地通过笔记找得到。


另外,我需要特别提醒你的一点就是,笔记是一种不可多得的财富。如果你以后想写博客了,这些笔记就是最宝贵的素材,可以直接拿来用的。


小北已经记录了四年多了,总共积累了 1G 多的内容,已经形成了他自己的知识体系,给大家展示其中的一部分看一看。


05、需要刷题吗

不管你是刷 LeetCode,还是 OJ(Online Judge),我认识是需要的,但不要“走火入魔”!小北在上大学的时候,身边就遇到了很多搞计算机竞赛的人,他们之间都相互称对方为“XX 神”,使用某个算法,将程序的运行时间从 1 秒降低到 0.999 秒之类的。


我认为刷题不应该是奔着这个目的去的,而是适应写代码的感觉。在这个过程中你会遇到编译错误,你会慢慢去记住一些语法、关键字,并理解一些概念,还可以自己去使用它,比如实现数据结构。慢慢的你就会变得有经验,知道一些错误产生的原因。


刷题到一定程度后就没必要一直刷下去了,可以到 GitHub 上找一些优质的开源项目来看,然后尝试去增加一些功能或者优化一些代码,这样的话,编程能力就能够大幅度的提升。


刷题除了可以锻炼编程能力,对找工作也是有很大帮助的,因为大厂都喜欢这么干。


一开始,刷 LeetCode 可能会很吃力,怎么办呢?我强烈推荐这份谷歌大佬的 Leetcode 刷题笔记,这位谷歌大佬当年在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理 Leetcode 上的题目,几个月的时间,刷了几百道题目。


凭借着扎实的基础和长期的勤奋,他很快找到了如愿的工作。后来,他想啊,自己刷了那么多题,而且对很多题目的解法都有着自己的理解,为什么不把这些题目归纳总结一下,做成一个便于后来者阅读学习的电子书呢?


于是他就把这份 PDF 开源了出来。我仔细看了一下,每一道题的题解都写得非常清楚。


引用大佬的话来说,就是:


本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷 LeetCode 时常用的技巧。我把题目精简到了 101 道,一是呼应了本书的标题,二是不想让读者阅读和练习时间过长。


从我的直观感受来说,这是一本用心的数据结构算法类书籍,全书总共 143 页篇幅,详细讲解算法的内容有十五个章节。每个章节都是一些重要的知识点,伴有基础讲解和例题介绍,当然,也有一些推荐的练习题。



光看书的目录就觉得非常的震撼,相信你和我一样,都有这种强烈的感受。整本书,我仔细看了一遍,并对书中的一些解题思路和代码进行了校验,确实良心了。第 7 章是讲动态规划的,这里摘取了一点内容,你可以看到谷歌大佬对于知识点的讲解是非常透彻且细致的。



从排版上也可以看得出,整本书制作得非常精美。如果你需要这份 Leetcode 刷题笔记的话,我贴一下地址。


链接:https://pan.baidu.com/s/1ojBerkBfgMFpYcj-JfDKlw 提取码:5ttz


还有一份 BAT 大佬的刷题笔记。不管你使用的编程语言是 Java、C++,还是 Go,都可以学习,适合刷题的同学反复学习。认真地揣摩其中的框架思维,你会发现,这是一本非常用心的刷题类书籍。笔记总共 1200 页,分编程技巧、线性表、字符串、栈队列、树、排序、查找、BFS、DFS、贪心、动态规划等。



每个章节都会先讲解框架思维,然后挑选非常典型的十几道 LeetCode 题进行实战讲解:



不仅排版十分精美,内容也异常充实,每一题都是细致的讲解,有时候还会配上图片,就怕你搞不懂,大大的良心啊!




如果你恰好要学习算法、数据结构,或者年后找工作,一定不要错过。贴一下下载地址:


链接:https://pan.baidu.com/s/12RT8pRk6OUNa1PuYkqZliw 提取码:8w3m


如果你想刷 OJ 的话,可以去北京大学、浙江大学、全美计算机奥林匹克竞赛的网站。里面有大量历年的竞赛题目,注册一个 ID,然后用自己熟悉的语言(一般有 Pascal/C/C++/Java)写好源代码提交即可,会实时返回信息告诉你是否正确。


北京大学:http://poj.org


浙江大学:https://zoj.pintia.cn/contests


全美计算机奥林匹克竞赛:http://www.usaco.org/index.php?page=contests

06、看书还是看视频

看视频入门,看书进阶


视频能用较短的时间告诉你你现在所学的技术可以干什么,可能需要先修哪些知识,可以帮助我们搭建一个入门知识体系。


我最近在 B 站上发现了两个不错的视频,推荐给大家看一下。能坚持看完,绝对受益匪浅。


清华大学的操作系统:https://www.bilibili.com/video/BV1js411b7vg


清华大学数据结构与算法:https://www.bilibili.com/video/BV1jt4y117KR


看书的重要性我就不再赘述了,不管到了什么时候,看书仍然是吸收知识最佳的途径。你渴望力量吗?机械工业引进的黑皮书系列,你值得收藏。这些板砖书无论是用来垫显示器还是桌子腿,都是非常好的选择。



《C 程序设计语言》、《算法导论》、《深入理解计算机系统》、《现代操作系统》、《计算机程序的构造和解释》、《编译原理》、《设计模式》、《计算机网络》、《数据库系统概论》等等,这些书啃下来确实比较吃力,可能不太适合初学者,但这些就是计算机方面的经典书籍。


我知道,你肯定也想要获取这些电子书,有!


CodeChina:[https://co


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


dechina.csdn.net/mirrors/itwanger/JavaBooks]( )

评论

发布
暂无评论
靠谱,这是我见过最好的编程指南了!赶快收藏吧,错过大学就白上了!