如果你是⼀名初学者,对编程⾮常感兴趣,想成为⼀名合格的程序员,那么这篇⽂章就是为你写的。
从初学者成长为⼀名合格的程序员需要⼀段时间的磨练,每个⼈付出的时间和做事的效率不同,我不好评判你需要多长时间才能学有所成。
站在求职的⾓度,能开发出实⽤的软件、⽹站、APP等才叫学有所成。
程序员的发展⽅向
计算机涉及的知识⾮常⼴泛,不可能在短时间内全部学完,即使公司的CTO也不可能样样精通,初学者要选定⼀个⽅向,不要想着把客户端
软件、⽹站、APP都开发出来,这在短时间内是不现实的。相信我,你不是神!
1. Windows开发
主要是开发客户端(PC机上的软件),如QQ、迅雷、360、Chrome 等。
能够进⾏ Windows 客户端开发的编程语⾔有多种,包括 C/C++、C#、VB、Java、Delphi、易语⾔等。这意味着,Windows 开发有多种学习路线,⼤家任选其⼀。不过,公司⼀般使⽤ C/C++、C#、Java,⾃⼰编写⼩⼯具也可以使⽤ VB、Delphi、易语⾔。
2. 游戏开发(游戏客户端开发)
需要你有C/C++基础,再学习 Unreal(虚幻)、Frostbite(寒霜)、CryEngine(CE)等游戏引擎。如果你希望了解游戏引擎原理,让⾃⼰更加优秀,那么还需要学习图形库(例如 DirectX、OpenGL)和计算机图形学。
更加全⾯的游戏开发学习路线请猛击:游戏开发完整学习路线,都在这⾥了
3. Linux 开发/游戏后台开发
需要在 C/C++ 的基础上再学习 Linux 操作系统,主要包括 Linux 基本操作、Shell、⽂件系统、进程线程、内存、Socket 通信、内核等,甚⾄还需要与算法、Qt 等相结合。
另外,也可以使⽤Go语⾔进⾏ Linux 开发,Go语⾔在全球已经有相当多的应⽤案例了。
游戏的后台服务器⼤部分也是基于 Linux的,也会⽤到以上技能。
4. 单⽚机/嵌⼊式
单⽚机/嵌⼊式是软件和硬件的结合,不仅要会写代码,还要了解硬件,所以⼊门门槛⽐较⾼,知识也⽐较庞杂,学习时间长。选择该⽅向最好有数字电路、模拟电路和汇编的基础,⾮常适合电⼦信息⼯程专业的同学。
这个⽅向的同学,⼤部分去了中兴、华为等以⽣产电⼦产品为主的公司,⼯资虽然没有⼀般的程序员⾼,但也不错。
5. 算法
NB的程序员都在搞这些,⼀般不注重编程语⾔,⽽是侧重解决问题的⽅法和效率。⼯资⽐普通的程序员略⾼。
6. ⽹站开发
也称 Web 开发,分为前端和后台。
后台主要负责服务器端的编程,除了需要学习 Java、PHP、Python 等编程语⾔,还需要学习 MySQL、MongoDB、Oracle 等数据库。
前端主要负责⽹页界⾯的设计以及特效的实现,需要学习HTML、CSS、JavaScript等。
JavaScript 本来只能⽤于 Web 前端,它可以实现⼀些特效,或者和服务器通信,后来有⼈把 JavaScript 移植到了服务器上,并起名Node.js,这样 JavaScript 也能进⾏ Web 后台开发了。
也就是说,只要需要学习 JavaScript ⼀门语⾔,就可以搞定⽹站的前端和后台,成为全栈⼯程师。
7. 移动开发
包括IOS和Android,你可以开发APP,也可以开发游戏,需要学习Java(针对Android)、Objective-C(针对IOS)、Swift(针对IOS)等。
8. 测试(QA)
⼀款产品问世需要⼤量的测试才能投放市场,QA(Quality Assurance,译为“品质保证”)⼈员就是为程序员把关的,如果程序员的作品不符合产品需求或者Bug太多,QA有权驳回,这时就会影响程序员的绩效。QA不但要能看懂代码(⼤概理解什么意思),还要掌握⼀定的测试技巧,更重要的是⼼思缜密,有耐⼼有毅⼒,⼥⽣⽐例很⾼。
9. ⼤数据
需要掌握 Java、Python、R 或 Scala 编程语⾔,并学习 Linux 操作系统、Linux 集群搭建、数据库等,Hadoop、Spark、Hive 等⼤数
据框架的学习是重点内容。
10. ⼈⼯智能/机器学习/深度学习
除了需要掌握 Python、R 或 Java 编程语⾔,还需要学习数学(⼤都集中在微积分、线性代数、概率与统计⼏个领域)和算法(例如逻辑回归、深度神经⽹络、线性回归、K均值、协同过滤等),这是重点内容。
程序员的待遇
IT⾏业的待遇⽐很多⾏业要⾼,程序员尤为突出,刚刚毕业的⼤学⽣,进⼊百度、腾讯、阿⾥巴巴等这些⼤企业,年薪⼀般在15万以上,经验丰富的可以拿到20多万,30万的就是神⼀样的存在,有,但是极少。这是第⼀梯队,⼀般重点⼤学的毕业⽣才能进⼊,怎么也得是个⼀本吧。
拿到融资的创业公司、规模不⼤的公司、⼀些国企等给的待遇也不错,年薪也可以超过10万。
很多⼩公司,⽼板⼀个⼈说了算,也没有融资,待遇⼀般都不会⾼,⼀个⽉⼏千块钱。这样的公司招⼈难,进⼊的门槛低,对学历的要求也可以忽略,能⼲点活就⾏。但是往往是这样的公司最折磨⼈,你什么都需要做,涨薪没有明⽂规定,⽼板经常画饼,还会威胁你说完不成任务就⾛⼈。
每个城市的待遇也不⼀样,北京、上海、⼴州、杭州这些⼀线城市都有⼤公司,待遇最⾼;成都、⼤连、西安这些⼆三线城市的待遇就⼀般了。
薪水数据分析
国内程序员比较常见的薪资水平等级大致是:算法、后端较高,其次客户端,再然后前端,测开、测试、数分...
不同公司对于不同岗位会有差别,但大致情况是这样,这和对应方向的工作难度以及技术门槛也有一定关系。最近看了一篇比较全的国外不同开发岗的薪资对比,可以给大家分享一下。我们不仅要放眼国内去对比,也需要了解不同国家对于同一类型技术岗位的工作标准以及薪资回报,毕竟你身处互联网行业,还是要有一定的全球视野。文章主要是从全球和美国的开发者平均工资来分享。
1、技术主管
技术主管主要确保完整项目的交付,职责也比较其他人重。要达到这个level,国外至少5年以上,国内要久很多,太卷了。
该职位对应的2020年薪资:美国:152k,全球:92k ,国内:全球打五折~七折
2、后端开发
后端开发主要负责 Web 服务和 API。主流语言是Javascript、Python、Ruby、PHP等。一个好的后端开发对于一家互联网公司来说非常重要。
该职位对应的2020年薪资:美国:120k,全球:53k
3、前端开发
前端主要负责实现用户通过 Web 应用程序参与的视觉和交互元素,薪资普遍都比后端开发要低。
不过这个数字比我预想得要高,至少在国内,差距应该比这个大。
该职位对应的2020年薪资:美国:110k,全球:49k,国内:全球打3折~5折
4、全栈开发
全栈开发懂前端也懂后端。要想成为一名优秀的全栈开发,是需要时间的。time is money.
该职位对应的2020年薪资:美国:112k,全球:54k,国内:全球打3折~5折
5、移动端开发
移动端开发为应用程序的编码、设计、测试、发布和支持而负责,在过去的 3 年里,美国移动开发的薪资显著增长。
该职位对应的2020年薪资:美国:120k,全球:43k,国内:全球打3折~5折
6、数据分析师
数据分析师主要工作是从原始数据中提取有意义的数据或信息,为业务决策提供参考。国内不同公司对这个角色有很多称呼,有些叫数分,有些是商分,有些是业务分析师。不过国外数分的薪资水平能到这么高也是有点出乎意料,看来和业务越相关,薪资也可能越高。
该职位对应的2020年薪资:美国:100k,全球:55k,国内:全球打3折~5折
7、测开/测试
测试或者测开主要工作是给程序员提bug,确保产品的交付质量。
该职位对应的2020年薪资:美国:105k,全球:53k,国内:全球打3折~5折
8、游戏开发
游戏开发主要为 PC、移动端和控制台制作游戏。由于游戏行业的潜力及赚钱效率,游戏开发的薪资正在逐年上涨。
该职位对应的2020年薪资:美国:112k,全球:50k,国内:全球打4折~7折
9、数据科学家
数据科学家和数据分析师不同。数据科学家一般负责设计数据建模流程,创建算法和预测模型来提取业务所需的数据,并帮助分析数据。
该职位对应的2020年薪资:美国:125k,全球:58k,国内:全球打3折~5折
薪资水平和很多因素有关,比如取决于每年行业对岗位的需求度,取决于该岗位的人才量,总的来说还是那句话:供需关系决定你的价值。如果你身处的行业和方向并不缺人才,甚至非常卷,那么你只能更努力,让自己成为领域专家,或者转行,不然上升会很难。如果你恰好处在一片蓝海领域,而该方向的优秀人才供应比较稀缺,那你的压力会相对更小。不过以过往经验来说,这种情况几乎不可能长期存在,毕竟谁会和钱过不去呢?程序员都是爱学习的、敢于突破舒适圈的。
以上就是针对不同技术方向的岗位薪资对比,供大家参考。