程序员怎么去学习一种新技术——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来说,解决了官司问题(题外话)

我要怎么做(按优先级从高到低排序)

看教程:

  1. 查看官网中一些有用的链接

  2. 在极客学院搜索对应的教学视频

  3. Google 搜索kotlin教程(不要用百度了,学会用谷歌吧!)

  4. 简书-搜索相关内容:http://www.jianshu.com/

  5. 知乎-搜索相关内容:http://www.zhihu.com/

  6. 微博-搜索相关内容:http://weibo.com

  7. 开发者头条-搜索相关内容: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为例的主要内容,如果未能解决你的问题,请参考以下文章

那些编程水平很高的程序员是怎么训练出来的?

程序员需要一直学习新技术吗?

怎么使用API函数啊,要怎么去查,去学习?

程序人生在这个信息爆炸的时代程序员怎么去学习

自学游戏开发要怎么开始学习?

程序人生在这个信息爆炸的时代程序员怎么去学习