V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
Famio
V2EX  ›  程序员

纠结于语言的选择,犹豫在编程路口,求打醒

  •  
  •   Famio · 2016-10-04 15:47:38 +08:00 · 8236 次点击
    这是一个创建于 3001 天前的主题,其中的信息可能已经有所发展或是发生改变。
    学过 C#,进度大概在学完面向对象那一层面,自己做过 5-6 个 winform 软件,都是给公司内部用的一些提升工作效率的小玩意儿。看到又有很多人喷 C#低端。。。
    想学 android ,得先学 java 。但是看到网上各种语言阵营撕逼说 java 效率低,好吧,低不低不知道,又觉得现在学 java 也只能用在 android 上了。。。好吧,别和我说用 C#开发 android 的 Xamarin ,这玩意儿先普及起来再说吧。
    想学 web , html+css 已经没问题,就差 js 和 php 了……
    真的想静下心来好好学精一门语言,实在不知道取舍,对这个圈子也不是很了解,有没有前辈指引一下的。
    第 1 条附言  ·  2016-10-04 18:08:58 +08:00
    不得不说这个社区是真的不错,很多人都是很认真的在指导我,没有互相排挤和鄙视的氛围,我很喜欢。
    首先感谢 2L , 6L , 7L , 12L , 16L , 20L 。看你们说了这么多,我好像有那么点头绪,我现在还是业余玩家,但是希望有一天能转职为职业玩家,同时也是奔着这个目标去,主要是手头就学了 C/S 的其中一门语言,又看到满大街的 php 和 android 移动端开发,就又有点想转 B/S 了。不过!现在看来!我决定专心学 html+css+js+php 了!至于 C#,学到手里的也不会丢,哪怕有一天又有什么动力来推动我打开 vs ,我就会继续使用它!
    非常感谢各位!!!
    70 条回复    2016-10-07 20:28:29 +08:00
    mud
        1
    mud  
       2016-10-04 16:01:10 +08:00 via iPhone
    不要纠结语言
    just do it
    onice
        2
    onice  
       2016-10-04 16:12:30 +08:00   ❤️ 9
    算不上前辈。仅发表下个人拙见:
    每种语言都有它擅长干的事情。例如 Java 不适合做图形程序,因为 swing 太慢,但 C#则可以。例如 PHP 大家都用来做 web , C++大家都在一些对性能要求较高的场景。 python 则多用来写一些自动化的工具。
    所以,语言之间不存在好坏。只存在它们的特长不同。
    我当初选择语言的时候,就思考一个问题就行了。不要去思考具体的语言,你据只思考一下做的东西是什么?
    如果你想做系统驱动开发,杀毒软件引擎啥的,首选肯定是 c/c++。
    如果你想做 web , java 和 php 都可以。
    总之,不要想语言本身。想你要做的东西是什么,然后再去选择语言就行了。
    moyang
        3
    moyang  
       2016-10-04 16:13:59 +08:00 via Android   ❤️ 1
    别犹豫买什么车,先考驾照,小伙
    xcodebuild
        4
    xcodebuild  
       2016-10-04 16:27:13 +08:00 via Android
    是你决定要干什么就学什么,而不是纠结学哪个语言
    misaka19000
        5
    misaka19000  
       2016-10-04 16:33:30 +08:00
    关键是看你要做什么,不过一般来说不管做什么,把 C 语言学好都没错的
    SuperMild
        6
    SuperMild  
       2016-10-04 16:40:09 +08:00 via iPhone
    这年头业余编程爱好者想做些小东西玩玩的话,强烈推荐 JavaScript ,相对比较简单,轮子也多,开源程序多。生命力强:做图有 D3 ,做桌面有跨平台的 eletron ,做网站更是唯一选择,后端也有 nodejs 。
    techmoe
        7
    techmoe  
       2016-10-04 16:44:15 +08:00 via Android
    二楼总结的很好
    我最近做的一个项目架构就是 php 来做 web 端 py 用来写爬虫(自动化工作) 然后他们俩共用一个数据库,目前来讲效果还算可以
    不用问我为什么不用 py 的 web 框架代替 php 的工作。。我对那东西不熟
    SlipStupig
        8
    SlipStupig  
       2016-10-04 16:45:38 +08:00
    小马过河
    DoraJDJ
        9
    DoraJDJ  
       2016-10-04 16:47:44 +08:00 via Android
    语言只是个工具。
    看你的个人习惯和方向决定。
    zachlhb
        10
    zachlhb  
       2016-10-04 16:49:29 +08:00 via Android
    要看你喜欢开发哪个方向,我也是学的 c#,个人喜欢开发 web 项目,所以转 PHP 了
    got
        11
    got  
       2016-10-04 16:56:02 +08:00
    每种都学一下, 基础语法, 做点小玩具
    Smilecc
        12
    Smilecc  
       2016-10-04 17:00:04 +08:00
    C#低端,你告诉我什么高端
    一些人确实可能看不起 WinForm 但是你可以去学 WPF 啊,这是 Windows 平台下最好的 GUI 开发手段之一了
    WebForm 也是一样,你可以去学 ASP.NET MVC 嘛
    现在有了.Net Core 更是可以三大平台愉快玩耍 & Docker 各种耍
    我只是为 C#正个名,不过也是 @moyang 说的那样,学什么都不重要,入门是第一位的
    venson
        13
    venson  
       2016-10-04 17:15:57 +08:00
    新语言不错比较 Python 、 ruby
    murmur
        14
    murmur  
       2016-10-04 17:22:16 +08:00
    学 java 吧 java java 添砖加瓦 说明 java 才是大型架构的基石
    kran
        15
    kran  
       2016-10-04 17:25:02 +08:00 via Android
    Java 绕不过去
    真正的程序员用 c++
    viator42
        16
    viator42  
       2016-10-04 17:37:48 +08:00 via Android
    Java 和 Android 除了语法以外已经不是一回事了。 Java 语言除了写 Android 以外 JavaEE 也是很大一块。至于效率高不高还不是初学要考虑的问题。会 C#的话可以考虑学 cocos2d 写游戏
    cuebyte
        17
    cuebyte  
       2016-10-04 17:37:55 +08:00
    编程语言只是程序员和计算机之间的接口而已,重要的是你想做出什么。有了目标,路就会自然显现出来了。
    tscat
        18
    tscat  
       2016-10-04 17:40:04 +08:00 via iPhone
    黑 JAVA 效率的。。
    zwpaper
        19
    zwpaper  
       2016-10-04 17:43:11 +08:00 via iPhone
    语言只是工具,培训的时候,教了半天, 3 天就让我们出一个项目。 Golang
    q397064399
        20
    q397064399  
       2016-10-04 17:49:02 +08:00
    都在扯淡,楼主你先想清楚你究竟要干嘛,
    方向是 web 安卓 winform
    是作为 业余玩家还是职业玩家,
    职业玩家建议跟市场走,最重要还是打好基础
    业余玩家随意挑选

    web 大架构方向是 Java 能伸能缩,轻量级架构 重量级架构都有(老牌 web 后端语言,架构多,方案成熟,开源件多)
    小架构方向是 PHP (一般是小网站,语言不成熟( PHP 最早是不支持面向对象的),没有大公司支撑)

    我从初中开始码代码,经历过
    asp php delphi vc++ c++builder Java 这些技术有些已经消亡了,有些还在蓬勃的发展,
    例如 Java 虽然被黑无数遍,但是 Java 依旧生龙活虎,事实上没人黑的语言 基本上没人用,有人用才会有人黑
    黑的人多, C++这些年被吐槽的少,很大原因就是跟不上快速应用开发的时代,本来搞应用开发需要一把杀鸡刀
    但是 C++给了你瑞士军刀,杀鸡宰牛上战场 上天下地无所不能,加上没有大厂商的支持, C++事实上已经没落了,
    只有在很少一部分高性能领域有需求的地方使用,而且大多限制了 C++的很多语法糖特性,并不是完整的 C++

    另外 delphi 以及 borland 的 VCL 不过这技术的核心创始人去了微软了搞了 C# 也是我们程序员的祖师爷之一



    最后最重要的还是基础,也就是从操作系统上屏蔽了硬件复杂性之后 抽象给程序员计算机模型,你了解了这些基础,其它的都是万变不离其宗,各个语言也大多就是语法糖特性上的区别,其本质没有什么区别
    iyaozhen
        21
    iyaozhen  
       2016-10-04 17:54:34 +08:00 via Android
    现在学 java 也只能用在 android 上了——万金油 Java 表示哭晕在厕所。目前 Java 在企业级这一块无人出其右。

    想学 web , html+css 已经没问题,就差 js 和 php ——还是静下心来好好学好一门吧。

    然后手工点赞 2 楼
    lechain
        22
    lechain  
       2016-10-04 17:59:04 +08:00
    不管白猫黑猫,能捉到老鼠的才是好猫。所以没必要纠结语言了吧
    CallMeHoney
        23
    CallMeHoney  
       2016-10-04 18:02:07 +08:00
    python 可不是新语言啊。。
    yjxjn
        24
    yjxjn  
       2016-10-04 18:24:09 +08:00
    对于楼主的纠结,我三年前就有这样的感概。
    当时觉得 JAVA 好啊,后来发现 iOS 和安卓火啊。。结果到头来什么都精通。

    我刚进 IBM 接触到 COBOL 的时候,你知道么?我十分拒绝学习这种语言,因为太不智能了,连自动补全都没有,没办法,有些逻辑处理的常用语句,我就直接开始 copy 了。。。。
    给你说个小故事, cobol 从 1960 年发明之后,结果在 2000 年爆发了千年虫事件(就是 COBOL 语法格式造成的,我师父当时还在北京的 site ,开发过程中就遇见了这个问题),当时很多人认为 COBOL 不需要了,太渣了(包括 IBM 员工)。。。放到 JAVA 上面咋可能出现这种问题呢。。。 JAVA 才是王道,但是 16 年后的今天,你看 cobol 依然活的很好,主要原因是数据处理方面真的很稳定很稳定。。。。 IBM 的 Z 主机号称 0 宕机。

    结果干了 3 年 Cobol 之后发现,语言只是一种工具,看你想要达到一种什么样的效果。
    就比如银行,证券,保险,航空等大型企业,他们后台所采用的服务器大多都是 IBM 大型机,开发语言是 JCL 和 Cobol ,而对于一些非核心的业务,比如消息推送,队列,会采用 MQ 啊, JAVA 等,前端呢,基本就是 JAVA WEB 了,所以各司其职很重要。
    yjxjn
        25
    yjxjn  
       2016-10-04 18:27:39 +08:00
    对了,我现在也在学习前端,踏踏实实很重要,我很早就幻想过这么一个场景, 30 多岁的我去一家公司面试,可能他发现,我靠你都 30 岁了,才这么点经验(甚至没有经验),管你屁事啊。。。。转行不行啊。。。
    所以我觉得自己喜欢和感兴趣会更好,而不是为了钱而去换工作。
    toloric
        26
    toloric  
       2016-10-04 18:38:52 +08:00
    不要耳朵软,找一条方向就认准不变地走下去。

    C#、 Java ,哪一个都很有前途。

    PHP 也可以。

    JS 的话 ECMAScript 2015 开始给力了,当然其他 compiled to js 的语言也不错。

    但是 HTML + CSS 不是编程语言, JS 和 PHP 也没有跟 Web 挂钩。

    语言是语言,平台是平台。

    JS 可以写 DOM ( HTML + CSS ) ,可以写 Canvas / WebGL , 可以写 native (因为 Android / iOS 提供了 JS API ),还可以写 Node (服务器端)。

    PHP 也就不一定写 Server-side render Web ,也可以只写 Data server 。
    DaraW
        27
    DaraW  
       2016-10-04 18:49:31 +08:00
    一楼结贴。
    楼主可以晒色子,主流语言和平台晒到哪个先学哪个,反正其他的慢慢来都要学的,触类旁通很快。
    等楼主上手了几门语言尝试了几个平台的开发再回来看这个帖子估计会有不少感慨的。
    jasontse
        28
    jasontse  
       2016-10-04 19:04:13 +08:00 via iPad
    C# 低端吗? Windows Desktop 开发它是很好的选择啊。
    crab
        29
    crab  
       2016-10-04 19:06:27 +08:00
    现在也就学汇编不会被说了吧。😲
    kmyzzy
        30
    kmyzzy  
       2016-10-04 19:13:51 +08:00 via Android
    不用纠结学哪个语语言,用到哪个学哪个。对于普通程序员来说,多学几门语言很有必要,不要只盯着一两个。
    C0dEr
        31
    C0dEr  
       2016-10-04 19:21:57 +08:00
    个人学习路线 C -> C++ -> C# -> Java -> JS -> Python ,工作主要是用 Java , C# , JS 。
    最后发现写 JS 最开心,写 C#最爽
    zhidian
        32
    zhidian  
       2016-10-04 20:48:39 +08:00
    我想学 typescript 。
    xiaq
        33
    xiaq  
       2016-10-04 20:54:35 +08:00   ❤️ 1
    我上周去超市买面,发现面这种东西居然也有好多种,纠结了很久各种面的利弊优劣。

    我在研究了半天后一想,我都买不就行了。
    xiaoc19
        34
    xiaoc19  
       2016-10-04 21:36:39 +08:00
    犹豫的时间 已经差不多能入门一门语言了
    xiaoc19
        35
    xiaoc19  
       2016-10-04 21:38:08 +08:00
    @jasontse 觉得 C#低端的应该也会认为开发 Windows Desktop 应用也低端吧 😄
    xcv58
        36
    xcv58  
       2016-10-04 21:40:18 +08:00 via iPhone
    等工作了就不纠结了。公司用什么,我就会了什么 😭
    miketeam
        37
    miketeam  
       2016-10-04 21:54:24 +08:00 via iPhone
    swift 新语言,有苹果支持,可以考虑学的。软件多多少少都要测试一下吧, python 要学的,每个程序员不一定有自己的网站,但是有个人网站的程序员一般来说比较牛, js 不可少啊。如果不做后端开发可以图个懒,就用 python web 好了。剩下的看工作要求了,游戏开发 c++少不了,测试还是可以用 python 的。安卓就学 java , iOS 就 oc ,
    kran
        38
    kran  
       2016-10-04 22:05:00 +08:00 via Android   ❤️ 1
    http://m.blog.csdn.net/article/details?id=6329623
    刚看了一篇文章,可能有点跑题,一段节选:

    拿我自己的例子来说,我那时拒绝了计算机专业课老师主攻 Visual Basic 的建议,果断地选择 C 语言作为自己的主攻方向,应该说是基于“抬头看路”所得出的正确决策。而之后过早的从 C 过渡到 C++,则应该说犯了一个错误。 C 语言的小巧、明快、圆满和强大,迄今无出其右。由于其语言简捷,没什么可学的,学习者的旺盛精力将很快“被迫”转向真正有价值的东西——算法、数据结构、编译、图形、系统编程,等等。我后来认识的很多高手,就是因为早走了几步,“没听说 C++”,就在 C 上下了苦功夫,“埋头赶路”,反而“因祸得福”练成了很强的动手能力,而能有一方成就。而我过早进入 C++之后,在 C++的语言里打了几年的滚,反而对于算法、编译、汇编语言等基本领域投入不够,基础没有打牢,离开学校之后不得已花了很多倍的精力来弥补。现在回想起来,这就是专注不够的教训。
    czmecho
        39
    czmecho  
       2016-10-04 22:28:10 +08:00 via Android
    @yjxjn Java 是前端语言?
    helloSwift
        40
    helloSwift  
       2016-10-04 22:55:11 +08:00 via iPhone
    我也有同样的困惑_(:3 」∠)_
    不知道如何选择
    yjxjn
        41
    yjxjn  
       2016-10-04 22:58:15 +08:00
    @czmecho 发现打错了。。。
    magicdawn
        42
    magicdawn  
       2016-10-04 23:08:46 +08:00
    js 大法好...

    BTW 语言学了不用会忘的...
    记得以前啃 CLR via C# / .NET 规范啊 / C# 中的 XML/ LINQ / 蒋金楠的 ASP.NET MVC4 的书
    然后后来没用到......不如学学 JVM 活的实在......
    CFO
        43
    CFO  
       2016-10-05 02:27:33 +08:00 via Android
    其他语言我不评论 但是 Java 和 Android 的关系真不是你想的那样
    msg7086
        44
    msg7086  
       2016-10-05 02:30:54 +08:00
    我跟你说个笑话。
    「一个人只需要学精通一门语言。」

    这就和一个司机只需要学精通如何驾驶金杯面包车一样感觉。
    RqPS6rhmP3Nyn3Tm
        45
    RqPS6rhmP3Nyn3Tm  
       2016-10-05 02:49:37 +08:00 via iPhone
    C# 跨平台好啊,全平台兼容。
    多说一句,我们教授一直提醒我们,语言是工具,重要的是编程的感觉和“步法”。精通了这些之后,什么语言都会得心应手
    pyufftj
        46
    pyufftj  
       2016-10-05 04:48:53 +08:00
    语言没什么高低优越感,就连易语言都可以写外挂卖钱呢。它只是一门工具,你在工作中要用到它,你就可以学习它。
    wuxinli1025
        47
    wuxinli1025  
       2016-10-05 05:22:05 +08:00
    C++
    gowk
        48
    gowk  
       2016-10-05 06:50:51 +08:00 via Android
    其实吧,如果想做真正的程序员,我不建议从 php 学起。。。
    ebony0319
        49
    ebony0319  
       2016-10-05 07:34:58 +08:00 via Android
    这些年我发现大家一直黑一样东西无外乎几种情况。
    第一种就是关注他的人太多了对他有更高的要求,但是短时间内得不到有一种恨铁不成钢的感觉。这种情况类似于情侣吵架说反话。
    第二种是它太强大了或者会变得很强大。这种心态类似于希望对手在比赛时候出一些状况,类似于摔倒什么的。
    这么多年过去了,好像那些一直被黑的还在。还过得很好。
    linux40
        50
    linux40  
       2016-10-05 09:32:26 +08:00 via Android
    java 可以用在任何有 jvm 或别的能编译或解释 java 的平台上面啊。。。
    阿里后台,不就 java 写的。
    t0byxdd
        51
    t0byxdd  
       2016-10-05 09:48:38 +08:00 via Android
    这么多年了 被黑狠的都还好好的 当初吹上天的却没几个人还用了
    qweweretrt515
        52
    qweweretrt515  
       2016-10-05 10:33:52 +08:00
    你必须学最好的语言 python
    redvoilin
        53
    redvoilin  
       2016-10-05 11:49:34 +08:00
    用 ruby 吧,才能获得编程的快乐
    lzhd24
        54
    lzhd24  
       2016-10-05 13:19:01 +08:00 via Android
    我喜欢 JAVA 的优雅,喜欢 Python 的简洁。

    精力有限,打算专攻这两门语言:)
    lcc4376
        55
    lcc4376  
       2016-10-05 13:32:32 +08:00
    我是專注在 Python/Javascript 往全棧邁進
    indooorsman
        56
    indooorsman  
       2016-10-05 13:57:14 +08:00 via Android
    js → nodejs → android → java → js 个人学习路线,仅供参考 (〜 ̄▽ ̄)〜
    Famio
        57
    Famio  
    OP
       2016-10-05 14:05:49 +08:00
    @gowk 为什么会这么说?是 php 对新手不友好吗,还是因为别的。
    sutra
        58
    sutra  
       2016-10-05 14:16:41 +08:00
    能满足业务需求就行,比如我假期用 awk 语言写了一个把 gfwlist 转换成 dnsmasq 配置的脚本,才不到 100 行,在我写之前我也用过几个开源的 Python 版本的,但是它们都没有把正则表达式展开,导致转换结果中没有 google.com.hk 等,于是我就用 awk 语言重写了一个,选择这个语言的原因是,这个业务和 awk 语言很搭配,可以说 awk 不是图灵完备的,很多事情实现不了,要借助其它语言才能实现,但是对于这个业务,一行一行地处理文本,根据模式进行不同的处理逻辑,足够了,并且这个语言够古老,*nix 基本都自带,不需要安装 Python 或者 Ruby 语言运行环境。

    所以你还在纠结学什么语言?
    RitzoneX
        59
    RitzoneX  
       2016-10-05 15:29:26 +08:00
    没有最好的语言,每种语言都有特定的领域
    nladuo
        60
    nladuo  
       2016-10-05 16:11:49 +08:00 via iPhone
    感觉还是要想清楚要做什么,然后再考虑学什么比较好。

    拿自己举个例子。 c :做单片机; c#:做上位机; java :做安卓; php :做 web ; objective-c 、 swift :写 iOS ; golang :写爬虫、做 web 服务; c++:图像处理; python :机器学习。

    养成一定编程经验的话,学新的语言应该很快的。
    noli
        61
    noli  
       2016-10-05 16:18:53 +08:00 via iPhone
    你们的讨论都很唯心,什么行业现状,火不火。就没有人介绍一下怎么分析一门语言好在哪里,坏在哪里,如何影响效率这些干货吗?
    deadEgg
        62
    deadEgg  
       2016-10-05 17:09:30 +08:00
    都学呗。。。
    反正有大把时光
    likai
        63
    likai  
       2016-10-05 17:55:30 +08:00
    @nladuo 活捉全栈一枚
    baozijun
        64
    baozijun  
       2016-10-05 18:01:24 +08:00
    世界上只有 2 种语言,用的多的和没人用的,选用的人多的就好
    lianxiaoyi
        65
    lianxiaoyi  
       2016-10-05 18:20:53 +08:00 via Android
    作为一个 phper 我也经历过 c#和 java !我也做过 winform ,开发桌面级的,c#确实很 6!我在 12 年因为 java 找不到工作时,就从 java 转到 php 时(因为 java 那时候太泛滥了,竞争压力大),感觉特别爽,变量类型随便用,数组超级强大,而且改完代码立刻可以运行!但是不可否认的是,php 的运行效率还是没 java 的高!各种语言都有优缺点!如果单做 web ,我个人建议从 php 入手,后期你有别的需要使用环境,学起来也没那么困难,就像我有时也写 shell,写 python,写 lua ,但是 js 必不可少!
    fyibmsd
        66
    fyibmsd  
       2016-10-06 09:34:44 +08:00
    学 js 没学 js 的,最终都要学 js
    oglop
        67
    oglop  
       2016-10-06 10:35:39 +08:00 via Android
    @sutra 求地址
    sutra
        68
    sutra  
       2016-10-06 10:39:34 +08:00
    fuxpro
        69
    fuxpro  
       2016-10-07 14:03:08 +08:00
    我完全不明白你的想法。。。。。。。。。。。。。。。。
    kideny
        70
    kideny  
       2016-10-07 20:28:29 +08:00
    任何一门语言学精通了,吃喝拉撒睡都不是问题。
    不管学什么语言,动态语言+静态语言的高低搭配是必需的。
    PHP 底层是 C ,搞 PHP 的还得学 C ;
    JAVA 适合搭配 js ;
    微软这两年势头很猛,而且微软的编程语言技术已经有几十年的历史了,不需要怀疑。
    为全世界创造了无数工作岗位的 Java 之父,前一段时间还在找工作。
    如果喜欢尝试新的编程语言, swift , go , rust 都比较不错。还算比较年轻吧,也都出生名门。
    喜欢争吵在 IT 行业是一种好事,因为争论意味着生态多样性程度高。
    而生态丰富而且彼此相互竞争,则是行业技术进步的基石。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 19:15 · PVG 03:15 · LAX 11:15 · JFK 14:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.