发布日期:2022-10-25 浏览次数:次
0. 为什么写这篇文章
可能有的读者会问:写这篇文章的意义何在呢?
那么,我可能会稍微思考一下,然后给出以下解释:
首先,作为在互联网行业浸淫10年的互联网菜鸟,一路摸打滚爬,也算是总结了一些不知可否称之为经验的经验,想分享给后来人。
其次,总结本身就是一种对过往的梳理,可以查漏补缺,进一步提升自己。
再者,分享也是一种乐趣。
对于想从事互联网行业的人来说,你可能想知道:应该怎么做以及做些什么?
笔者承认自己不可能分析得面面俱到,但是,尽量抓住重点。这里,我简单的从人生三个不同阶段进行划分,并罗列出每个阶段应该做的一些事情。
1. 高中阶段高中阶段,学好功课为主,可以适当地培养编程兴趣。
一考定终生。考个好大学可以为你增色不少,甚至可以说对大部分人的后半生、职业生涯会产生至关重要影响。举个例子:在未来找工作的时候,当你的简历被各个互联网公司筛选时,他们会把毕业院校做为十分重要的一项指标(假设两个编程能力相同的人,一个是普通二本、一个是211、985。你觉得HR会优先录取哪个人?为什么?)。
更有些招聘者会说出:"考不上好大学的都是智商有问题"这种极端的话语。但是,由此可见一斑。学历重要不重要,只有用到的时候才知道。对于大部分人来说,学历决定着人生的天花板到底有多高。
这个阶段不做过多解读,重要的事情说三遍:好好学习、考个好大学,好好学习、考个好大学,好好学习、考个好大学。
2. 大学阶段进入到大学之后,本身意味着你已经做出了一个人生最大的选择,选择了自己喜欢、热爱的方向(当然是大部分人)。那么,对于接下来的四年大学生活,不仅需要给自己做一个规划,更需要对自己接下来需要掌握的知识进行梳理,不要落到“大学毕业即失业”的境地。
对于未来想从事计算机编程的学生来说,整个大学期间主要课程+选学的课程,大概需要学习20+门左右,需要分清主次。
关于计算机的基础课程
《计算机组成原理》
《计算机网络原理》
《计算机算法导论》
举个例子,你开车的话,不知道车的各个部件是怎么运作的,只能算个会开车,不能称之为资深玩家。互联网行业级别:入门小白 -> 高级工程师 -> 资深专家 -> 计算机科学家。大部分人,终其一生处于前两个级别。
关于编程语言
C/C++
Java
Golang
Python
在计算机领域基本是C生万物,万物共生。
首先,整个互联网就是构建在C语言之上的。其次,很多编程语言底层还是基于C语言开发的。
学习的编程语言决定着:未来薪资的多少以及在计算机领域可以达到的高度。
做底层开发 C/C++,做应用层开发:Java、Golang、Python等
关于算法
刷LeetCode/牛客网
参加编程竞赛
算法有多重要,我已经不想多说了程序可以认为是:数据结构+算法当你面试的时候,各种理论讲得再流利,算法题做不出来,基本可以后会有期了。
关于操作系统
Linux
常用命令行工具《鸟哥的Linux私房菜》、各种网上博客、参加专业运维培训
常用服务搭建
Windows
常用编程软件使用
Linux子系统使用
Mac OS
常用编程软件使用
常用命令行工具
各个公司线上服务器跑的都是基于Linux内核的各种分发版本(国内用得最多的是centos)。Mac os、Windows则是各个公司开发常用的操作系统。
关于英语读写能力
日常口语交流
日常英语书写
计算机常用词汇掌握
想去外企、国外工作的,英语必不可少,至于为什么去外企?那就是福利、待遇、加班的博弈了。
3. 大学毕业阶段当你处于这个阶段的话,首先恭喜你已经可以靠自己立足于这世间了。其次,要告诉你一件可怕的事情:漫长的加班之路已经对你开启。
到了这个阶段,基本分为几类:
继续深造
校招进入一家公司
进入社会,通过社招进入一家公司
其他专业出家来做开发的
这里重点说一下关于社招需要掌握的一些技能。
关于算法
刷LeetCode最少100道
面试时,算法具有一票否决权。稍大点的公司,必不可少。难度:中高级
关于计算机基础
进程、线程、协程,I/O多路复用等原理
系统调度原理
网络原理
数据库索引、存储引擎
考察对底层原理的掌握程度,其决定了职级高度
关于常用服务级别组件
缓存(常用Redis)
数据库(常见MySQL)
消息队列(常见kafka)
服务注册发现
web服务器(常见nginx)
限流熔断
链路追踪
监控
容器、虚拟化
日常开发与之打交道的各种组件,也是支撑如今互联网的大数据量、高并发量的热门法器。
4. 总结至此,笔者简单的梳理了一下,人生中在不同阶段想进入互联网行业,需要做、以及需要掌握的一些技能。
仁者见仁智者见智,至于重要不重要,当处于对应的环境才会知道。
最后一句话:此生也有涯,此生学无涯。