劝人学计算机?
这几天,陆陆续续有一些刚高考结束的小伙伴咨询一些计算机方面的问题。比如这位学弟的几个问题,都比较有代表性。包括如何选择专业,是计算机科学还是软件工程?这两个专业有什么区别?是否有必要提前学习编程,以及想提前学习编程的话,应该怎么做呢?
看到这些问题,我真的是感慨万千,因为自己当时填报志愿、选专业的时候也曾纠结过。但区别就是当时并没有机会和 UP 主交流分享经验,所以在此一定要给学弟一些建议。
计算机方向各专业的区别 ?
其实大学本科阶段,选择计算机科学与技术或者软件工程,甚至是其他的计算机类专业比如信息安全、网络工程等,区别都不大。
课程
首先,大学阶段,很多计算机相关的课程都是公共课,是帮助大家打好基础、修炼基本功的。
比如一些重点公共课:计算机导论、离散数学、数据结构与算法、操作系统、编译原理、数据库系统原理、计算机网络等。
无论你是什么专业,都要好好学习这些课程,因为它们真的真的很重要!
这些基础课程就占据了你大一大二的时间,在大二下学期或者大三的时候,不同专业的课程才会有差异,就拿软件工程和计算机科学与技术专业来对比吧:
软件工程
特色课有软件架构设计、软件项目管理、软件体系结构等,更偏向应用(上层),是培养 软件 设计与实现的思想、方法和技术能力的专业,相对更专精。
计算机科学与技术
特色课有计算机组成原理、汇编语言、微机原理等,更偏向理论(底层),是 软 / 硬件都会涉及 的计算机学科宽口径专业,相对更全面。
还有其他的专业像网络工程(运维、网络设计、管理)、信息安全(密码学、网络攻防、渗透)、大数据、人工智能、嵌入式、物联网等等。虽然它们都有自己的特色课,不过,剩下的大三一年(大四要找工作 / 考研)也就只能学一点点和企业实践有关的知识技术。
所以想要学好计算机、学好编程,大学还是要多花时间 自学,不要太依赖课本,多利用网上的资源,看看外面的世界。
未来发展
未来发展是大家比较关心的问题,网上说什么的都有,比如 “学计算机科学与技术专业更适合读研”、“学软件更适合就业”、“学大数据或人工智能更牛逼” 等等。
但其实就像上面提到的,本科这些专业教你的东西就那么多,你未来是就业还是读研,从事什么职业,能找到多少薪资的工作,全都需要你在大学期间好好思考、感悟和拼搏,你的命运只取决于你自己。
不过,残酷的现实是,无论大学选择软件工程还是计科、还是其他专业,无论本科直接就业还是读研,到最后,大部分人也都是开发程序员。有一说一,除了开发岗外,算法工程师岗位的竞争真的是神仙打架。
所以,在专业选择上也不用纠结,没有明确的方向就选软件工程吧,它和开发程序员今后的工作最相关。
如何自学,入门编程?
这位学弟刚高考完,就有提前学习编程的意识,在我看来已经成功了一半了,非常棒!
我也是高考完就想着自学编程了哈哈,当时买了本 C 语言的经典书,但没想到学了几十页就被枯燥的理论劝退了,所以我建议大家先 培养兴趣,没必要一上来就被很复杂的路线和大纲限制住了。
初学编程,要做的 第一件事 是:选择一门适合零基础入门的编程语言。
比较适合新手入门的语言有:Web 前端 和 Python、C、C 。
我当时首先学习了前端 web 开发,理由是不仅容易上手,而且你写的每一行代码,都能立刻看到效果!大概学习一至两周,你就可以写出自己的网站,比如留言板、记事本、个人博客、个人笔记等等,之后还能发布到网上给其他同学访问,想想不是很有趣么?
而且,web 开发主要包括 html、css、js 三门编程语言,它们的语法各有千秋,通过学习它们,你能够感受到编程语言的多样性,也能学习到更多的编程知识和技能。学会这些后,你可以做网站、APP、桌面应用、小程序,有机会将自己的想法实现。
因此,我最推荐大家 从 Web 前端上手 ,当然,也可以根据兴趣和实际需要选择其他的语言,比如想做小工具,就学学 Python;想打好基础,可以学学 C、C 。
对于编程新手来说,不建议看复杂的书籍,否则可能兴趣全无,直接被劝退。入门编程的重点在于寓教于乐,你写的每一行代码都应该能直接看到效果,才会比较有乐趣。起码你知道自己在做什么啊!
对于初学者,选一门语言后直接开始在线实战学习就好了,简单粗暴。
最后再给大家一些编程学习建议吧~
编程学习建议
所有人都是从新手过来的,我也是从零开始通过大学四年的自学才最终拿到腾讯 offer 的。
结合我自己的学习经历,我认为想学好编程,需要做到如下四点:
确定目标,制定规划,脚踏实地
在不同阶段选择适合的学习方法
多向优秀的程序员大佬学习
写代码,写代码,写代码
首先,要明确一点,编程学习没有捷径!必须明晰目标、拉长战线、掌握技巧、持续学习、做足准备,才能立于不败之地。
想提升编程能力就多写代码吧!这里先列举一个编程学习误区。
编程学习误区
大部分同学都是看视频课来入门编程,但为什么大家都是看同样的视频,有同学编程水平进步很快,有些同学就是看了个寂寞呢?
大学时,我身边的一些同学就是以看视频课程的时长来衡量自己学习编程知识的多少。这是一个 致命误区 !而一旦陷入这个误区、你就会一味地看课刷课,并且不断安慰自己 “努力就会有收获”。可能直到最后你看了几个月的视频,终于准备上手写代码时,才会发现自己根本写不出代码!
这就是典型的 “死学习”,为什么你比别人多付出了几倍的时间,编程水平却大不如人呢?因为你忽略了 编程是需要实践来提升水平的,你看视频看得再爽,看得再明白,不上手写代码,就都是纸上谈兵。况且绝大多数网上的视频课程都是顺风顺水地带你演示项目,很多的错误和细节你根本看不到!因此,每看一部分视频,我都会跟着老师的节奏亲自编写代码,不仅要完成视频中的项目,还要自己做更多的项目。
在编写代码时,我们总会遇到各种问题和报错。一定要多尝试自己解决,而不是直接去求别人。在解决问题后,我也会加以记录和总结。久而久之,我自己解决了一个又一个的问题,有了自己的问题库,对知识的理解和印象都更加深刻,因而编程水平突飞猛进、解决问题的效率越来越高,做到了完全的正循环反馈!
最后吧,本文只希望能给想选择计算机专业的同学一点帮助,也不是劝其他高考完的同学来选择计算机。不过,计算机真的是一个能改变命运的专业,学得好的话,薪资甚至可以高到其他专业的同学难以置信的程度!只是的确非常累。
但学啥不累呢?总之,无论做出什么样的选择,都趁早努力,干就完了,加油吧少年!