计算机专业还值得报考吗?
计算机专业还值得报考吗?
从我二十多年前参加高考以来,每年高考一结束,#计算机专业还值得报考吗 就一直热门话题,一些人认为计算机发展了这么多年已经饱和,可能面临毕业即失业的风险,而另一些人则认为计算机专业依然是未来的热门专业,就业前景广阔。
其实“计算机专业还值得报考吗?”这其中包含两个问题:
1. 计算机专业未来发展前景如何?
2. “我“是否适合学计算机?
绝大部分讨论都是围绕第一个问题展开的,而第二个问题讨论比较少,毕竟每个个体都不一样,别人很难帮你做出一个准确的判断。
我在这里结合一些自身的经历,分别从两个问题上谈一下为什么我当初选择计算机专业,读计算机专业给我带来的好处,最后再回答一下这个问题。
** 为什么我选择计算机专业
我是 99 年参加高考,那时候计算机就是热门专业,但计算机可远没普及,我在大学之前完全没接触过计算机,只有高中最后一年,学校食堂开始普及 IC 卡打饭,估计为了安装管理软件,采购了两台电脑,才有幸在给 IC 卡充值的时候看看是什么样的,但我们学生是没机会去使用的。由于不了解,所以我并没考虑过计算机专业。因为小时候对于用火药造土火箭很感兴趣,所以报考了西工大的航天相关专业,最终被调剂到力学专业。
本来我以为我会从力学专业毕业,然后像很多师兄师姐一样,上个研,或者毕业后去个研究所。但上大学后,学校机房上机很方便,自此给我打开了新世界的大门,开始沉迷其中,大部分时间都在机房泡着,一开始是玩游戏,上网聊天。像我这样上大学突然接触计算机就沉迷其中,然后荒废学业挂科直至退学的,每年都不少,我也差点成为其中之一。
我之所以没有一直堕落下去,一是得感谢当时的班主任老师,虽然对我有点恨铁不成钢,但是还是鼓励我把兴趣转移到一些积极有意义的方向,鼓励我去参加学校的网页设计比赛,还借给我电脑使用;另一方面我自己也比较喜欢尝试新事物喜欢迎接挑战,所以我就开始尝试做网页,从零开始,买书,上网查资料,实验各种工具(我还记得用的是 Frontpage 98),最后做成了一个很丑的布满各种 gif 动画和跑马灯文字的个人主页,没能得奖,但是这个过程让我收获到满满的成就感,而不似以前玩游戏上网聊天,每次回宿舍都觉得很有负罪感。
自此我就开始把精力转移到了网页制作上,不满足于只会做静态页面,又开始自学 ASP 等动态语言。后来学校一个网站招兼职维护,因为我有作品(就是那个很丑的个人网页),所有从众多候选人中脱颖而出,进入网络中心兼职,开始和学校一群编程很厉害师兄们混在一起,真正接触网络编程。有师傅带不一样,可以学到很多东西,少走很多弯路,我的编程水平进步神速,能写出比较复杂的应用,当时我做的一个校内的影视播放网站是校内最受欢迎的网站之一。
自此我也终于找到了我终身热爱的事业,那就是编程。
到大三的时候,我已经完全失去了对力学专业的兴趣,挂了很多课,幸运的是,大三的时候,学校开设了软件工程专业,从大三各专业学生里面招,只要求高数成绩在 75 分以上,另外要额外收 3.5 万的学费,很多人就是因为这个学费止步了。当时也有点纠结,但班主任的一句话点醒了我:**“力学专业已经发展了一百年,已经没有什么新东西可以让后面的人挖掘了,而计算机还是新兴领域,未来还有很大的发展空间!”**,于是我就转过去了,马上有点如鱼得水的感觉,转过去之后真的几乎没再挂过科了。
顺便提一下,感谢国家的助学贷款政策,让我这样的贫困学生有了更多选择,那笔学费靠的是助学贷款,在当时是不小的一笔钱,但是后来计算机专业毕业工作的收入相对比较高,真的不算什么了。
如果有机会再选一次的话,我会在一开始就选择计算机专业,而不是懵懵懂懂的随波逐流。而我之所以会再选择计算机专业,原因也很简单:
1. 最主要的原因还是因为我真的热爱,从我开始接触编程到现在 20 多年了,我还依旧热爱。我享受那种从无到有创造的过程,享受那种看到自己的作品被别人使用的成就感。因为这种热爱,让我可以忍受枯燥,花很多时间在电脑前,不断的学习,不断的尝试。
2. 我有强烈的求知欲,愿意去学习新的技术。计算机专业是个新兴的领域,新技术层出不穷,这意味着以前掌握的技术可能很快就会过时,所以需要不断的学习,才可能跟的上时代的步伐。如果背后没有求知欲的支撑,这种不断学习的过程是很痛苦的,也很难坚持下去。
3. 其他相对没那么重要的原因:
- 我数学还不错,逻辑思维比较强,写程序不会被一些复杂的算法绕晕。但这不是计算机专业的必要条件,毕竟计算机领域很广,像产品经理、项目经理、UI/UX 设计师等等,都不需要太强的数学基础。
- 有一点英语基础,毕竟计算机相关最新的资料文档,基本都是英文的,日常离不开要大量查阅英文资料。
我的这一套原因,当然主要是适合我个人的,毕竟怎么选专业从来没有一个标准答案,每个人的情况都不一样,所以我也不会建议别人一定要学计算机专业,只是希望大家在选择专业的时候,能够多从自身考虑,不仅仅是看计算机是不是热门,是不是能找到高薪工作,毕竟能让你走的远的,是那份热爱。我也见过跟风选择计算机专业的,后面也面临很多问题,比如业绩垫底,干的很吃力,也不开心,有心转行,但也下不了决心,也是很痛苦的。
当然就像我高三毕业的时候,年轻的我根本就不知道自己喜欢什么,也很难做出正确的选择,那么选个热门的计算机到也不见得是坏的选择吧,人生还有重新选择的机会,有决心的话以后还可以转专业或者考研换专业。
** 读计算机专业给我带来的好处
在大三下学期之前,我还不是计算机科班出身,但我已经自学了很多编程之一,也开始在外面接一些外包项目。比如我大二暑假没回家,熬了好多通宵,2 个星期就给人山寨了一个办公 OA 系统,赚了几百块。
我常自嘲那时候是编程速度的巅峰,纯野路子,甭管代码多烂,实现就好,很快就能糊一个版本出来,至于能不能维护,那是以后的事情了,毕竟那时候做的很多项目也没多少真的需要长期维护的。
但没有科班系统学习,短板也很明显。
一个是计算机专业技术方面的。我接了很多外包项目,大部分都是企业网站,每次接个新项目都是把以前的代码复制粘贴一份,再修改,但是没能力提取一些通用模块重用,所以有很多体力活在里面。涉及复杂一点的算法也完全不知道如何下手,安全性更是大问题,也出过 SQL 注入的事故。
另一个是软件工程和项目管理方面的,我接手的项目都是自己一个人完成的,有人要帮忙也不知道如何分工,别人也看不懂我写的代码。有一次有一个校外的比赛,我拉了几个人组了个小团队,想去参加,大家一开始热情满满,但是我也不知道如何大家一起分工协作,最终到截止日期到了我们还是没能做出来什么东西,只得放弃。
到了我转入软件工程专业后,系统的学习了很多专业课程,比如数据结构和算法、面向对象、数据库设计、软件工程等等。当学习了这些专业知识了,后面再写程序,就知道要考虑维护性、安全性、性能等等,写出来的代码也更加规范,更容易维护。当然也有副作用,再也不复当年的编程速度了,每次写代码之前要考虑很多,纠结很多,提升质量的同时也降低了速度。
我一直觉得学计算机专业后,对我最有用的一门课程是“软件工程”,正是因为学习过软件工程,给我埋下了一粒种子,等我工作后,在项目实践的时候,就会有意无意应用软件工程中的一些方法论,比如需求分析、设计、编码、测试、部署等等,不再是把自己局限在编程这个狭小的领域,而是开始关注整个软件开发的生命周期,站在更高的角度去思考问题。
最终软件工程课程埋下的这粒种子生根发芽,如今已经是一颗参天大树,不仅对自己助益良多,还能去帮助其他人。甚至于我不仅将软件工程的这些方法论应用于软件开发,在日常生活中也时常应用,比如我以前写过一篇文章教[孩子在 MineCraft 中搭公寓](https://baoyu.io/blog/life/two-kids-recreate-apartment-in-minecraft),指导孩子们在游戏中复原公寓,就是用了软件项目管理的那一套方法论。
当然很多人也会说,虽然我不是计算机专业,但是这些课程我可以自学呀,毕竟现在网上学习资源这么多。这话理论上成立的,也真有牛人能做得到,但是对于绝大部分像我这样的普通人来说,如果没有一个像大学这样的环境,有老师的指导和监督,有考试的压力,很难坚持下去,多半就是半途而废了。
还有很多人会担心,大学的课程设计相对比较落后,和实际工作中的要求脱节,就算学了计算机专业也学不到什么东西。大学课程与实际工作要求脱节这个是事实,而且也很难短期改变。但换个角度想,虽然计算机领域发展很快,有一些课程是需要与时俱进,比如像编程语言框架,但还有很多是不怎么变的,比如数据结构和算法、操作系统、软件工程这些,这些课程是计算机专业的基础,是不容易过时的,也是你在工作中最常用的知识。
至于那些最新的计算机知识,比如生成式 AI、Transformer,网上有很多可以学习的资料,比如 YouTube、B 站的教程、各大名校的公开课,只要有心和舍得下功夫,都可以学到。
这样大部分基础知识通过专业课程学习,再自学一些最新的计算机知识,甚至于不限于计算机专业领域知识,还有很重要的一点就是在大学时就养成好的自主学习习惯,成为终生学习者,这样你就不用担心计算机专业的课程设计是否脱节了,未来也总能通过自学去跟上新技术的发展。
** 计算机专业还值得报考吗?
前面都是围绕我自身角度来谈的,那么计算机专业还值得报考吗?就如我前面说的,这是两个问题,一个是计算机专业未来发展前景如何,另一个是“我“是否适合学计算机?
我并不知道每个个体的情况如何,我也谈了自己选择的原因和收获,所以我也只能再稍微谈一下计算机专业的未来发展,尤其是最近 AI 兴起后,很多人担心 AI 会取代人类,计算机专业的就业前景会不会受到影响。
计算机专业未来的发展,取决于两个方面:学术界和工业界。
1. 学术界是否有新的突破?就像新的生成式 AI 的突破,会给学术界带来很多新的研究方向,这些新的研究成果会再应用到工业界。
2. 工业界是否有新的需求?就像最近 AI 的火爆,是不是会创造出很多新的工作机会,比如将现有 IT 系统升级,整合 AI 等。AI 自然会替代一些新的岗位,但是新的需求也会创造出新的岗位,只要新需求多于被替代的岗位,总体前景还是好的。
就现在的发展趋势看,我还是倾向于新需求多余替代的岗位,AI 还没有能达到替代专业程序员的地步。但是转型过程是痛苦和漫长的,因为新的需求要求的技能和以前的技能重叠度没有那么高,那些主动掌握新技能的人才能很快转过去,而那些被动升级技能的会经历很多痛苦,而那些不愿意学习新技能的,可能会被淘汰。
这其实也是我前面提到我自己选择计算机专业的原因之一,因为我喜欢学习新技术,喜欢尝试新事物,所以当像 AI 这样的新兴技术出现的时候,我反而是那批受益者。当然如果未来我不能继续学习,也一样会很快被淘汰。
至于你要不要报考计算机专业,不妨问自己几个问题:
1. 我真的喜欢计算机吗?
2. 我愿意当一个终生学习者吗?
3. 毕业找不到工作或者被裁员我会后悔当初的选择吗?
当你想清楚了这些问题的答案,那么你也就知道了“计算机专业还值得报考吗?”这个问题对你来说是什么答案了。
最后祝你心想事成,如愿进入心仪的学校和选到喜欢的专业!
(同步发布于本人博客:https://baoyu.io/blog/career/is-computer-science-still-worth-studying )
从我二十多年前参加高考以来,每年高考一结束,#计算机专业还值得报考吗 就一直热门话题,一些人认为计算机发展了这么多年已经饱和,可能面临毕业即失业的风险,而另一些人则认为计算机专业依然是未来的热门专业,就业前景广阔。
其实“计算机专业还值得报考吗?”这其中包含两个问题:
1. 计算机专业未来发展前景如何?
2. “我“是否适合学计算机?
绝大部分讨论都是围绕第一个问题展开的,而第二个问题讨论比较少,毕竟每个个体都不一样,别人很难帮你做出一个准确的判断。
我在这里结合一些自身的经历,分别从两个问题上谈一下为什么我当初选择计算机专业,读计算机专业给我带来的好处,最后再回答一下这个问题。
** 为什么我选择计算机专业
我是 99 年参加高考,那时候计算机就是热门专业,但计算机可远没普及,我在大学之前完全没接触过计算机,只有高中最后一年,学校食堂开始普及 IC 卡打饭,估计为了安装管理软件,采购了两台电脑,才有幸在给 IC 卡充值的时候看看是什么样的,但我们学生是没机会去使用的。由于不了解,所以我并没考虑过计算机专业。因为小时候对于用火药造土火箭很感兴趣,所以报考了西工大的航天相关专业,最终被调剂到力学专业。
本来我以为我会从力学专业毕业,然后像很多师兄师姐一样,上个研,或者毕业后去个研究所。但上大学后,学校机房上机很方便,自此给我打开了新世界的大门,开始沉迷其中,大部分时间都在机房泡着,一开始是玩游戏,上网聊天。像我这样上大学突然接触计算机就沉迷其中,然后荒废学业挂科直至退学的,每年都不少,我也差点成为其中之一。
我之所以没有一直堕落下去,一是得感谢当时的班主任老师,虽然对我有点恨铁不成钢,但是还是鼓励我把兴趣转移到一些积极有意义的方向,鼓励我去参加学校的网页设计比赛,还借给我电脑使用;另一方面我自己也比较喜欢尝试新事物喜欢迎接挑战,所以我就开始尝试做网页,从零开始,买书,上网查资料,实验各种工具(我还记得用的是 Frontpage 98),最后做成了一个很丑的布满各种 gif 动画和跑马灯文字的个人主页,没能得奖,但是这个过程让我收获到满满的成就感,而不似以前玩游戏上网聊天,每次回宿舍都觉得很有负罪感。
自此我就开始把精力转移到了网页制作上,不满足于只会做静态页面,又开始自学 ASP 等动态语言。后来学校一个网站招兼职维护,因为我有作品(就是那个很丑的个人网页),所有从众多候选人中脱颖而出,进入网络中心兼职,开始和学校一群编程很厉害师兄们混在一起,真正接触网络编程。有师傅带不一样,可以学到很多东西,少走很多弯路,我的编程水平进步神速,能写出比较复杂的应用,当时我做的一个校内的影视播放网站是校内最受欢迎的网站之一。
自此我也终于找到了我终身热爱的事业,那就是编程。
到大三的时候,我已经完全失去了对力学专业的兴趣,挂了很多课,幸运的是,大三的时候,学校开设了软件工程专业,从大三各专业学生里面招,只要求高数成绩在 75 分以上,另外要额外收 3.5 万的学费,很多人就是因为这个学费止步了。当时也有点纠结,但班主任的一句话点醒了我:**“力学专业已经发展了一百年,已经没有什么新东西可以让后面的人挖掘了,而计算机还是新兴领域,未来还有很大的发展空间!”**,于是我就转过去了,马上有点如鱼得水的感觉,转过去之后真的几乎没再挂过科了。
顺便提一下,感谢国家的助学贷款政策,让我这样的贫困学生有了更多选择,那笔学费靠的是助学贷款,在当时是不小的一笔钱,但是后来计算机专业毕业工作的收入相对比较高,真的不算什么了。
如果有机会再选一次的话,我会在一开始就选择计算机专业,而不是懵懵懂懂的随波逐流。而我之所以会再选择计算机专业,原因也很简单:
1. 最主要的原因还是因为我真的热爱,从我开始接触编程到现在 20 多年了,我还依旧热爱。我享受那种从无到有创造的过程,享受那种看到自己的作品被别人使用的成就感。因为这种热爱,让我可以忍受枯燥,花很多时间在电脑前,不断的学习,不断的尝试。
2. 我有强烈的求知欲,愿意去学习新的技术。计算机专业是个新兴的领域,新技术层出不穷,这意味着以前掌握的技术可能很快就会过时,所以需要不断的学习,才可能跟的上时代的步伐。如果背后没有求知欲的支撑,这种不断学习的过程是很痛苦的,也很难坚持下去。
3. 其他相对没那么重要的原因:
- 我数学还不错,逻辑思维比较强,写程序不会被一些复杂的算法绕晕。但这不是计算机专业的必要条件,毕竟计算机领域很广,像产品经理、项目经理、UI/UX 设计师等等,都不需要太强的数学基础。
- 有一点英语基础,毕竟计算机相关最新的资料文档,基本都是英文的,日常离不开要大量查阅英文资料。
我的这一套原因,当然主要是适合我个人的,毕竟怎么选专业从来没有一个标准答案,每个人的情况都不一样,所以我也不会建议别人一定要学计算机专业,只是希望大家在选择专业的时候,能够多从自身考虑,不仅仅是看计算机是不是热门,是不是能找到高薪工作,毕竟能让你走的远的,是那份热爱。我也见过跟风选择计算机专业的,后面也面临很多问题,比如业绩垫底,干的很吃力,也不开心,有心转行,但也下不了决心,也是很痛苦的。
当然就像我高三毕业的时候,年轻的我根本就不知道自己喜欢什么,也很难做出正确的选择,那么选个热门的计算机到也不见得是坏的选择吧,人生还有重新选择的机会,有决心的话以后还可以转专业或者考研换专业。
** 读计算机专业给我带来的好处
在大三下学期之前,我还不是计算机科班出身,但我已经自学了很多编程之一,也开始在外面接一些外包项目。比如我大二暑假没回家,熬了好多通宵,2 个星期就给人山寨了一个办公 OA 系统,赚了几百块。
我常自嘲那时候是编程速度的巅峰,纯野路子,甭管代码多烂,实现就好,很快就能糊一个版本出来,至于能不能维护,那是以后的事情了,毕竟那时候做的很多项目也没多少真的需要长期维护的。
但没有科班系统学习,短板也很明显。
一个是计算机专业技术方面的。我接了很多外包项目,大部分都是企业网站,每次接个新项目都是把以前的代码复制粘贴一份,再修改,但是没能力提取一些通用模块重用,所以有很多体力活在里面。涉及复杂一点的算法也完全不知道如何下手,安全性更是大问题,也出过 SQL 注入的事故。
另一个是软件工程和项目管理方面的,我接手的项目都是自己一个人完成的,有人要帮忙也不知道如何分工,别人也看不懂我写的代码。有一次有一个校外的比赛,我拉了几个人组了个小团队,想去参加,大家一开始热情满满,但是我也不知道如何大家一起分工协作,最终到截止日期到了我们还是没能做出来什么东西,只得放弃。
到了我转入软件工程专业后,系统的学习了很多专业课程,比如数据结构和算法、面向对象、数据库设计、软件工程等等。当学习了这些专业知识了,后面再写程序,就知道要考虑维护性、安全性、性能等等,写出来的代码也更加规范,更容易维护。当然也有副作用,再也不复当年的编程速度了,每次写代码之前要考虑很多,纠结很多,提升质量的同时也降低了速度。
我一直觉得学计算机专业后,对我最有用的一门课程是“软件工程”,正是因为学习过软件工程,给我埋下了一粒种子,等我工作后,在项目实践的时候,就会有意无意应用软件工程中的一些方法论,比如需求分析、设计、编码、测试、部署等等,不再是把自己局限在编程这个狭小的领域,而是开始关注整个软件开发的生命周期,站在更高的角度去思考问题。
最终软件工程课程埋下的这粒种子生根发芽,如今已经是一颗参天大树,不仅对自己助益良多,还能去帮助其他人。甚至于我不仅将软件工程的这些方法论应用于软件开发,在日常生活中也时常应用,比如我以前写过一篇文章教[孩子在 MineCraft 中搭公寓](https://baoyu.io/blog/life/two-kids-recreate-apartment-in-minecraft),指导孩子们在游戏中复原公寓,就是用了软件项目管理的那一套方法论。
当然很多人也会说,虽然我不是计算机专业,但是这些课程我可以自学呀,毕竟现在网上学习资源这么多。这话理论上成立的,也真有牛人能做得到,但是对于绝大部分像我这样的普通人来说,如果没有一个像大学这样的环境,有老师的指导和监督,有考试的压力,很难坚持下去,多半就是半途而废了。
还有很多人会担心,大学的课程设计相对比较落后,和实际工作中的要求脱节,就算学了计算机专业也学不到什么东西。大学课程与实际工作要求脱节这个是事实,而且也很难短期改变。但换个角度想,虽然计算机领域发展很快,有一些课程是需要与时俱进,比如像编程语言框架,但还有很多是不怎么变的,比如数据结构和算法、操作系统、软件工程这些,这些课程是计算机专业的基础,是不容易过时的,也是你在工作中最常用的知识。
至于那些最新的计算机知识,比如生成式 AI、Transformer,网上有很多可以学习的资料,比如 YouTube、B 站的教程、各大名校的公开课,只要有心和舍得下功夫,都可以学到。
这样大部分基础知识通过专业课程学习,再自学一些最新的计算机知识,甚至于不限于计算机专业领域知识,还有很重要的一点就是在大学时就养成好的自主学习习惯,成为终生学习者,这样你就不用担心计算机专业的课程设计是否脱节了,未来也总能通过自学去跟上新技术的发展。
** 计算机专业还值得报考吗?
前面都是围绕我自身角度来谈的,那么计算机专业还值得报考吗?就如我前面说的,这是两个问题,一个是计算机专业未来发展前景如何,另一个是“我“是否适合学计算机?
我并不知道每个个体的情况如何,我也谈了自己选择的原因和收获,所以我也只能再稍微谈一下计算机专业的未来发展,尤其是最近 AI 兴起后,很多人担心 AI 会取代人类,计算机专业的就业前景会不会受到影响。
计算机专业未来的发展,取决于两个方面:学术界和工业界。
1. 学术界是否有新的突破?就像新的生成式 AI 的突破,会给学术界带来很多新的研究方向,这些新的研究成果会再应用到工业界。
2. 工业界是否有新的需求?就像最近 AI 的火爆,是不是会创造出很多新的工作机会,比如将现有 IT 系统升级,整合 AI 等。AI 自然会替代一些新的岗位,但是新的需求也会创造出新的岗位,只要新需求多于被替代的岗位,总体前景还是好的。
就现在的发展趋势看,我还是倾向于新需求多余替代的岗位,AI 还没有能达到替代专业程序员的地步。但是转型过程是痛苦和漫长的,因为新的需求要求的技能和以前的技能重叠度没有那么高,那些主动掌握新技能的人才能很快转过去,而那些被动升级技能的会经历很多痛苦,而那些不愿意学习新技能的,可能会被淘汰。
这其实也是我前面提到我自己选择计算机专业的原因之一,因为我喜欢学习新技术,喜欢尝试新事物,所以当像 AI 这样的新兴技术出现的时候,我反而是那批受益者。当然如果未来我不能继续学习,也一样会很快被淘汰。
至于你要不要报考计算机专业,不妨问自己几个问题:
1. 我真的喜欢计算机吗?
2. 我愿意当一个终生学习者吗?
3. 毕业找不到工作或者被裁员我会后悔当初的选择吗?
当你想清楚了这些问题的答案,那么你也就知道了“计算机专业还值得报考吗?”这个问题对你来说是什么答案了。
最后祝你心想事成,如愿进入心仪的学校和选到喜欢的专业!
(同步发布于本人博客:https://baoyu.io/blog/career/is-computer-science-still-worth-studying )
早睡早起身体好!
其实很遗憾我自己当时没有选择计算机专业。在不讨厌这个专业的前提下,学习计算机专业然后投身IT,从小白到专业人员的成本要比其它行业低很多,而且自由度也高很多。对于其它专业,除了时间的投入,专业资料的匮乏和硬件资源的需求让个人专业化的过程变得更加曲折。
你好。再见。