在互联网尚未普及的年代,迁客骚人牢牢霸占着纸笔,于是我们现在就可以看到几百上千年前的陈年老泪。现在的IT白领们,也称码农,挨踢民工,就如同以前的迁骚文人有笔墨之便,对于互联网有着相当的便利,于是我们就经常可以看到IT民工们在网上到处肆意嬉笑怒骂,一副苦逼兮兮的样子。。
言归正传,IT是一个很大的范畴,里面还有很多细分,比较典型的有纯粹软件开发,软件测试,运营维护,银行IT等等。作为入行4年的民工,我想各位在进军IT行业时了解以下几点,对于将来的职业发展是很有帮助的。
1. 软件开发 or 测试?
计算机专业的学生一毕业的时候,如果呆在本行业的话,可能是软件开发人员Software Developer,或者软件测试人员Quality Assurance (QA)。一般来说,大部分公司里面的软件开发人员会比软件测试来的累,当然,报酬也会相应的高一点。就报酬来说的话,有小部分公司的软件测试人员跟软件开发人员报酬持平。
Developer和QA的报酬持平的这些公司内,因为软件测试是很繁琐的事情,而这些公司给QA和Developer一样的报酬,公司就会把相应的一些比较繁琐简单的测试工作外包出去让其他的小公司的人去测,QA则负责一些相对有技术含量点的工作,比如搭建Automatic framework,写写test case让外包的人员去具体的测。
计算机专业的毕业生找工作的话,无涯子建议能找软件开发的工作就尽量找开发的,因为软件开发虽然辛苦点,但是毕竟是计算机科班出身的,会比软件测试更有技术含量多,日后也更好跳槽。说实话,尽管我们经常可以在××刊物上看到这样或者那样的测试很重要之类的话,但是软件开发的地位在大部分公司里面比测试人员吃香是不争的事实。之所以要强调测试很重要,是因为在现实的大部分小公司里面测试经常被忽略。
2. 项目,产品 or 平台?
挨踢的命也有好几种,如果毕业的时候找的工作不甚理想,有可能去做项目,那就真的是码农了,真会被踢的。做项目的原则就是以尽量少的时间和人力的投入多快好省的获得付款方的项目款。这样的做法无可厚非,但是,对于技术的积累却是一个致命的打击。诸位童鞋可以想想,这种赶时间写出来的代码,基本上没有什么健壮的架构,充足的文档,优美的代码风格,代码执行的效率可言。取而代之的是乱的一塌糊涂的代码,日复一日的重复造低级轮子,而且经常的状况是项目的甲方不断的修改需求和公司不断压缩的工期,直到让你吐血身亡。不幸的是,很多童鞋不得不在毕业的时候找这样的让你极度不爽的工作来解决暂时的生计问题。
凡事不是绝对的,你接手项目的时候,可以专注于某类型的,比如专门接手金融类的项目,这样你就可以在若干年以后成为这方面的专家了。无涯子的建议是赶紧修炼自己的实力,寻找更好的机会,谁知道这个“若干年”是猴年马月呢。当然了,如果有童鞋正在坚持的,请不要被无涯子的话吓到,只要认定是对的,就做下去,一定会有成效。每个领域都会出货真价实的专家。
如果运气稍微好点的话,可能会进入以做产品为主的团队。一般来说,一个产品的生命周期都比较长,少则两三年,长的可能二三十年都有。团队对于代码质量的要求也会提高,会有各种各样的流程和规范来保证产品的质量。时间上来说做产品的时间压力相对于做项目来说可能会小一点,因为做产品没有做项目的咄咄逼人的甲方。Anyway,做产品要求你瞻前顾后,考虑周全,有很多的历史原因可能会导致产品里面的代码变的比较复杂,你要善于带着脚镣跳舞。
做平台的话,可能大部分的码农一辈子都很难有这个机遇了。小童鞋们既要有扎实的底层功底,还要有好的机遇。这种机遇来的时候,会让你高潮连连,技术带来的快感是不可抵挡的,你会很有成就感。
3. IT是碗青春饭?
在此驳斥一下搞挨踢是吃青春饭的说法。一些对IT行业不了解的人,甚至是一些计算机科班出身的童鞋,认为IT行业是年轻人的事情,年纪大了之后,只好转行。这个说法是非常荒谬的,在企业里面,如果你干到一定年限后,一般都会往管理或者技术路线走。管理路线的话,可能是项目经理,产品经理之类的,这类职位往往也需要很有经验的人来担当,所以要求有相当丰富的经验。走技术路线的话,往往会成为领域专家,架构师,技术总监之类。这两种路线基本上都不自己编写程序了,但是往往要求有深厚的行业背景。
至于为啥我们在大陆的软件企业里面很少看到五六十岁的人呢?童鞋们要想想,IT类企业大规模的出现在大陆其实是九十年代之后的事情,那时候毕业的第一代码农都是20多岁,现在最多也不过40小几岁,所以童鞋们自然很少看到50以上的人啦。并不是因为这个行业本身做不长,而是我们国家的行业发展现状导致的。至于40几岁的这批人,只要没混得太差或者转行,我们在企业里面见到的大部分高层,基本上是由这批人组成的。
4. 非IT专业也能当码农?
如果你不是计算机科班出身,却又对挨踢特别感兴趣的,别灰心,入行远远没有想象的那么难。如果你想做开发的话,学一门编程语言先入门,比如C++,然后学点计算机的功底的课程,计算机组成原理,数据结构,算法,网络,操作系统等课程。可以拿那种薄一点的书来自己看看,相对好入门点。这样你就有了些基础,往后就可以慢慢自己再加深自己的实力。因为计算机软件公司现在很多,别担心找不到工作,只要肯坚持,面包会有的。