初入职场的困惑 (IT 从业)

huazi 2020-04-29 PM 125℃ 0条

14年校招那段时间,因为大学里面基本没有接触到什么项目,当时对找工作及以后的职业规划都完全没有概念,就问了下已经工作了的堂哥。下面是他给我的建议和答疑解惑,当然,这也是5年前的情况了,但是整个大环境没有怎么变化,还是有一些参考意义的,也希望对即将毕业的想从事 IT 相关的小伙伴有一点帮助。

以下为邮件内容:


一般来说,技术人员在公司内部根据所从事工作的不同,可以大概分为三类(只说基层岗位,项目经理、架构师不在讨论之列):

  • 程序员。也就是俗称的码农,有些公司也称工程师,这个是人数最多的。很显然,这个工作就是写各种代码。而一般来说又会根据所使用的主要编程语言来区分,比如C,JAVA,C#,PHP,Object-C,python等等。一般来说公司在招聘时也会以这种形式进行招聘,明确提出需要什么语言的编程人员,并且在面试时会针对该语言及其相关的知识体系进行提问。所以,如果你以后的职业规划是从程序员开始做起,那么现在最好就想清楚自己最喜欢哪个语言,在这个问题上,我觉得“一专多能”很重要,一定要有一个非常擅长或者说称得上精通的,这个作为你以后的饭碗,必须争取做的更好,往深里挖。其他有兴趣的一些语言可以当作业余兴趣,很多时候也用的上。
  • SA(System Administrator系统工程师),主要工作是管理公司的服务器,保证它们稳定运行,他们会利用一些自动化工具,偶尔也会写一些shell或者python脚本之类的程序。这个工种的人不多,一个十多人的团队1个SA就够了,并且你会发现一般小型创业企业都是1个SA。
  • DBA(Database Administrator,数据库管理员),顾名思义,管理数据库,当然这里的管理不只是保证数据库的稳定运行,还包括了很多和业务相关的比较复杂的数据库处理,比如储存过程、触发器等,这些工作都是配合开发。另外DBA的工作还可能包括针对一些开源数据库的二次开发。一般中小型的公司都不会设置DBA这个工种,原因就是节省预算,所以这个工种多存在于大型企业里,尤其涉及数据库二次开发的工作更是少之又少,国内也就几家百度、阿里巴巴、腾讯、新浪等几家数的出来的几家大公司需要这种人才。

综合来看,虽然你之前在微信里跟我说想做和数据库相关的,但其实除非有非常浓厚的兴趣以及机缘巧合,程序员起步会是一个不错的选。


一般来说,程序员的职业发展道路有两个:

  • 技术型,发展轨迹大概可以为:初级程序员 -> 高级程序员 -> 工程师 -> 高级工程师 -> 架构师/Tech leader**
  • 管理型,前面都差不多,最后的发展方向是项目经理:初级程序员 -> 高级程序员 -> 工程师 -> 高级工程师 -> 项目经理 -> 技术经理/总监

同时,这两个道路也并不是绝对的,也有些架构师最后发展成技术经理/总监的,其实出现岔路口的地方就是当你技术积累到一定程度时(著名的一万小时定律),如果你觉得你特别喜欢钻研新技术并且善于这个,就可以朝架构师努力,否则如果你认为自己在技术层面相比其他人并没有太多优势,同时你又比较善于沟通和管理,那么项目经理会更好,后者也是我的职业规划,毕竟我不是计算机科班出身,有些知识没有经过系统的学习。


但不管是哪条路,起点肯定都是基层程序员,那么接下来你就要选择你所喜欢或者说擅长的语言了,以下是几个常用语言常做的事情:

  • C/C++: 不用多说,老大哥,几乎无所不能,也是最难的,但是一旦熟练掌握了这辈子就不愁了。在公司里通常开发一些系统底层组件、对性能要求特别高的场合、嵌入式、其他语言或系统的插件(比如给python或者PHP乃至linux开发插件或者软件)等,高级C程序员工资非常高,有些年薪可以达到40W,工作一两年,只要不是特别差,也能难道10-20w;
  • JAVA:这也是一个神奇的语言,也是几乎无所不能,但更多是被用在购物、支付、银行等一些对安全性要求很高的场合。比如国内几乎所有银行的电子银行系统、支付宝及其他很多宝宝,另外,国内几乎所有的银行系统内部软件都是JAVA主导。除此之外,JAVA也能快速开发一些GUI软件,数据接口,也可以做大数据库分析;当然,随着Android的飞速发展,这两年又多了一个Android APP开发的路子可以选,并且由于这几年app开发非常火,导致android程序员的工资也仅次于IOS程序员,最难的可能是入行,只要有一年开发经验,月薪就可以开到8-15K。
  • PHP:这个是我目前主要使用的开发语言,擅长于做网站开发,由于其简单、快速的特点,在国内急功近利的整体环境下混的还不错。同时,随着app的火爆,给手机软件数据的服务器数据接口也变得非常重要,PHP在其中扮演了非常重要的角色,原因还是其简单快速,企业为了降低开发成本,往往为考虑使用一个PHP程序员给android和ios程序提供数据接口。
  • IOS:这虽然不是一个语言,但是目前阶段真的太火了,前几年一直都是使用Objective-c作为开发语言,前不久苹果刚开发了一个新的swift语言用于替代objective-c,如果你想学习这方面开发的话,不妨直接学习swift。
  • Python:这门语言国外很火,国内相对比较比较冷静,大型网站好像只有豆瓣在使用python开发,但其实它在云计算大行其道的今天还是很有前途的,关键还有一点,这门语言足够的简单,且语法简洁高效灵活。
  • C#/VB:微软御用的两门语言,不用多说,开发一些windows平台上的gui程序,简直就是神器啊,三下五除二一个软件就出来啦,同时也会涉及一些excel等软件的二次开发,当然也不能少了.NET。

以上只是从当前市场需求和企业开发的角度出发,谈的一些我的个人理解,权作参考。

除此之外,你可能还想知道这些程序员每天都在干些啥?做的是些什么东西?

  • 传统的软件开发,这里更多的指的是windows平台上的软件开发,linux在国内实在是形不成气候,只要的开发语言包括C#、C/C++,JAVA,当然还有一个曾经很火的语言delphi。随着智能手机的兴起,传统软件开发有点老态龙钟的感觉;
  • 网站开发,这个不用解释吧,你整天都在浏览各种网站,需求一直很旺盛,并且随着HTML5的流行,短期内也不会出现需求下滑的迹象,主要开发语言包括PHP,JAVA,.NET,当然也有一小部分使用python;
  • 手机软件开发,这里为了和传统软件开发区分开,多被称为APP开发,主要包括android和ios两个平台,当然也有其他平台(wp啥的),但基本可以忽略不计。这个领域目前在国内完全是供不应求,是个人有个想法都想做个APP,可以认为是一个朝阳领域(完全个人观点)。主要开发语言当然就是JAVA和Objective-c/swift。
  • 大数据、云计算平台,这个之所以会被提出来,也是因为现在是个公司都说自己有云计算,但国内真正能算上云的也就阿里巴巴、新浪、腾讯、百度这几家,但是也不乏一些小的细分领域的竞争者也在号称做云计算。如果真的有机会进入这个领域还是不错的,大有可为啊。开发语言会比较杂,一般来说C/C++会是主导,python、java等也会有参与;
  • 嵌入式开发,这个我没有太多发言权,你可以百度一下。

所以,综上,你能搞清楚自己想使用什么语言,做哪个方向的,基本就不会再迷茫了。

标签: IT, 职业规划

非特殊说明,本博所有文章均为博主原创。

评论啦~