前言
某次间的闲聊,和朋友聊起国内高校的计算机环境,默默想起自己的大学,玩的时间够多了,而专业却没学到什么。不能完全归于教育方式不对,毕竟还是自己不好好学习,但如果有更好的学习方式,为什么不来引导学生学习呢?大学目前计算机的教育水平已经远落后于工作所使用的技术。老一辈的老师,老一辈的技术,老一辈的思想,对不起!这不适合现在的计算机学生了。
自我介绍
段荣,现在在北京百度,从事BFE(百度统一前端)工作,之前任职于杭州阿里巴巴,参与开发了东南亚电商LAZADA,主要负责闪购活动和订单页面页面。
我们要学习什么?
语言篇
C,C++,JAVA,C#这么多语言,我们是一定要做到门门必会吗?语言只是我们用来编程的工具,如同拧一颗螺丝钉,没有人会随身携带所有种类的螺丝刀一样,我们也没有必要学会使用多少种语言。但我并不是想说明不要只学一种,对其它语言视为浮云。每种语言以及它的生态有自己的特点,即使我没有使用过,但我知道什么时候去使用它就可以了。Java在阿里巴巴就会一家独大,C++/Golang/PHP在百度畅通无阻,因为他们面向的业务不同,他们选择了最适合自己发展的语言,如果有一天出现了更优秀的语言,也许有些业务就会扔到他们过去代码了。
那么作为大学生需要学习什么语言呢?
无所谓,学校教的任意一种已经足够你整个大学的学习了,但我在这里还是强烈建议学习Python+其它一门语言。Python疗程短,见效快,小白容易使用,不会遇到太多看不懂的问题,这样就不容易产生退缩心理。另一门语言是为了以后工作用,毕竟以后工作方向不一定只是Python工程师,比如想去阿里当后端工程师就要熟练使用JAVA。
就业与考研篇
下图是大部分计算机学生工作后从事的方向,包括但不限于
- 后端工程师:负责处理数据
- 前端工程师:负责页面展示
- 测试工程师:负责系统上线稳定
- 产品经理:明确产品需求,进行需求分析,原型设计
- 视觉设计:负责开发前的设计搞和用户交互
- 算法工程师:偏向于处理复杂的数据模型,如淘宝如何推荐商品给你
可以很明确的说,我们以后的出路不仅仅是打程序这一条路,选择一个合适自己,感兴趣的工作是我门大学最后所要确定的事情,最糟的情况是临了就业还不知道自己要做的是什么,花了一年时间准备选择了读研,然后两三年之后再发生相同的事情。
如果你有感兴趣的方向,也许并不擅长,但只要你做的开心,完全可以读研。比如你就是对自动驾驶感兴趣,那读研完全有环境提供你研究这个方向。
但如果只是想打程序,我建议尽早工作,多离开学院,接触工作上的事情所学习到的远比上两年研究生学的多。学校学习的往往是落后的,而且只要不是专门的领域(比如人工智能),公司一般不会太看中学历,而是你们的实力。
知识架构篇
知识框架可以帮助你有效的寻找到现在所学的知识如何运用以及接下来需要继续学习什么。
下图是前端工程师的部分知识架构:
可以看到任何一个点都应该有它联系的其它知识,将这些知识联系在一起便是自己的知识框架,然后做到举一反三。
再举一个学校中的例子,做一个课程设计设计网站,一个工程师应该脑海中浮现一张类似的图:
此图列出了网站开发的任务划分,但我们开发完了是否就万事大吉了呢?当然不是,我们需要把我们的代码部署到机器上面,那么如何部署?部署的什么?部署完了之后如何通过浏览器链接上?这些学校可能都不会讲,接下来的课程我会弥补这部分的空白。帮你们把这些串联起来。(这里一个很经典的问题是:当我们浏览器输入www.baidu.com后都发生了些什么)
课程计划
这个课程的想法是帮助你们更好的理解学校的课程,由问题引出你们所学到的知识,丰富你们的知识框架,而你们可以通过本课程理清楚自己在将来要工作还是研究生,比如突然觉得前端开发很有意思,那就没有必要上研究生了,再或者打程序都没有吸引自己的地方,反而对产品经理有强烈的兴趣。
本系列计划持续三个月,使用python语言,每周至少一篇文章,会讲解一个知识领域,或许不够深,但力求帮助你们理解这个领域。最后的结果希望可以帮助你们明确自己的职业方向。
如果每期有什么问题或者理解不清楚的可以在私信,群里或者评论留言,会做到帮每个人解答清楚。如果学习中有什么问题也可以提出来,尽量帮你们少走弯路。
有疑问加站长微信联系(非本文作者)