程序员怎么去学习一种新技术——kotlin为例
Posted android与kotlin以及java架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员怎么去学习一种新技术——kotlin为例相关的知识,希望对你有一定的参考价值。
本文初衷
把自己模板化
以此篇为引,与同行沟通心得,所以在此严重要求如果你有对应的心得还请能回复下,真心感谢!(鞠躬)
就我这几年的工作经验来看,对于所有的行业来说,你的能力其实不是最重要的,管理者认可的的是你对这份工作的态度,所以希望大家在工作中要有一份认真的态度,你可以没有经验,你可以失败,但是你要去认真的面对这份工作,总有一天你会成功的。不记得从哪里听到过一句话,让我受益匪浅。
遇到问题,不要去找理由,要记着办法永远比理由多!
态度我们有了之后,当然我们还是要有能力的,这个是基础,作为程序员来说,不仅要有工作经验,你还要有很好的学习能力。说了一些题外话,下面开始说正题:
首先大家来看图片
学习思想导图
刚开始工作的时候,自己什么都不懂,然后学习一些新的东西都是乱七八糟的,看看这里,看看那里,觉得自己浑浑噩噩的,到最后什么都没有学会!直到我看到这张思维导图,我瞬间就理清自己平时在学习东西时候那混乱的思维了。
下面我们跟着这张图去学习一下安卓官方新推出的开发语言Kotlin
官方介绍:
Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。
Kotlin可以编译成Java字节码,也可以编译成javascript,方便在没有JVM的设备上运行。
JetBrains,作为目前广受欢迎的Java IDE IntelliJ 的提供商,在 Apache 许可下已经开源其Kotlin 编程语言。
Kotlin已正式成为android官方支持开发语言。
在看这些只是的同时你还要从各个角度去看它,深入了解它,要明白我们要学习的是一个什么东西,
参见
补充阅读
参考资料
外部链接
同类技术:
java
Scala
同类技术比较优点:
更简洁:这是它重要的优点之一,可以比Java编写少得多的代码。比最成熟的竞争者Scala还简单
更安全:Kotlin是空安全的,它在编译期间就会处理各种为null的情况,无需像java一样添加很多的判空代码,节约很多调试空指针异常的时间,很大程度上避免出现NullPointException。
易扩展:扩展函数意味着我们不仅可以扩展我们原有写好的类,还可以扩展系统级的类,非常灵活,另外如果在类里编写扩展函数,那么只对当前类生效。
函数式:Kotlin使用了很多函数式编程的概念,比如用到了lambda表达式来更方便地解决问题。
Kotlin Android Extensions:再也不用编写烦人的findViewById()了,如果你集成了ButterKnife,是时候删除对它的依赖了,Kotlin支持了对于View以id形式访问。
不用写分号,就像你看到的上述代码一样,对于很多写过脚本语言的童鞋来说,不要写分号这一点真是节省了很多时间,对于一天写几百行几千行甚至上万行代码的童鞋们来说,相当于省了多少个分号.
学习前提/依赖
要有JavaScript基础相关
为什么会出现
长期官司压身:众所周知,在Android的版权问题上,不要脸的Oracle公司在长达6年的时间里一直以Android部分Java代码侵犯Oracle公司版权为由对Google持续提起上诉。比较有意思的是,Java语言的原拥有者却力挺谷歌。我想,长期的官司压身,长期的高额诉讼费用,长期的人力资本,一定在谷歌Android团队掀起了不小的波澜,他们大概也在寻求一个新的语言来解决安卓开发的痛点问题,这也许就是Kotlin语言在Android团队中的萌芽吧!最重要的就是上面提出的kotlin相比同类技术的优点。
要明白为什么去学
老板让学的?
解决工作问题?
提高效率?
知识储备?
灵机一动?
kotlin虽然很优秀,但奈何我的公司开发的APP全部都是用的java,也许有人说可以混合开发,kotlin能够很好的兼容java,但是公司不是一个人,是一个团队,要改编程语言去做新项目,工作效率是一方面,开发成本也会很大,作为老板来说肯定不希望了。所以对于我来说的话,学习kotlin是作为知识储备的,学会的东西就是自己的,不要等到用的时候才去学习。(如果有好的工作机会,这些都是加分的项目)
解决了什么问题
完全兼容Java
Null safe(空指针异常)
支持lambda表达式(比Java8更好)
支持扩展
体验一致的开发工具链
对于google来说,解决了官司问题(题外话)
我要怎么做(按优先级从高到低排序)
看教程:
查看官网中一些有用的链接
在极客学院搜索对应的教学视频
Google 搜索kotlin教程(不要用百度了,学会用谷歌吧!)
简书-搜索相关内容:http://www.jianshu.com/
知乎-搜索相关内容:http://www.zhihu.com/
微博-搜索相关内容:http://weibo.com
开发者头条-搜索相关内容:http://toutiao.io/
自己写 Demo:
自己去创建一个工程,然后从基础语法开始,每一个语法都要亲自去运行一次,然后看出来最后的效果。
参考别人 Demo
遇到问题
找官网 FAQ:https://github.com/JetBrains/kotlin
Google(如果不会,可以百度)
Stack Overflow:http://stackoverflow.com/
归纳整理并分享
整理:
有道云笔记(推荐每个人都要有自己的云笔记)
浏览器书签(推荐大家使用在线书签,否则换电脑了就找不到了)
掘金中收藏:https://juejin.im/collections
简书中收藏:http://www.jianshu.com/bookmarks
简书中喜欢:http://www.jianshu.com/favourites
开发者头条中收藏:http://toutiao.io/favorites
分享:
写博客
分享到开发者头条
分享到简书
分享到掘金
系统整理 Demo 在 Github 上
上面就是学习一种新东西的大概步骤,也许不是适用于每个人的,上面提出的仅仅是自己的个人意见,可能平时我们也是这样做的,可是我们从来没有认真思考过或是整理过这样的思绪!也许你认为只是一种思路,不是很重要,但是对于我来说,我很受用这种学习方式,就像文章刚开始说的,让自己让自己模板化,有记录,有流程的的方式,很适合初学者(意见仅供参考,可能大家有更好的学习方式,请分享共勉!谢谢!)
大家都有了以上相同的教程,但是人和人之间的区别在于:别人有颗更强大的内心,可怕的是比你聪明的人比你还要更努力!!
当你下定决心,准备前行的时候,剩下的只有坚持了。。。
以上是关于程序员怎么去学习一种新技术——kotlin为例的主要内容,如果未能解决你的问题,请参考以下文章