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

文科生学习编程语言选择 javascript 还是 typescript

  •  
  •   tangshuier · 64 天前 · 4302 次点击
    这是一个创建于 64 天前的主题,其中的信息可能已经有所发展或是发生改变。

    还是我,之前的那个文科生又来问问题了😂

    继先前“文科生如何学习 python”问题之后,我从需求出发,结合 AI 把 python 用的很好。目前针对我自己的课程,做了一些分析模型的 python 代码实现。

    之前这篇推荐编程语言的帖子中,有朋友们提到了 javascript ,结合 AI 我大致了解了一下基本语法,我同时也查到了一些应用场景,其中前端开发是我接下来考虑的内容(目前在尝试做一个 AI 电子政务的应用,需要学习应用开发框架)。

    在搜索资料的过程中,我同时也找到了 typescript 这个语言,这个语言是 javascript 的超集。结合开发框架的选择,我有几个问题:

    1. 目前主流面向 AI 的应用开发框架有什么,我需要学习什么编程语言?
    2. typescript 与 javascript 之间,哪一个对于以后寻找工作比较友好?不考虑开发类工作(目前个人认知是开发类工作对于专业背景限制比较死,如果有错欢迎纠正)
    3. python 、javascript 或 typescript 在开发过程中如何进行配合(我也不清楚怎么表述这个问题,大概意思是掌握不同编程语言的人凑在一起怎么进行协调开发一个产品)?

    感谢各位 v 友。

    第 1 条附言  ·  64 天前

    补充纠结学习js还是ts的原因:

    我寻找到的js教程,很多都是新老标准混合在一起讲解,我目前很难从企业角度去了解开发使用的是新标准还是老标准,我是否需要同时掌握新老标准的代码。ts就我目前找到的资料不存在这种问题。

    第 2 条附言  ·  64 天前

    补充:

    js的教程问题解决了,这个教程使用的标准是es2025

    第 3 条附言  ·  63 天前

    勘误:教程使用的标准是ECMA-262

    50 条回复    2024-09-20 10:09:25 +08:00
    adoal
        1
    adoal  
       64 天前
    TS 的定位是为大型项目的工程化开发而创造出来的,JS 的超集。所以以你的情况学 TS 会增加明显的学习负担而没有明显的收益。
    至于不同语言之间的配合,所谓的不同语言有两种情况,一是在同一个 scope ,比如都是后端的业务逻辑,那么一般在一个项目里会统一,比如约好都用 Java 或者都用 Python 或者都用 JS/TS ,或者再宽限一些,都用 JVM 的语言,比如 Java 、Scala 、Kotlin 都用,但是划分好不同人开发的模块边界;另一种情况是在不同的 scope ,比如前端用 JS/TS (目前的情况,前端基本上就是 JS 及其衍生语言,别的语言从项目运作角度不现实),后端用 Java ,这样其实是没关系的,因为前后端的代码并不直接互操作,而是通过 HTTP 协议传输数据。另外,如果一个项目的后端涉及不同语言的强势生态,或者要跟存量系统的代码对接,那其实可以解耦成第二种情况,并不写在一个大程序里,而是通过网络调用(说法不是很严谨,大致可以这么理解)对方接口来传数据的方式来集成,那其实跟是不是一种语言就没关系了。
    shulinbao
        2
    shulinbao  
       64 天前 via iPhone
    可能我比较老土,但我还是觉得除非你想随便玩玩,否则还是从 c 这种开始学算法数据结构了解基本常识,再 java 、js 这些比较靠谱。举个例子,直接学 python 和 js 有点像你学哲学直接抱着道德经去念,不排除能有些“心得”,但没有哲学史基础大多数情况下大概率只能到乱扯一通的程度
    2020583117
        3
    2020583117  
       64 天前   ❤️ 2
    @shulinbao 你这是最系统的路,但是现在大部分人没那个时间去慢慢学了,都是 Java 或者 js 一学,框架一学,咔咔就上班了
    juzisang
        4
    juzisang  
       64 天前   ❤️ 1
    按目前的前端生态,基本绕不过 TypeScript 了,制定 JavaScript 语言范式的组织 TC39 ,出的语法范式都在用 TypeScript 编写。我的建议是都学,也不难,先学 js ,然后看看 ts 的语法基本就可以了。
    DOLLOR
        5
    DOLLOR  
       64 天前
    平时做工程做项目,并不需要搞什么复杂的类型体操,TS 就是高级一点的 JS 注释而已,没必要为此犹豫。
    shulinbao
        6
    shulinbao  
       64 天前 via iPhone
    @2020583117 按照这几年 ai 发展的情况,这样搞很容易就被 ai 给替代了。产品经理说我自己学点 java/js 抱着 ai 比你们还好用😂(当然现在的产品经理能否有这样的思维还是要打个问号的,说不定产品经理先没了)
    maxwellz
        7
    maxwellz  
       64 天前
    啊?难道你写 typescript ,就可以不用学 javascript 了吗,建议把 javascript 学了,再学 typescript ,先学会走再学跑吧
    shintendo
        8
    shintendo  
       64 天前
    我不理解,这也不是二选一的关系啊,这世上有人会 TypeScript 而不会 JavaScript 的吗😥
    BeautifulSoap
        9
    BeautifulSoap  
       64 天前   ❤️ 2
    那还用问?那肯定是先学 javascript 再学 typescript 。不用抬杠,各位推崇的 typescript 官方文档就明确推荐你要学 ts 先学 js 了

    https://www.typescriptlang.org/docs/handbook/intro.html

    > If you are coming to TypeScript without a JavaScript background, with the intention of TypeScript being your first language, we recommend you first start reading the documentation on either the Microsoft Learn JavaScript tutorial or read JavaScript at the Mozilla Web Docs.

    > 如果你没有 JavaScript 背景,计划将 TypeScript 作为你的第一门编程语言,我们建议你先阅读 Microsoft Learn 或 Mozilla Web Docs 上的 JavaScript 教程。
    importmeta
        10
    importmeta  
       64 天前
    对新手来说,用 ts 就是标上类型,一点都不费脑子
    crocoBaby
        11
    crocoBaby  
       64 天前
    TS 和 JS 是一体的啊,怎么分开学习?
    bthulu
        12
    bthulu  
       64 天前
    文科生当然是 js 了, 怎么写都能跑起来. ts 就太多规矩了, 不适合文科生.
    JamesFisher
        13
    JamesFisher  
       64 天前
    1. 非 AI 应用开发者,不清楚
    2. JavaScript
    3. 比如开发一个前后端分离的 Web 应用( eg. 博客),用 Python 写一个 Web server ,提供数据服务; JavaScript 在浏览器端负责构建视图,两者通过 HTTP 通信
    tangshuier
        14
    tangshuier  
    OP
       64 天前
    @shintendo 是这样,我在寻找开发框架就找到了 react 、vue.js 、next.js 和 nuxt.js 等等开发框架。我担心 js 和 ts 对于开发框架的兼容性问题
    YVAN7123
        15
    YVAN7123  
       64 天前
    你直接问 AI 呗
    henix
        16
    henix  
       64 天前
    TS 相对于 js 多加了很多东西,为的是大型工程中多人协作更可维护,js 更基础,所以先学 js 。
    要开发一个网站不只需要学 js ,还有 HTML / CSS 这些,可以看看 https://csdiy.wiki/ 的 Web 开发 部分

    协作就是双方约定好一个接口 / 规范 / 协议,规定了数据如何传输,以及这些数据的含义。类比的话就是现在的 USB / 蓝牙之类的接口,如果主机和设备都支持了这些接口就可以通信。
    Web 开发中的前后端,底层是通过网络协议通信,具体来讲,最底层是 TCP ,然后是 HTTP ,然后是应用自己约定的协议。
    shintendo
        17
    shintendo  
       64 天前
    @tangshuier 我这么说吧,你这里提到的所有东西“typescript 、react 、vue.js 、next.js 、nuxt.js”都有一个共同的前提,就是你会 javascript 。这里不存在任何选择题。
    shintendo
        18
    shintendo  
       64 天前
    正确的问题应该是:“学完 javascript 之后要不要学 typescript”,“react 和 vue.js 学哪个”(这个不要发帖问),“学完 react 要不要学 nextjs”,“学完 vue.js 要不要学 nuxtjs”
    z1829909
        19
    z1829909  
       64 天前 via Android
    我觉得不要纠结这些东西,你是学习又不是给商业项目技术选型。直接列出主流语言,扔骰子到哪个就选哪个。选个技术纠结这么多,一步一磕头什么时候能开始写。
    我见过学编程没基础,看了教程直接用 word 里的 vba 写的,鼠标打开 word ,创建一个宏,然后开始编程。
    chenpingan
        20
    chenpingan  
       64 天前
    @tangshuier #14 react/vue 是基于 js 开发的啊,前端的核心就是 js ,你不会 js 做前端,谁给你的这个思路,学了 ts 可以不用学 js ,建议你不要做选择了,只要你想做前端,首先就得学 js ,其他都不用考虑
    tangshuier
        21
    tangshuier  
    OP
       64 天前
    @chenpingan 关于 js 教程,我找到的很多教程是老标准和新标准一起讲(例如 var 关键字和 let 关键字)
    zdw189803631
        22
    zdw189803631  
       64 天前
    一个东西,先学 js 再说
    Lemon2ee
        23
    Lemon2ee  
       64 天前
    两个一起,普通开发的话说实话没什么不同,但 ts 确实会比 js 繁琐一些(但对于我来说会好用一些,利于 debug ),说实话,你这些问题都可以暂且不问,先找个想法,一切为了完成这个想法而学。
    knva
        24
    knva  
       64 天前
    文科生用 c++
    shenjinpeng
        25
    shenjinpeng  
       64 天前
    学完弱类型语言 一下子接触强类型可能不适应, 建议先学 js 吧
    chenpingan
        26
    chenpingan  
       64 天前
    @tangshuier #21 不了解你的代码水平如何,但是 js 是必须要完整学一遍的,第一遍如果实在不理解可以先记住(类似 var 和 let 的区别,可能你只有在真实的业务场景下碰到才能理解),总之,前端绕不开 js 的
    ZGame
        27
    ZGame  
       64 天前
    @tangshuier #21 直接学 ts 其实你这个就类似汽车手动挡和自动挡。 ts 等于手动挡,学了 js 自动会了。
    Sketch
        28
    Sketch  
       63 天前 via iPhone
    从 OP 的发言中感觉 OP 对于语言,框架之类的认识有些混淆。相比起纠结选择哪一门语言,感觉 OP 更需要的是直接、简单的 Web 编程的学习,我建议试试全栈公开课[https://fullstackopen.com/zh]把 Web 编程相关的知识都过一遍先。
    leo72638
        29
    leo72638  
       63 天前
    啊这,你学 TS 不还得会 JS 吗?
    lisongeee
        30
    lisongeee  
       63 天前
    牛逼,es2025 都没正式发布都先学上了,https://tc39.es/ecma262/
    Hzz123
        31
    Hzz123  
       63 天前   ❤️ 1
    JS 是最最最基础的啊,你肯定要先学 JS 再学 TS
    joydragon
        32
    joydragon  
       63 天前
    设置目标 -> 问 AI
    mizuki9
        33
    mizuki9  
       63 天前
    我感觉 ts 教程都会默认你已经熟悉了 js ,所有应该是先学了 js ,再学 ts 。你说的 现代 JavaScript 教程 我觉得是可以的,在写 js 代码写到一半不清楚的时候,可以查看 mdn
    tangshuier
        34
    tangshuier  
    OP
       63 天前
    @joydragon 我问过 ai“既然 ts 是 js 的超集,那么为什么学会 ts 并不意味着同时学会了 js”,它一直在强调 ts 与 js 不一样
    smallboy19991231
        35
    smallboy19991231  
       63 天前
    @tangshuier 其实就跟 C 语言和 C++一样,有人喜欢学简单的 C,觉得很基础,但是也有人觉得学了 C++就相当于把 C 也学会了,因为 C++就是在 C 的基础上添加了很多语法,但是有很多很多方面都不兼容,用 List 列出来起码 10 几个不同之处.
    这样看来 JS 和 TS 是差不多的吧
    dif
        36
    dif  
       63 天前
    个人体验,TS 和 JS 一起学习。了解区别。
    smallboy19991231
        37
    smallboy19991231  
       63 天前
    @tangshuier 建议直接选择你认为最系统最好的 JS/TS 的教程,选定一个语言,然后熟练之后再看两种语言的所有区别的 List,来区分开来,就可以了
    zhangk23
        38
    zhangk23  
       63 天前
    1. 先学 py3 语法 再去 github 偷项目
    2. js 和 ts 一体,会一个看看文档就会另一个
    3. flask + vue3 + sql + vps
    chihiro2014
        39
    chihiro2014  
       63 天前
    学 angular
    8620
        40
    8620  
       63 天前
    文科生不适合学 AI 。不管是不是深度学习,人工智能的基础都是数学、逻辑、以及数学和逻辑的结合。如果想要学习深度学习,那更是数学占大头的地方,还要加上生物学和物理的一些理论……如果确实想要学习 AI ,建议先修完高数,然后可以试试跟着教程学 Python 。
    jry
        41
    jry  
       63 天前
    我选 AnyScript
    tangshuier
        42
    tangshuier  
    OP
       63 天前
    @8620 这个我的自我认知还是清晰的,我只是想实现一个 AI 应用(应该叫 AI Agents ),不是纯人工智能,因此不涉及到深度学习这种从头开始预训练微调 AI
    tangshuier
        43
    tangshuier  
    OP
       63 天前
    @jry 指 typescript debug 找不到错误因此把所有数据类型都改成 Any 是吧😂
    windliang
        44
    windliang  
       63 天前
    之前写的一个零基础入门前端的课,感兴趣的话可以看看,https://xiaobot.net/p/fe?refer=1c9e2277-4405-4c12-93a9-5e982f62c9c6 ,最近正好在更新 ai 小程序
    iv8d
        45
    iv8d  
       63 天前
    安安心心的学 js ,其他都是纸老虎
    KevinDo2
        46
    KevinDo2  
       63 天前
    学习 js 即可。
    Geon97
        47
    Geon97  
       63 天前
    和文科理科没关系,先搞清楚 JavaScript 和 typescript 的区别和关系吧,搞清楚就知道应该学什么了
    penll
        48
    penll  
       63 天前
    如果学习能力可以的话,还是建议直接上 typescript ,可以让你更加全面了解面向对象编程。说什么只是 js 注释,那是简单的理解。重要的是编程思想
    Ackvincent
        49
    Ackvincent  
       63 天前
    随便哪个 能入门坚持下来都行。
    siweipancc
        50
    siweipancc  
       62 天前 via iPhone
    官网都让你先学 js 了,不然编译下来的 js 代码你看都看不懂更别提一堆配置跟 bug
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5043 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 09:36 · PVG 17:36 · LAX 01:36 · JFK 04:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.