前置技能

也许这些技能、工具和思想会陪伴你职业的一生,善于利用这些工具将会事半功倍。

硬件

内存不要低于12G,否则Chrome页面开多了都卡,一般的笔记本应该都能自己加内存吧,除非板载那就尴尬了

windows有一个非常大的不足就是terminal了,目前可以WSL2,不过目前我是windows+remote-ssh

学习观念

  1. 将自己当成一个开发者,而非是一个学生:以问题进行驱动,不要学生思维:我要学完《JavaScript高级编程》才会网页开发。实际上,你应该先给自己布置一个任务,比如写一个网页游戏,写一个Chrome插件,然后主动的去找相关的开发环境和需要学习的东西,最后在完成任务的同时,你也就学会了某项技能了。不要永远处于一个我要做的状态,而是我已经开始做的状态。
  2. 不要逃课。哪怕老师讲的很烂,你可以不听,但是也可以坐到教室看自己的书,也许有的时候讲的东西也会对你有所启发。
  3. 找准重心,作为一个计算机相关的同学学习什么是最重要的:数据结构、算法、操作系统、计算机组成与体系结构、计算机网络、数据库、编译原理、设计模式等等。
  4. 多去找找这门课的英文优质课程,尝试着去完成其中的project,哪怕是借鉴别人的代码,多去读读里面的代码逻辑与思路,比同课上老师讲理论有意思的多了,并且理解更加深刻。
  5. 初入大学,希望还是拿出半年时间来对未来规划,确定发展方向(短期的即可)。在这半年里,多多尝试,毕竟大学的包容性很高。

git&github

善于利用,多上传代码,去体会云端同步的优点(说不定你代码写了一大半电脑进水了,说不定你毕业论文即将提交电脑烧毁了,被人偷了2333),每天打卡也是一种激励自己的方式。

阅读源码的能力

由于项目结构的多样化,往往需要快速的读懂一个框架的逻辑结构。

首先找到函数的入口,例如c语言中的main(),然后依照主逻辑,不断的往后找到自己想查看的分支就可以了。当然JavaScript这种异步性很强的语言就可能有些难读。

工具建议多使用vscode中的peekgo to definition的功能。

stack overflow

解决问题的利器,多到上面去搜索你想要解决的问题。

知乎

上能探索前沿知识和各种技巧,下能分享你刚刚编的故事。

知乎上面的许多问题的解决方案确实实在,但是看多了知乎的内容可能被灌输焦虑。

搜索能力

自建梯子(vultr)or买服务(ssr cloud)都是可以的,少用baidu。。。浏览器用Chrome/FireFox不解释。。。账户云同步,等换笔记本就知道好处了,以及强大的插件生态。

善于锻炼自己的__搜商__。记住搜集信息的能力也是很重要的。

vscode

微软的这个开源项目也是非常的厉害,当然是基于它丰富的插件生态。当然还有最新出的云vscode,直接远程操控你的vscode。

remote-xxx

remote-xxx表示remote-wsl, remote-ssh, remote-docker等等工具链。建议也不要什么双系统了,直接windows+虚拟机+remote-ssh美滋滋。

linux 命令行

学会构建自动化的脚本来完成自己想要完成的任务。同时命令行中包含有大量的易懂的说明文档,简直就是一个宝库。

搭建自己的博客

多尝试的去写点什么与他人分享。如果觉得对他人有用,可以发表到社交媒体,如知乎的文章功能,与他人交流也是促进自己的一种非常有效的手段。

the missing semester

一个非常优秀的计算机技能前置课程,建议当看到这篇文章的时候,直接学完。

课程链接

公开课资源

可以参考一些优质的 MOOC 网站来补充自己的知识,推荐:

bilibili:众所周知,b站是个学习平台。上面有非常多的公开课课程和搬运的付费课程等,不仅仅包括理论知识,如李宏毅的2020机器学习深度学习,李飞飞的cs231n;还包括诸如黑马程序员Java, 尚硅谷Springboot等的编程相关培训知识,拿来肝大作业和为实习/工作做准备还是足够的。

Coursera:斯坦佛教授发起的一个在线 MOOC 网站,上面有许多高质量的世界名校的课程,需要科学上网以及较好的英语能力,课程的 project 能完成的话加成很大;推荐课程:普林斯顿的算法、斯坦佛的机器学习。

中国大学 MOOC:网易出品的公开课,国内很多知名大学都在上面有开课(包括西电)

学堂在线:清华大学主导的网课平台,推荐邓俊辉老师的数据结构。

其他一些工具链的推荐

链接

分享人:

@babydragon

@TobiasLee

@wkf

@larry6799