笔者目前是自己单干,但此前有多年在从事软件开发工作,回头想想自己,特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话,希望我们的体会多少能给你们一些启发。
在国内,你千万不要因为学习技术,就可以换来稳定的生活和高的薪水待遇,你更不要认为那些从事市场开发、跑腿的人没有前途。
你知不知道,咱们国内有相当大的一部分软件公司,他们的软件开发团队都小得可怜,甚至只有1-3个人,连一个项目小组都算不上。而这样的团队却要承担一个软件公司所有的软件开发任务,在软件上线和开发的关键阶段需要团队的成员没日没夜的加班,还需要为测试出的BUG和不能按时提交的软件模块功能而心怀忐忑。如果你不幸加入现场开发的团队你则需要背井离乡告别你的女友,进行封闭开发,你平时除了编码之外就是吃饭和睡觉。
更可怕的是,会让你接触的人际关系非常单一,除了有限的技术人员之外你几乎见不到做其他行业工作和职位的人,你的朋友圈子小且单一,甚至破坏你原有的爱情(想象一下,你在外地做现场开发2个月以上,却从没跟女友见过一面的话,你的女友是不是会对你呲牙裂嘴)。
也许你拿到了所谓的白领工资,但你却从此失去享受生活的自由,如果你想做技术人员尤其是开发人员,我想你很快就会理解,想在一个地方长期待一段时间,认识一些朋友,多一些生活时间的愿望。
相比我们的生活和人际关系及工作,那些从事售前和市场开发的朋友,却有比我们多的多的工作之外的时间,甚至他们工作的时间有的时候是和生活的时间是可以兼顾的,他们可以通过市场开发,认识各个行业的人士,可以认识各种各样的朋友,他们比我们坦率说更有发财和发展的机会,只要他们跟我们一样勤奋(有一种勤奋的普通人,如果给他换个地方,他马上会成为一个勤奋且出众的人)。
在学习技术的时候千万不要认为如果做到技术最强,就可以成为100%受尊重的人。
有一次一个人在面试项目经理的时候说了这么一段话:我只用最听话的人,按照我的要求做。只要是听话就要,如果不听话,不管他技术多好也不要。
随后这个人得到了试用机会,如果没意外的话,他一定会是下一个项目经理的继任者。
朋友们你知道吗?不管你技术有多强,你也不可能自由的腾出时间像别人那样研究一下LINUX源码,甚至写像LINUX一样的杰作来表现你的才能。你需要做的就是按照要求写代码,写代码的含义都被规定好了。按照规定写,你很快就会发现你昨天写的代码,跟今天写的代码存在很多类似之处,等你写过一段时间的代码,你将领略:复制,拷贝,粘贴那样的技术对你来说是何等重要(如果你没有做过1年以上的真正意义上的开发不要反驳我)。
如果你幸运的能够听到市场人员的谈话,或是领导们的谈话,你会隐约觉得他们都在把技术人员当作编码的机器来看,你的价值并没有你想象的那么重要。而在团队内部,你可能正在为一个技术问题的讨论跟同事搞内耗,因为他不服你,你也不服他,你们都认为自己的对,其实你们两个都对,而争论的目的就是为了在关键场合证明一下自己比对方技术好,比对方强(在一个项目开发中,没有人愿意长期听别人的,总想换个位置领导别人)。
你更不要认为,如果我技术够好,我就自己创业,自己有创业的资本,因为自己是搞技术的。
如果你那样认为,真的是大错特错了,你可以做个调查在非技术人群中,没有几个人知道C#与JAVA的,更谈不上来欣赏你的技术是好还是不好。一句话,技术仅仅是一个工具,善于运用这个工具为别人干活的人,却往往不太擅长用这个工具来为自己创业,因为这是两个概念,训练的技能也是完全不同的。
创业最开始的时候,你的人际关系,你处理人际关系的能力,你对社会潜规则的认识,还有你懂不懂别人的心,你会不会说让人喜欢的话,还有你对自己所提供的服务的策划和推销等等,也许有一万、一百万个值得我们重视的问题,但你会发现技术却很少有可能包含在这一万或一百万之内。如果创业到了一个快成功的阶段,你会这样告诉自己:我干吗要亲自做技术,聘一个人不就行了,这时候你才真正会理解技术的作用,和你以前做技术人员的作用。
基于上面的讨论我奉劝那些学习技术的朋友,千万不要拿科举考试样的心态去学习技术,对技术的学习几近的痴迷,想掌握所有的技术,以让自己成为技术领域的权威和专家,以在必要的时候或是心里不畅快的时候到网上对着菜鸟说自己是前辈。
技术仅仅是一个工具,是你在人生一个阶段生存的工具,你可以一辈子喜欢它,但最好不要一辈子靠它生存。
掌握技术的唯一目的就是拿它找工作(如果你不想把技术当作你第二生命的话),就是干活。所以你在学习的时候千万不要去做那些所谓的技术习题或是研究那些冒泡算法,最大数算法了,什么叫干活?
就是做一个东西让别人用,别人用了,可以提高他们的工作效率。想象一下,你做1万道技术习题有什么用?只会让人觉得酸腐,还是在学习的时候,多培养些自己务实的态度吧,比如研究一下当地市场目前有哪些软件公司用人,自己离他们的要求到底有多远,自己具体应该怎么做才可以达到他们的要求。等你分析完这些,你就会发现,找工作成功,技术的贡献率其实并没有你原来想象的那么高。
不管你是学习技术为了找工作还是创业,你都要对技术本身有个清醒的认识,在国内不会出现比尔·盖茨,因为,国内目前还不是十分的尊重技术人才,还仅仅的停留在把软件技术人才当作人才机器来用的尴尬境地。(如果你不理解,一种可能是你目前仅仅从事过技术工作,你的朋友圈子里,技术类的朋友占了大多数,一种可能是你还没有工作,但喜欢读比尔·盖茨的传记)。
“千万不要一辈子靠技术生存”,这是一句比较现实的话。很多人觉得自己现在20多岁,月入2~3W或者更多了,很OK呀。
理解这句话的前提是,你不满足于现在的收入(如果是工作年限比较短的,你可以看看这个行业做的比较好的人的收入,你能否满足),对自己的未来或者行业有感到担忧,那么你才能很好的理解这句话。
这也是为什么能理解这句话的人,大多是到了35岁左右的。
诚然,对于一个工作七八年或不到七八年的程序员,这个阶段技术是必须的,要深、要有一个今天被开,我可以保证明天找到工作的技术能力。
如果你足够幸运,能有在某一个领域做到专家级的、后面的小辈无法替代你,那"千万不要一辈子靠技术生存"这句话当然也就不适合你了,大牛,请受我一拜。但是,对于大多数人,都无法做到在一个领域无可替代(机遇与天赋),那么就要想办法保证在上了年纪、上有老下有下的时候不被公司裁掉、收入不减、生活质量不降。
如果在这个阶段你还在研究这个功能怎么实现、这个算法是多么的精妙,我觉得你不是太单纯,就是在借技术之名在逃避现实。说一句庸俗的话,我满脑子想得都是怎么搞钱,怎么让家人生活的更好,做技术的在35岁之前没达到这一点(且不论财务自由),你觉得35岁以后还有机会吗?或者说扪心自问一下,你所做的事情有多少是你能做,别人不能做的,有多少技术含量自己心里应该也有点数。所以,技术只是现阶段谋生的一项技能。
每个人的技术都是有天花板的,你的技术到了天花板的时候,你的收入能够满足你,这个是需要考虑的。当然,你家里有矿或者一线城市有几套房,那你完全可以把技术当爱好。
程序员,本质就是学习,不断学习,不被淘汰!而年纪,所谓高薪就是为第二产业打基础吧!俗话说得好,有钱投资谁还亲自动手,创业风险大,还累,当然你要是那种小的生意自然没问题。基本上35岁前好好存一笔钱,为以后转行也好,做副业也好,做基础吧,而怎么在这十几年的时间里,赚到别人20-30年的钱,对程序员来说,最好的方法就是提升自己!