编程生涯 | “我到底要学习哪门语言?”
昨天出了点小意外,没有能够及时更文,今天鹿哥自罚一篇,来点干货,周一再来点技术 Sao 货,哈哈~
很多刚接触编程的人,肯定对下边这个问题并不感到陌生,而且最初问鹿哥的人也不少。
鹿哥,我刚接触编程,啥语言都多少学习过,但是都不精通,我应该学习哪门编程语言呢?哪门编程语言更好呢?
友情提示:本文只适合于未对编程生涯做出选择的人,而对于已经做出选择的人你的不会通过别人如何说,而轻易会改变自己的选择。
对于上述这个问题,是很多刚接触编程的人尤其是在校生,由于课程五花八门,弄得学生都不知道学什么好,到了最后什么编程语言都会点,就是没有一门拿手的。
甚至前几年网上一些无聊的开发者在各种社区引发编程语言的口水战,什么PHP是世界上最好的语言,争个你死我活的,其实说这些 P 话这些都是一些没有意义的事情,用这个时间敲两行代码它不香吗?
记得上次鹿哥和大家伙儿分享了一个国外的 IT 编程大牛 Peter Norvig,很多人看了鹿哥分享的那篇文章,找到了自身存在不少的问题和毛病。
今天呢,同样是介绍另外一个国外的 IT 大牛来回答这个问题,同时鹿哥会结合自己的一些看法,给大家伙唠唠。
想必学 Java 童鞋认识的多,哈哈,估计你们知道是谁了。他就是《Thinking in C++》和《Thinking in Java》的作者,大名鼎鼎编程界的大牛 Bruce Eckel。本文部分内容和观点,也是在他写给新手忠告一文中提到过的。如果部分童鞋可以科学上网,建议最好去阅读一下原文。
"在这个领域做得越多,我越觉得:软件开发比任何行业都更接近于写作。我们从来不知道是什么造就了优秀的作者,我们只知道什么时候我们会喜欢某个人的文字。"
鹿哥注:作者可能传达给我们的意思是,我们不必关注哪门编程语言会更好,而是怎么才能够帮我们开发出优秀的软件产品,这才是每个开发者应该关注的点。
当每个人存在上述这个问题的时候,我们每个人一开始关注的出发点就错了,Bruce Eckel 通过一个盖房子的故事来说明了这个问题本身存在的问题。
“做软件开发好比就是盖房子,每个盖房子的人都是不一样的,有混凝土工、屋顶工、管道工、电工、砖瓦工、水泥工、瓦片工、搬运工、粗木工、细木工等。当然,还有工头。
每个工种都需要相应的技能,这些技能都需要花时间和精力去掌握。跟软件开发一样,造房子也是一个“建立/推翻”的过程。
如果你想很快地获得回报,你可能从搬运工和砖瓦工开始做,这样的话,你无需太多的学习曲线就可以获得回报。
当需求很多时,你的工作会很稳固,甚至收入也可能提升——如果没有足够的人手的话。但是,一旦行情不妙,木匠甚至工头就可能把砖瓦工一脚踢开。”
鹿哥注:上边搬运工的比喻对于我们每个开发者再形象不过了,其实软件开发中,80% 的人是搬砖的,想想你们公司,架构师会占小数,无论是大厂还是非大厂,公司大多数为普通员工。
也就是说,搬砖的人太多了,你随时就有可能被辞退的风险,看现在互联网行业,很多没有太多核心竞争力员工往往被一些应届生顶替,虽然应届生经验不多,但是搬砖的思维能力要强,再加上年轻,也有培养的潜力。
那有人问了,鹿哥,这如何是好?话说回来,真的要想在一家公司待得长久,必须打造出属于自己的核心竞争力。
何为核心竞争力?说白了,公司离了你就会有所损失,甚至无法运转。这说起来有点夸张,其实对于你个人能力成长来说,到了以后,你就会认为只有有这样能力的人,才不会被淘汰和顶替。这你可要现在好好想想了,先不往大出说,你的存在,能否对公司有所小的影响呢?这值的我们每个人去思考。
那怎么打造自己的核心竞争力,这个话题之前文章提到很多次,单从心理学层面讲,那就必须走出自己的心理舒适区,先克服掉自我的心理层面,才能在其他方面有所突破。现在看看很多上班族,有多少人下了班直接躺床上刷手机,有多少人周末宅在家里看剧,这对于想改变的你来说,想必也是一件好事。
除非你准备活到老学到老,不然的话,不要进入这个行业!编程看起来似乎是一个高收入而又稳定的工作。但要做到这一点,唯一的途径是始终让自己更有价值。
虽然现在很多通过自学编程也好还是培训也好,只要掌握一门语言。出来的基本能够找一份不错的工作,也不需要其他的一些额外技能。但是为了你不变的更加脆弱,必须通过阅读、交流、团队合作项目等,持续提高自己。
你学得越深入,你就越有价值,也就意味着你有更好的职业前景,可以配得上更高的薪水。
而且之前鹿哥在文章中多次提到,有时候我们往往在非专业领域收获的要比专业领域多的多。因为在本专业领域往往受到思维上的局限性。
了解编程之外的领域,将会极大得提高你解决问题的能力(就如同多学几种编程语言将极大地提高你的编程技能)
如果作为一个优秀的开发人员,以下是大牛的几点建议。
1、知道如何获取知识。
2、善用工具。
3、学会把事情简化。
4、理解业务。
5、为自己的错误负责。“我就是这样的”是不能接受的托词。能找到自己的失误。
6、成为一个领导者,善于沟通和激励。
7、搞清楚你在为谁服务。
8、没有绝对正确的答案(更好的方法总是存在的)。
9、明白完美是渐进的。
10、研究现有的技术。
最后,并不是所有的问题都有一个唯一的简单的答案。问题的关键不在于选择某个编程语言,然后掌握之。问题的关键在于:持续学习,并且很多时候,有不止一个选择。
相信我所说的,你的生活会更精彩!
©著作权归作者所有:来自51CTO博客作者mb5fe1601ede528的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- 计算机领域中的熔断机制
- 测试领域,小白问题大集合(适合未入门和入门初级者)
- 老司机带你在MySQL领域“大吉大利,晚上吃鸡”
- 人工智能和机器学习领域开源项目
- Linux操作系统三大应用领域
- 人邮社专访刘遄老师:不做技术的搬运工
- 领域:更新外部对象的id