更新1:自己的学习路线总结

转载自:https://zhuanlan.zhihu.com/p/480662561?

章前概述:这里仅代表本人情况,并不适用于所有人,仅供参考。

一、个人情况

在说学习路线之前,首先介绍下本人情况:本人并非正常升学途径(合法的)一路中考高考到本科的,而是从中考后拿着能去本校高中的分数去了帝都的高本贯通,在中考一模之前就没听过课认真学习,可以说是妥妥的学渣一个。至于为什么突然热爱学习了,可能是到高中开窍了,似乎男生都是这个情况,所以能上高中还是去高中吧,万一高中三年逆袭成功了大三可就轻松很多(指在选择和机会成本上)。

关于帝都的5+2,各位可以自行度娘,这里简单说说其中的5(2年中职+3年高职)中的3,整体感觉就是课特别特别的多,三年的必修课学分远超同专业本科院校的要求:184.5,但有营养的课很少,总体感觉更是为了上课而上课。其中主要上的一些专业基础课有:C程序设计、面向对象、离散数学、数据库、计算机电路、数据结构、计算机组成、计算机网络、算法设计等(操作系统留到本科阶段上),基本上能上的课全都堆上了,而关于编程的课,有:Python、Java高级特性、Android(Java)、JavaWeb、Linux、前端编程、软件测试等,属于已经丰富到不能再丰富的那种。

但各位有没有发现,这些课堆到一起很丰富,但没有一个重点,一会儿学这个一会儿学那个,基础不好的同学可能一会儿就懵了,这都是些什么玩意。。不说基础课,就说编程的课,基本上学校开出来的课已经远远落后于业界的应用,这是绝大部分学校的通病,可能会有一些老师会教很前沿的应用,这种老师真的可遇不可求 (有的话,再加上你对这门课感兴趣一定得抱紧大腿好好跟着学)。考勤还查的特别严,翘课去实习基本是不可能的。所以需要自己下功夫去学习。

二、个人学习路线

准确来说,我是在第4学期才反应过来要下功夫学习的(对应大一下),这个时候还没定下技术栈,于是就顺着这学期的课复习Java高级特性,同时学了点前端,自己做了一个非常简单的微信小程序

Fig 1: 创新创业大赛做的一个用于展示的小程序

做完这个小项目后,我开始深入学习一些前端内容,其中包括jQuery、Vue.js等(但当时没有反应到要学Webpack,算是败笔之一)。之后又开始调转矛头重新学习数据结构,把一些以前学的模模糊糊的知识重新巩固后我开始思考自己要学习的方向:Java / C++二选一,学Java的好处在于能够将前面的知识变现,而C++是算法及客户端方向,尤其是人工智能算法优化方面,C++的运行效率更是碾压Python(这就涉及到编译器与解释器间的区别了,有兴趣可以看看斯坦福的编译原理课,解释的非常形象)。然后自己去网上搜集了一些就业信息,下定决心选择了Java,于是在B站看了黑马程序员的课,再加上之前上过JavaWeb的课,直接从SSM框架开始学,并在Github趴了一个项目仿做,效果显著:

Fig 2: Controller界面,这个项目足足做了一整个月

升入本科后,因为有一门选修课正好与我做的方向契合,于是加了把劲,硬是把SpringCloud框架、Docker,甚至是Kubernetes啃了下去,在老师指导下写了一篇综述并试着投了稿(被拒的次数已经数不清了),通过大量看国内外同行的论文补充了一些理论知识,发现相对于目前火热的人工智能,我更倾向于边缘计算在移动端的应用,如果读研究生的话可能会选择这个方向深入下去。

三、学习路线选择:就业(进大厂/不从事相关工作)

那么作为正经的科班生,我建议你在做任何选择前先好好学C语言,学完C语言后你就大概清楚自己会不会走程序猿这条道儿了,不建议在大一就做出抉择,这个时候应该要好好体验大学生活,加入社团学生会、谈个恋爱分分手之类的。

1、如果走这条道儿:

建议你在大二上结束之后就选择自己的技术栈,同时每天刷LeetCode找找手感(一天两三个Esay+1个Medium就可以),争取在大二的暑假找一个短期实习做做,如果找不到就在Github扒一个大项目跑跑,争取在大三把基础夯实,以便在后面的秋招拿Offer拿到手软。在这个过程中一定要好好学408(数据结构、计算机组成、计算机网络、操作系统),不仅能夯实你的知识体系,而且大厂面试及考研都会用到其中的知识,非常非常重要。

Fig 3: 字节后端职位要求,其中就包括数据结构与操作系统,部分职位也会要求理解TCP/IP

这里比较特别的是计算机组成,看起来每个互联网和人工智能岗位都没做要求,但其恰恰是计算机科学的基石,若你能吃透计算机组成、理解冯诺依曼五大组件,会对你后面深入源码学习、框架结构设计、内存调用等非常有帮助。

2、如果不走这条道儿

分两种情况:第一种家里有矿/安排的妥妥帖帖的那种,只要不杀人放火/违反校规校纪、不挂科、修够学分,想怎么玩就怎么玩 ;第二种是普通人,同理不挂科修够学分,在这个过程中找找自己真正热爱并能为之奋斗且能养活自己的一些技能,开开心心的度过大学四年即可

四、学习路线选择:科研

因为前面说过有投稿综述并做了一些配套的工作如敲代码读文献之类,这块还算是有一点经验可以分享,科研跟敲代码真的完全不一样。敲代码属于业务需求,有章可循,你能从各种地方找到现成的解决方案;而科研属于创新需求(框架调参那种就算了),你经常会遇到各种前人没遇过的问题——这意味着你得自行设计实验并解决问题,这个时候就得读读论文,从同行的工作中找找思路,可能恰好看到一个比较好的解决方案,也可能啥都找不到,整个焦虑的过程会一直持续到硕博毕业答辩通过为止。等到你工作后会发现,还是被企业996压榨好( 保命)

若你对科研感兴趣,想成为计算机科学家、致力于打破米国的技术垄断、体力超级强+能在实验室坐的住看得下文章、心态超级好能屡败屡战、不解决问题绝不罢休的那种,那太好了,科研这条道儿非常适合你。你只需要做的就是本科阶段找个愿意带你的老师跟着做课题,争取发几篇SCI(不建议发中文,国内期刊对本科生歧视太严重)。

五、总结

还是老话常谈,如果科班学生固步自封只学学校教的知识,迎接你的只能是毕业即失业,想走这条道儿就必须自学。想把所学的知识用一辈子,那建议转医学、生物医药、集成电路、通信、机械和自动化,这几个专业壁垒足够强大,能满足你的需求。剩下有门路的人肯定不会担心自己的出路的,就这样。

发表评论 取消回复 您未登录,登录后才能评论 前往登录