编程学习的思考
2023-10-21 14:50:29 星期六(初稿)
大家好!自从大一开始进入计算机科学与技术专业学习,便就开始踏入编程的学习之旅。又是一个秋季,整整三年了!
三年以来,自然是有不少成长,现在回想,这一路中也遇到很多的挫折,也受到过许多”愚蠢“的思想的影响,跌跌撞撞地前行,当然在这里总结一下编程学习的小经验和方法,希望对大家,刚入门的小白(大佬不需要看这些浪费时间!)有所帮助。
1. 泡圈子–无师自通
谈到技术,很多时候我们都会提到一个词–“生态”。就像你只会一个java语言就去应聘java开发岗位,那肯定是不行的。你还要会spring全家桶等,也就是说每一门技术都是有自己的开发生态的,仅仅学一门开发生态的语言是远远不够的。
在编程学习过程中,要把自己沉浸在一种满是技术学习的环境中。
刚刚写了几个类,实现一个小模块就忍不住去刷半小时的短视频,才练习出一个知识点,又经不住诱惑去陪室友开了两局游戏,这样子就减少了对所开发的服务器托管网功能的进一步思考和打磨,对知识点学习的深入程度会大打折扣。
这就需要在学习过程中要进入状态,把枯燥无味地练习或者技术开发当作一种乐趣,而不是说一种“遭罪”,需要时不时的靠打游戏刷视频来奖励安慰自己。
学习编程,就要泡编程圈子,这个圈子可以是浏览相关的技术博客,也可以是阅读相关的技术书籍,反正主打的就是沉浸感,把自己泡在一个技术学习圈子里。
举个例子,对于数据结构和算法的学习,我在课堂上学习了栈这个数据结构,那就去围绕“栈”去展开它的“生态”建设。去浏览相关的技术博客,或者哔哩哔哩视频,学习栈的应用,再去了解与栈相关的算法。这样就对栈进行多次认知学习,也了解服务器托管网相关的算法,在实际开发中对栈的应用也有自己的认知和了解。
课外也可以阅读一些轻松的入门熟悉,例如《图解数据结构》《图解算法》,可以帮助理解学习成果,这样就是保证自己一次又一次地和某个知识进行会面,自然很快地对其有深入了解,成长地更快了!
维护好自己的编程圈子,建立好自己的学习生态,这是快速地成长不二法宝。
2. 建体系–贯通十七掌,练就第十八掌
在星爷的《武状元苏乞儿》中,被击倒在地上的苏乞儿发现被风翻起的武林秘籍,顿悟出降龙十八掌的第十八掌的招式就是将前十七掌融合成一掌,从而击败boss。
编程学习也是如此,前期花了一段时间把java的知识点学习一遍,之后又去学C++或者其它技术内容,又或者是学习某个技术栈,跟着网上的七零八碎的知识内容学,今天学习了接口,后天学习了抽象类,大后天又学了继承虽然这样也能把一项技术栈的基本知识和要点“拼凑”齐全,但是缺乏一种融汇贯通。这在实战项目开发中的表现就是对技术基本要点的不扎实,对于基本的要点理解不透彻。
这样的学习方法好比是捡石头盖房子,看见一块石头就垒起来,可能最后也是堆出一间房子,但是远远不如看着设计图纸,有目的和方向的去放置砖头的做法的人对这个房子的认知清楚。
所以要构建自己的知识体系,加深自己对技术要点的把握。
不仅仅是对于编程的基础知识,学习了接口,对比学习接口是怎么体现出抽象的?接口和同样体现抽象思想的抽象类有什么区别?继承在这门编程语言中是怎么体现的?这些问题自然是需要融汇贯通地思索学习过的内容才可能比较出一个一二三。所以不要零散地学习,最好阅读书籍,跟着学习课程系统的对某个技术栈的练习。
3. 要坚持–日拱一卒,功不唐捐
一项技能的练就,定是少不了日积月累的练习的。
即便是一个极客,也是在技术环境中长年累月浸泡出来的。当然谈到具体方面,一些基本的素养养成是需要这种日积月累地练习,不间断的去做的行为习惯。例如刷leetcode,联系算法,如果没有接连几天地刷题,那种刷题地状态和感觉是很难获得的。只有说是养成连续刷题的习惯,保持一种对算法习题的一种感觉,这无疑对日常开发和核心逻辑代码的编写是大有裨益的。尽管在开发中实际要造轮子的地方不多,大都是用别人已经造好的好用的轮子去实现业务功能,但是对轮子原理的理解也是有帮助的。
对于技术的追寻需要一盏长明灯,我们不需要对技术有多么热爱,每天去给长明灯添一点灯油,保持一个持续发光发热的状态,总是暖暖的。正如我的个人签名一样—“日拱一卒,功不唐捐!”;
4. 肯折腾–离不开的实践
编程学习是个与计算机打交道的过程,是一个实战性的过程。
很多编程大牛对于新人的学习的建议是多上机,多写代码。代码写的多了,自然会领悟一些编程技巧,只有保证自己一直在练习,在探索折腾,才可能保证自己的代码质量的提高,自己对某一方法理解的加深。
肯折腾是快速提升自己的工程能力,动手能力的唯一的好方法。多浏览一些github之类的开源仓库,尝试理解或者与原作者共同维护开源项目。
学习操作系统的最高境界—无疑是自己开发一个简单的操作系统。
要想对一门语言底层的了解—开发一个编译器(解释器)
只有把这东西落地实现了,才会体验到真正的那些相关的理论知识的应用道理。
写在结尾的话!
先写到这里吧!真的是写不下去了,不过作为初稿,发布之后还回修改完善的哈~~
感谢你的阅读!
我是个菜鸡!希望在这里认识你,点个关注,我们一起学习进步!
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
Linux文件系统 FHS3.0(File system Hierarchy Standard) / etc 配置文件 bin 必要命令 usr 二级目录 home 家目录 var 动态数据 VFS虚拟文件系统 内核层抽象出通用的文件系统接口 支持文件、网络、…