作为一个在大学的大学生,想做程序猿,在大学应该咋学习,学习路线或者说成长路线?
谢邀~
不知题主大几?
刚好我大学还未毕业,计算机专业,就和你多聊几句吧。
(此回答已经同步到我的专栏文章进行分享,大家也可以在我的专栏下查阅收藏此文,下面是链接)
小亦:大学使命
切入正题,先来一段概述:
你的目标不该是程序员,而是计算机科学家。程序员是一个职业,计算机科学家是一个事业,往这方面走,以后你仍愿意做程序员也没人反对你,只是会觉得可惜了。学习路线很多,我底下会贴出一条适合大学本科教育阶段的路线给你,但一定要切实实践,没有自律很多东西都是空的。大学学习不同于高中学习,我想说的最主要的一句话就是:「大学学习如同独木行舟,你就朝着那不知名的方向前进着,你周围的导师、同学、亲友都是你的外力,你舟偏了,他们会拉一拉你,你舟歪了,他们会扶一扶你,但你要记住,舟必须要你往前划才能前进」。所以切不可说等着老师讲知识点自己被动去接受,若老师一学期完了发现还有 1/3 的东西没讲,你还能怪谁?你人生可能一辈子都只上一次那门课,学得好不好没人替你买单的!
细述:
目标有人说博士工作者发现了一些定理,并加以论证,证明了其可行性;研究生就去具体化这个理论,考虑多种情况因素,发表相应的论文著作;本科生去实践理论,用代码的形式去具现表达,实现出一个个框架系统;专科生就去学习这些框架结构和工具,完成业务需求。
// P.S. 我没有特指某一类人群的意思,只是说大部分本科生可能都从事框架开发或者业务开发去了,也有少部分会从事理论研究,更底层的逻辑设计。道理类推。
我们常说把目标定高点,只需要在合理范围内就好,然后你每天朝着目标前进,数以计月,你就很容易达到那个高点下的一级,尽管你可能没有攀上顶峰,但你已经很成功了。所以你想做程序员可能最后做不了程序员,你想做计算机科学家,想更细致地研究计算机,可能你会轻而易举地成为一个出色的程序员。
路线路线很多,我说一下我之前的经历。
我们学校是 2012 年正式拿到资格办学的,以前学校名字后面都得加个括号,里面写上「筹」,表示还在筹建中。我是 2015 年入学,当时计算机系后面也有个「筹」字,想学计算机的人一般都挂在电子系下的。我们是大三选专业,大一大二修读通识通修课程和少部分自由选择的专业课,也就是说我现在去选生物系的动物细胞都没人拦得住你(当然有些课程有先修课程需要满足才能选择,那是后话了)。
我认识的第一批学长学姐们是 13 级的,他们来的时候是压根没有计算机系的,连个「筹」字都没有。于是他们选择抱团组队学习!是的,就这么简单直接,没任何奥秘玄学在里面。他们一行十人左右,都会蜗居在实验室,当时的实验室专门留了一张空桌,他们围成一圈,电脑搁在上面,每天早出晚归在实验室要么学习,要么帮着老师干活。
因为当时没有计算机系!没有计算机系!没有计算机系!重要的话说三遍!!!那么也就是说没有任何人可以教他们学计算机系的知识课程!!!
但他们想学啊。
于是他们众里寻花,终于在网易云课堂上面找到了支撑点,开始按线刷课!(这里特别感谢国内外这些慕课平台的兴起,让很多想学却又找不到好路线专业路线的人得到了很大的解脱,这些孩子将来可能都是社会的极大推进者,如果当时没有这些平台,他们的困境就会再多一倍。// P.S. 学姐学长们后来有去腾讯、华为的,也有继续深造出国读博的,上天不负有心人,真的是一句大实话)
这里贴出当时的网易云课堂路线:(链接:大学计算机专业 - 网易云课堂 )
大家可以点进去具体查看,当时网易只出了计算机专业的导图,现在多了几个,做的很用心。
我就只说一下这张图上一些个人理解的不同建议点吧:
大一没必要专门抽时间学 C、Python,推荐一门语言课就行,当然我首推 Java,因为 C 是一门面向内存的语言,不利于初学者实现很多直观高级的功能,Python 封装得太好,以至于太简单,不利于「学习一门语言」这样的过程,Java 置于其间,确保了思维的训练和实用性的兼得,个人是首推 Java 的。然后配合上「高等数学」,大一主要还是兴趣和思维的培养,就这样完全足矣。
大二的数据结构、离散、概统(概率论与数理统计,数学专业下这两门课是分开的,叫做概率论、数理统计,觉得想深入的可以选这两门课,学得肯定比一门概统扎实)。数据结构课上多数是 Java 或者 C/C++ 的语言进行编程实践,这个时候因为你有了 Java 的基础,去学习一门新的语言不难,甚至大一的时候或者大一暑假就抽闲暇时间两个星期搞定了一门语言的基础,语言并不是难点。
大二的数据结构是计算机的基石,这句话好比:数学系基础在于《数学分析》,电子系基础在于《信号与处理》,美术之于素描,音乐之于乐理,而数据结构就是计算机的基石之一,且是最重要的一环。你得在这期间建立一套正确的三观去修读计算机知识。另外,离散和概统是精修课,需要认认真真好好学习,离散涵盖内容极多,但都很基础,啥 RSA 加密,图论,都会在课上有所体现。
大三的线性代数在我们学校是大一修的,都无妨,你抽空学了便是。线性代数是上个世纪末开始大规模流行的数学表达方式,很多人开始用线代进行数学分析论证(特别是文革后,大量国内科学家发现国外开始流行了一套新的东西,天天行列表达,还以为是个啥,仔细学了之后才发现只是换了个表达方式)。线代好处就不多说了,你所知道的计算机图形、人工智能啥的都离不开的,没这个,很多东西跑不起来的。
大三的计算机组成原理我们是大二修的,因为不是很难,照着课程走就是了。会学习一两门汇编语言,掌握一些基本的计算机结构体系的概念。
大三的数据库因为我个人原因,我在大二就旁听了。大二的 C++ 我也在大一就旁听了,C++ 和算法课是绑在一起的,所以都了解了一些。
大四的面向对象和大三的软件工程我们是先修的面向对象再修的软件工程,都是在大三完成的。这门课上你会学到 Android、iOS、JavaEE、Web 前端的开发,虽然都是基础,因为不可能深入教太多的,但你肯定会理解很多东西的通性。
除了上面的课程外,我们还开了包含人工智能、高级人工智能(姚新 开的课,可能是他嫌之前的人工智能课太弱了吧。。)、并行云计算、大数据导论、机器学习等很多课程。而这些课程都可以在你空余时间找到相应的慕课平台进行修读,还会发放修读完的资格证书,给自己一个小小的奖励。慕课的话推荐 coursera 吧。机器学习这些在上面很火,也有很多不错的老师在上面开课,值得去听一下。
方法之前说到大学如独木行舟,学习本来就是自己的事情,也再也不会有像高中一样的排行榜,除了自己没人会知道你的成绩如何,你要做的只有自觉。
很多人来了大学就是换个地方打游戏而已,打完四年还是一个破白金,上不去分也不肯罢休仍在死磕。说白了自己没那游戏竞技的命就别逞强,闲暇时候玩一玩可以,但别忘了自己是来干嘛的!游戏能有编程好玩吗?游戏能有编程好玩吗?游戏能有编程好玩吗?自己扪心问自己两句。
大学学习一般来说一定要记住这几点:
不要呆在寝室!!!记住这句话,并实践它!你就比很多人做得更优秀了!多去校外看看!!!我可没叫你出去浪。身为一个计算机系的乖宝宝,外面开高交会了你不该出去买个票看看吗?xx创行大会活动在进行中你不该去走走吗?某个地方来了VR展你不该去逛逛吗?别老呆在学校,外面的世界才是真实。允许自己翘课!!!我大一的时候杨振宁老爷子来我们学校演讲,没错,就是那个诺贝尔物理学奖的大佬,但刚好遇到我物理课冲突。咋办?你说听一节老师讲的物理课和物理诺贝尔奖大佬讲的课你愿意去哪个?当理由足够充分,希望你不要那么死板认为课必须得上,很多人上课就是在后排睡觉,那你去上课干嘛?安慰自己?你需要这个安慰?多和大佬接触!!!圈子效应真的很重要!因为我对大脑神经的兴趣,认识了北大医学系大佬宋xx,因为我对物理混沌现象的探索三体现象的钻研,我的导师选择了西北大学终身教授夏xx,因为你对事物的兴趣和感知还在继续,你就会不自觉让自己接触那些大佬,他们会给你新的三观,他们会让你稚嫩的世界得到满足和欣慰。但!如果你遇到的是个沙壁老师,他跟你说:这道题啊,这么做就行了,想那么多没用的。那就是你的悲哀。远离渣渣,靠近大佬。包括你周围沉迷游戏不肯学习的小伙伴(但也有的人天天打游戏照样绩点高,你不服不行)。不要看重绩点!!!我们学校流传着一句话:GPA 低不敢出门见人。其实后来快到毕业才发现,GPA 只有在你升学读博的时候有用,其余情况都是及格就行。我的意思不是让你不要绩点了,而是有目的地看待你的 GPA,如果你要出国留学,请刷高它!刷得高高高高的!越高越好!!如果你选择直接就业,请不要有从众心理作怪,你把你从 60 分刷到 90 分的时间拿去做别的事情吧!做个实验室项目也好,玩玩无人机也好,做个 APP 也好,出去看几个展览也好,登山眺远,举目赏月,大把的青春啊!!!你的故事一定要比别人精彩,他们拿时间换出国一个 offer,你如果都不要这个 offer 了,那你就把自己的时间也当回事!别去不知所以地刷分,意义呢?找到自己方向!!!大学仅仅四年,大学不是拿来给你实现人生伟大抱负的,大学是给你人生未来十年二十年甚至一生做基础的!你没有输在起跑线上,因为大学毕业了才是人生的起跑线,你要在大学四年吨粮攒仓,你要修炼自己!如果你能在大学找到人生目标和方向,那你出了大学校园的门,你就能直奔主题,就不会在现实世界的迷宫里绕来绕去不知所终。我不清楚你的方向,你说你要做程序员,我觉得可以,但这不像是一个风华正茂意气风发的大学生的理想,你说你想做架构师,我也觉得可以,你说你想做全栈工程师,我也觉得可以,你想做啥都可以。但你说,你想有一份自己的事业,想做一个想法,我会支持你。一定要给我点赞!!!不点赞这篇文章就被埋没了啊!!!数以万计的广大学子们看不到这篇文章要走多少弯路啊。不管你是大学、小学、中学、专科、硕士,此文天地可鉴,日月可证,纯属罕见,只为正值青春的你量身定做!
∠( ? 」∠)_
// 我会在评论区在线,大家有疑问可以直接评论这条回答。希望我一己之力,也能帮到几个有志少年。
■网友的回复
如果是Java路线,那么我有资源可以给你:
JavaSE:
Java马士兵:链接:https://pan.baidu.com/s/1jJRvxGi密码:v3xb
Java毕向东:链接:https://pan.baidu.com/s/1ggzHkPl密码:qez1
Java刘意:链接:https://pan.baidu.com/s/1kVZQCqr密码:34lw
JavaWeb基础:
Servlet韩顺平:链接:https://pan.baidu.com/s/1htDmvJm密码:kmky
JavaWeb方立勋:链接:https://pan.baidu.com/s/1nwTXgSh密码:w67y
SSH、SSM全套:
168期:链接:https://pan.baidu.com/s/1nvZg6Y9密码:ro2e
32期:链接:https://pan.baidu.com/s/1hsRPnJQ密码:125v
对SpringMVC和Mybatis的补充:链接:https://pan.baidu.com/s/1nvXKEpj密码:krzl
项目资源:
基于实战垂直开发:链接:https://pan.baidu.com/s/1smXSInV密码:e9j7
巴巴运动网(上)链接:https://pan.baidu.com/s/1mjHhXzy密码:dpnv
巴巴运动网(下)链接:https://pan.baidu.com/s/1o92kLAU密码:egcn
Java项目20套链接:https://pan.baidu.com/s/1kWwl7Jh密码:fuws
Web前端:
HTML+CSS+JavaScript+jquery:链接:https://pan.baidu.com/s/1i6v9vCh密码:rdvi
HTML5+CSS3:链接:https://pan.baidu.com/s/1mj5CDLY密码:13k0
IDEA学习:
IDEA教程:链接:https://pan.baidu.com/s/1miXgJnq密码:9c43
也可以在慕课网上学习
PS教程:
链接:https://pan.baidu.com/s/1ec1bVC密码:xob0
C语言+数据结构:
郝斌C语言+数据结构链接:https://pan.baidu.com/s/1dZdpZg密码:foxs
Java数据结构:链接:https://pan.baidu.com/s/1mjv3ovu密码:bx0s
Servlet+TomcatTocat就是这么简单
Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
Servlet第三篇【request和response介绍、response的常见应用】
Servlet第四篇【request对象常用方法、应用】
Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】
推荐阅读
- 深圳有啥「鲜为人知但很有意思」的景点
- 家里两个小孩,大的刚上幼儿园;两个老人帮忙带孩子一起住;老婆想要一个衣帽间。请问家里房间应该怎么样安排
- 高中生啊,最近喜欢上一个男生,一直想他没办法写作业咋办
- 旅行是不是检测一个人品行的捷径?
- 生活中有哪一个瞬间让你觉得自己生活在楚门的世界
- 上海有啥厨师学校可以学到些真本事的啊 最好样样都可以学的那种
- 人应该做一个有道德的人吗, 或者说,人应该按照自己的意愿生活,还是按照道德的要求生活
- 我想问一个特严肃的问题!怎样拉屎不臭到自己?
- 女友被家长洗脑,咋办
- 身处一个脱单率为75%的四人间宿舍我咋办