程序员真的有未来吗?

前言

有人说,程序员的门槛正在逐渐消失,因为计算机相关专业毕业生一年比一年多;IT 培训班出来的学生一年比一年多;网络上各种编程课程,也正在帮助无数人零基础转型软件开发……

而程序员的工资,动辄两三万,三五万,远高于其他行业大部分技术岗位,似乎充满了泡沫。

未来程序员越来越多,供过于求,肯定会是白菜价,并说这是普遍的经济规律。

当我们讨论供需关系时,往往都需要一个基础条件:产品业务必须是标准的。我们这代人生活在『工业时代』往『信息智能时代』的转变阶段。所以我们常常用工业时代的经验来推测假定信息智能时代的趋势,这种推测本身就是落伍的。

作为一个程序员,技术不是唯一出路,但技术也是非常重要的,现在竞争越来越激烈,只有不断的进阶才是我们的出路

编程是一个神秘而又美丽的领域,这个领域的大门像着所有拥有理想的人们敞开。编程也是一个残酷而又充满竞争的领域,随时会淘汰掉不够努力的人。

互联网在高速发展,技术也是日新月异,作为互联网从业工作者的我们也要不断学习新知识,那些刚入门的小伙伴更是如此。

下面总结一下我的学习方法

对于Android来说,有太多的诱惑,比如React Native,小程序,热更新,插件化。

t_genius.jpeg

t_genius.jpeg

我理解的应该是先从宽度上拓展,然后在尽心深度研究。

什么时候需要横向拓展

  • 初学者
  • 工作业务量繁多,比如浏览器开发(普通App开发技术,HTML+Javascript等技术)
  • 自身兴趣

什么时候需要纵向深入

  • 中级和高级开发
  • 追求更深入的细节和思想
  • 工作内容需要

横向发展有哪些

  • ReactNative等技术
  • 简单的后台开发 Java/PHP/Python/Ruby
  • IOS等应用开发
  • 总而言之就是会的多

纵向发展有哪些

  • 系统源码
  • 各种技术的实现机制
  • 操作系统相关知识等
  • 总而言之就是学得精,知其然深知其所以然。

我个人比较倾向于多花点时间做深入研究,在这个过程中会慢慢形成一种透彻理解技术的能力,有了这种能力之后就能触类旁通,学习其他技术也会更加轻松。

另外,工作需要时影响你朝着哪个维度发展的重要因素。所以选择一个公司要谨慎。

  • 通常大公司,优秀的团队会有利于你进行纵向深入
  • 小公司,创业公司更多的会影响你进行横向发展。

如何从日常的工作中获取最大的收益

日常的工作中,我们都是在做公司的项目。我们想要做到最大化收益需要做到

  • 不要将自己的要求仅仅停留在功能实现(比如完成一个界面不代表你的收益做到最大,只是代表任务完成)
  • 要理解你所使用的技术的原理和本质。不要停留在API使用,否则无法增强你的竞争力。比如我们对于加载Bitmap都会用到LRUCache,我们则需要至少理解LRUCache的原理,如果可以的话,了解它的内部实现机制。
  • 项目中有好的地方,要去思考好在何处。思考这种技术的通用场景。
  • 在项目中思考更好的解决方法。做好两种方案的优缺点对比。比如你听了《Android Performance Pattern》中关于ArrayMap的讲解,也考虑到HashMap的空间占用问题,不要急于去替换。要做到对比(既要了解HashMap也要了解ArrayMap)同时结合业务场景来选择最适用的。
  • 如果在项目中遇到了问题,建议先解决,然后空余时间研究这个技术的原理和细节。后续的研究务必要做。
  • 善于做总结,将自己的经验和教训写成博客分享给他人。

日常的工作给我们提供了许许多多好的实践和不好的问题,是一块弥之珍贵的技术提升的源泉。

Android那么多库,我该选择哪些,怎么学,学到什么程度

库的存在是为了封装细节,简化调用者实现或者辅助我们更容易发现问题。比如ButterKnife利用注解简化了对于view的查找和类型转换等功能。

关于如何选择那些库

  • 确定这个库是否是必需的
  • 这个库能否带来开发效率的提升,降低代码的维护成本
  • 这个库的学习成本如何 比如rxjava其实学习成本会相对高一些。
  • 这个库的质量如何,不要仅仅看star,更要看issue的处理情况

Flipboard常用的库(部分)

  • LeakCanary A memory leak detection library for Android and Java.
  • Stetho Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.
  • ButterKnife Bind Android views and callbacks to fields and methods.
  • Baber A custom view styling library
  • GoldenGate An Android annotation processor for generating type safe javascript bindings
  • MaterialEditText EditText in Material Design
  • 。。。

关于库,首先我们需要掌握其使用方法,同样也需要理解其运行机制。

对于初学者,大学生的建议有哪些

  • 越来越多的关于互联网寒冬的消息传出
  • 听见越来越多的人抱怨Android找工作越来越难,已经趋近饱和。
  • Android开发的红利期正在逐渐消逝,尤其是对于初级和中级开发人员
  • 关于现在加入Android开发队伍,我并不反对。
  • 仍然可以赶上红利期的有容器,机器学习和人工智能。
  • 但是无论选择哪一种技术,即便是Android,请具备好的基础和较强的编程能力和足够的爱好。不要仅仅追求物质。

一直想学,却很难坚持下去

  • 有意愿是很好的。
  • 如果很难坚持下去,可能的原因有没有学进去,或者自制力比较差
  • 关于没有学进去,可以参考上面提到的学习方法
  • 如果是自制力的话,可以通过自我监督和他人监督的方式来改善。

后记

学好技术的窍门,在于将日常工作会用到的,却不懂其原理的技术“小黑箱”,逐一拆开,认真剖析学习。每天一点点,每天一点点。1年后,你的技术水平必然大幅提升。

没有前辈咨询,可以多主动加入技术交流群。
没有职业路线,可以多关注大神的公号来借鉴其想法和经验。
没有学习资料,可以多买几本行业的经典读物少喝几杯饮料。

目标明确,思路清晰,资料齐全,技术仪式感营造得当,学起来会舒坦很多。千万不要轻信程序员遇到好项目,是靠运气的。要知道,大多数好项目都是由优秀的人才做出来的,有幸进去的程序员,能力一般不会差到哪里去。技术是一个努力与回报成正比的行业。它公平公正的对待着每一位从业者。那些被的尊称为“大神”的佼佼者,必然有着常人无法想象的刻苦学习和辛劳付出。程序员就像一位剑客,他必须流下汗水,去磨利他的“技术”佩剑;消耗精力,去专研剑的招式;付出青春,去探索剑的真意。只有这样,他才能在这个危险与机遇并存的互联网江湖,谋得一席之地,抑或是勇攀巅峰。希望能对程序新人有所帮助。

最后

想要获得Android、JAVA学习资料的小伙伴可以在我的gitee里面免费获取。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值