计算机及相关专业的同学如何规划大学四年?

在这里插入图片描述

前言:本文是前段时间给大学学弟学妹们的分享,之前写在「大学生成长之路」这个公众号上,现发布在博客上,希望能给更多需要的人一些建议和启发。

这几日在小区门口看到了儿童编程的广告,去年教育部将Python纳入全国计算机等级考试科目,甚至山东省的小学信息技术教材中也加入了Python内容。由此可见国家对计算机科学的重视,也能看到全民学习编程的热情。

显然部分原因是市场推动,计算机相关专业毕业生的薪资近几年持续走高,某些岗位优秀的应届毕业生就能拿到30~40万年薪。

这似乎给了计算机及其相关专业的大学生一些动力,同时也带来了一些压力。大家应该认真思考如何规划自己的大学时光,因为这几年的努力直接决定了你毕业时能进入什么样的公司,能拿到多少薪水。

作为过来人,结合自身经历,跟大家分享一下如何利用好大学这几年,希望能给大家一些参考和帮助,避免一些前人踩过的坑。

一、尽早确定自己的兴趣和方向

计算机及相关专业的同学,并非都是对计算机、对编程感兴趣的。然而更严重的一件事似乎是大学新生对自己的专业与未来感到迷茫,找不到自己的兴趣与方向,在之前的文章《写给即将步入大学的同学们》中也提到过。

对大部分同学来说有个迷茫的过程也很正常,但大二时希望每个同学都能找到自己的方向,越早越好。

相对来说,学习计算机和编程确实比较辛苦,因此兴趣很重要。

兴趣是最好的老师,在我们学习过程中遇到困难、挫折,兴趣支撑我们继续前行;在不断的编码、调试过程中,兴趣陪伴我们度过一个个不眠之夜。

如果只是看到程序员的高薪水或者蹭热度而去学习编程,其实很难深入地去学习,也很难坚持下来。

因此建议计算机及相关专业的同学,一定要确定自己是否真的对编程感兴趣,如果发现自己确实不感兴趣,也不失为一件好事,与其在不感兴趣的事情上浪费时间,倒不如在自己真正感兴趣的方向上投入。

另外,对于对非计算机专业的学生,如果有兴趣想学习编程的话也没问题,完全可以自学相关知识。

二、如何学习编程

1 兴趣驱动

前文已经详细说明了兴趣的重要性,学习计算机编程必须以兴趣来驱动,这里不再多说了。

我在大一时,其实个人对编程也谈不上什么兴趣,只是觉得要好好学每一门课程,现在想想应该当时也在一个对专业迷茫的阶段,直到后来产生了兴趣从而坚持下来。所以大家不要担心,有一个认知的过程很正常。

2 学好一些重要的课程

如果要从事编程工作的话,学校里有一些课程至关重要,它们是计算机原理、操作系统、编译原理、计算机网络、数据结构和算法等。

可能大家发现都是一些计算机基础课程,是的,学好了这些可以受用终生,这么说一点也不夸张,它们决定了你能在计算机编程的道路上走多远。

千尺高台起于垒土,同学们需要把基础夯实,把地基打稳。其实各种新技术层出不穷,但最底层的原理都是类似的。

基础原理很重要,我们不能仅仅满足于能完成功能,还要了解底层原理,然后才有可能对性能调优、举一反三。我在面试一些应聘者的时候,基础原理考察也是一个重要方面,大概占三分之一左右的比重。后来我到了BAT一线大厂,包括我自己去面试,发现大公司更加注重对基础知识的考察。

一些非计算机科班的同学,学校里并没有开上述课程,例如GIS专业,可能更侧重应用开发或二次开发,计算机原理方面的课程相对少一些。建议大家如果有志于计算机编程,一定要自己补充这些方面的内容。

3 坚持动手实践

学习编程没有捷径,只有坚持不懈地写代码,动手实践。

计算机博士徐宥的一篇文章——《十年学会程序设计》里提到:

不断地编写,最好的学习方法是在实践中学习。

编程像所有其他的技艺一样,遵循一万小时理论,只有不断的练习才会真正的掌握编程这门技艺。

所以从现在就开始练习吧,珍惜每一次老师布置的编程作业,认真地实现,而不是抄袭其他同学;认真完成实验室的项目,把握住每一次的锻炼机会;认真地对待每一次的竞赛,在实践中提升自己的编程能力。从实践中很容易获得成就感,反过来也有助于兴趣的养成。

哪怕一开始只会写”Hello World“,哪怕只会照着书本敲代码,相信我,只要经过持续不断地动手实践,总有一天你能达到大神的境界,一览众山小。

4 专注与精通

为什么要提“专注”呢?

因为现在各种新技术五花八门,且如雨后春笋层出不穷,做技术的人都有新鲜感与好奇心,但一个人精力有限,不可能在每项技术上都投入太多时间。其实就业之后也一样,大部分人都是螺丝钉,专注于某个技术方向。

当然这里的意思并非不让大家接触太多技术,大家完全可以花时间去了解自己感兴趣的,只是建议大家不要跟风,看到什么热门儿学什么,要有自己的技术视野和判断。

希望大家能做到至少精通一两门技术,这其实很不容易。以Android开发为例,要做到精通,大概要掌握以下知识:

  • Java或Kotlin语言
  • Android应用层SDK
  • Android应用性能优化
  • Android架构设计
  • Android Framework层
  • Java虚拟机、Android Dalvik、ART虚拟机原理
  • Android内核设计思想
  • Linux操作系统
  • ……

上述只是简单罗列,还不包括日益推陈出新的Android端新技术,但可见精通一门技术并不容易。从另一个角度也说明技术不是一朝一夕的事情,需要长期坚持实践积累。

再补充一点,关于编程语言,其他语言不说,考虑到AI、机器学习以及大前端的发展方向,建议学好Python和JavaScript两门脚本语言,这两门语言相对其他语言也是比较容易入门的,也是日后非常好就业且高薪的方向。

早先也写过一篇文章《面对五花八门的新技术,如何看待与学习》,可以参考一下。

5 持续学习

技术日新月异,互联网IT行业也是一个活到老学到老的行业,需要持续学习。

要学习新的技能,基础在此时就显得特别重要,这也是前文希望大家学好几门基础课程的原因之一。根基扎实,很容易就能掌握新的技术,否则很可能事倍功半,步履维艰。

学习需要时间,大学相对是一个时间充裕的阶段,等到毕业甚至成家,属于自己的学习时间就更少了。回过头想想,当年大学时似乎也浪费了不少时间,希望各位同学能珍惜时间,争分夺秒,在大学期间就修炼好内功。

另一方面需要培养自学能力。这个能力很重要,在《我在大学里学到的最重要的东西》这篇文章中特地强调过,无论什么专业或行业都适用。

6 其他
  • 图书馆——往往毕业之后才知道图书馆是一个巨大的宝库,希望各位能好好利用。
  • 学会科学上网——对于计算机专业的同学必须掌握的技能之一,知道如何使用Google搜索。
  • 英语阅读写作能力——很多一手技术资料都是英文的,因此阅读英文技术文档的能力是必须的。
  • GitHub与stackoverflow——作为计算机编程专业的学生,这两个网站不可不知,而且对日后就业有加分作用。
  • 坚持写技术博客——好记性不如烂笔头,如果有时间,可以坚持写技术博客,既可以锻炼写作能力,又能够积累技术,还能在就业时作为加分项。一举多得,何乐而不为呢?
  • Linux——建议大家将自己的电脑装上Linux操作系统(Mac除外、必须用Windows的除外),在平时使用中熟悉这个伟大的操作系统,对日后做技术大有裨益。

三、关于就业

也许就业对大家还比较遥远,也许就在眼前,先跟大家分享以下两个方面:

  1. 自己毕业后会从事什么技术方向?比如做底层开发还是应用开发,是从事AI相关还是前端或移动端开发,大家一定要有自己的想法,这样就可以在学校阶段有针对性地学习。

  2. 用人单位及面试官到底看重什么?结合自身经验,其实面试官非常看重学生的基本功、动手能力、独立思考及自学能力。事实上,大学里学的很多知识已经落后了,到了社会上并不能直接应用,而是需要学习新的技术,因此上述能力就很重要。
    如果在学校里就能紧握社会的脉搏,把握住技术发展方向,那就很厉害了!我见过一些刚毕业的大学生,他们在大学里就对某项技术研究的非常深,也做过很多项目,甚至比工作几年的员工还要优秀,这在市场上就有很强的竞争力了。

    结合这两点,相信大家应该知道自己的努力方向了。

四、关于读研

计算机专业是否应该读研这个问题需要辩证地看待,首先我是读研的,当时我选择读研的目的是想去一个大城市,想去一个更好的学校,也可能是我们毕业那年市场上薪资太低吧。我觉得读研带给我最大的收获是开拓了视野,尤其是在思维上。

现在让我来看的话,如果毕业之后选择做软件开发,那么不读研也许是一个更好的选择,几年工作经验完全可以抵得上硕士比本科高出来的工资,而且长远来看,工作经验在互联网行业中也很重要。但有一点需要说明,不读研不代表自己底下不学习,很多知识仍然是需要持续学习的

另一个方面,如果想做更深入的技术研究或学术的话,读研则是需要的,看下现在市场上做AI的、做机器学习和算法的,大部分都是硕士博士。

五、结语

技术改变世界,这是技术人的信仰。以上只是一些建议,有感而发,写给计算机及相关专业的同学作为参考。

如果有疑惑,欢迎留言交流探讨。

  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值