饭后散步路上被群友艾特,突然一惊,长篇大论已经很多了,我想可以不用这么费力去说些啥哈哈!这一帖我也主要做做整理和链接。
不过真的很开心,看到有同学可以突破高考后的那一层被动思维的惯性,开始为自己的未来发展做功课了。这也是本站存在的意义:希望通过社区交流的方式,提供更多的参考,鼓励大家认识当下大学生的 现状与困局,主动开始为自己的人生负责,独立面对,多多沉淀与接触更前沿的知识。
昨天晚上赛博小聚时和几个社区同学尤其是 @hsxfjames @johnbanq @Caesar-Victory @qinzhouyue 一块儿聊起我们的社区和 Wiki 所面临的困局。踩了不少坑的老油条们逐步的开始走出大学直面社会,其实慢慢地也很难再换位思考,若想去做经验上的传承,便需要很多运营的手段去尝试了解新生的群体的想法与需要,但这好像又容易让大家流于被动,带来很大的精力消耗且不讨好,对于非营利的兴趣向社区而言并不太现实。所以这也非常非常需要各位的主动出击呢。
曾面临过与楼主相似的迷茫,也就这几点问题,说说我个人的经验与感想(信息量可能很大,可以慢慢看)。
关于自学
我认为首先大概需要明确现状以及「知识」是什么:「知识」这东西并非像中小学的课本与练习一样好像是凭空而来,而是在现实中的经验集结抽象而成。在科学与理性思想的统领下,不同的领域其中也会存在许多共性,也许可以称之为“道”,人们用“概念抽象”的手段去尝试把握它们。其中概念之间的各种关联,也类似一个“网络”,每一个人都只参与网络中的一小部分,没有人可以完全掌握;“Computer Science” 在这其中也只是一种分类手段,代表体系之中的某个方向而已。(关于这个体系的讨论,在这里 也有记录)
由此来看,所谓自学,并非拒绝外界的一切然后自己闭门造车,更多的时候强调的是发挥自己的主观能动,走出被动灌输的状态。从 建构主义学习理论 的视角来看,大体在于,每个人心中都有你自己的一个认知体系。这个体系是没法被标准化的某些教学过程给覆盖的。那么就很需要主动地去发现自己缺少什么,然后逐步向外构建完善,慢慢连接上人类共通的知识网络,在其中找到自己的落脚之处,乃至于进一步努力的方向。
我自己很喜欢拿城市来类比知识的体系。刚来到 CS 专业,也如刚刚来到一座新的城市上学的你,在方向尚不明朗时候,需要借助于一些大致的地图、导航软件,还有交通工具,从在大体上熟悉它。学习某一门课程,就像来到了某个景点,如果有导游的陪伴和讲解,可以更好地对这个地方的特点、可能有什么坑等有个大体的把握;而导游仅仅只能从一些角度去介绍,而且水平也良莠不齐。真正想要了解一个地方,需要的是亲身去感受其周边的一草一木,有一个从陌生到慢慢熟悉的过程;爬山涉水,也需要有一些工具,在遇到困难时可以持续地披荆斩棘而不完全依赖于他人。
所以我觉得呢,一开始若不明朗,考虑一些方向无关、领域共性和通识的东西是比较不错的,重点在于对这个领域的前人沉淀建立 Overview、还有掌握一些通用技能。具体而言可以类似计算机导论(尤其推荐 CS50)、C语言、数学、Linux、信息素养等等;其次是建议多泡泡图书馆,参与一些阅读活动等等(不局限于技术领域,文学和社科也多接触接触,说不定另一半也在这里出现呢);另外尝试接触开源社区,类似计算机领域的 Unix 文化与黑客文化等等。
这里提到的东西,已经完全可以让你大一的课外生活过得异常充实,估计动起来以后很难有什么方向上纠结的地方~
学习与绩点
众所周知,如今大学的课内学习,由于历史原因会存在脱节的情况。若完全以绩点 or 评价标准为导向,专业学习上容易流于平庸。如 “小镇做题家” 这一说法,为之做的努力,在脱离了体系以后,除了一些“证书”、“排名”等,便很难留下什么。且沉迷其中也会带来不少的 Peer Pressure,继续阻碍学习与进步。
这一点最近的新闻等也有很多讨论,之前也留过一些帖子,可以看看过去的讨论:
当然,完全不理会绩点也是一件危险的事情,很容易一开始就把路走窄。在这个角度我其实也属于一个反面例子,叛逆地各种折腾,大一下意外挂了高数,后面花了两年的代价才重修回来,基本断送了在大学体系下继续发展的机会,险些没能按时毕业。所幸做的事情都是心之所向且符合工业界的需要,大学本科四年来结果倒不算坏。
所以我的观点是,在追求更好的收获的同时,也需要与现实的可能不尽人意之处好好相处,平衡出自己的空间,才是最省时省力的选择。
另外还想提到一点是,对于足够强势(也许可以称之为“学习上的霸气”)的同学而言,专业技能的掌握并不会与绩点有什么的冲突,高绩点大概是降维打击的顺便产物;若要举出身边的例子,那不得不艾特一下咱们社区 早期 关键灵魂人物 @johnbanq 。
关于英文
如 Bintou 老师提到的,看英文资料在目前为止成为一种必然。在前段时间搞的 CS50 讨论里面也有提到,我们在讨论第一课 Scratch 的时候,@johnbanq 有提到一点我觉得很有道理:
“国内软件开发虽然已具规模,但中文资料方面总体较英文资料落后”(当时讨论的 note)
这是我们当下面临的现状,也是 CS 学习的路上不得不面对的硬骨头,绕着走往往面对的是中文世界各种奇奇怪怪概念不清的二手三手四五六七八手... 且不标明来源的资料,反而更加劝退。
当然这一个“硬骨头”并非想象中那么困难,很多时候仅仅只是初高中时候高强度灌输教学留下的阴影所带来的阻碍(这部分之前 wiki 也有过讨论),这里也打一个预防针。拿我作为例子,我的英文其实也算挺蹩脚,四级 431,六级300多点至今未过,但不影响我使用英文的资料(当下的翻译软件已如此发达,实在不必担心、而且有很多视频会有很多字幕组的热心翻译);今天也恰好看到一个复旦读博的老哥的 读英语视频,也并非想象中那么高大上和标准化。
综上而言,语言只是表达的工具,大概平时多接触熟悉就 OK。比如说装 VSCode 的时候选英文版界面、多用命令行、折腾折腾 Linux、看看英文版的 Arch Wiki、搜索的时候尝试多提取英文的术语然后看看 StackOverflow 等高质量网站等等;尝试用英文表达的时候不必太拘束,Chinglish 和中式口音其实都无伤大雅,什么语法表达等标准的东东多靠近一些就好。
高数
高数对我而言算是一个特别的记忆,如上面所说,因为自己的一些 心理的障碍 导致难以接受一些抽象的概念,加之大一迷茫与瞎折腾,投在高数的专注时间与精力不足,大二的爆炸忙碌,而连续挂了两年。
当然这段经历之中也伴随这许多的挣扎与思考,我不喜于活在一个奇怪的抽象之上,所以也尝试刨根问底,不得不吐槽数学领域许多教材的混蛋之处,一上来就pia pia pia给你一堆的公式,让人不知所云。翻过很多书和文章,其中遇到一个最触动的 演讲。大致说,数学的本质是各种各样的“模式”及在不同的视角的转换的过程。这个角度来看「高等数学」不过是更高层级的抽象,主要着眼于微积分的领域,这可能难以融入过往以直觉为主的思维,那么就需要通过做题去训练一些肌肉记忆。
数学学习重点在于这几点:
- 关于“模式”和视角转换的理解
- 有机会尽可能系统学习(这个领域十分巨大,一不留神就可能绕在里面出不来,能做的只能说理清体系,有导游会更好)
- 留下大块专注时间、训练大脑的肌肉记忆(网络时代这样的专注也越来越难,需要有意识地把握)
也说说高数在计算机学习角度的意义。除了培养我们在一个抽象的概念之上思考与变换之外,数学在计算机角度更侧重于一个概念层面的工具的存在,许多算法和优化手段依托于某些数学模型的性质。所以可能定理证明之类的活不用太过于在意,刨根问底是无止境的,交给数学家去思考和沉淀,更多时候我们只要能够理解并且使用起来就好了。
高数相关的内容过去有整理在 0xFFFF Wiki 的一个页面,也欢迎一起完善完善~
https://www.yuque.com/0xffff.one/cs-learning/calculus
最后
不知不觉写了很多(说好不长篇大论的),每个人的情况不一,那么便不必按部就班 or 全盘接收,愿读到这些文字的你。在未来的学习中面临相似的困难时,其中能有只言片语带来一点共鸣和思考。思考一定是一个伴随着痛苦和蜕变的过程,既然无法回避,那么就享受它吧~ 本站有很多帖子都提到 邓宁·克鲁格效应 的那条曲线,遇到困难,相信自己,很多时候只要挺过 绝望之谷 就好了,加油!