2021填志愿,还能无脑冲计算机专业么?


0x00

前段时间高考不是刚落下帷幕嘛。每一年高考一结束,怎么选专业,怎么填志愿就成了热门话题。git

去年帮老家那边两个亲戚家小孩参考过志愿,今年也接到了老家几个叔婶的电话。家长比小孩还急呀,也各类打听,各类调研的。程序员

去年是一个去了计算机,一个去了师范。今年估计家那边两个小孩应该也会填计算机(或相关)吧,学的理科。github

固然这不是说我推荐他们填计算机。我我的始终以为兴趣很重要,可是一问有没有兴趣专业,都说没啥明确目标,但愿填个热门好就业的。何况如今互联网这么发达,小孩们本身一查,也知道这几年计算机火,而后也详细调研一些有关计算机的状况。孩子们关心的就是好很差学,家长关心的就是好很差就业。面试

可是我会建议说冲一冲、稳一稳、保一保。能冲进计算机相关专业固然没问题,但若是投档进不了,那通讯/电子也不是不能够,保底嘛。算法


0x01

我至今依然以为工科类专业是对咱们这些普通家庭出身的理科生比较友好的选择吧。没有什么过高壁垒,你有技术就有机会,学完最起码有点实用的技术傍身。数据库

只要你有兴趣学,选这个通常没啥问题。固然这个兴趣不是说要特别特别地强,有时候不讨厌也是一种兴趣。编程

尤为是计算机相关专业,这几年的确是工科界的顶流。后端

首先你们都知道工资高。稍微好一点学校出来的应届毕业生,在北上广深一毕业年薪拿几十个基本都没啥问题。因此学计算机出来必定是能够知足咱们安身立命,反哺家庭,以及对将来美好生活向往的目标。我盘点了一下本身熟悉的同窗也是,通讯/电子/计算机这一块的,发展得也都还能够。所以选计算机专业确实也比较迎合市场。缓存

另一个,我的感受计算机的学习门槛好像不算高吧。通常来讲理科出身,具有点逻辑思惟,通常都能学得不差。何况计算机的各类学习资源不要太多,开源世界也很丰富,网上都能找到,没有什么明显的学习壁垒,有一台电脑就能学。并且付出与回报成正比,也不拼其余的,就纯靠技术了。安全

因此可能也正由于这些方方面面的缘由吧,如今报计算机的人实在太多了,那叫一个火。除了高考志愿填计算机的,还有转专业到计算机的,考研跨考计算机的,工做后转行从事计算机的,甚至包括培训班培训计算机的...因此我也会跟他们说压力和竞争是不小的,要有心理准备。


0x02

聊到卷的问题,从两个最多见的点就能看出来,一是考研,另一个就是找工做的面试难度,我想不少小伙伴可能有亲历体会。

如今考研不只是计算机,但凡热门一点的工科专业压力都大。咱们那时候考研多少分?300出头就有学上。如今看看呢,好点学校的计算机相关专业400分神仙打架的多的很,报的人多,大神也多。

而聊到求职面试。之前背一背八股文,而后刷刷题,找个还行的工做没啥问题。什么叫八股文呢?就能够背的,好比像什么OOP特性、接口和抽象类的区别、hashmap原理、List和Set区别、Java运行时内存区、Get和Post请求、三次握手四次挥手、OS页面置换算法...等等,你们可能也背过。

而后刷题,咱们那时候剑指Offer上四五十个题目刷完基本就能够保个底,LeetCode我记得好像也没有如今这么多题目吧。

可是站在当下的时间再看一看面试都问啥。

问底层,深刻到骨髓。像什么JVM底层原理、JVM调优实践、JDK源码、JUC并发包、锁的实现原理、数据库底层原理、索引优化、SQL调优、Spring源码、各类框架的机制,而后还有像什么集群、分布式锁、缓存一致性...等等一些问题也是被高频地问起。

而后就是问项目。要么就是往底层挖,最后也是底层原理,像上面同样,要么就是往架构层面上升,好比架构设计、框架选型、链路设计、架构扩展...等等。

除了这些还有手撕算法题。如今求职LeetCode没个几百道题量,怕是连笔试都很难找到感受吧,面过的小伙伴必定有所感觉。

因此如今自学,包括面试准备的时候,真的不是说背一背八股文,会用个Spring Boot,Spring Cloud就能够的。比较值钱的两个方面刚也聊过:

要么就底层原理:操做系统底层、JVM底层、框架底层、算法原理、源码的理解和掌握...
要么就架构思惟:架构设计的能力、框架选型和对比、链路的设计和把握、架构的扩容和扩展...
而这些通常是须要理解并实践的。

何况我的明显感受身边的应届生计算机素养广泛很高。无论是是面试的时候,仍是工做后观察身边的一些新人。除了自己计算机方面思惟很好,学东西贼快以外,并且还特别年轻,精力也旺盛,难顶哦。

因此基于这些,我也会跟家那面填志愿的小孩说,随大流无脑梭哈计算机也不行。想报能够,首先要有心理准备,能Hold得住压力,其次就是对这个东西要有点兴趣(最起码不讨厌吧),最后还得有很强的自学能力和习惯,否则就算进去也很痛苦的。


0x03

而后一个问题就是关于编程难不难的话题?这是老家那边几个同窗最近在调研专业的时候所共有的问题。

编程难吗?其实这个问题真不知道怎么回答。

我的感受计算机的学习门槛应该不算高吧。都是学理科的,具有一点逻辑思惟通常都还行吧。固然这里不是说那种学到极致的天才型选手,咱们指的是学个通常,作个普通开发的角度来聊的。

就以最多见的编程工做为例吧。它对人的思惟能力是有点要求的,其实简单一点理解,差很少就是分析问题,而后抽象出要素,最后创建模型的思惟过程。若是以为编程难,或者说代码无从下手,那大几率可能仍是没有造成这种思考方式吧。说明首先基础可能有待增强,另外则是可能锻炼得还不够多,没有突破那个阈值。

尤为参加工做后,作的那些系统和各类业务。其实讲白了就是把一个个实际需求抽象建模,用合适的数据结构和算法流程把它表示出来,而后辅助于一些框架或者工具,用编程语言把它描述出来,而后通过一系列处理,最后交由计算机执行。

先把功能实现,流程跑通,而后再考虑怎么才能作得更快,怎么才能并发更高,怎么才能更加安全。咱们能够回想一下,项目里那些复杂的系统每每不都是这么演变过来的嘛。

因此不少刚入职的小伙伴所头疼的一个问题就是说刚入职团队,刚接触实际项目,项目太大了,一时半会搞不懂吃不透。

为啥呢?由于这里面不少的演进和迭代过程,你并无看到。其实一开始系统没那么复杂的,只不事后面迭代了好多个版本,改了不少东西,又加了不少东西。这时候若是没有比较靠谱的迭代记录,文档,或者注释,的确是很难看懂,太正常不过了。因此这时候只能靠本身多问,多想,多悟,上下文/先后段,由总体到局部,由局部再到整理,就这么来回反复摩擦,慢慢就吃透了。

因此有时候想想,好像事情也没那么复杂。可是你又想过没,为何如今的互联网开发世界那么繁荣呢?尤为以前咱们在梳理像大数据、后端开发那些知识点和学习路线时,涉及到的各类技术点和框架实在太多了。

其实细想一下,它们不少时候都是在作辅助用的。它们的出现不少时候都是为了应对企业级应用开发的所面临的的诸如复杂性、代码质量、可测试性、可扩展性、可维护性等一系列问题。一句话总结,都是为了更好地工程化迭代。

举个例子可能更好理解一些。好比作Java后端开发的用Spring框架不少,其实咱们在写这些Web化服务时,不用Spring也彻底能够。用朴素的方式也能够写,这样的话不一样人都本身去造轮子,本身去封装工具类,封装本身的工具方法,也没问题,能完成需求。

可是这时候由于不一样人的思惟方式不一样,习惯不一样,能力也不一样,你们写出来的代码颇有可能良莠不齐,质量不一,那就很难达到企业级开发所讲究的那些代码质量、可测试性、可扩展性、可维护性、可迭代性。这样写出来的项目后面可能很差维护,没办法长期迭代演进了。

而这些框架它们内部用到了不少的机制,实现了不少的工具类,方法,以及流程,本身也规定了不少约束性写法,给开发者或暴露API,或暴露接口...其实某一程度上来讲均可以理解为提供了一种约束性编程。你要用个人框架?能够。那你就得遵照我这边的游戏规则(编码规则)。Spring典型不就是这样嘛,IoC容器用来干吗的?方便管理对象,而后还搞了一堆像什么切面式编程、接口式编程、声名式编程...等等,咱们就能够理解为一种约束性的编程。这样才能保证写出来的代码,在完成需求的同时,还能便于测试、扩展、维护、甚至便于和其余技术进行集成,来创造业务价值。

不过写到这里,好像扯得有点远了,时间也不早了,之后有机会再聊吧。


后 记

另外最近花了大把力气,把自用的编程学习资源作了个大整理。

都是纯肝货,目录以下。

该内容 GitHub https://github.com/rd2coding/Road2Coding 已经收录,里面还有我整理的6大编程方向的自学路线+知识点大梳理个人简历面试考点几本硬核pdf笔记,以及个人程序员人生,欢迎star。

整理不易,欢迎支持,下期见!

相关文章
相关标签/搜索