程序员的困惑

我是一个程序员


程序员是一个神奇的职业。日复一日面对着电脑,一行一行的码着代码,给人的印象是呆头呆脑,不善于交流和沟通;加班是经常的事,仿佛永远都有干不完的活,身心都很疲惫,如果点儿背的话偶尔还会猝死;网上对程序猿和程序媛的吐槽从来就没间断过,当然很大一部分是他们的自嘲。


我也是一个程序猿。我2009到2013年间就读于天津一所大学,学的是机电专业,但是由于对计算机程序情有独钟,在大二时学了C语言,从大三开始自学了Java编程语言,学了一段时间的Java Web开发,一个偶然的机会得知Java还能开发Android App,就转向Android开发了。从大四上学期开始进入现在的公司实习,实习的岗位正是Android开发。我们公司在济南算是进入移动领域比较早的了,在我实习的时候已经有了一个比较成型的移动开发小组。在实习的几个月里,逐渐熟悉了Android平台(谈不上精通)。去年7月(2013年)毕业后直接进入公司上班了。从正式上班到现在,经历了几个大大小小的几个项目(在我以前的两篇工作总结博客中提到过:写给自己的年终总结   参加工作四个月了 )。 


上面是我自己的学习和工作经历。 虽然介绍的很简短,但是我自己知道,这一切都不是轻易做到的, 个中辛酸,如鱼饮水,冷暖自知。记得很清楚,当时被C的指针折磨的体无完肤,不理解C语言的运行原理而又去学习了汇编语言,被Java中的this关键字搞得晕头转向,拿着《深入Java虚拟机》啃了好几遍, 被Android的底层知识难住, 抱着《Android系统源代码情景分析》硬着头皮去读还是有很多东西搞不明白,关于Linux内核的知识啃了一遍又一遍,还是感觉刚刚入门。从我自己的经历, 我知道对于非天才类型的普通程序员, 要想变得优秀有多么难。必须顶着压力出色的完成工作,还要花大量的时间去学习,去总结,再学习,再总结。坚持很长很长时间,才能取得那么一点点的成就



程序员的困惑


现在我是一个真正的程序员了,虽然我从业时间尚短,但是我觉得我有资格对程序员这个职业发表一些看法。其实是说出自己的困惑。由于我是一个程序员,所以我身边有很多程序员,他们有着和我一样的困惑。


1 关于转技术方向的困惑

也许你和我一样,热爱编程, 对很多技术充满兴趣, 总是希望学习并尝试新奇的技术, 在业余也花了很多时间学习工作中暂时用不到,但是自己很感兴趣并且很看好的技术。但是在学习的过程中, 由于工作中用不到, 得不到真正的锻炼,总是学不够深入, 很多东西也是感觉一知半解。偶尔也会冒出这样的念头:是否可以转一个技术方向。但是考虑到一些情况, 又犹豫了,因为转技术方向会面临一定的困难和风险。


我现在就遇到了这个问题。 上面已经介绍了我的学习和工作经历,这里就不再赘述。虽然我现在做Android应用开发,但是对其他技术也有涉猎,比如linux内核, 网络等。 学习过C语言, C++语言, 简单学习了Python,Golang, 还接触了一点点的Ruby。但是都学的不深入, 也使用的不是很熟练,一直在深入学习Java和Android,并且感觉学的还不错,也就没想过要转其他方向。自从学习了Go语言, 才冒出了尝试新技术的想法。 一方面是Go语言有很多新奇的东西吸引了我,并且很多人看好Go语言的发展;另一方面是老是做Android, 时间长了难免有些厌烦,并不是对自己的工作失去了兴趣,或者是自认Android学的多好了,我承认在Android上还有很大的发展空间; 还有一方面, 就是程序员的好奇心, 促使我总是想尝试一些新的东西,就像一个浪子, 总是在外漂泊流浪了一段时间, 领略了大千世界的酸甜苦辣,然后年龄大了才想建立一个家庭然后安稳下来,如果什么都没尝试过就让自己定型,总是心有不甘。 Go语言是一门新语言,并且做服务端开发, 而服务端开发又是我所欠缺的方面。当我在招聘网站上看到有招聘go语言服务端开发的时候,心情十分激动,小心脏就像初恋一样砰砰直跳,差点一激动就投了简历。


但是考虑到一些问题,还是有所犹豫。我也意识到,如果现在转的话,基本上是从零开始的, 对新技术不熟悉,缺乏经验。语言上语法不是问题,多写一些代码慢慢就熟悉了,但是一个平台不是一天两天就能熟悉的,很多原理需要花时间去搞明白, 大量的API和各种库与框架,也需要花很长的时间去摸索,大量的细节需要慢慢摸索, 还有一些小的技巧, 可能很简单,但是很有用, 这些技巧也是要靠长时间的工作而积累的。我们也明白, 一些事情, 仅凭兴趣是不够的,要想做成一件事, 必须有坚强的毅力和忍耐力,持之以恒,需要长时间的付出才能看到回报


另一方面, 如果转的话还要面临换工作甚至换城市,这对人来说也很难接受。频繁的跳槽对自己的发展没有什么好处;对于一个城市, 在一个地方呆久了,建立了自己的圈子,熟悉了身边的环境,要去一个新的地方重新开始谈何容易。


但是对一个技术方向投入的时间越长,投入的精力越多,就越是对这个技术不舍得放下。即使对其他技术很感兴趣,也不敢轻易转方向。因为我们都知道, 对于一个技术方向,不是一天两天就能熟悉的, 必须经过相当长的时间,才能熟练掌握。如果转的话, 相当于进入了一个新的世界, 没有足够多的经验,工作效率不会很高, 薪资也就会下降。工作几年后,到了30岁左右的年纪,基本已经结婚,有的还生了孩子,要养孩子,有的已经买了房子要还贷款, 或者正在攒钱买房。这个时候经济压力特别大,没有足够的薪水,无法维持正常的生活。这就导致更不敢于轻易尝试。


年轻的时候,对一个技术投入的少,还没结婚,牵挂较少。应该是一个尝试新东西的时候。如果在这个时候不多尝试一些新的感兴趣的东西, 等到年龄大了,精力不行了, 牵挂也多了,自由也少了, 更不可能再去尝试了。 这就会导致由于涉猎的面太窄, 制约程序员的发展, 不管是技术上的发展还是其他方面的发展。这真是一个两难的问题。


所以第一个困惑是 :多尝试几个技术方向对于自己的发展是利大于弊还是弊大于利? 其实这也是知识面广度和深度的矛盾



2 关于发展瓶颈的困惑


首先说一下我观察到的现象和我的感受。接触编程也有好好几年的时间了,一路走来磕磕绊绊,我想大多数程序员的经历和我是相似的。但是在工作一段时间后,一个现象引起了我的注意。不少人在工作稳定下来以后,随着工作时间的增加, 技术能力好像没有什么提高。日子一天天的过去,会的东西还是那么多。 这种现象感觉还是很普遍的。 一方面是自己太闭塞, 不善于接受新的东西, 二是懒惰,不愿意花时间学习, 三是公司的业务不能提供继续发展的空间。

工作一段时间后, 到底是什么制约程序员的进步, 也就是说技术人员的发展瓶颈到底在哪里?我能想到的有两个, 一个是基础不够扎实,基础没打好的话, 不会在这条路上走很远; 另一个是热情的消退,没有了热情, 失去了兴趣, 便失去了前进的动力。

关于第一个基础不扎实, 没有什么好的办法来应对, 只能是继续学习, 继续深入钻研计算机领域的那些基础的东西, 包括操作系统原理和实现方式, 网络(TCP/IP)技术的原理,编程语言原理(编译原理和运行方式), 数据结构和算法 等等; 在更高的层面上, 积累自己的设计和项目管理能力, 掌握设计原则,灵活运用设计模式, 积累程序架构方面的能力。总之就是注重技术能力的积淀, 这个需要长时间的不懈努力。

至于第二个热情的减退, 没有什么好的应对方式。人是会累的, 不管年轻时怎么能折腾, 随着年龄越来越大,精力不再像年轻时那么旺盛, 再加上生活负担重,激情也在每天的重复工作中一点点的磨灭。 只能时常鞭策督促自己, 让自己对未来充满希望, 对工作和学习充满激情。 

所以第二个困惑是:究竟是什么制约了程序员的进一步发展, 也就是什么导致了发展瓶颈? 如果遇到了瓶颈应该怎么应对? 

我在上面已经提出了自己的看法, 大家有什么看法欢迎交流。



3 关于职业生涯规划的困惑


关于技术人员以后往什么方向发展, 是一个老生长谈的问题了。很多人都有自己的看法, 博客和论坛上也有很多关于这个问题的讨论。

其实无非以下几种情况:

1 坚持走技术路线,做技术牛人。这个需要能够持续钻研技术, 付出足够的努力和足够的耐心。

2 转管理或销售等其他岗位。  这个要看自己的性格适不适合, 或者有没有这方面的潜力和能力。

3 从良, 不再做IT相关的工作。 

对于走技术路线的, 也可以分两种情况:

1 跟随公司的步伐, 公司需要什么技术就学习并使用什么技术。 这种人是踏踏实实想跟着公司一起进步和成长的。


2 跟随技术的发展趋势, 自己对什么技术感兴趣,就学习并尝试新的技术,这种方式不仅面临技术方向的转变, 又是后可能还要换公司。



关于职业生涯规划, 是一个很宽泛和开放的话题, 每个人都有自己不同的见解。但是也肯定有人在面临选择时陷入迷茫。 虽然我还没有遇到这个问题,但是我认为总有一天会遇到,因为选择时每个人都会遇到的。  虽然这个问题仁者见仁智者见智, 还是希望看到这篇文章的朋友踊跃发表自己看法。


总结一下, 第三个困惑就是 : 作为一个程序员, 如何更好的规划自己的职业生涯?



总结


文章写到这里也接近尾声了, 进行一下总结。这篇文章中主要提到了几个困扰程序员的问题, 都在上文中用红色字体标出。


这篇文章很明显不是一篇技术博客,也不是一篇指导程序员如何发展的博客, 以我目前的经历和资历, 还不能在职业发展方面去指导别人。也就是说这不是一篇解决问题的博客,而是一篇提出问题的博客。提出了自己和身边的程序员困惑的问题, 但是我相信肯定还会有很多其他同行遇到相同的困惑。在这里特意写成并发表这篇博客,希望可以引发更多的人思考这些问题。


如果你跟我一样刚入行不是很久, 没有遇到这些困惑,那么你可以提前思考一下这些问题,因为在未来可能会遇到;如果你已经是一个IT行业的老人,有着丰富的经历,曾经遇到过这些问题并且解决了这些问题,那么我强烈恳请您能提供宝贵的经验,可以在评论中写出来, 如果曾经写过这方面的有参考价值的博客, 也请给出文章的链接以便被更多的人看到。如果你不是技术人员, 或者甚至不是IT行业的, 那么更好,你的建议可能更具有参考性,可能会在其他更高的层面上引发思考,俗话说当局者迷旁观者清, 非技术人员思考问题的角度可能会不同,也许会更具启发性。


如有问题欢迎和我交流。我的QQ: 523901846 。 我的邮箱 : zhangjg0201@163.com 。 


最后, 在发表文章时, 我会尝试推荐到首页,以便可以被更多的同仁看到并评论。还会以私信的形式通知我关注的一些经验丰富的人来阅读本文,并且恳请他们给出一些建议。


评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值