夯实基础,保有自我,继续成长——锦先生2023年终总结

写在前面

本文总字数1.1w。是从2023年12月开始撰写的,但接连遭遇大学课设、期末考试和假期实习等变故一直拖到了2024年1月21日才完成全文的撰写,应该是既不符合时宜的。但倘若因为这样,就放弃对2023一整年的总结,我认为不值当,便还是将本篇文章发布了。

屏幕前的各位大家好呀,首先很感谢你能点进来看这样一篇由一位技术小白&大二学生撰写的的博文。在这篇文章中,虽说是对自己这一年来学习生活的总结,但会提取出部分我认为对一些和我情况类似的同学可能会有用的知识,来保证这篇文章对平台而言不是水文23333

有关技术,将主要将从以下几个主题展开,你可以看哪个感兴趣然后点击文章右侧边栏的目录跳转到对应的章节:

1. 如何高效学习?以实用主义为原则,应用驱动型学习,应用驱动型学习

2. 前沿知识很吸引人对吧?但不应该绕开计算机基础理论(四大件)

3. 算法真的没有用吗?偶尔刷刷力扣也好!

4. 用AI会有负罪感?没大碍,很多程序员早就习惯把GPT放手边随时用了

5. 到底是知识付费还是纯卖课?耐心找找,很多优质资源用不着花钱!

6. 写博客总是会害怕写不好?这是好事!鼓励分享,鼓励交流!

当然我也夹带私货,会说几点这一年来我的"人生感悟",放在文末:

1. 有人,才有一切。一定要多与人交流,切不可"唯技术论"

2. 保有自我,必要时刻展露自己的锋芒,拒绝被PUA

3. 不想学的时候就允许自己休息,学会生活

我的技术实践学习总结

一、如何高效学习?以实用主义为原则,应用驱动型学习

在上大二之前的我,学习一门技术最常用的方法就是啃书,边看书边敲代码。

我的C++就是边看这本《C++ Essential》边写代码学会的

这是学校发的教材,初学Java用的是这本。但这本书讲的不够详细,之后又去看了《疯狂Java》

这样做的话效率其实挺高的,掌握知识也比较全面,而且在如今这个浮躁的社会里静下心来好好看看书也是一种锻炼。

但对我来说,热情和动力总是很难保持,看书看着看着就会睡着()

而且从应用角度来看,书上一些知识虽然花了大篇幅来讲,但实际用的却很少。就比如Java的多线程,除了大一的时候做小游戏用到过一回,其他时候就再也没怎么用到了------或许是我做的项目还太少吧。

还是缺乏应用,知识理解得不深刻,知识点之间也缺乏主动的连结,很多知识到后头就忘了。

这样下来,其实有点难以坚持下去。

后来受学长启发,"只有当你开始做东西的时候,你才会知道自己缺什么" ,开始实践学长口中所说的"项目驱动型学习"。

第一次尝试,是在今年的暑假,第六届青训营大项目里我负责简易抖音的视频点赞操作。由于整个项目都要求使用Go语言,然后我就花十来天想办法速成了Go的语法基础------这个过程我才发现其实互联网上有非常多的在线编程语言学习网站,在完成一个个编程任务的同时就能把知识学到。

学会Go当然还不够,要做项目,就要进行很多次版本迭代;要进行版本迭代,就得学Git,飞快得又去过了一遍Git基础

功能实现还关联到Redis数据库,此前一直听闻的是MySQL,于是又赶忙去学了Redis------在使用Redis的时候,渐渐发现了它的优势,对它就尤为感兴趣,打算以后深入学学。

也简单入门了Apifox做功能测试工作------当时其实还不是特别理解Apifox这种工具的必要性,直到当我开始做大二期末的课设......

最后磕磕绊绊终于把功能实现了,当时作为一颗小白菜的我别提多高兴了XD。这里贴上部分代码:

go 复制代码
func FavoriteAction(c *gin.Context) {  
    var err error  
    var videoInfo VideoInfo  
    //连接到redis数据库  
    client := redis.NewClient(&redis.Options{  
        Addr: "localhost:6379", // Redis服务器地址  
        Password: "", // Redis最好设置密码,不能被任意的人访问  
        DB: 0, // Redis数据库索引,默认0  
    }) //登录数据库使用的  
    // 先检查客户端和Redis的连接是否正常  
    _, err = client.Ping().Result()  
    if err != nil {  
        log.Fatal(err) // 记录到日志中  
        fmt.Println(err) // 打印错误信息  
    }  
    //获取SQL数据库连接  
    db := Utils.GetDbConnection()  
  
    //......
    db.Find(&videoInfo).Limit(10).Order(videoID)  
  
    jsonVideoInfo, err := json.Marshal(videoInfo) // 序列化  
    //......
    if actionType == "1" { // 为视频点赞  
        err = client.ZAdd(userID, redis.Z{Score: 1, Member: jsonVideoInfo}).Err() // 用户的点赞,要记录对于用户来说,ta点赞了多少个视频,有哪些视频被点赞了  
    if err != nil {  
        log.Println(err) // 记录到日志中  
        fmt.Println(err) // 打印错误信息  
    }  
    _, err = client.ZAdd(video_ID, redis.Z{Score: 1, Member: userID}).Result() // 视频的点赞,要记录对于视频来说,有多少人赞了,哪些人赞了  
    if err != nil {  
        log.Println(err) // 记录到日志中  
        fmt.Println(err) // 打印错误信息  
    }  
        fmt.Println("您已成功为ID为" + video_ID + "的视频点了一个赞!")  
    } else { // 给视频取消点赞  
    err = client.ZRem(userID, jsonVideoInfo).Err() // 用户的点赞,要记录对于用户来说,ta点赞了多少个视频,有哪些视频被点赞了  
    //......
    c.JSON(200, gin.H{"status_code": 0, "status_msg": "OK"}) // 真的应该这样去处理错误数据吗  
}

这样的学习全过程动力都在线,一方面原因是客观的压力,另一方面原因也是自己对新技术的好奇。这样以"实用主义"为原则的学习是颇具有实际意义的。

目光放在我这学期的课设上------用JSP和MySQL开发一个简易购物网站系统。这个课设我还是很重视的,因为我没有将目光停留在应付期末答辩上,而是期望将来能用上Spring,Vue和RabbitMQ等流行技术来进一步优化它。

这个过程我主要遇到两个问题:

  1. IDEA下创建的项目,webapp的文件路径配置是设置好了的,如果要在其中设立新的子目录并在子目录当中创建新页面,很可能会出现前端数据无法传给后台的情况

本例中,form表单当中的数据点提交后无法发送给后台的servlet程序

将所有页面文件直接放在webapp目录下就能正常运行了。但如果偏要设立子目录那样设计,就需要自己去配置文件路径了。

  1. 将图片上传至数据库。要实现这个功能,第一就要在HTML标签属性中表明自己上传的数据类型是文件。第二就是在request中获取到Part部分,这里包含了图片文件。第三就要规定图片上传的路径位置。第四就是获取图片文件的名称(有需要的话可以进行重命名)

这个过程中,涉及到了图片以二进制形式传输的知识

java 复制代码
public class UploadFileTool extends HttpServlet {
    public String UploadImage(HttpServletRequest request,String save_directory) throws ServletException, IOException {
        Part filePart=request.getPart("certifi");//获取上传文件的Part对象
        String fileName=getFileName(filePart);//获取上传文件的原始文件名
        String savePath=request.getServletContext().getRealPath("")+ File.separator+save_directory;//获取保存文件的目录路径
        File saveDir=new File(savePath);//创建保存文件的目录
        if(!saveDir.exists()){
            saveDir.mkdir();
        }
        filePart.write(savePath+File.separator+fileName);//创建保存的文件

        return savePath;
    }
    private  String getFileName(Part part){
        String contentDisposition=part.getHeader("content-disposition");
        String[] elements=contentDisposition.split(";");
        for(String element:elements){
            if(element.trim().startsWith("filename")){
                return element.substring(element.indexOf('=')+1).trim().replace(""","");
            }
        }
        return "";
    }
}

通过查资料+自己一步步调试实现出来的,成就感满满。

再比如,我想要自己搭建一个个人网站,这其中也涉及了很多问题,以问题为导向用到了许多技术/工具(Hexo,Cloudflare,域名解析等等)

这样的"项目驱动型学习"保持学习动力的同时还实实在在地锻炼了编程能力,是非常好的,因为做项目的本质就是应用。

这样的学习会让自己立刻明白自己究竟缺少什么,给自己接下来的学习指明方向,是可以避免某些情况下的盲目学习的。

比如,要做好上文提到的极简版抖音,Redis、MySQL、Git、Minio等技术都是需要的。而我为了现学现用只学了当时所需要的部分,还不足够全面、深入,这就为我之后的学习明确了目标。

当然,按照这样的学习思路,我们还可以向外推导。如果要学习某一门技术知识,也可以去牛客网找题目做,或者背八股文,这样的"应用型驱动"也可以在一定程度上加深我们对知识的理解。

但是如果只依赖"应用驱动型学习",其实是有大问题的。

二、前沿知识很吸引人对吧?但不应该绕开计算机基础理论(四大件)

当然,以上的学习方法会带来一个比较严重的问题,那就是学习知识不够系统而全面,因为在"应用驱动型"学习下,学习的主体对象是应用,而不是知识。 如果我们运用得好,"应用驱动型的学习"一定会使我们的学习效率增加数倍。但是如果运用得不好,反而适得其反,降低效率------习惯性地,当且仅当具体问题中涉及到了具体知识点,才去学习这一小个知识点(可能纯粹使照搬已有的结论,也不去深究),这样不成体系的零散的知识是很难应用在需要全方面顾及的项目或系统的。

每每遇到一个问题,我都要去找一遍资料、翻一翻书,这样的效率可想而知,是不高的。

因此,我们绝不可以抛开书本,基础理论,因为这当中包含的就是较为全面的知识,且知识点之间存在有机联系。笔者还只是一个大二的学生,包括我自己在内的很多人每每看到新技术都会颇为兴奋和动心,恨不得花一个星期/一个月就学会。

但是这些技术涉及的诸多概念我都很陌生,因此情况往往是------开始前五分钟充满热情与自信,却马上被无数陌生的概念和理论淹没,二十分钟后昏昏欲睡。

笔者身边真的有很多这样的人,学习力的确是有的,但总是因为学了点新技术的皮毛,心中升起一种优越感,而屑于将更多精力放在计算机基础理论上。------而往往这类人,学到的新技术知识也不深,最终导致的是,知识面很广(懂得很多),但如果一旦谈及到某个领域,却没有对应的知识深度。这一类人往往也很喜欢"应用驱动型学习"------这类学习本身没有错,但这是不足够的,对于初学者,还需要时刻回归基础理论,经典书籍。

带我学习新技术的是我的几位学长,他们对我来说都是大牛。而真正让我开始务必重视起计算机基础理论的,是我所在学校的一位老师(暂且称其为陈老师)和已在北京工作了六七年的大哥(网上认识的)。

在今年的六月,陈老师亲自面见了我和另一位同学,跟我解释了为什么计算机基础理论如此重要,其中究其根本就一句话------以不变应万变

新技术更迭的速度越来越快,但基于计算机底层的原理是不变的、始终是可以用计算机的基础理论去解释的。因此,只要精通、掌握了计算机计算机基础理论,再去学习新技术、独立开发优秀 的项目,是有着明显的帮助的。------在当今浮躁的社会当中,真正掌握了基础的也是相对较少的,因为学习基础理论需要时间、需要耐心。但是一旦做到了,在真正的竞争当中我们就会具有主观心态上的镇定和自信,和客观条件上的难以取代性。

陈老师还和我们讲到。虽然当前和传统计算机底层完全不同的量子计算机也在飞速发展,但量子计算机普及还需要漫长的时间。

具体应该怎么学,陈老师建议我去读CSAPP(深入理解计算机系统)。这本书被很多人称之为"神书",读完之后对以后就业大有裨益,因此我就买来读了。全过程读起来,只要有C语言基础,花点时间是可以读下去的。但想要读好,仍然需要耐心。

当然陈老师也没有让我们止步于基础。他也同时让我们关注人工智能和新兴技术的发展,以及可以作为核心竞争力之一的算法设计能力。

另一位在北京工作的大哥,也对我说不要着急,要先把基础打牢。

既需要"应用驱动型学习",又不能忽视基础理论,断绝系统性的学习,那么综合下来的学习观是什么呢?这里笔者的观点是:

  1. 系统学习某一门技术知识的同时,进行不断的、与之高度相关的实践、练习。------这是主要任务

这必然是为了保证自己有一个完整的知识体系。

  1. 在实践当中,碰到了以往没有学过的,或者不是当前正在学的技术知识时,遵循"应用驱动型学习(在某些情况下也是实用主义)",去查询资料学习这一块的知识点。------这是次要任务

遵循实用主义,是为了不会主客颠倒,耽误当前的主要学习任务,提高效率。"应用驱动型学习",前文也谈到过,是可以为以后的学习提供方向的。

举个例子:当前我正在学习MySQL数据库,课设是做一个简易商城系统,这里除了要用到数据库的知识,还需要计算机网络、Java Web编程的知识。课设比较紧迫对吧,那么如果过程中遇到了计网,Java Web的知识,自己实在不会,就可以查询资料,现学现用。待自己将课设做完、数据库的知识学完,便可以根据之前的技术所缺,开始新的学习(计算机网络,Java Web)。

三、算法真的没有用吗?偶尔刷刷力扣也好!

笔者最开始学习算法,其实只是想着提高自己编程能力,后来证明自己的欲望愈发强烈,学校有关计算机的专业竞赛也只有算法类的,于是在寒假的时候系统学了算法。整个过程都是自主的,计划(怎么学,学习的日程是是什么),学习C++和数据结构,刷力扣刷代码随想录刷洛谷,定期参加一些线上的算法竞赛,得空了就写一些算法的题解博客------整个过程持续到现在有一年多了。

但一直到现在我的算法还不够出众,也没有在什么知名的算法赛事中获得过名次。自认为原因有三:

  1. 学习到的算法知识还不成体系,整个学习过程不系统。说实在的,即便有代码随想录这样好的题单,我也没有完整地将其刷过一遍------因为考虑到之后想要参加算法竞赛,代码随想录提供的知识还不足以应对,于是自己又去找了一套厚厚的算法书来一点一点看,佐以洛谷算法题练习:

这样自学着进步是明显的,但明显速度还是有些慢,力扣周赛只能A两题,牛客月赛和蓝桥模拟赛也通过不了几题,根本没有一个比较成熟的算法设计思维。今年(2023年)10月,大概是太想证明自己的"不凡"了,大二的时候冲一个蓝桥杯的国奖,焦虑的心态下就报了蓝桥杯的培训班,现在处于有个导师带着学习算法的状态。

学习算法这个过程还是比较痛苦的,这种痛苦不单指部分算法本就抽象、掌握起来麻烦,也不单指为了调试代码找出bug这个环节,还指自己所处的环境。

除了学校本身就没有这方面的师资以外,针对以后的就业 ,目标如果是为了拿奖、冲刺全国排名Top100而学算法这件事的性价比其实是相当低的(因为部分需要花大把时间和精力学习的算法知识,在实际应用中却很少出现)。

我几乎都是一个人在学算法。大一的时候,身边没有人同我一样在学习算法,也没有有着类似学习热情的伙伴。期间跟着学长做项目的时候,大多数人也没有强调算法能力,他们的谈聊也都是关于研发、业务、科技圈的趣闻等等。甚至从一些学长口中得知,只要业务能力够,算法要求就不高 ------我不知道这样的说法到底对不对,但是我所处的环境大部分时候真的没有给我的算法学习提供过正反馈。

这里说的"别人"大多指的是身边的同学和学长。学了一年算法收效甚微,身边的人在积极学习各种流行技术,有些在侧面diss那些真正搞算法的其他人,我分享的算法知识也很少得到他们的关注或肯定,所以我有很多次想过放弃学习算法。

那么算法是不是就真的没有用呢?

前面虽然吐了很多苦水,但现在我仍然想说:学习算法还是有用的,至少在面试中常常是筛选应聘者的关键考查手段之一。

我能听闻到有人在面试中算法题没有做出来都通过了面试,但其实这样的案例我也只不过见过一两则。更常见的情况是,理论题完成得不错的一部分人当中相当大部分因为算法题没有做出来而遗憾离场。 我从一个大四的学长那儿,还有某家小培训机构中的两位老师那里,能够得到不少的例证。

诚然,有些人本就有着算法的天赋,或者早在大学前就已经参加过算法竞赛了,但这类人不是我们所必须成为的------但这番理论不该被解读成"因为不可能成为Top,所以不必要学算法"。 对于许多人来说,其实有着能够应对面试中的算法题的算法水平,就足够了。但如果你的目标就是在比赛中拿奖 ,那就确实要清楚认识自己的能力和目标究竟匹配与否,再决定是否要在算法比赛这个赛道上走下去。

一些人其实是目标认识不明确(不清楚自己到底是为了比赛,还是为了应对面试),才会觉得算法没有用。

算法绝对不是什么高悬在上的、只属于牛人的玩物,它与我们正在学习的流行技术、框架一样,都是一种工具。真正具备门槛的,是诸如CCPC、ACM|ICPC那样的算法活动。

既然只是一种工具,对于许多人来说,其实只要到"运用"这个层次就可以了。而如果想要"精通",就不能只考虑努力程度,天赋、运气和客观物质条件同样很关键。

这是2024届美团秋招考的算法题。难度中等,许多人目标如果是就业,算法水平到这个级别就足够了。

因此,对于笔试面试,算法知识并不难学。关乎就业,学习算法仍具有一定的必要性,从现在开始每天刷刷力扣,比笔试前一两个月突击收益要更大。

四、用AI会有焦虑感?没大碍,很多程序员早就习惯把GPT放手边随时用了

22年11月GPT推出后,真的是掀起了好一波人工智能的浪潮。一直到现在才过一年多,不仅人人都知道GPT这么个超级AI,各种自研的AI也如雨后春笋般涌现。

我应该是在23年的2月开始用的GPT,由于那时不会魔法,所以用的还是国内的镜像。不过即便是这样还是被其震撼到了,因为他不光可以和我进行流畅的聊天问答,还能帮我发现并纠正我代码当中的错误。这么好的工具没有道理放弃使用,但是我不知道是不是只有我会有一种"焦虑感":

"如果我一旦对AI形成依赖,我各方面的能力会不会因此而下降?"

故而相当长的一段时间里,我使用GPT还是相当节制的,而且有时用完之后心里还会泛起一种不安。(怕被抢饭碗的不安?)

这样的不安,还促成我去领导一场以"AI会不会取代人类"的小品,但这是纯纯的黑历史()

然后,当今的状况是,即便人工智能还没有真正做到普及,走入群众生活、成为工作帮手也确确实实是一种趋势,是一种肉眼可见的趋势。
就连笔者经常用的某搜题软件都有AI助手了XD

这是从大环境来看的。但是从个人使用角度来看,无论怎么说,GPT为代表的人工智能确实给我带来了很多帮助。步入大学,想学习时最痛苦的一点,我想莫过于有问题却找不到人一起讨论、找不到老师去请教,那么GPT真的是一个好帮手。当我们想要应对一些意义不大的、重复性高的文字工作时,交给它去做也是非常靠谱的。

随着认识增多,我也发现身边的同学和学长也都在人工智能,渐渐地我才领会到"最终成为赢家的,不是AI,而是懂得如何使用AI的人"这句话的真正含义。其实我们真的可以好好拥抱当今正在快速发展的人工智能,因为它确实可以极大地提高我们的学习、工作效率,且很有可能就像我们的手机一样,在多年之后,也成为我们日常生活不可或缺的一部分。

自然,我们不可以事事依赖人工智能。在任何时候,人工智能都只起辅助的作用,真正起到关键性作用的,只能是我们自己。

五、到底是知识付费还是纯卖课?耐心找找,很多优质资源用不着花钱!

笔者第一次为知识付费应该是在22年暑假,分12期报了一个日语直通N2的网课,现在想起来真是觉得自己有一点被骗到。

一开始我是在B站看到的广告,标语上写着"0基础""日语兼职""第二外语""日企工作""中国日语人才稀缺"等等吸引眼球的字眼,覆盖范围之广到只要你对日语有那么一点兴趣就能成为他们的目标韭菜

仅仅是这样其实还骗不到我,我接着去听他们免费的公开课。其实这种卖课的逻辑都是差不多的,第一节给大众上的公开课讲的知识全都是皮毛,还不足以到应用的层级,你以为自己学到了很多,但其实什么都没学到。 这节日语公开课也是如此,讲了点五十音,教了几句日常对话,便开始和课程开始一样讲述日语的重要性了,紧接着介绍课程,

最关键的来了,简直是所有卖课的都必会的一招!

讲授公开课的老师声称现在报班有优惠,但名额有限,只有前几名才能享受优惠,并有更多增值服务!

当我见识多了之后,才知道,名额有不有限我不知道,但这就是商家有意刺激屏幕前的你消费的手段------先带你学点皮毛,因为学到的皮毛知识难度不高很容易领悟,你就会有一种切实存在的获得感 ,让你以为接下来的学习也会如这般轻松。紧接着,商家们会带着你分析这门知识有多么重要,你的焦虑是他们最好的帮手。最后,对,绝对是最后 ,图穷匕见,介绍自己的培训班,摆出几个成功案例,开出煞有介事的优惠名额。如果这时的讲师还是一位有多重高级身份Buff加持的牛人,或者干脆就是帅哥美女(没有刻意歧视!),那收效将更加可观。

那时还没上大学,啥也不懂,倒确实想学好日语。笔者就是这样糊里糊涂报的班,分12期付款,总价6480块钱,买来的课到现在已有一年没去听了,一方面心疼钱,一方面失望于给我上公开课的女老师是个声音甜美的软萌妹子,而在之后给我上正式课的却是一个长相和声线都一般的女生。。。。。。(的确不应该以貌取人,但这样的反差多多少少让我感觉被骗)

这大概是笔者高考之后第一次接触知识付费,此后我还接触过一些类似的知识付费,比如Ps设计、视频剪辑、游戏制作、3D建模,Java培训班等等,套路都是一样的,好几次都差点下单,但因为踩过坑,都及时刹住了车。

笔者不是什么互联网小白。早在小学,我就经常逛贴吧,初中在B站当Up主,在一个不知名的音乐社区做分享,给SoundCloud的一位日本音乐人发过邮件,只是高中三年没再怎么接触互联网。但当我再次浏览如今的互联网时,真是感叹发展之迅速。七八年前,互联网的生态还是开源免费更常见一些,而现在知识服务就已经成为商品进行贩卖并具备完整的营销策略和营销系统,在大数据和精准算法的加持下,商家往往能够成功拿捏用户。

因此,有关知识付费,笔者这一年来还是有比较多的感触的,便单独在这一小节给大家讲讲,并说说我的应对方针。

现在可能是一个知识付费的时代,但有人却借此作为自己营销的底气。 为什么在这里我用的是"可能"二字,是因为最开始"知识付费"这个概念就是从一些卖课卖资料那儿接触到的,我自己还不完全认同当今世界特征之一是知识付费。某些精通营销的商家们在制造焦虑、强调课程价值之外,大概率还会用"现在是一个知识付费的时代""天下没有免费的午餐"这样的言论将自己的营销合理化。

不反对知识付费,但质量应当对得起价格,且不应该通过贩卖焦虑过度抬价。 部分商家花费心思整理出知识和资源,想要收取点金钱回报完全合情合理,但就和一般商品交易一样,标榜在商品之上的价格应该符合商品本身的价值。笔者12月临近期末,想要找找速成课苟过期末考试,点进了一个微信小程序,上头有非常多科目的速成课以及相关的课件和题库,非常全。但想要完整的享受上面的资源,一个月就需要支付15元的会员费,然而速成课的质量其实还不如B站上的免费课。又比如某dn,一篇不到10行的文章也要付费才能阅读,况且某dn上的文章质量也良莠不齐,推出的AI助手也完全就是掺了水的劣质聊天机器人,提供的其他会员权益实用性也不高,会员费用相较于别的平台又特别高。

某dn高昂的会费

顾客花出去的钱无法换来等价的获得感,就会觉得不值当。这样的知识付费,是相当劣质的,不能让顾客乐意在这之上花费金钱。这些商家的产品本身质量就不好,还敢出价高昂的另一个重要原因,便是本小节最开始描述的那样------给你制造焦虑,再在营销环节夸大产品的价值,让你觉得他们的产品很稀缺很重要。这样做,就让我还有一种感觉,高价获取到的利润要分出相当一部分给营销部门。

这一年来,经过我自己的试水,互联网上也不乏一些优质、值回票价的知识付费,因为都是个人的所见所感,各位在看的时候请保持自己的思考,有条件/有时间的可以自己去考查下。今年9月,我加入了某知识星球,是B站一位哈工大学子主营的(化名Carl)。愿意相信Carl,很大程度上归功于他的代码随想录

这真的是一份优质的算法学习宝典。从头至尾题目安排得非常合理,几乎每道题都有真人亲自视频详细讲解,关键全程免费,还开源。

加入星球之后,其中的质量也没人失望,大量的优质项目、面经、就业报告、实习状况、秋招现状、学习路线、Carl亲自整理好的八股文和优秀的社区等,年费优惠前是196元,我个人感觉物超所值(涉及到星球内部的资源和打广告的嫌疑,不多说,也不贴出相关图片了)。

微信读书的会员也不错,能看到很多经典和优质的流行书,也许是我自己愿意为阅读电子书付费,所以只做参考。

最开始的互联网生态是分享、开放,但随着物质成本的不断增加,免费的资源与服务开始收费、设立门槛完全可以理解,也正是因为如此,请对现在仍在做免费分享、积极开源的人持有一份尊重。 还记得的笔者最开始在互联泡的最久的不是现在的抖快,而是"高手在民间"的百度贴吧。多年前的贴吧才是真的什么都有,荤段子、电子游戏、明星趣闻、时事新闻等等,是最大的线上交流平台,同时也是最大的分享平台------因为分享在上面的资源都是免费的。在贴吧中还发生过几件感人的事,总之贴吧也算是中国互联网的一段历史了。

这几年中国互联网发展得越来越快,包括我在内的很多人已经不再使用贴吧了,互联网上最初的做免费分享的也一个个开始推出付费产品了------这完全能够理解,因为我们都能够深切感受到,生活成本在逐年增加,原先做优质免费分享的博主完全有资格、有底气去做付费服务。

但也存在,从始至终都坚持开源、免费,不向大众收一分钱,内容还一直保持优质的项目或牛人,最典型的例子就是菜鸟教程

基础知识点非常全,不只对初学者友好。网站本身的使用体验也非常流畅,完全不是粗制滥造的那种。

某乎上有菜鸟教程创始人的一番发言,有兴趣可以看看菜鸟教程这个网站背后的运营方是谁? - 知乎 (zhihu.com)

这简直就是伟大开源分享者的典范。像这样在当今物质成本不断上升的时代中仍然坚持做开源的人,还有很多很多,笔者在此对他们每一个人都致以敬意与感激。

信息差有时会让你落入消费陷阱,因为占满你短信信箱、邮件信箱、B站主页、搜索主页的总是那些花大价钱投广告、做营销的精明商人。耐心在互联网的世界中寻找 ,真正要消费之前先认真思考自己是否需要,很多比收费资源更优质的内容不需要花钱。 但至于怎么去找,其实在一定程度上考验日常的点滴积累,好的搜索引擎也是影响因素之一。记住,每一位优秀的程序员都有属于的工具箱/资源库。 这里不再展开讲了,懂得都懂。

六. 写博客总是会害怕写不好?这是好事!鼓励分享,鼓励交流!

笔者最开始写博客其实是害怕的,因为优秀的好文章看多了,觉得自己输出的真的算不得什么,老认为自己讲错了、讲得不够全面。

但当我看了掘金上的这篇文章为什么我能坚持?因为写技术文章给我的太多了呀! - 掘金 (juejin.cn)下的一条评论后,我受到了很大启发:

启发1:写博客/文章,对自己一定是受益的,因为经过大脑整理、组织语言得出知识的这个过程,一定是巩固了知识,锻炼了大脑,让自己发现了自己原先没有发现的不足,这叫提炼、总结和反馈。

其实知识本身我觉得没有高低,不管是什么类型的知识,都会有初学者。所以当写一些知识看起来很"低级"的文章时,要记住,总会有情况与你类似的人需要这篇文章的。

启发2:已有的旧知识不完全适用于新环境,所以我们的作用也不可忽视,我们可以给已有的技术分享/博客文章做纠正、做迭代。从宏观的角度来看,每一个社区的每一个时期都是这样的情况,需要有新的血液来保持生命力。

启发3:真正优秀的程序员从不闭门造车,积极交流,既能促进对知识的深入理解,也能拓宽人脉,写博客/文章就是常用手段之一,博主分享知识,评论区提出反馈,进行思维的碰撞。

当我认识到这三点后,便很乐意发博客了,也更加会以一种严肃的态度去完成每一篇文章。关键的一点,完成每一篇博客后,收到每一条表示肯定的评论时,都有一种难以言喻的成就感。

所以,在这里也鼓励屏幕前的你通过写博客/文章,或者其他方式,积极地分享,勇敢地表达自己!


2023年某大二小白的个人私货

接下来是私货时间~是这一年学习过程我的一些感想,个人想法比较多,没有任何技术成分,当个乐子看看就好。

一、 有人,才有一切。一定要多与人交流,切不可"唯技术论"

笔者2023年初的时候,还只是大一,其实对于学习这件事就已经感到着急了。原因大概有三:

  1. 高考留下的遗憾让我想要在大学中找到弥补,规划的过于理想,近乎报复性。
  2. 从许多自媒体和学长求职现状得知,当今的就业形势很不好(但其实我做出这样的判断是片面的),于是更加想要在尽可能短的时间内学习到非常多的知识,在一定程度上也受完美主义的侵害。
  3. 学校有太多的破事水课,最初的我还不知道怎么调和生活和学习,这一度让我很焦虑。

从上面的三点,各位大致应该能看出我还是相当庸人自扰的。总之,2023年初相当一段时间,我目光都放在了学习技术上,但是这样带来了相当多的问题;基础不牢、性格偏激和身体不适------这方面便不去细讲了,总之2023年初,不正确的、不合理的学习方法和学习心态给我造成了比较大的伤害。

将我从"为技术论"的桎梏中带出来的有两位贵人和一部纪录片和电影:

第一位是尽管毕业三年也依然在本校"计算机协会"QQ群内活跃,并进行着他的一些计划的泽学长(化名)。2023年9月下旬的时候,我心血来潮想要考一个软中,简单听了一节公开课了解了关于软考中级的大致情况后,非常惊讶于"软考中级系统集成项目管理师"的考试70%考的是项目管理,只有30%考的是技术知识/专业知识 。在我的认识当中,软考是一种含金量还算有的专业证书,那不应该主要考验技术/专业能力吗?

我把这个疑问给泽学长说了,泽学长如下图这样回复道(只是部分)。不得不说,泽学长的格局和眼界是真的比我要大。虽说这之后我并没有开始学习项目管理,但是我的确开始不再以"专业"/"技术"为唯一学习对象,并且从心底里把"人"的重要性拔高了几个层次。抽象点来说,这就犹如马克思所言"人是一切社会关系的总和";简单粗暴点说,纯技术猿企业大概率是不接受的,处在上层的管理者是高境界的coder(薪资也是最高的)。

且如果只偏执于专业/技术,人也大概率会变得极端。因为人归根究底,还是社会的人,是不能不与他人交流、产生联系的------这是一种纠正和完善,是社会对人的作用,缺少了这番作用,人就极可能失衡。

第二影响我的是雷军于武汉大学130年校庆上的演讲。雷军作为小米的CEO,并在全国IT行业身居前位,计科出身的他本就足够努力以外(2年内修完大学毕业所需学分),知识面广也是一大原因。

这里说的知识面广,不只是指关于专业技术了解得多而全面,更是指对各领域知识的广泛涉猎。但是这样学而不精真的有用吗?

在2023年9月之前,我确实有着这样的疑惑------有时甚至不是疑惑,就是否定。但后来对职业开始真正建立认识时,接触到一个词叫"一专多能",即一个人有很多是能做的,但真正拿手的、熟练的技能其实就一个或几个。在这里,其实我还未厘清专业知识和其他知识的关系和对应的重要性。

想起雷军之所以鼓励我们拓宽知识面,是因为他能在如今这个位置上,依凭的就不再是技术知识了,更关键的应该是人员管理、统筹规划、风险管控 等等这些知识。雷军的这番演讲之所以能火一阵子,其实有一部分原因在他本身的演说功底------因为我们真的可以在演讲中深切地感受到雷军的掷地有声、语态从容,但同时放松随和,还带着幽默 。所以我们可以总结说,扎实的技术基础和持之以恒的毅力是雷军成功的关键,但宽广的知识面能让雷军走得更远、更高。

从已有的现象去分析结果似乎还不具有很强的说服力,这里我还想从原理上总结一点:不同领域的知识向来就不是孤立的,一个个知识点泛起的涟漪就是会互相影响。这样的互相影响结合得足够正面的话,是能对自己起到一个启发的作用的,深化对已有事物的认识,形成一个个大涟漪,甚至是波涛海浪。比如说,只要你愿意,你就能把马哲的精髓结合运用在平时的coding日常中,或利用现实中的博弈论来解决一道道算法题。

直到我这么认识之后,我才算初步厘清了专业知识和其他知识的关系。但是落实到比较微观具体的实际行动该如何做,我还需要继续实践学习才能有一套完整的方法论吧。

第三给予我启发的是一部纪录片(奥本海默)和一部电影(《流浪地球2》),这算是比较次要的了,就只提两个关键人物:奥本海默和马兆。

二、 保有自我,必要时刻展露自己的锋芒,拒绝被PUA

一部分原因在童年的环境,一部分原因在自己的封闭,自己很多时候显得很懦弱,但又却想做成很多事,身为一个汉子却又经常优柔寡断------这似乎就导致了当我遇到比自己能力强的人的时候,总是下意识地选择附和,即便遭受了不公正不合理的评价甚至是侮辱时,第一反应也是以沉默的方式来接受。

在学习上,我总是抱有一种谦卑的态度,但是强烈的自卑让其渐渐成为了"卑微",自己却又十分不甘,自以为是地认为自己被许多人所针对,由此积压的愤怒和痛苦便总是倾泻在自己的亲近的人和后辈身上,事后的自责又造成了自我厌恶------我长期处在这样的恶性循环中。

事情在进入大学之后发生了改变。高中盲目的卷让我没太多时间照顾自己,大学中相对较多的自由时间让我有很多的机会和时间通过实践来发掘自己、认识自己。

为什么自己会造就这样一番性格呢?当我看完一本名为《蛤蟆先生去看心理医生》的书之后,我终于开始用理性的角度去分析,得出的结论是:我总是将注意力放在他人和周边的环境上,潜意识里认为每个人都应该喜欢自己,尽管当别人问起这个问题时自己总是否定。

当我意识到我自卑的驱动力是渴望关注,并且又害怕失去之后,过往的一切和现在的不甘便都很好解释了,转变也才慢慢发生------我是很想要得到肯定,但这种肯定不应该通过一味的应允和默许来得到。

但以理性的姿态去认识自己时,也会开始认识到自己的优势和价值,结合上文提到的"人的重要性",在评价包括自己在内的每一个人时也会少些片面和对比。 我慢慢将这样的理念应用在现实交往中,在遇到不公正不合理的评价时,便会积极立刻做出反对;如果纯粹是出于情绪和片面认知而产生的PUA,我也会展露自己的锋芒,怼回去------即便还是会害怕失去,但这样的自我反击是战胜懦弱、战胜自卑的第一步。

三、 不想学的时候就允许自己休息,学会生活

这是初三和高中三年高强度学习留下的后遗症------卷习惯了,没完成任务,没实现目标,便不能休息,不能原谅自己。

现在的时代早就不同了,选择和方法绝大多数时候就是比凭借蛮劲而盲目高强度的学习要重要。不断去做规划,不断依据当前形势做出调整,比一番孤勇要走得更远、更稳健。

努力自然要有,但践行努力的主体毕竟还是人,是人就需要休息和玩耍------一个放松的头脑可能迸射出更多的灵感,而这些灵感许多具备创新性,是能切实提高效率的。设想,围绕工程中的某个环节苦恼3个小时,站起来望向窗外,再来杯咖啡,可以给原本有些僵化的头脑带来生机,想出更好的点子。

因此,也是在2023这一年我才真正开始照顾起自己的需求,有了自己的steam账号,劳累之余和伙伴们开开黑,去学习怎样生活。

尾声

以上便是这篇文章的全部了。通览了全文的伙伴们一定能够看出,2023这一年我所习得的技术知识不多,所取得的成果也算不上好,关乎技术类的奖项也没有拿到,更多的篇幅在讲"探索自我""拓宽认知",以及一些形似鸡汤的哲学(所以1w多字却大多是水文?

但这一年我确实在迈向成熟,这一篇文章更多是对自己的一种交代吧,如果真能对你有什么帮助的话,那可真是太好了。

我是一名大二的学生,文章中各处一定存在某些问题,如果你能指出,感激不尽。

相关推荐
安妮的心动录5 天前
2024 Sep & Oct Review
程序员·年终总结
leobertlan5 个月前
2024年年中思考,推倒樊笼重新出发
前端·程序员·年终总结
Liben8 个月前
我的2023年终总结
前端·年终总结
何遇er8 个月前
程序员的技术写作之路
低代码·年终总结·掘金日报
echeverra8 个月前
迟到的2023年终总结,一个普通程序员不平凡的一年(工作、副业、家庭)
年终总结
前行的乌龟8 个月前
2023 年终总结 ③:书评 2
android·程序员·年终总结
安妮的心动录8 个月前
2024 Jan&Feb Review 安妮的假期
后端·程序员·年终总结
echeverra8 个月前
迟到的2023年终总结,一个程序员不平凡的一年(工作、副业、家庭)
年终总结
Nauxscript8 个月前
月度总结:贰零贰肆壹、贰月 —— 春之际
程序员·开源·年终总结