V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
VicZhang666
V2EX  ›  Android

2022 年, 0 基础想做 Android 应用开发者是否可以从 Kotlin 直接学起?

  •  
  •   VicZhang666 · 2022-03-08 21:32:59 +08:00 · 15864 次点击
    这是一个创建于 1020 天前的主题,其中的信息可能已经有所发展或是发生改变。

    RT ,我基本可以视作没有任何编程经验,想要在今年学习 Android ,成为独立开发者。

    目前我正在依照《第一行代码(第三版)》进行学习,尽管本书采用 Kotlin 语言撰写,但是因为其中引入了许多高深的编程概念,导致我现在学起来进度很慢,而且非常的困难。

    那么请问,对于 0 基础的我而言,如今学习 Android 应用开发是否可以从 Kotlin 直接学起呢?

    如果答案是肯定的,那么请问除了官方文档以外(我英语词汇量仅仅在 3500 左右),是否还有其他学习 Kotlin 的资源推荐呢?

    **诚挚发文,提前感谢您的热心回复!

    82 条回复    2022-03-31 23:49:15 +08:00
    learningman
        1
    learningman  
       2022-03-08 21:46:59 +08:00
    我是从 Kotlin 直接上手的安卓,但是我有其他语言的经验,Kotlin 有和 Java 互操作的特性,你不明白 Java 挺难学的
    yayiji
        2
    yayiji  
       2022-03-08 21:49:52 +08:00 via Android
    学 kotlin 要 Java 基础,没有比这更糟糕的事了,内部都是 Java 源码,至少目前为止,不能无 Java
    VicZhang666
        3
    VicZhang666  
    OP
       2022-03-08 21:56:15 +08:00 via iPhone
    @learningman 😥那我现在还是应该先从 Java 学吧……
    VicZhang666
        4
    VicZhang666  
    OP
       2022-03-08 21:56:56 +08:00 via iPhone
    @yayiji 嗯啊,非常感谢,我先去找一下 Java 的资料
    Leviathann
        5
    Leviathann  
       2022-03-08 22:08:02 +08:00
    java 真没什么东西。。现在随便一门 c 系语法的 gc 语言都能找到 java 的影子
    kotlin 倒是有挺多新颖的特性一眼看上去不懂干嘛的
    比如 1.6.20 刚加入的 context receiver 的原型。。
    WebKit
        6
    WebKit  
       2022-03-08 22:17:09 +08:00 via Android
    可以的
    echo1937
        7
    echo1937  
       2022-03-08 22:25:00 +08:00
    Java 很好学,几乎没有什么 Magic 的点,端端正正。
    westoy
        8
    westoy  
       2022-03-08 22:35:01 +08:00
    你真把 kotlin 学的差不多了, 至少做 app 涉及到的 java 要学的其实也没多少了..........
    levelworm
        9
    levelworm  
       2022-03-08 22:40:32 +08:00 via Android
    话说直接上 C/C++如何?感觉安卓一眼望过去都是 java
    anguiao
        10
    anguiao  
       2022-03-08 22:41:41 +08:00
    很久没写过 Kotlin 了,但是想学 Kotlin 的话,肯定是要有 Java 基础的。
    不过 Java 并不难学,只要有编程基础,很容易上手。
    至于 Kotlin 本身的话,学了 Java 之后起步也不难。那些多出来的糖,慢慢消化就行了。
    BrettD
        11
    BrettD  
       2022-03-08 22:42:15 +08:00 via iPhone
    零基础不建议学 C/C++,学会编程之后再学 C/C++不迟
    VicZhang666
        12
    VicZhang666  
    OP
       2022-03-08 22:42:32 +08:00
    @levelworm 高中的时候参加过 NOIP ,为此学了一些些 C ,但是现在已经工作两年多了,完全忘了···
    VicZhang666
        13
    VicZhang666  
    OP
       2022-03-08 22:43:13 +08:00
    @echo1937 嗯啊,我在极客时间之前买了 Java 0 基础的课,但是看了 13 节就放弃了=-=,好难啊
    echo1937
        14
    echo1937  
       2022-03-08 22:46:28 +08:00
    @VicZhang666 #13 如果 Java 学不会,Kotlin 花活更多更学不会,建议 B 站找个播放量高的视频重新学。
    VicZhang666
        15
    VicZhang666  
    OP
       2022-03-08 22:46:51 +08:00
    @anguiao TAT ,之前我花了几十块钱买的在线课程感觉学不下去,很难,前几天找到个口碑不错的免费 Java 课,打算学着试试
    VicZhang666
        16
    VicZhang666  
    OP
       2022-03-08 22:48:48 +08:00
    @echo1937 我看知乎上推荐了谷粒学苑的免费 Java 录像,但是上班不方便看,请问廖雪峰的教程好嘛?
    levelworm
        17
    levelworm  
       2022-03-08 22:53:45 +08:00
    @BrettD 这个我倒是会,就是不知道安卓开发是否方便,毕竟生态看上去还是 java 的多。java 我也会就是了。
    crayygy
        18
    crayygy  
       2022-03-08 22:57:43 +08:00
    如果真的是没有基础的话,我更建议从 Java 开始,Kotlin 是用来简化开发流程的,其实更像是 Java 的语法糖,Java 没学好直接用 Kotlin 很容易晕,Java 也比 Kotlin 更容易学习,最重要的是,当你学完 Java 以后,再去学 Kotlin ,基本上要不了多久
    BrettD
        19
    BrettD  
       2022-03-08 23:16:22 +08:00   ❤️ 1
    @levelworm 安卓里面 C/C++做原生插件库用的比较多,主程序和 UI 部分还是 Java/Kotlin/Dart
    darkengine
        20
    darkengine  
       2022-03-08 23:16:47 +08:00
    Java 可以说是骚操作较少的编程语言之一了,还是从 Java 开始吧
    twing37
        21
    twing37  
       2022-03-08 23:19:30 +08:00
    对于编程,我真的推荐: 结对编程
    illusionist
        22
    illusionist  
       2022-03-08 23:25:32 +08:00 via iPhone
    18 楼的意见是非常合理的,开始阶段,不要去过多关注简洁和语法糖,而要关注简单通俗易懂,等又了一定基础后再去搞 kotlin,反正最终你两个都要学的,这个你放心。APP 要做的好,不会 Framework 是不太可能的,但是 Framework 目前的实现还是 Java ,未来可能切换,但是这种基本几年后的事情了。
    westoy
        23
    westoy  
       2022-03-08 23:32:09 +08:00
    等等, 我怎么觉得这是一个广告......
    VicZhang666
        24
    VicZhang666  
    OP
       2022-03-08 23:53:10 +08:00
    @westoy *-* 不,不是···我现在正在看 b 站教程学
    VicZhang666
        25
    VicZhang666  
    OP
       2022-03-08 23:53:51 +08:00
    @crayygy 谢谢~我现在正在跟着 b 站一个教程学 java ,等着学会了再去学 kotlin 和安卓
    VicZhang666
        26
    VicZhang666  
    OP
       2022-03-08 23:54:03 +08:00
    @crayygy 谢谢~我现在正在学 java ,等着学会了再去学 kotlin 和安卓
    VicZhang666
        27
    VicZhang666  
    OP
       2022-03-08 23:54:44 +08:00
    @twing37 *-*身边的人没有学的····要么比我强,要么是自媒体写字的···
    WenhaoWu
        28
    WenhaoWu  
       2022-03-09 00:43:46 +08:00 via Android
    什么样的 Android app 呢,偏表现层的推荐直接 flutter ,比原生 Android 简单
    VicZhang666
        29
    VicZhang666  
    OP
       2022-03-09 00:54:38 +08:00
    @WenhaoWu 想做一个记事本类的 app
    sankemao
        30
    sankemao  
       2022-03-09 01:23:00 +08:00 via iPhone   ❤️ 1
    独立开发学 iOS 更合适
    WenhaoWu
        31
    WenhaoWu  
       2022-03-09 01:50:32 +08:00 via Android
    @VicZhang666 没啥性能要求,直接上 flutter 吧。dart 也比 kotlin 简单(少糖)
    liveoppo
        32
    liveoppo  
       2022-03-09 03:09:48 +08:00
    现在学习安卓 App 开发的门槛相当不低,从你的之前稍微学过 C 语言这个基础开始,到能基本上手开发 App ,要相当长的时间,最好有思想准备,否则就折腾几个月跑路,白花了时间。

    另,java 重点掌握面向对象,然后就可以转 kotlin 了。
    cssk
        33
    cssk  
       2022-03-09 06:49:59 +08:00 via iPhone   ❤️ 1
    换 iphone ,学 swift ,上手太容易了
    micean
        34
    micean  
       2022-03-09 08:42:45 +08:00
    直接 kotlin 吧,java 只是用来解决“为什么不能这么做”、“为什么只能这么做”的问题的
    VicZhang666
        35
    VicZhang666  
    OP
       2022-03-09 09:01:54 +08:00
    @cssk *-*我现在是 13+一加双持,但是手头上只有一台很久的 Air 和高性能 PC ,前者运行 xcode 就已经很卡了···被迫选 Android ,如果厨子今年出 MacBook Air 2022 就好了··
    VicZhang666
        36
    VicZhang666  
    OP
       2022-03-09 09:03:07 +08:00
    @liveoppo 谢谢,我现在上班先看看廖雪峰的图文教程,争取一个月搞定这部分
    demo06
        37
    demo06  
       2022-03-09 09:17:41 +08:00   ❤️ 1
    你学 kotlin,jetpack 这种能提高开发效率的东西我建议你放在基础扎实之后学,java 方面别听他们的,你做 Android 怎么可能不学 java,不学的话你知道面向对象,多线程,io,封装,继承,多态是啥吗,另外做独立开发者,Android 基础控件就不说了,四大组件,handler,自定义 view,都得会,架构不说 MVVM,先从 mvc 开始,mvp 得会吧,得知道怎么对接口吧,http 这东西是做 IT 的必知必会的基础,独立开发接口都是个问题,这又牵扯到后台,这就不细说了你自己去找解决方案总知要学的东西还有很多,我说这么多不是要打击你的积极性,因为现在学 Android 已经不像几年前写个 demo 就能找工作了,但是还是不要气馁,最重要的是坚持,这里给你总结一下技术路线 ,java->kotlin->jetpack->架构->jetpack compose(这是个响应式 UI 框架,google 在推,写界面爽的不行)
    murmur
        38
    murmur  
       2022-03-09 09:35:11 +08:00
    记事本做微信小程序不是更容易
    basefas
        39
    basefas  
       2022-03-09 09:36:17 +08:00
    独立开发者建议学 Android
    basefas
        40
    basefas  
       2022-03-09 09:36:36 +08:00   ❤️ 1
    @basefas #39 呸,打错了,建议学 iOS
    janus77
        41
    janus77  
       2022-03-09 09:41:21 +08:00
    java 要学的
    magicls
        42
    magicls  
       2022-03-09 09:43:08 +08:00
    可以用 kt 开发,但是 Java 要学。
    VicZhang666
        43
    VicZhang666  
    OP
       2022-03-09 09:48:23 +08:00
    @demo06 非常感谢您的回复,我现在就先学 Java 再学 Kotlin
    xiaochao666
        44
    xiaochao666  
       2022-03-09 09:54:29 +08:00 via Android
    我是建议先学 java ,而且要从视频入门,不是书籍。kt 是为了解决 java 的一些痛点加上 java 版权问题出现的,如果一开始就去学习 kt ,你可能不知道为什么要这样。另外,java 目前来说还是主流。
    分割线
    -----------------------------
    别听那些人说要看书、看英文官方文档入门,什么 java 开发安卓过时了,误人子弟。B 站慕课黑马视频不香吗,学习曲线平滑而且效率高,而且还有老师的理解而不是自己胡思乱想,不然你看半天书籍和官方文档还不知所云,不是瞎折腾么!
    ---------
    一句话:先学 java ,搞懂面向对象,看视频入门,后面要不要学 kt 再说。
    fredli
        45
    fredli  
       2022-03-09 10:21:50 +08:00
    可以,但是写 kotlin 还是会用到一些 java 库,java 知道些 C 类似的那些语法规则就行了
    ysc3839
        46
    ysc3839  
       2022-03-09 10:24:52 +08:00
    我觉得入门编程先学 Web 前端比较好吧
    x13945
        47
    x13945  
       2022-03-09 10:33:10 +08:00   ❤️ 2
    1. 直接上 kotlin 就行。kotlin 是一门单独的语言,而不是 java 的升级版。
    2. 你是面向 Android 开发,而不是面向语言开发。Android 开发主要是针对 Android 提供的 API 进行开发,2022 年还纠结语法和语言的必要性不大,除非你要维护那些上古年间的代码
    3. 不要学习太多的前置技能,专注主要目标**Android 开发**,否则容易消磨精力和耐心,得不偿失
    4. IT 开发更多的是一项技能,而不是知识。前期多刷熟练度对技能提升帮助很大
    jeepc
        48
    jeepc  
       2022-03-09 10:53:41 +08:00
    直接 kotlin ,去 b 站找个教程
    nicevar
        49
    nicevar  
       2022-03-09 10:56:21 +08:00
    直接上 kotlin 没太大意义,最后你还是得要会 Java ,至少能看懂 Java 代码,否则你遇到问题很多代码实例都是 Java ,另外很多开源的库也是 Java 写的,你不会 Java 遇到一点问题折腾半天,浪费的时间都够把 Java 学得八九不离十了
    VicZhang666
        50
    VicZhang666  
    OP
       2022-03-09 11:13:56 +08:00
    @x13945 #捂脸,我现在没有找到适合 0 基础的 Kotlin 中文教程···买的《第一行代码(第三版)》是 Kotlin 写的,但是作者也说起码得有点 java 或者其他语言的基础···
    darkengine
        51
    darkengine  
       2022-03-09 11:16:26 +08:00
    @VicZhang666

    你这个思路不对啊,应该根据就业情况选择学 iOS 还是 Android ,不是根据你手头有啥设备就学啥,本末倒置了属于是。

    --------

    我现在是 13+一加双持,但是手头上只有一台很久的 Air 和高性能 PC ,前者运行 xcode 就已经很卡了···被迫选 Android ,如果厨子今年出 MacBook Air 2022 就好了··
    yangyaofei
        52
    yangyaofei  
       2022-03-09 11:17:07 +08:00
    java 难..... 会了 C++ , java ,kt 什么的不就是看看语法直接写么.......
    liujavamail
        53
    liujavamail  
       2022-03-09 11:18:24 +08:00
    @VicZhang666 kotlin 实战
    luvsic
        54
    luvsic  
       2022-03-09 11:47:44 +08:00
    直接换 ios ,swift 一把梭
    pilipili
        55
    pilipili  
       2022-03-09 11:50:07 +08:00
    @demo06 感谢您的分享
    industryhive
        56
    industryhive  
       2022-03-09 11:58:46 +08:00
    @yangyaofei 其实反过来也一样,各种语法糖你有的大家都有,学了一门,其他的也就会了
    yangyaofei
        57
    yangyaofei  
       2022-03-09 12:57:23 +08:00
    @industryhive 但是楼主说他会 C, 所以觉得 c -> c++ 这个路子最快
    tttttv2
        58
    tttttv2  
       2022-03-09 13:19:30 +08:00
    有点编程基础( js/java/c# 等),我觉得直接看《第一行》没问题,我也是过一遍《第一行》就开始着手安卓 APP 的开发了,kt + java 混合(大部分是 kt )。

    接触新语言时,先过基础,然后实战+遇到问题(坑) 再补知识会快一点,然后后期再完善,系统性的学习。

    比如你这个 app 做完了,就可以再切入需要的方面,再优化优化之类的。

    ----- 仅供参考
    lmshl
        59
    lmshl  
       2022-03-09 13:41:14 +08:00   ❤️ 1
    从 Java 学起完全没必要,你 0 基础直接学 Kotlin 没毛病。

    我一个不懂 Java 的码农,一样 Scala / Kotlin 写的飞起,反而思维不会被 Java 锁和 JUC 那点赢弱的能力给限制住。
    beisilu
        60
    beisilu  
       2022-03-09 13:43:47 +08:00
    android 的独立开发意义不大,建议 flutter ,dart 写起来是最简单的。
    而且 flutter 写起来结构像 kotlin compose ,你想跳回去也很简单
    Mephisto233
        61
    Mephisto233  
       2022-03-09 13:46:40 +08:00   ❤️ 3
    如果要做独立开发者,建议学 iOS 开发, 可以先看 SwiftUI 慢慢补 UIKit 相关, 安卓应用就算做出来了国内上架就是个巨坑...
    lmshl
        62
    lmshl  
       2022-03-09 14:31:44 +08:00
    关于学习资料,水滴技术团队有一本《 Kotlin 核心编程》写得非常好,建议阅读。
    同时可以学一点响应式流,suspend/await ,ktor/kotlinx.serialization 等工具库。
    然后再补一点函数式编程的基础,你的码力绝对突飞猛进,而且不局限于 Kotlin 这一门语言上。
    VicZhang666
        63
    VicZhang666  
    OP
       2022-03-09 14:43:49 +08:00
    @darkengine 我看了感觉目前安卓开发比较吃香···所以打算先学着安卓,不过因为想要自己开发应用,所以计划学会安卓之后转向 ios
    VicZhang666
        64
    VicZhang666  
    OP
       2022-03-09 14:45:05 +08:00
    @lmshl 谢谢,我去找一下这本书,我之前买的第一行代码的确感觉不太适合我读
    VicZhang666
        65
    VicZhang666  
    OP
       2022-03-09 14:45:31 +08:00
    @yangyaofei 没有了···只有一点点 C 基础
    ciki
        66
    ciki  
       2022-03-09 15:16:34 +08:00   ❤️ 2
    如果是为了转行现在学 Android 99%会失败,如果是独立开发者,100%失败,独立开发者唯一选择 iOS 。
    iseki
        67
    iseki  
       2022-03-09 15:19:14 +08:00
    不能完全不会 Java 的,Java 的一些最新语法可以不知道,但是一些底层机制还是要知道一点的,否则容易抓瞎
    lucifer69
        68
    lucifer69  
       2022-03-09 15:23:35 +08:00
    B 站上那些培训机构都有发 Java 、Kotlin 的基础教学视频,可以和书对照着看
    XXWHCA
        69
    XXWHCA  
       2022-03-09 16:31:44 +08:00
    @demo06 你一下子说了这么说多,小心给人家劝退了。不过我认为上面 18 楼说的先学习 java 还是没错的,如果上手就学 kotlin ,可不是特别好理解 kotlin 的一些语法糖和协程,包括 java 和 kotlin 混编的问题也是一大问题,不了解 kotlin 怎么做的空安全检查可不行。后期使用 jetpack 中 kotlin 的高级语法糖和协程的使用如果没有一定基础理解起来还是比较困难的,但是如果理解了 java 的思想再用 kotlin 就是很简单了。说一下我们公司的情况,java 和 kotlin 混编项目,新人(以前只写 java )到公司从上手写 kotlin 项目花不了一周。所以还是要学习一下 java 的
    Goooler
        70
    Goooler  
       2022-03-09 16:34:35 +08:00
    先跟着翁凯把 java 学了
    shily
        71
    shily  
       2022-03-09 16:37:08 +08:00
    https://developer.android.google.cn/guide
    从这个入门,先一步一步跟着来;右上角可以切中 /英文。
    wffnone
        72
    wffnone  
       2022-03-09 16:52:35 +08:00 via iPhone
    我印象中那是一本烂书。

    学习尽量看英文,除了经典书籍的中文版,按理不该去看其他的中文信息。

    我看了你的别的回复(你应该把这些信息更新在问题里),你要做记事本?这是所有,所有,所有,程序员都想过要去做的软件。

    建议你用 web 的技术去做。

    我能想象你的 C 的基础(这些你也应该补充在问题里)。真实世界的应用编程不需要什么算法,重点是如何把不同的东西组合在一起。和数学距离很远。

    也很有趣。
    ChrisFreeMan
        73
    ChrisFreeMan  
       2022-03-09 16:54:20 +08:00 via iPhone   ❤️ 2
    编程:从 v2exer 指引到放弃
    ospider
        74
    ospider  
       2022-03-09 17:53:21 +08:00
    看到大家都在劝学 Swift 我就放心了,没必要和钱过不去。学 Swift 推荐看斯坦福的公开课,不过不知道有没有中文字幕。
    codespots
        75
    codespots  
       2022-03-09 18:57:46 +08:00
    我前年也买了那本书,也买了 kotlin 和 flutter 的课程,到现在也没学,哈哈哈哈,不过如果想做独立开发者,建议到我们 w2solo 论坛与更多专业独立开发者交流
    VicZhang666
        76
    VicZhang666  
    OP
       2022-03-09 22:34:05 +08:00
    @codespots #捂脸,我在京东买了纸质版后,发现今年已经能在微信读书看了···然后纸质版就没动过
    VicZhang666
        77
    VicZhang666  
    OP
       2022-03-09 22:35:06 +08:00
    @ospider 现在比较限制我学 Swift 的因素是我手头的 Macbook Air 是 14 年的,太慢了···我想等等今年新的 mba···
    VicZhang666
        78
    VicZhang666  
    OP
       2022-03-09 22:36:02 +08:00
    @wffnone 感谢您的回复,我稍后整理一下经过各位建议后的想法~
    lqzhgood
        79
    lqzhgood  
       2022-03-11 10:00:49 +08:00
    IOS 开发者年费 99 刀 对于用爱发电的独立开发者来说也是不小的费用吧
    Yasuo666
        80
    Yasuo666  
       2022-03-11 14:53:39 +08:00
    0 开始建议学学 swift ,oc 等其他语言,远离 Android
    chrisia
        81
    chrisia  
       2022-03-14 13:29:35 +08:00
    kotlin 对新手挺不友好的,难度较大,可以从简单的 java 学起。不过 kotlin 蕴含很多设计模式和编程思想,如果之前没搞过编程的话挺吃力的
    nnegier
        82
    nnegier  
       2022-03-31 23:49:15 +08:00
    我觉得还是直接从 kotlin 入手好些,不然 java 那空指针报得你怀疑人生
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 23:34 · PVG 07:34 · LAX 15:34 · JFK 18:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.