你的问题应该这么问,我大三计算机专业,从现在开始,如何在毕业后就能进大厂?
如题,和你一样,让我想起自己当年快毕业时的各种迷茫,各种找实习工作,当时只要有人要,哪怕倒贴都愿意。迷茫是真不知道自己想做啥能做啥,愿意倒贴是感觉啥都不会有人会要。庆幸,自己一路磕磕绊绊走了过来,先后进入淘宝,支付宝工作,目前在一初创公司做技术合伙人,今天回过头来,把自己的一些看法想法和你聊聊,也不全对,仅供参考。
计算机专业在校学生,该如何选择未来方向,学什么,怎么学,学到什么程度,才能拿高薪进大厂?
今天我就从两方面聊聊:
1)怎么选,选什么,怎么学,学什么
2)计算机专业通用学习流程和职业发展方向
首先,建议平时多去各大招聘站上逛逛(越早越好最好从大一开始),比如boss直聘,猎聘,拉钩,各大公司官网招聘启事,各种技术论坛招聘版块等。
我那会开始找实习,用了差不多一个月,去了一家做ERP的公司的IT部门,其实就是一网管,修电脑拉网线装各种软件等,这种肯定不喜欢啊,主要还不挣钱,然后没事干的时候就各种网上搜,逛招聘网站,学校论坛等,除了让我大开眼界,然后就是各种追悔莫及,所以啊,真心建议,平时除了打游戏看片外,多去主动搜搜这些东西,比如2020技术发展,2020计算机专业应届生,怎么进大厂等等,对你以后有真有帮助。
逛这些网站干什么:收集信息,做调研
举个例子,我毕业了就想去字节跳动(抖音)这个公司(因为张一鸣太帅了),然后去搜集字节跳动各种应届生的技术招聘,发现下面这个招聘牛逼啊,月薪20K起步,前端开发工程师:
赶紧网上去搜“什么是前端开发工程师”,“前端开发工程师前景如何(发展路线)”,“如何成为优秀的前端开发”,“前端开发技能树”,“菜鸟如何开始学前端”等等。
然后就开始搜集和整理相关资料。比如,下面是我搜集整理的前端开发方向,仅供参考:
前端开发工程师是Web前端开发工程师的简称,2007年才真正开始受到重视的一个新兴职业。Web前端开发技术是一个先易后难的过程,主要包括三个要素:HTML(标准通用标记语言下的一个应用)、级联样式表和JavaScript。
也就是说,前端开发主要包括三个方面,HTML,CSS,JS。然后不知道的继续搜,比如什么是CSS,直到全部都搞明白为止。
2020前端开发全国平均薪资12K左右,北上广深更高。
前端开发的发展路线:C/S模式,PC端,移动端,混合开发(H5),APP,小程序/公众号。
以后发展方向:VR、智能设备交互界面、物联网交互、5G应用等。
我的初步认识,前端像是在做展现给用户看的各种“界面”,那这种东西永远不会淘汰啊,什么东西没这个可以?嗯,这个方向有前途。
前端开发包括,web前端,小程序,跨端开发(PC/移动),前端工程化。
前端技能需要:
a. 精通HTML、CSS、JS。
b. 熟悉常用前端框架,如bootstrap,jQuery等。
c. 熟悉前后端分离,HTTP,AJAX等技术。
d. 熟悉NodeJS,包括Grunt,Gulp,Webpack等。
c. 熟悉MVVM思想,如React、VueJS,AngularJS等。
AJAX什么鬼?Grunt,Gulp,Webpack什么东西?MVVM又是什么?然后一个个查一个个学。
a. 从HTML、CSS开始学起,学会如何布局,如何实现设计稿样式等。
b. 学习JS语法基础,还有如何操作DOM,XHR技术,AJAX怎么用,JS高级特性闭包,回调,异步等,ES6新特性
c. 学习各种框架,前端组件,比如bootstrap,jQuery等等
d. 学习NodeJS
c. 看各种开源项目,源代码,然后自己实践做小项目
前端框架好多啊,看的我晕
a. 基础扎实,HTML、CSS、JS。
b. 熟练主流框架和常用框架,比如国内比较流行Vue,国外流行react。
c. 会一门后端语言,如Nodejs。
d. 熟练掌握前端工程化。
e. 熟悉当浏览器输入域名到网页内容展示整个技术过程,越详细越好。
基础扎实,就是基本问的知识点都非常清楚;熟练呢,就是能轻松使用不依靠文档之类的,最好能看看源码,了解下实现逻辑;学前端如果要掌握后端语言首推nodejs,什么JAVA,Python有时间可以学;
最后,就是找各种大厂面试笔试题,各种刷题,各种恶补基础知识,如网络,系统,算法等。
OK,以上这些,从今天开始,埋头苦练吧,希望有朝一日,从菜鸟,到初级前端,到高级前端,到前端架构,到前端专家,到。。。
这里,我想再说一下一般计算机专业的学习路径和职业发展方向(尤其是不打算考研考博做研究的):
2.1 计算机基础:(这些一定要啃,持续啃,无论什么方向,即使现在一知半解)
1)计算机组成(硬件组成和如何协同工作)
2)操作系统(如何操控硬件,推荐Unix/Linux)
3)计算机网络(数据如何传输)
4)数据库实现(数据如何存储)
5)C/C++语言(人类如何与计算机沟通)
6)数据结构及算法(如何转化和解决现实问题)
2.2 计算机进阶:(拥有一定计算机基础后,选择好方向,重点学习和进阶)
【以web开发为例】:
1)从零开始。找一本入门级编程书籍,如PHP开发入门,疯狂Java等,按照书本内容,从搭建开发运行环境,写第一行代码Hello world,到写一个留言板,开发一个blog,开发一个电商网站。
2)开始实践。找第一份工作进行实践学习,分析需求,设计功能,完成开发,测试和上线发布。
3)技术扩展。打造自己的技术技能图谱,学习其他开发语言,学习系统,网络,运维,数据库,算法等,并在工作中实践运用,解决各种遇到的技术问题。
4)技术升级。学习并解决更复杂的技术问题,如高并发,高可用,中间件,大数据,系统架构,分布式等,当然还包括软技能,如技术管理、相互协作、高效沟通等等。
5)技术转型。1 技术管理 2 技术架构 3 技术专家 4 开始创业
2.3 计算机常见职业发展方向:(全面了解,选择适合自己的,感兴趣的,并作为终极目标,持续深入,然后再横向扩展,成为大拿)
1)网络方向(网络工程师)
2)运维方向(系统运维,开发运维,DEVOPS,云计算)
3)数据库方向(DBA,数据库开发)
4)开发方向(硬件研发,嵌入式开发,系统开发,游戏开发,算法工程师,web开发,前端开发,移动开发,Android,IOS,全栈工程师,图像,声音等)
5)数据方向(大数据开发,数据挖掘和分析,商务智能)
6)测试方向(测试工程师,自动化测试,持续集成)
7)项目产品方向(产品经理,PM经理,敏捷教练,DEVOPS)
8)安全方向(安全工程师)
9)新型产业(物联网,区块链,AR/VR,人工智能,机器学习)
10)技术管理和架构(架构师,技术Leader,技术经理,CTO)
11)独立开发者,自由职业者
2020-03-20更新:
一个大厂常见技术评级体系:助理研发工程师(实习)-> 研发工程师(应届)-> 高级研发工程师-> 资深研发工程师-> 架构师-> 高级架构师-> 技术专家-> 科学家
一个中大型互联网公司常见的研发部门组成:1)开发 2)测试 3)运维 4)产品 5)设计 6)架构 7)大数据 8)技术委员会
一个产品通用的研发过程: 1)立项 2)产品需求和产品设计 3)UI设计 4)开发 5)测试 6)运维上线 7)bug处理和需求反馈 8)继续迭代
2020-03-22更新:
多说一些:计算机和编程技术的学习,没有你想象中的那么难,我经常给新手这样说,“计算机,其实是科学家们开发的一种高效计算工具,他们为了让人们更容易使用和更好的与计算机沟通,还开发了很多编程语言,并且给你附上了详尽的使用说明书,没有让你发明创造,只是让你熟练使用它而已,这很难吗?记住,计算机和编程技术真正的难点不在如何使用上,而是在如何用它们解决现实问题上。”
我们都知道,计算机其核心主要包括:输入、传输、计算、存储、输出五大部分,我们编程做开发也是同样的逻辑过程,甚至包括我们学习知识技能也是一样:首先你需要大量的(输入),然后独立思考、处理和整合(计算),做详尽的笔记和记忆(存储),请教大牛和与其他人讨论(信息传输),实践应用和教授他人(输出)。
艺术,源于生活而又高于生活!
2020-04-02更新:
2020年比较火热的互联网行业(计算机专业就业方向)。
2. 在线教育
好未来(学而思网校)、VIPkid、猿辅导(旗下还有斑马)、作业帮、跟谁学、作业盒子、一起作业、火花思维
3. 医疗健康
阿里健康、平安好医生、春雨医生、好大夫、丁香园、微医、云知声、推想科技、灵医智慧
4. 电商/新零售
盒马生鲜、每日优鲜、京东(到家、物流)、美团(买菜)、有赞、顺丰、美菜(北京云杉)、便利蜂、瑞幸
5. 在线办公/云计算/公有云/saas行业
腾讯(企业微信事业部)、阿里(钉钉事业部)、字节跳动(飞书)、阿里(阿里云事业部)、华为(华为云事业部)、腾讯(腾讯云事业部)、金山云、ucloud;
现在做互联网不叫IT了,改叫TMT,是电信、媒体和科技(Telecommunication,Media,Technology)三个英文单词的首字母,整合在一起,实际是未来电信、媒体科技(互联网)、信息技术的融合趋势所产生的,所以做计算机往这三个方向上发展一般不会太差。
2020-04-27更新:
程序员书单推荐(无聊的时候多看看书,你的问题书中都有)
1) 计算机基础
《计算机组成与实现》、《计算机系统概论》、《深入理解计算机系统》、《计算机网络》、《TCP/IP详解(卷1)》、《Unix环境高级编程》、《算法导论》、《Linux就是这个范儿》、《图解HTTP》
2)开发基础
《C语言程序设计》、《Java编程思想》、《深入浅出MySQL》、《高性能MySQL》、《Redis实战》、《现代前端技术解析》、《Java并发编程实战》、《剑指offer》
3)技术高阶和架构
《构建高性能web站点》、《大型网站系统与Java中间件实践》、《微服务设计》、《淘宝技术这十年》、《大型网站技术架构核心原理与案例分析》、《尽在双11:阿里巴巴技术演进与超越》、《深入理解spring cloud与微服务构建》、《亿级流量网站架构核心技术》、《重构 : 改善既有代码的设计》
4)技术运维
《SRE Google运维解密》、《Docker从入门到实战》、《持续交付》、《Devops实战》
5)大数据
《Storm实战》、《Spark Streaming 实时流处理与精通》、《Spark 快速大数据分析》、《大数据挖掘》
6)互联网大佬传记
《史蒂夫乔布斯传》、《沃自传:与苹果一起疯狂》、《图灵的秘密》、《乔森纳传:首次聚焦苹果首席设计师》、《雷军:人因梦想而伟大》、《马云传》、《腾讯传》、《编程人生》、《世界因你不同》
7)个人成长
《程序员修炼之道》、《高效程序员的45个习惯:敏捷开发修炼之道》、《异类》、《影响力大师》、《情商》、《优秀到不能被忽视》
2020-05-11更新:
一些免费且值得收藏学习的计算机资源(免费且优质的东西一直都在那里,重要的是你怎么找到它们,付费的优质资源也有很多,但是垃圾也多)
1) 计算机优质资源列表 Awesome lists about all kinds of interesting topics
2)《后端架构师技术图谱》
3)各种awesome系列,比如Vue,java,go,IOS等等
4)计算机各种学习资源汇总
2020-06-05更新:
说点题外话,计算机专业学什么语言好找工作?这里的语言只能是相对来讲的,比如前端开发,JAVA语言等,这些就目前业界而言,相对需求量更大 一些,但是不能因此否认其他语言或者技术 就不好找工作。
总之,做技术,要想好找工作,唯有实力才是王道。
实力从何而来?
实力 = 扎实的技术能力(知己) + 熟悉面试要求(知彼)+面试技巧(研究面试题/面试套路/回答技巧)
1)扎实的技术能力。就是知道自己的技术水平如何,到什么水准,能做什么,不能做什么,擅长什么,不擅长什么,找工作就是找适合自己对自己稍微有些挑战的,而不是挑战极限挑战不可能。
2)熟悉面试要求。就是要 站在公司角度思考问题,比如“请给我 一个录用你的理由”,公司招人道理很 简单,就是拿钱招人干活,所以,胜任工作是最基本的要求,应聘之前,多研究下公司招聘 要求,一定要知己知彼。
3)面试技巧。除了上面两条核心点外,面试技巧只能说锦上添花的东西,你的目标很清晰,就是为了拿offer,或者高薪offer,其他所有影响这个目标的话都少说或者不说,比如人家问你打算在北京待几年啊,有没有回老家的打算啊,这就是在问你,来公司打算干多久啊之类的,不要傻傻的说,明年回老家,结婚生孩子去,这种肯定立马被毙,面试本身就是真真假假,把握好度,不要太过了,但是,如果后面真的决定去公司了,干活一定要诚实有信。
以上,是针对应届毕业生的,等工作三五年后,要想好找工作,基本就是靠朋友内推,领导介绍,猎头介绍等等。
2020-07-15更新:
【计算机科学速成课】[40集全/精校] https://www.bilibili.com/video/av21376839/
计算机通识课程,建议计算机基础薄弱的,想全面了解计算机领域通识的观看
1 - 早期的计算 - Early Computing
2 - 电子计算 - Electronic Computing
3 - 布尔逻辑与逻辑电路 - Boolean Logic & Logic Gates
4 - 二进制 - Representing Numbers and Letters with Binary
5 - 算术逻辑单元 - How Computers Calculate - the ALU
6 - 寄存器 & 内存 - Registers and RAM
7 - 中央处理器 - The Central Processing Unit(CPU)
8 - 指令和程序 - Instructions & Programs
9 - 高级 CPU 设计 - Advanced CPU Designs
10 - 编程史话 - Early Programming
11 - 编程语言 - The First Programming Languages
12 - 编程原理:语句和函数 - Programming Basics: Statements & Functions
13 - 算法初步 - Intro to Algorithms
14 - 数据结构 - Data Structures
15 - 阿兰·图灵 - Alan Turing
16 - 软件工程 - Software Engineering
17 - 集成电路、摩尔定律 - Integrated Circuits & Moore’s Law
18 - 操作系统 - Operating Systems
19 - 内存 & 储存介质 - Memory & Storage
20 - 文件系统 - Files & File Systems
21 - 压缩 - Compression
22 - 命令行界面 - Keyboards & Command Line Interfaces
23 - 屏幕 & 2D 图形显示 - Screens & 2D Graphics
24 - 冷战和消费主义 - The Cold War and Consumerism
25 - 个人计算机革命 - The Personal Computer Revolution
26 - 图形用户界面 - Graphical User Interfaces
27 - 3D 图形 - 3D Graphics
28 - 计算机网络 - Computer Networks
29 - 互联网 - The Internet
30 - 万维网 - The World Wide Web
31 - 网络安全 - Cybersecurity
32 - 黑客与攻击 - Hackers & Cyber Attacks
33 - 加密 - Cryptography
34 - 机器学习与人工智能 - Machine Learning & Artificial Intelligence
35 - 计算机视觉 - Computer Vision
36 - 自然语言处理 - Natural Language Processing
37 - 机器人 - Robots
38 - 计算机中的心理学 - Psychology of Computing
39 - 教育型科技 - Educational Technology
40 - 奇点,天网,计算机的未来 - The Singularity, Skynet, and the Future of Computing
--------------------------------------------------------------------->
以上,聊了这么多,如果还有其他困惑,可以留言给我,互相学习,一起进步。
当然,如果想跟着学长一起学编程,关注公众号:扬哥的场,(免费领入门学习指南手册),谢谢!
PS:以上都是个人见解,不都正确,仅供您参考,后续会根据大家反馈持续更新!