程序员的烦恼

        自从开了GitHub,便时常能收到一些和我一样的程序员或编程爱好者的邮件,彼此熟悉之后,便开始聊在自己职业发展中遇到的困惑,以及一些学习编程之类的问题。我虽极不愿意被当做导师(自知没有资格),却也没有草草回复而辜负了他们对自己的信任,因此,我会尽可能的站在一个实习生,一个匠人以及一位朋友的角度去尝试提供一些愚见。

        身边的人都有一些共同的特点,年轻,多为90后,非常勤勉——不论是工作还是对自己的要求上,曾经满怀信心,认为靠自己的努力能够在一线城市站稳脚,打出一片天地来。此外,还一个共同点是,都没有房,与男女朋友同住或和朋友合租。

        我曾经非常坚定的认为,应当选择留在一线城市,因为这里有最好的资源,不论是硬件还是软件,一线城市都汇聚了最优秀的基础设施和人才。这里有最适合程序员成长的环境和氛围,不论是软件园还是创业园,这里总是充满着挑战和机会,在这里更容易获得优秀的视野和与你同样出色的伙伴,当然你未来的家庭,子女也都能够享受到这些优秀的资源。还有一点不得不提的是,一旦你选择离开,将很难再回来,因为在HR看来,这种没有延续性的工作状态,代表了不稳定,以及潜在的能力风险(不由自主的想起16年的辩论决赛,大学生是否应该留在一线城市奋斗,我虽是反方,但我还是认为应当留在大城市,我们的论点,虽然说服了对方,却一直没有说服自己)。

        但直到上周,我僵持了接近2年的观点,突然发生了改变,这源于我的一个同事。他是88年出生的,是公司通过校招录用的,到现在也工作了七八个年头了。我从未想过他会有离开的想法,因为他确实非常优秀,他是同时进公司那批校招员工中的佼佼者,去年加薪是排在最高的一档。但就在我以目标奋斗的高级工程师,却也无法抵挡房价高涨这一事实所带来的冲击,而考虑离开杭州,去一个二线城市发展。

        这件事让我颇为感慨,也让我对自己原来的想法产生了动摇。相信凭借他的能力,以及目前的发展趋势,应该还是能在这座城市中买房的,只是可能需要贷一笔大款才能在杭州买一间不是很大的房,然后再一步一步由小换大,由远换近,而当他完成这些时,他可能发现自己的孩子也会挣扎在无房的困境中,而此时的他可能已无法奋斗了。就像他反复和我说的,如果结果是这样,一生为了房子而做的努力是否真的值得呢?

        他这一说,让我感到惭愧,过去我只是从个人的发展角度来思考这些问题,但我们归根结底还是社会中人,我们同样必须面对这些社会问题。而在我看来杭州房价的发展就像是一场游戏,政府,开发商,炒房客,普通百姓都参与其中,地方政府债务得到缓解,投机客成为首批债务自由的群体,但更多人却成为了房奴,甚至我们还看到了社会上出现的隐性阶级:有房阶级与无房阶级。然而,随着游戏的深入,买房的风险正在变的越来越大,当那些既得利益者试图通过卖房将这些风险转嫁到你身上时,或许真的应该好好考虑一下了,虽然我时常和女朋友商量,等有付首付的钱,我想先不急于买房,先和她去世界各地看看,可能这些想法在老一辈人看来,是一个极不稳定的。

        对于这个问题,我是无法给出正确答案的。买房本身并不会给你带来持久的快乐,因为当你买完房后,你会欠一大笔债,需要用几十年才能还清,当你终于把欠款还清时,你又会觉得这套房子太小,已经不够一家人住,需要换一套更大的房子。你不会得到快乐,因为这些客观条件(钱财,房子)总是无法与你主观期望相符。相反地,如果买房能够给你家庭带来更稳定的生活,能为将来的孩子提供更好的成长环境,而这一切都能为你的生活赋予意义,并让你感到更加快乐的话,那你还是应该更坚定地留下,而不是选择离开。

        杭州这边有很多创业公司如雨后春笋般不断冒出来,而越来越多的年轻程序员也走入了这些公司工作。他们也许会有这样的烦恼:工作内容过于繁杂,要处理各种各样与开发无关的事情,还要与包括客户在内的各种各样的人打交道,这让他们无法专心专研技术,对未来也很迷茫。

        虽然大部分程序员都会向往像BAT这样的大型软件公司,但我想说,公司就像围城,外面的人拼了命想进去(如我也曾三闯**街,五面**大楼),而在里面的人却都想逃出来。几乎所有公司的员工都会抱怨自己的工作是多么无聊(可能Google除外),而只有正确的心态才是解决之道。

        我时常会说“杂事不杂”,虽然看着被很多与技术无关的事物缠身,但它们对你来说同样具有意义。你从中可能获得沟通能力,管理能力,建立更广的人脉,在企业内部建立影响力,等等,之所以今天你能成为公司的骨干也不正因为你干了这些杂事吗?如果你能认同这一点,那就不应该总是把时间花在抱怨这些杂事上,而是考虑如何更有效的处理它们。比如,你需要负担很多培训工作,那何不建立一个更好的内部学习平台,让培训对象能够进行自学呢?你需要反复向别人解释API的使用方法,那何不完善API的使用说明,让使用者能愿意先自己去解决问题呢?你不应该总是陷入在那些处理杂事的循环中,跳出来,创造更好的方式去解决它们才是应对之策。

        在过去的这个互联网寒冬中,很多创业公司纷纷倒下,而还在那些创业公司中工作的程序员们也会不自觉的添一份紧张和焦虑,特别是在公司长时间没有起色的情况下,很多人在考虑是否换一份工作。当然,如果公司真的看不到一点希望,而你又不是创始成员的话,那么选择离开无可厚非。但参与创业的过程对你来说仍是一份宝贵的经历,是你应该加倍珍惜的。不论成功与否,经历一次完整的创业都会让你受益匪浅。你将学到很多在大公司仅仅做一颗螺丝钉所学不到的东西。虽然在此过程中,你一定会有挫败感,焦虑,但或许坚持一下,就能看到曙光。

        另外一点我想说的就是,创业的过程将让你获得不同的眼光。创业大多数是在一个新的领域中进行的,你不应仅仅专注于公司所使用的那些技术,而更需要通过深入理解这个新的领域,去获得不同的视觉眼光,因为他们也会在未来成为你的核心竞争力。

        很多程序员在工作中使用的技术都非常单一,比如,只用一种语言来写代码,只写前端或后端的功能。他们很希望能够学到诸如游戏开发,VR开发等新的技术。

        我也希望自己可以涉猎不同的技术甚至领域,但前提是你必须首先对其中某一门技术做到精通。技术是需要深耕的,深入学习一门主流开发技术,并不断提升编程思维,比对很多技术都浅尝辄止要好很多。因此,如果精力有限不妨先学好一门技术,你会发现之后再去学其他技术会变得容易许多,因为他们之间往往都是相通的。

        “编程语言种类太多,如果我没有任何基础,应该学习哪一门编程语言呢?”,作为一门程序员当然高兴看到越来越多的人,甚至是那些与软件行业毫无关系的人都开始学习编程。虽然我也认为,他们和我一样,很难成为这方面的专家,但通过编程,他们仍然能有很大的收获,因为这些将给他们带来一种新的思维方式,从而在各自的行业和领域中获得成功。

        但如果问我应该学习哪一门语言,我却很难给出唯一的标准答案,但还是应该基于不同的目标和应用场景下,如何选择你的第一门语言。但如果真的没任何思路,只是希望你学的这门编程语言能够有用,我的建议是C语言,因为它看起来是唯一可能在未来所有领域内得到应用的编程语言,从我们的移动嵌入式设备,到传统的硬件编程,大到操作系统,小到驱动开发,再到服务器开发,Linux环境编程,甚至是单片机开发,它几乎无处不在。

        我虽然也收到了多份offer,但从简历筛选来看,几乎所有的大型公司都有学历要求,全日制本科几乎成了所有内部职位的最低要求,所以学历上缺失确实会成为进入大公司的障碍。但并不能把这看似不合理的要求全都怪在HR头上,因为他们对编程知之甚少(也有例外哦,记得有一次在杭电宣讲会,有一个HR就说一位研究生说的技术实现方案不正确),所以需要明确的筛选机制来为IT部门提供合适的人选,而学历就成了那必不可少的门槛之一。

     当然也有例外的情况:
            通过内部员工推荐。
            通过外包公司进入后,再转为内部员工。
            努力成为某一领域的专家,或者建立个人影响力。

       如果你是一名非本科在读学生,那么我还是建议不要过早焦虑,尝试问问自己除了学历之外还有什么让你脱颖而出的东西?是否参加过大学生电子设计竞赛?是否参加过大学生程序设计竞赛?是否有自己的个人项目?是否为某知名的开源项目贡献过代码?甚至是参与编写文档?是否通过编写博客阐述自己的观点,并得到大家的认可?在哪家公司实习过?这些都可能抓住雇主的眼球,从而弥补你在学历上的不足。

        近几年随着互联网的发展,程序员似乎成为了一个热门职业,它常常与高薪联系在一起。而有一些非计算机专业的学生也是希望通过自学编程,未来从事程序设计工作。

        首先,如果你只是为了所谓的高薪,而改变专业的话,你可能需要更加慎重,因为相较科班出身的应届生来说,非计算机相关专业的学生去竞争同样的程序员岗位,会更困难一些,而进入那些知名的公司的难度也就更高。而更重要的是,如果不是出于兴趣,很难学好编程。

        当然,如果你已认清自己的方向,那我的建议是,把某一门编程语言的基础打牢,然后尽可能的做出一些实际的项目。比如选择应用较广的java语言,然后结合Android开发做一些小的APP,并将它们放到自己的GitHub里。有机会去初创公司实习,即使是一开始没有工资,但能学到很多实战经验。相信那样在毕业时,你就能具备不错的竞争力,因为面试经验告诉我,技术面试官往往更喜欢那些基础牢固,具备优秀思维能力,并且乐于动手的年轻人。

        我知道很多程序员都会熬夜,睡的很晚,凌晨睡觉几乎是家常便饭。有些是因为加班,有些是因为专研和学习技术,有些是因为游戏,追剧或其他兴趣爱好。程序员应该有自己的兴趣爱好,可以是不断学习,也可以是游戏娱乐,我并不支持每个人都严苛的对待自己,去规定该做什么不该做什么,而需要学会的是如何处理好兴趣爱好和休息之间的关系。对于每个人来说睡眠都非常重要,通过牺牲睡眠来获取一两个小时的时间,到头来只会是恶性循环,得不偿失。

        程序员和普通人一样也会在工作和生活中遇到各种不同的问题,有一些是因为尚未成熟,没有达到宏远的眼界和豁达的胸襟,而另一些则多是闲愁,因不够充实而平添烦恼。没有人能够代替他们,就像我们编程一样,最终需要用自己的智慧去解决这些问题。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值