这样学编程,直接原地起飞啊!

大家好,我是二哥呀。

今天来给大家分享一些学习编程的心得,真的颠覆了我以前对学习编程的刻板印象,可以这么说,如果你恰好处在大学阶段,看到了这篇内容,OK,恭喜你,如果你能按照我说的去做,大三大四的时候绝对能领先同学一大截,除非你好心把这篇内容分享给他——嘿嘿。

编程分两种,一种是实操型,奉行的准则是实践出真知;一类是理论型,奉行的准则是全部的知识都要搞懂后才肯去动手。前者代码写得多,但基础不扎实,刚学编程时候的我应该属于这一类;后者代码写得少,一句“talk is cheap, show me the code”就被呛得想动粗。

真正的大牛,能在两者之间找到一个巧妙的平衡点。

对于上班族或者转行的同学来说,想把所有的知识点都铺开去学习完,确实不现实,最好的办法就是重实战,然后再补理论。对于科班的在校大学生来说,因为有充足的时间,所以可以在理论知识上多花一些时间,等到工作后再弥补实践上的短板我认为是最正确的方式。毕竟鱼和熊掌不可兼得呀!

最近些年,可能是因为写作的原因,我补充了大量的基础知识,就突然感觉“今非昔比”了,编程上有了很大的进步,尽管依然很菜,但比前些年自认为好了很多。

好了,废话就不多说了。先给大家推荐一门课,哈佛大学的 CS50。

老师非常激情,尽管没有在现场,但依然有一种身临其境的感觉。第一节课,直接就叫同学到讲台上撕了一本超级厚的书,就为了给同学们灌输一种思维——说得直接点,就是二分查找法,先把书撕一半,然后再撕一半,再撕一半,直到找到一个 M 开头的名字。

总共也就 20 多节课,每节课大概一个小时左右的时间,大家可以每天刷一节。我简单列一下课程的目录,基本上都是编程中要搞懂的基础知识。

  • 算法、程序设计、语言等
  • 数据存储、磁盘等
  • C 语言、源代码、编译器等
  • 函数、全局变量、参数、返回值等
  • 线性搜索、二进制搜索
  • 符号、递归、冒泡排序等
  • 归并排序、动态内存分配、堆和栈等
  • 指针、文件输入输出等
  • 数独、计算机史上最有名的 bug 等
  • 魂斗罗游戏如何分配内存等
  • 哈希函数等
  • 网络编程等
  • 网络安全等

说一件挺不好意思的事,我以前觉得只学 Java 这门编程语言就够了,做个 CRUD 的好 boy 不就挺好的嘛。然后随着时间的推移,越来越觉得这个想法有点天真,有点无邪,哈哈,还是要力争上进的,多学点没啥坏处。

一开始学也行,随后补也行,总之是不能想当然的不学,会吃亏的,吃大亏的。

关于 C 语言,我之前给大家推荐了浙大教授翁恺的视频,以及一个英文的在线学习网站,新来的同学可以去看一下。

https://www.bilibili.com/video/BV19W411B7w1

大家应该能发现,很多讲解计算机科学相关的书籍,包括课程,里面的例子几乎都是 C 语言描述的。我在《一把小刀,直插 class 文件的小心脏》这篇文章里也提到了 C 语言的符号表(Symbol Table)。

C 语言是很古老了,但越老的东西活得越久,越能证明它的优越性。

不得不说,哈佛就是哈佛,名校就是名校,这课程真心给力。如果你真的是对计算机科学感兴趣,并且将来要进入这个行业工作,强烈建议多刷几遍。

这是一个在编程界混吃等死了十多年的老菜鸟给初学者的最良心的建议。下面是这门课程的地址。

https://open.163.com/newview/movie/free?pid=M6U6LS8CV&mid=M6U6MHDUR

刷完这门《哈佛大学的 CS50》,也刷完了翁恺教授的《C 语言程序设计》,就可以看看下面这本天书了!

这本书牛不牛逼,直接看豆瓣评分就能感受到,基本上全星,应该说是计算机相关书籍中评分最高的一本了吧。

那肯定是一门好书,一本再好不过的书了。

但能不能看得懂,能不能耐着性子看下去,就需要看你的定力了!

这本书从计算机开始讲,介绍了电脑主机有什么部件,主板上有什么零件,CPU、内存和硬盘之间是怎么连接的。

介绍了我们写的程序是怎么从一个文本文件被编译,然后是怎么变成汇编语言,再到机器码的,以及怎样被计算机执行的。

还讲到了计算机网络、计算机组成原理、进程和线程等等,从硬件到软件,全部拿下。

这本书读完后会有哪些收获呢?

  • 明确某一个阶段我们欠缺什么知识。
  • 对技术有极客追求的同学会在这本书里找到很多答案。
  • 终于明白了,我们写的程序是怎么被计算机执行的。

再次强调,《深入理解计算机系统》这本书对初学者并不友好,可能需要在不同的时间节点反复的看,一开始看不懂的内容可以过一段时间再看,如果还看不懂就再等等,过一段时间回来再继续看。另外,书里面很多例子都是用 C 语言写的,所以在看这本书之前一定要把 C 语言给吃透了。

总之,不要抱着那种一定要把这本书吃透再怎么怎么样的幻想。先从中学到 1%,再学到 5%,再到 10%,不要操之过急,学到点是点,能学到多少都是值的,不抛弃不放弃,嘿嘿。

如果真的想从事编程,当做一份职业来对待的话,你需要一本这样的书

读这本书的同时,可以着手学习数据结构了,比如说数组、链表、树、图,以及哈希表等。为什么要学习数据结构呢?

清华大学邓俊辉老师的答案:数据结构作为构建高效算法的必要基础,在计算机科学领域中,起到了技术体系的基石的作用。以 ACM/IEEE Computing Curricula(计算机教学大纲)2005 年版为例,其中对于计算机科学、计算机工程、信息系统、信息技术、软件工程等几个相关专业的共同要求中,数据结构与算法作为程序设计概念与技能的核心,紧随在数学之后,排在第二位。

当然了,基本的算法也跑不了,比如说动态规划、贪心算法,还有基本的排序算法。

我给大家推荐一个在线的学习网站,地址如下所示:

https://www.programiz.com/dsa/why-algorithms

这是一个纯英文的学习网站,截图中为什么是中文的?哈哈,当然是我用 Safari 浏览器翻译过的。英文功底可以的同学可以直接看英文原版的。代码示例有多种版本,Python、Java、C 和 C++ 的都有,完全不用担心被编程语言困扰的问题。

有 C++ 基础的同学可以直接看邓俊辉老师亲自录制的课程,有配套书籍——《数据结构》第三版,清华大学的计算机系列教材,质量没得说。

我贴一下课程的在线地址:

https://www.xuetangx.com/learn/THU08091000384/THU08091000384/5883586/video/9215529

害,如果你想在毕业后或者跳槽的时候拿到满意的 Offer,甚至体验那种好多个 Offer 摆在面前,却不知道选哪一个的感觉的话,我推荐的这三门课程、一个学习网站、两本书,你值得拥有!

最后再送大家一本美团大佬手撕的 300 道 LeetCode 刷题笔记,纯 Java 版,二哥亲自整理的,分亮白版(可以打印出来学习)和暗黑版(晚上看保护眼睛),对于算法薄弱或者需要提高的同学都十分受用(提起码:xs23):

https://pan.baidu.com/s/1xe3r8qDuKE99p2ZD9w2XrQ

哇塞,原来学编程可以这样呀,忍不住点个赞,嘻嘻~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/45315.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学好编程的 4 个秘诀

你好呀,我是沉默王二,一枚沉默但有趣又帅气的程序员(你听,耳边是不是响起了装逼的声音)。今天我来掏心掏肺地聊聊学好编程的 4 个秘诀,应该会对你产生一些微妙而又积极的影响。 闭上眼睛转个圈&#xff0c…

盘点关于程序员的10个有趣的段子

(1)程序员的读书历程:x 语言入门 —> x 语言应用实践 —> x 语言高阶编程 —> x 语言的科学与艺术 —> 编程之美 —> 编程之道 —> 编程之禅—> 颈椎病康复指南。 (2)程序员最讨厌的四件事&#…

Unity角色扮演游戏集合

Unity角色扮演游戏集合 Aurora Trail A new epic game where the perspective of the camera changes everything. Do not let your body parts get in the same view as a wall with the same color, or you’ll lose it! Puzzle your way through challenging and appealing…

html下拉 小狗,html会动的小狗狗源码

一个纯html和css结合构建的会动的狗狗,适合自己去慢慢研究的页面,前端程序员们适合收藏哦~这样对我们的html和css技术提升也有所帮助哦! html会动的小狗狗源码:dog @-webkit-keyframes head {0% {-webkit-transform: rotate(0); transform: rotate(0); } 6.66667% {-webkit…

如何写一首让人膜拜的代码情诗?

1、木有女票?先放上一段来自(潘*扬)的神奇代码,助你快速脱单: //快速脱单代码 private static final THE_ONE ; ResultSet peopleInfoSet China.getPeople(); //获取全国人民的信息 while(peopleInfoSet.next()) { Per…

Android访问权限大全

访问权限图 权限的目的是为了保护Android用户的隐私。Android应用程序必须请求允许访问敏感用户数据(如联系人和 SMS),以及某些系统特征(如摄像头和 Internet)。根据该特征,系统可以自动授予许可&#xff…

安卓Permission权限请求

AndroidPermission,权限自动请求示例(所需权限被关闭时,会自动请求) 权限请求源码:(将应用的Activity设为PermissionActivity的子类,即可自动请求所需权限) package com.sc.demo;im…

Android请求应用权限

文章目录 前言参考一、请求应用权限基本原则二、请求权限的流程(官网摘抄)三、请求权限编码1.允许系统管理权限请求代码2.自行管理权限请求代码 总结 前言 学习Android为什么需要动态申请危险权限 学会Android应用危险权限申请的方式 参考 Android官方…

Android提示用户获取相应手机权限

一,简介 Android 6.0 为了保护用户隐私,将一些权限的申请放在了应用运行的时候去申请, 比如以往的开发中,开发人员只需要将需要的权限在清单文件中配置即可,安装后用户可以在设置中的应用信息中看到:XX应用…

安卓手机权限总结安卓权限列表

1.android.permission.WRITE_USER_DICTIONARY允许应用程序向用户词典中写入新词 2.android.permission.WRITE_SYNC_SETTINGS写入Google在线同步设置 3.android.permission.WRITE_SOCIAL_STREAM读取用户的社交信息流 4.android.permission.WRITE_SMS允许程序写短信 5.androi…

手机特殊访问权限设置

前言 在使用手机过程中,权限设置比较重要,有一些特殊访问权限入口较为隐秘,例如电池优化权限,下面以华为鸿蒙系统为例,介绍如何设置特殊访问权限。 步骤 打开系统设置,进入应用和服务,进入权…

推荐几个优质的公众号!

点击上方“Python大本营”,选择“置顶公众号”Python大本营 IT人的职业提升平台技术之路就是漫长的打怪升级,不断学习前人的踩坑经验才能提升自己,切忌闭门造车。所谓独乐乐不如众乐乐,强烈推荐以下公众号,让你的生活…

微信公众号每日推送给女朋友的程序

微信公众日常推送保姆教程(node版) 1.先安装node环境(https://nodejs.org/en/) 安装过程就是:双击直接安装,不建议更改默认安装位置(C:\),中途也保持默认设置,一路 “Next” 即可。…

推荐几个优质 IT 公众号

为大家推荐几个优质公众号: 学习需要技能,更需要有好的领路人,关注几个优质公众号,帮助你在学习中科学有效的成长。 以下是特地给大家挑选了几个大佬的优质号,强烈推荐关注。 人工智能爱好者社区 专注人工智能、机器学…

推荐9个最顶级的IT公众号

固步自封只会让自己落后于他人 如今,网络已将人与人之间的距离拉近 我们应开拓自己的眼界,结识更多的大能来丰富自己的知识 以下是8个技术公众号,每日共享最新的技术资讯。 快收下这波安利吧! stormzhang stormzhang,大…

为大家推荐几个不错的公众号!

分享编程技能、互联网技术、生活感悟、打造干货分享平台,将总结的技术、心得、经验(数据结构与算法、源码分析)分享给大家,这里不只限于技术!还有职场心得、生活感悟、以及面经。 工作、生活节奏超快的今天,想要不断提升自我&…

大模型技术发展概述 -(二)

文本内容参考论文《A Survey of Large Language Models》 论文标题:A Survey of Large Language Models 论文链接:https://arxiv.org/pdf/2303.18223v10.pdf 大模型技术发展概述 -(二) 4. LLM预训练4.1 数据收集4.1.1 数据源4.1.2…

chatgpt赋能python:Python区域截图教程

Python区域截图教程 截图是我们常用的操作之一。有时候,我们只需要截取屏幕上的某个区域,而不是整个屏幕。这时,Python的区域截图功能可以派上用场。本文将为大家详细讲解Python如何实现区域截图。 Python区域截图:第三方库介绍…

chatgpt赋能python:Python实现滚动截屏

Python 实现滚动截屏 现代的网页通常都会使用滚动条来展示更多的信息,但是传统的截图工具并不能完整地截取整个网页内容,因此需要使用更加智能的截屏工具。本文将介绍使用 Python 实现滚动截屏的方法。 使用 Python 的优势 Python 是一门高效的编程语…

真机telnet登录eNSP防火墙USG6000V

这次说说真机telnet防火墙USG6000V的配置方法,拓扑如下 cloud1配置省略。 首先呢是配置一下端口的ip、安全区域等等 接下来就是配置telnet了(见下图) 开启USG6000V的telnet服务 测试一下 输入用户名和密码就成功登录了 抓个包看看 可以看到…