快捷搜索:  汽车  科技

计算机专业在未来十年的前景(对互联网计算机类)

计算机专业在未来十年的前景(对互联网计算机类)  针对算法这一块,我有必要多说两句,算法在校招过程中是重头戏,特别是不知名本科院校的(非985、211名牌大学)。想要去大公司,就要多刷算法题,能拿出一些成绩(比如说ACM比赛、PAT考试)来是最好的,如果算法足够优秀的话,是可以直接拿到很多大公司的直面机会甚至是实习offer的。当然了,如果你要求不是特别高的话,经常刷刷数据结构、剑指Offer、leetcode(如果看不懂,请看leetcode-cn)。PS:很多公司表面上说着我们不看学校或者学历,只看能力,其实这句话是骗人的,如果一个非985、211学校的和一个Top9学校的人去面试同一家公司,肯定是Top9学校的人的面试题更加容易。如果这两个人都能同时被录取,基本上只有一种情况,非985、211学校的这个人非常牛逼。说一个我自己的实际经历吧:我校招的时候和一个川大的同时去面试美团,我的面试时各种怼算法(结果可想而知),川大的那个就

  今天是2019年06月22日,距离自己毕业刚好一年时间,经过一年的摸索,明白了一个道理——学长学姐的建议真的很重要。马上高考成绩也要出来了,很多学弟学妹们也要开始填志愿了,所以我想借此机会写一篇文章送给对计算机类专业感兴趣的学弟学妹们。

  在这一年里,我反思了很多,发现自己走了很多弯路。所以,我不想让后面的学弟学妹们尽量别走我走的弯路。本文主要会讨论如下几个问题:

  • 大学应该选择什么专业?
  • 给未来学弟学妹的一些建议?
  • 如果你选择了互联网行业,应该怎么学习?

计算机专业在未来十年的前景(对互联网计算机类)(1)


选什么专业?

  在这里,我不会去评论其他专业怎么样,我只会谈论我自己最熟悉的行业——互联网(计算机编程)行业。我不敢说编程行业福利最好,工资最高,但是我个人真的觉得程序员的工资是真的很高。我先自我介绍一下吧,我是一名在成都上学,毕业之后来深圳工作的程序员。如果你未来想做一名程序员,那么你可以计算机、计算机科学技术、软件开发、电子信息(工程)、通信工程、软件工程、微电子技术、大数据、人工智能等专业。


专业重要还是学校更重要

  我不敢说学校一定比专业更重要,但是我个人觉得应该选择折中选择,校招找工作的时候,学校是企业招人要考虑的一个很重要的因素,能力也是一个很重要的因素。对于企业怎么看待的,这么说吧:如果你是985高校的,面试官主要是看你哪些地方不能满足公司的要求或者缺点,比如说基础知识是否扎实、是否是科班的、是否懂得合作;但是如果你是本科生,可能会看你有什么东西比其他很多人都优秀,比如说算法,ACM比赛、PAT比赛(不懂的可以百度一下)有一定的成就。所以,我个人建议,专业(兴趣)是你需要考虑的,然后在选好专业之后,那么久一定要可能的选择更好的学校,只要那个学校里有专业跟你的兴趣相关就行,如果当年不能被理想的学校、理想的专业录取,那么可以这样做:先选择那个学校那个跟你理想的专业有点关系、沾点边的专业,进去之后再转专业(大部分学校转专业是个很轻松的事情)。


给计算机类专业的学弟学妹们的建议有没有必要加社团、做兼职。

  大学期间,因为那个时候可能只是考虑到家庭经济不是太乐观,所以,做了很多的兼职,但是我这里给个建议,那种简单的体力劳动类兼职我不建议做,要做就做有含金量的兼职,因为那种简单的体力劳动如送外卖、发传单、分拣快递之类的兼职不能让你学到什么东西;而且,那个时候不懂事的加了很多社团— 说实话,我也不知道当时为什么要加那么多社团,还那么卖命的为他们工作,或许是因为想着可以提高自己各方面的综合能力,然而现实是基本只有做苦力的份,不清楚那时候的我是怎么想的,如果你以后想走那种比如说销售的职位,可以尝试去熬到会长之类的;如果你是以后想从事程序员行业的,那就认真学习专业技术吧,没有必要去社团做苦力(虽然在社团可以积累很多人脉,但是我必须告诉你的是,现在这个社会你不可能会有很多真心朋友,而且你做技术一样也可以交到很多朋友的 ;当然了,那种纯交流、带你学习的社团可以考虑加一下,毕竟学长学姐是过来人,他们会告诉你大学应该怎么学(仅供参考,不能全信))。

计算机专业在未来十年的前景(对互联网计算机类)(2)

专一很重要,兴趣也很重要

  大一的事情我就不想提了,这里简单提一下吧,大一我的主要是见都用在了做兼职,没有怎么认真学习。大二的时候我才开始静下心来学习——学习Unity 3D游戏开发,然而我不会告诉你们我是一个从来不玩游戏的男生(可能是为数不多的另类),在这一年里,我的时间基本是这么安排的:上课睡觉 做兼职 学习游戏开发,越到后来越发现自己好SB,基础都没掌握好,就开始玩各种高端技术、做各种特效。突然有一天(大二暑假),我反问我自己:“让一个重来不玩游戏的人做游戏开发,这是一种什么感受”?我真的,把硬盘格式化了,然后重新装了系统,开始了新的征程——Java学习之路。希望学弟学妹们不要重蹈覆辙

基础知识很重要、数据结构与算法更重要

  受老师的影响,在简单的学习了一些Java基础之后就开始去做应用开发——因为老师一直在强调实操(前提是有人带)更重要。所以在校招的时候,虽然做了很多的实际应用(老师或者自己的一下想法、简单网页或者软件),但是自己基础知识不扎实,很多项目也只是为了去练习使用某些新技术,但是说不清楚为什么要用(其实可以百度的,可惜当初自己没积累这部分经验)。我不否认实操很重要,但是我个人认为本科阶段没有必要去瞎搞(商业化项目除外,自己写的那种简单的crud项目就算了),更重要的基础知识的学习。

  针对上文提到的基础知识,我以Java开发为例,这些基础知识主要包括:算法基础、Java基本或者高级API的使用以及背后的底层原理理分析、编程规范(设计模式)、计算机网络、操作系统、数据库相关知识。

  针对算法这一块,我有必要多说两句,算法在校招过程中是重头戏,特别是不知名本科院校的(非985、211名牌大学)。想要去大公司,就要多刷算法题,能拿出一些成绩(比如说ACM比赛、PAT考试)来是最好的,如果算法足够优秀的话,是可以直接拿到很多大公司的直面机会甚至是实习offer的。当然了,如果你要求不是特别高的话,经常刷刷数据结构、剑指Offer、leetcode(如果看不懂,请看leetcode-cn)。PS:很多公司表面上说着我们不看学校或者学历,只看能力,其实这句话是骗人的,如果一个非985、211学校的和一个Top9学校的人去面试同一家公司,肯定是Top9学校的人的面试题更加容易。如果这两个人都能同时被录取,基本上只有一种情况,非985、211学校的这个人非常牛逼。说一个我自己的实际经历吧:我校招的时候和一个川大的同时去面试美团,我的面试时各种怼算法(结果可想而知),川大的那个就是按照网上的各种面经套路来的。

  JDK中的Api的合理使用及其原理分析主要跟并发多线程、垃圾回收、内存管理、程序执行效率与优化有关。比如说HashMap是否安全、StringBuiler是否安全、并发会导致什么问题,又或者说ThreadLocal内存泄漏的避免方式、violate关键字在任何并发场景都适用吗、Executors里面的各种线程池又有什么坑?

  编程规范,主要是两个大方面:设计模式与代码规范(参考《阿里巴巴Java开发手册》)。

  计算机网络这一块的知识很多,如果你要慢慢去看书的话,效率会很低,但是其实面试或者开发中常用的或者必须掌握的也没多少。比如说HTTP请求的GET与POST方式的区别;Http1.0、Http1.1、Http2.0的区别;TCP三次握手,为什么不是三次,为什么不是四次;HTTP、TCP、UDP的区别和联系;Https和Http有什么区别;Http 为什么是无状态的;

  操作系统和数据库主要是一些关于底层的基础知识,比如说计算机的内存、磁盘、CPU是怎么运行起来的;线程调度算法、线程与进程的区别和联系;如何利用数据库索引做优化。

选择了互联网行业,应该怎么学习?

  要想最快的学习,那么最好的方式就是跟着几位大佬学习(看他们的项目与总结、关注他们的博客、关注他们的公众号),大佬可以给很多的指点。因为怕被视为广gao 所以我这里就不一一推荐了,感兴趣的可以关注之私信我,我可以给你们推荐几个我自认为比较牛逼的大佬。同时Github上面也有很多优秀的项目值得我们学习,可以为我们的学习指点方向。

No.1 architecture.of.internet-product

推荐指数★★★★★,star数目15k

地址:https://github.com/davideuler/architecture.of.internet-product

该项目的主要内容就是一线互联网公式的一些架构设计与解决方案,比如说微博、百度、淘宝、微信、网易、美团点评,前面几项主要是以公司分类,后面的是以技术栈分类(针对每个技术栈,一些公司的实践总结)。

计算机专业在未来十年的前景(对互联网计算机类)(3)

No.2 architect-awesome(后端架构师技术图谱)

推荐指数★★★★★,star数目33k

地址:https://github.com/xingshaocheng/architect-awesome

从初级开发者到资深架构师,看这个项目就够了,从最基础的数据结构、算法、操作系统、设计模式到并发、运维、测试、中间件、网络、安全、性能、数据库全都有,当然也包括系统的分布式、项目管理这些全都有囊括。内容太全面了,这里只截图一部分。

计算机专业在未来十年的前景(对互联网计算机类)(4)

No.3 CS-Notes

推荐指数★★★★★,star数目66k

地址:https://github.com/CyC2018/CS-Notes

技术面试必备基础知识,剑指Offer题解、Leetcode 题解、操作系统、网络、数据库、Java、系统设计、编码实践全都有。

计算机专业在未来十年的前景(对互联网计算机类)(5)

No.4 system-design-primer

推荐指数★★★★,star数目65k

地址:https://github.com/donnemartin/system-design-primer/blob/master/README-zh-Hans.md

该项目会带你从0到1的去设计一个大型系统,内容很详细,具体内容我就不截图了。

计算机专业在未来十年的前景(对互联网计算机类)(6)

No.5 advanced-java

推荐指数★★★★,star数目22k

地址:https://github.com/doocs/advanced-java

互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务等领域知识。本项目大部分内容来自中华石杉,版权归作者所有,内容涵盖高并发、分布式、高可用、微服务等领域知识。该项目发起者对这部分知识做了一个系统的整理,方便学习查阅。配合《大型网站技术架构——李智慧》、《Redis 设计与实现——黄健宏》食用,效果更佳。

计算机专业在未来十年的前景(对互联网计算机类)(7)

No.6 JavaGuide

推荐指数★★★★★,star数目45k

地址:https://github.com/Snailclimb/JavaGuide

一份涵盖大部分Java程序员所需要掌握的核心知识。同时,该作者还很贴心的为我们做了一个具有导航栏功能的网站,非常方便。

  关注“Java架构师养成记”,带你装逼带你飞。如果你想选择计算机类专业,有不懂的可以关注之后私信我,我会在第一时间回复你们

猜您喜欢: