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

忍不住还是想向前辈们请教一下,公司以前是 PHP 不过新产品换成了 Java ,关于转型的问题

  •  
  •   DukeAnn · 2017-07-20 08:52:44 +08:00 · 8887 次点击
    这是一个创建于 2715 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由于是换一家 PHP 公司,还是转学 Java,求老人给些建议。

    55 条回复    2017-07-21 13:58:48 +08:00
    aksoft
        1
    aksoft  
       2017-07-20 08:58:36 +08:00
    转就转呗,我朋友也是从 php 转的 spring,看你现在公司好坏呗。不好就走人呗
    zjsxwc
        2
    zjsxwc  
       2017-07-20 08:59:20 +08:00
    程序员应该面向工资编程,还有什么问题?
    V2Simon
        3
    V2Simon  
       2017-07-20 09:01:15 +08:00
    我觉得应该利用这次机会好好学习下 Java 虽然我承认 PHP 是世界上最好的编程语言
    abcbuzhiming
        4
    abcbuzhiming  
       2017-07-20 09:01:42 +08:00
    你是几年的程序员,如果你刚入行不久,为了技术延续性,你可以换一家 PHP 公司,但是如果你已经有了几年经验,这时的程序员难道不应该走全面发展的路吗,都是写后端而已,换个语言无所谓
    nullen
        5
    nullen  
       2017-07-20 09:01:49 +08:00
    程序员应该面向工资编程,还有什么问题?
    CYKun
        6
    CYKun  
       2017-07-20 09:38:26 +08:00 via Android
    php 是最好的语言,但是我选择 java
    MushishiXian
        7
    MushishiXian  
       2017-07-20 09:40:58 +08:00
    有机会可以学下 java 也是很好的,多学一门语言对 php 也很有帮助的,而且 java 那么火,不会吃亏的
    DukeAnn
        8
    DukeAnn  
    OP
       2017-07-20 09:43:59 +08:00
    @abcbuzhiming 一年半吧快两年 PHP
    zhouxuchen
        9
    zhouxuchen  
       2017-07-20 09:43:59 +08:00
    转 Spring 的好机会啊
    orderc
        10
    orderc  
       2017-07-20 09:45:50 +08:00
    你会问这个问题,当然是换公司了。
    bombless
        11
    bombless  
       2017-07-20 09:46:13 +08:00 via Android
    换个语言没啥所谓……不爱现在换就换公司呗
    lrh3321
        12
    lrh3321  
       2017-07-20 09:46:38 +08:00
    php 是最好的语言,但是我选择 kotlin
    DukeAnn
        13
    DukeAnn  
    OP
       2017-07-20 09:47:24 +08:00
    @CYKun 这跟妹子说,你是个好人有什么区别
    zhpech
        14
    zhpech  
       2017-07-20 09:48:53 +08:00
    正好可以学一波 Java (没毛病
    sagaxu
        15
    sagaxu  
       2017-07-20 09:51:42 +08:00 via Android
    php 是最好的语言,java 是最火的语言,但我都弃坑了
    Everyman
        16
    Everyman  
       2017-07-20 11:11:06 +08:00   ❤️ 1
    前期求广度,后期求深度。刚工作不久建议转型 Java,已经工作了几年了建议坚持 PHP。
    jarlyyn
        17
    jarlyyn  
       2017-07-20 11:14:15 +08:00
    这个问题取决于你到底是网站开发工程师,还是 php 工程师?
    fanhaipeng0403
        18
    fanhaipeng0403  
       2017-07-20 11:17:51 +08:00
    程序员应该面向工资编程,还有什么问题?
    andrewDDC
        19
    andrewDDC  
       2017-07-20 11:20:32 +08:00
    PHP 是最好的语言,我选 NODE
    gowk
        20
    gowk  
       2017-07-20 11:25:24 +08:00
    转吧,Java 还算是非常优美实用的语言的。

    但我选最有前途的语言 Go
    flowerains
        21
    flowerains  
       2017-07-20 11:32:23 +08:00
    首先工资不会降低
    其次多学一门语言对你有坏处么,需要抗拒?
    DukeAnn
        22
    DukeAnn  
    OP
       2017-07-20 11:36:07 +08:00
    @flowerains 深度广度之间纠结
    rainex
        23
    rainex  
       2017-07-20 11:51:17 +08:00   ❤️ 1
    所谓“ php 是最好的语言”,这句话就是扯淡,是当笑话说的,谁要当真那就是搞笑了,要培养对软件架构和设计模式的理解,java 比 php 好太多了。

    php 唯一的好处就是尽快出活,脚本语言主要就是为了短平快,反正主要就是连接 mysql 并输出 html,还有门槛更低的吗

    说到底看你对未来有多大想法了,如果只看工资,那就不用考虑这些了,要是将来不甘心只做个小程序员,那转 java 挺好,走过这一步以后再用别的也对你有帮助
    firenut
        24
    firenut  
       2017-07-20 11:58:00 +08:00
    我们招过来一个 php 程序员本来打算开发页面的 不过最后页面的小项目没下文了 看学习能力还不错直接让他开发 java 了,现在业务写的也很好。实用为先吧,基础好的话换个语言都不是问题。
    unbeau
        25
    unbeau  
       2017-07-20 12:01:54 +08:00
    向钱看齐
    sagaxu
        26
    sagaxu  
       2017-07-20 12:08:17 +08:00 via Android
    @DukeAnn PHP 能有什么深度?
    jarlyyn
        27
    jarlyyn  
       2017-07-20 12:12:34 +08:00
    @sagaxu

    很深很深




    php 比很多编译型的语言难写好
    nimdanoob
        28
    nimdanoob  
       2017-07-20 13:01:16 +08:00
    Android 想转 Java 路过,其实是想转 python 的,不过国内 python 职位太少
    joeke
        29
    joeke  
       2017-07-20 13:11:21 +08:00 via iPhone
    语言不是关键,解决问题才是王道
    xoxo419
        30
    xoxo419  
       2017-07-20 13:36:24 +08:00
    永远要把语言看成一种工具, 面临的是什么需求, 什么工具好处理就用什么. 但我还是相信 PHP 是世界上最好的语言.
    DukeAnn
        31
    DukeAnn  
    OP
       2017-07-20 14:08:08 +08:00
    @sagaxu 程序设计上,面向对象设计上的深度
    amwyyyy
        32
    amwyyyy  
       2017-07-20 16:09:15 +08:00
    我现在的同事就有两个是 PHP 转的,公司以前的项目是 PHP 做的
    cxbig
        33
    cxbig  
       2017-07-20 16:22:14 +08:00
    看个性,是想一条道跑到黑,还是多种技能多种出路。
    跟风市场需求,风险比较高。不如一技之长来得踏实。
    zdt3476
        34
    zdt3476  
       2017-07-20 16:26:50 +08:00
    有机会在工作的时候学习一门新的语言难道不是一件值得开心的事吗
    lxml
        35
    lxml  
       2017-07-20 16:31:23 +08:00
    @gowk #20 终于看见吹 Go 的了,看了下 Github 上国内玩的 Go 的主力军,大都是 左手 Python 右手写 Go,从 Java 转的还真是不多(可能是 Python 性能真的烂吧)。
    j4fun
        36
    j4fun  
       2017-07-20 16:34:16 +08:00
    JAVA 的一套架构非常多、虚拟机之类的理论知识也挺复杂。学习代价挺大的,而且虽然 java 入门简单,但是学习曲线陡峭难深入,而且 java 的一些知识对其他系统也没有明显帮助,所以个人觉得如果不是兴趣的话,转 JAVA 不是一个很好的选择。
    Lucups
        37
    Lucups  
       2017-07-20 16:40:50 +08:00
    公司出钱让你学 Java,这种好事不应该抓住吗?

    另外,技多不压身,"现代" PHP 的生态从 Java 学了很多东西,趁此机会补一补。
    讲真,等你写 Java 一段时间后,对 PHP 的认识会更加深刻,对于再回头写 PHP 也有极大的帮助。

    最后,等你掌握了 Java,才会更有信心说出『 PHP 是世界上最好的语言』~
    cunkouwdy007
        38
    cunkouwdy007  
       2017-07-20 17:34:14 +08:00 via Android
    会 PHP+JAVA,基本就能应聘大部分的公司了,挣外快的话大部分都能接了
    tabris17
        39
    tabris17  
       2017-07-20 17:35:05 +08:00
    多一项技能不好么。公司出钱让你学啊
    sagaxu
        40
    sagaxu  
       2017-07-20 17:56:32 +08:00   ❤️ 1
    @lxml Go 相比 Java,也就 goroutine 吸引人和内存占用比 Java 低一些,性能只跟 Java 差不多,GC 比 Java 还差一些。其它语言特性,Go 比 Java 还稍微差一些,第三方库跟 Java 没法比。对 Javaer 而言,scala 和 kotlin 这样比较现代的 JVM 语言更有吸引力,转 Go 图什么?
    onlyice
        41
    onlyice  
       2017-07-20 18:33:31 +08:00 via Android
    Java,就一句听烂了的 「 php 是全世界最好的语言」,让我觉得应该学 Java

    正经地说,Java 适用面比 php 广,生态非常丰富,更值得投资
    mgsparrow
        42
    mgsparrow  
       2017-07-20 19:43:16 +08:00
    @Lucups 同意这个说法,如果是我也会选择趁这个机会学习 Java,每学一个语言都对之前所学的知识有更深的理解呢
    fox0001
        43
    fox0001  
       2017-07-20 21:30:01 +08:00 via Android
    一直在用 Java 混饭吃。以前头脑发热想学下 PHP,结果发现这东西反人类…
    wdlth
        44
    wdlth  
       2017-07-20 21:34:02 +08:00
    上吧,让你体会到 JVM 的各种优势和坑。
    TuringGunner
        45
    TuringGunner  
       2017-07-20 21:43:15 +08:00
    多好的机会,当然转了
    lxml
        46
    lxml  
       2017-07-20 21:51:07 +08:00
    @sagaxu #40 但 Go 还有俩优势,特别适合写工程化的代码(可以约等于写出容易理解的好代码,因为啥语法糖高级特性没有,写出来的风格非常近似,不像我之前 Python 出来牛鬼蛇神什么风格都有 ,PEP8 也镇不住),还有部署非常方便,打个包全家桶装走了这个我觉得还是挺吸引人的,写过一段时间 Java,深受语法啰嗦之害,但没写过 Java 后端代码,不好妄下定论,不清楚这两个能不能算作相比之下的优势?

    当然,大家吹 Go 很重要的一个原因是因为它爹好,跟语言本身无关。
    akira
        47
    akira  
       2017-07-20 22:00:02 +08:00
    有人出钱让你多点一个技能点,不赶紧抓住还在犹豫什么。
    现在早就不是一个语言打遍天下的时代了
    sagaxu
        48
    sagaxu  
       2017-07-20 22:13:51 +08:00
    @lxml 最工程化的语言不是 Java 7 么?语法糖和高级特性完全空白。maven/gradle 工具链完备齐全,junit 和 PMD 以及 jenkins 等一大把 CI 工具,大部分特性都有相应的 JSR,这是个相当严谨的语言。

    部署打包,Go 跟 Java 比真没什么太大优势,Java 项目一般只依赖个 JRE,其它都可以自动打包进来,而且不管是 windows 还是 Linux,不用分别打包。
    tairan2006
        49
    tairan2006  
       2017-07-20 22:30:33 +08:00
    @lxml 你说的那些优势 Java 更具备… Go 的 interface{}里面什么都能塞啊,写的很 trick 也不是不可能。

    Python 已经很标准化了,毕竟崇尚只有一种最佳做法,写成牛鬼蛇神只能说队友水平参差不齐。
    zjsxwc
        50
    zjsxwc  
       2017-07-20 22:50:44 +08:00 via Android
    总结楼上关于 go 与 java 的争论。

    语言好不好主要看用的人,再工程化的语言用的人菜,照样能给你写出坑到爹都不认识的代码。
    lxml
        51
    lxml  
       2017-07-20 22:52:20 +08:00
    @tairan2006 #49 Python 虽然有各种最佳实践和规范,的确,队友水平习惯是的确是一个非常大的原因,大量使用魔术方法,元编程,也算 trick 的一种吧,甚至滥用 lambda,习惯也不好,不过这种我看了下的确没有一个十分清晰的规范能限制这种,写出来照样完美过团队代码检测啊,总不能让 HR 招大家水平都一样的来吧,但我们同样一批人,用 Go 写的相比 Python 确实好了很多,所以算作个人的一个体会。

    @sagaxu

    对 Java 生态和工具链了解不多,看了下我了解 Go 的优势和你说的 Java 优势相比,似乎确实没有什么太大的提高,可能正是之前你提到的原因导致很少有转 Go 的吧,加上国内本来这个也不好招人,没听说有大量部署的公司,自然生态就很差了。
    yougg
        52
    yougg  
       2017-07-20 23:26:02 +08:00 via Android
    @sagaxu 部署打包没什么优势? 对 JRE 的依赖就是最大的问题好吧,在 J9 才能有个去 JRE 解决方案。更别说各种 jar/不同版本依赖,能比编译后就唯一一个二进制文件部署方便?
    mingyun
        53
    mingyun  
       2017-07-20 23:50:16 +08:00
    正好学 java
    sagaxu
        54
    sagaxu  
       2017-07-20 23:58:05 +08:00
    @yougg JRE 的依赖是最好搞定的依赖了吧,你可以用各个发行版自带的 OpenJRE,也可以解压即用 Oracle 官方的。不同库依赖不同版本的某个库,这不是 Java 独有的问题,Go 一样有这样的版本冲突问题。而且,Go 现在还比较依赖源码复用,而不是 binary 的复用。

    典型的 Java 应用,也是打包成一个 jar 或者一个 war,一个二进制文件能比一个二进制文件+JRE 方便多少?
    况且很多 Go 的库,依赖一些 so 或者 DLL,这个时候不是一个二进制文件搞得定的了,比如你试试分别用 Java 和 Go 做个带图形界面的软件,无论你用 Qt 还是其他 gui 库,在不同平台上打包都是个麻烦事。再比如一些 db 驱动,java 的直接在 jar 包里了,go 还要依赖对应的 so/dll,编译一个各个发行版通吃的 so 还是有点麻烦的。
    DukeAnn
        55
    DukeAnn  
    OP
       2017-07-21 13:58:48 +08:00
    @cunkouwdy007 前端硬伤
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3564 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.