• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xylsmmmmmmmm3
V2EX  ›  程序员

一个运维,选择 python 还是 java?(别告诉我写脚本用 shell 就够了。先进来看看具体问题把。)

  •  
  •   xylsmmmmmmmm3 · Jul 29, 2016 · 19268 views
    This topic created in 3754 days ago, the information mentioned may be changed or developed.

    背景:小弟最近刚参加实习,在一次和组长的交谈时,组长告诉我一个好的运维应该懂开发。因为某些原因不是运维可以解决的,需要从开发阶段就开始着手设计。。。。。。扒拉扒拉一大堆。

    疑惑:小弟当时问组长 java 和 python 怎么选择?(关于为什么是这 2 个语言,我不想多解释什么,也不需要大家给我建议其他的语言建议。)组长告诉我选择 java ,因为 java 相对于 python 门槛能高一点。也对于一个人培养一个良好的编程习惯有好处。。。。。。扒拉扒拉又是一大堆。

    目前感想: java 短时间我看不到对我有多少帮助? python 不仅可以写脚本还可以做开发。 期望大家给点建议。

    我目前最理想的想法是:先学 java ,等到一个契机入手 pyhton 。

    也不知道大半夜有多少人看,我会认真对待每一个答案。

    Supplement 1  ·  Jul 29, 2016
    看了很多,大部分人都在纠结用 java 写脚本。估计是我没表达清楚把,将来不会用 java 写脚本。组长问我会开发吗?我说:就会一些学校教锝。因此我决定选择一门语言努力去学习学习开发。只是为了让我今后写其他弱语言能有一个良好的编程方式。
    感谢 @hosealee :
    java 也可以,但是总感觉效率没有 python 高,我就是从 java 入手的,然后再学 python ,目前做 python 开发。
    我个人感觉,先学 java 能给你打下一个好的基础,俺们这里的小伙伴直接 python 上手,感觉写出来的代码惨不忍睹,只是先学 java 的话,时间比较长,成本高。
    另外,运维的话 shell 必会之,有一些 shell 能解决的就不要用其他的语言了,我们还经常碰到 python 调用 shell 脚本的情况,
    仅供参考


    现在决定学 java , python 今后也肯定要学。
    Supplement 2  ·  Jul 30, 2016
    其实我最近一直在考虑,要不要弃坑。做开发。但是我现在马上大四了,现在又在实习。如果现在弃坑走开发。我担心我毕业前找不到工作。
    Supplement 3  ·  Jul 30, 2016
    非常感谢:@williamx
    你的组长是希望你能成长为一个懂开发的运维,我想他的“懂开发”不仅仅是会写脚本,而是能融入到整个项目的开发中。你组长对你的期望很高啊!基于这个目的,少年,选 java 没错!



    运维要解决问题不仅仅是只考虑自己,如果你没有一个良好的开发能力,有些问题很有可能是解决不掉的。
    103 replies  •  2016-08-02 00:22:07 +08:00
    1  2  
    ❮ ❯
    Kilerd
    Kilerd
    Jul 29, 2016❤️3
    1
    一个运维用 java 写维护脚本?????

    只想对那个组长说 mdzz
    knightdf
    knightdf
    Jul 29, 2016
    2
    运维你还用选?肯定 python ruby 之流啊(shell 是必会的),选个毛的 java 。。。。 MDZZ
    clino
    clino
    Jul 29, 2016 via Android
    3
    要是实在很闲又不急可以选 java
    izoabr
    izoabr
    Jul 29, 2016
    4
    可你问的态度并不是特别好呀,这账号像是马甲啊。

    至于 Java 和 Python ,运维用 Python 是很常见的,但你最好要多熟悉一些语言,特别是项目开发用的,你公司用 Java 开发项目,你不懂 Java 怕是运维起来很困难;有时候项目部署遇到问题,你有足够的储备解决问题或者能清楚地向开发描述问题都是很必要的。

    还有 Shell 千万别小看,用好了事半功倍,通常不是什么问题都要写程序写 Python Script 的, Shell 下有很多外围帮助解决问题。

    或者说把问题调过来,首先是要把服务器系统玩弄好了,那 Shell 和 Python 肯定跑不掉,有些还是 Ruby 的,然后才是服务。接触到服务之后你可能遇到 Nginx 外挂的 LUA 这种东西,然后才是应用对象语言,比如 Java 跑 SSH 。

    如果矫情的话, SQL 也算一门语言吧····
    shyling
    shyling
    Jul 29, 2016 via iPad
    5
    运维用 java 太折腾了。
    DarryO
    DarryO
    Jul 29, 2016 via iPhone
    6
    运维一般用脚本语言吧。组长说的编程习惯,是说锻炼 OOP 方面的习惯?不然觉得 Python 也可以啊。话说,组长让选 Java 是不是因为有开发 Hadoop 、 Apache 这类基于 Java 的开源软件的需求啊?
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    7
    @Kilerd 肯定不会让我用 java 写脚本,只是希望我能培养一个良好的编程习惯,对以后解决运维问题有一个更好的角度去看待。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    8
    @knightdf 对,如果用来写脚本肯定是 Python 首选,但是我是为了培养一种编程习惯。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    9
    @clino 非常值得借鉴,我上面提到了最好的就是先学 java 。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    10
    @izoabr 非常感谢, 你让我有个信息,继续学习 java ,有时候有些东西是短时间看不到效益的。但是确实能让我有更好的提高。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    11
    @shyling 运维用 java 确实折腾,但是我是为了有一个良好的编程习惯,从来帮助开发解决一些问题。也是对我工作的帮助。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    12
    @izoabr 还有,这帐号不是马甲,我玩 v2 一般很少发帖。也很少回复。
    snnn
    snnn
    Jul 29, 2016 via Android
    13
    想维护 Hadoop 就学 Java
    否则好好学 Python
    你组长的话没错
    BTW ,很多大公司都已经把运维砍掉了。这个职业前景堪忧,干不了 5 年 10 年的。能上岸早点上岸吧
    likai
    likai
    Jul 29, 2016
    14
    用 java 是为了有一个好的编程习惯。
    这理由怎么看着那么别扭!
    好的编程习惯是语言能决定的么
    zhuangzhuang1988
    zhuangzhuang1988
    Jul 29, 2016
    15
    @likai "用 java 是为了有一个好的编程习惯" ==> 说得没错..
    jhaohai
    jhaohai
    Jul 29, 2016 via iPhone
    16
    运维必须脚本工具啊,随时写随时跑,没见过拿 java 运维的
    javenxww
    javenxww
    Jul 29, 2016
    17
    为什么语气如此拽。。。
    Clarencep
    Clarencep
    Jul 29, 2016
    18
    人生苦短,还是用 python 吧
    newghost
    newghost
    Jul 29, 2016
    19
    运维整 java ? 光环境变量就搞死了……

    我觉得 node.js 也不错,秒秒钟整个服务器。
    VeryEase
    VeryEase
    Jul 29, 2016
    20
    毫无疑问, python 。
    clino
    clino
    Jul 29, 2016
    21
    @xylsmmmmmmmm3 我是说你很有时间想折腾自己的话是可以这样的
    反正要是我我肯定不用 java
    defunct9
    defunct9
    Jul 29, 2016
    22
    rails 做运维监控界面, shell 、 python 做后台工作
    mN71eOOprFyMsnPx
    mN71eOOprFyMsnPx
    Jul 29, 2016
    23
    两个一起学也没什么难度。用有实际需求的项目或工具来锻炼编码能力。
    lixm
    lixm
    Jul 29, 2016
    24
    运维为什么不能用 java? 运维并不是仅仅写点脚本
    zhuangzhuang1988
    zhuangzhuang1988
    Jul 29, 2016
    25
    Groovy.
    strwei
    strwei
    Jul 29, 2016 via iPhone
    26
    py
    pkking
    pkking
    Jul 29, 2016
    27
    组长应该是从职业发展上给的建议
    毕竟运维需要用 python 更好是人尽皆知的
    fy
    fy
    Jul 29, 2016
    28
    神 TM 编程习惯,任意语言都能写出屎一样的程序,包括 Python 也包括 Java

    要是编程习惯,你需要的是对应语言的 lint 工具,这能保证你代码风格看得过眼;还需要大量的练习和总结
    sfree2005
    sfree2005
    Jul 29, 2016
    29
    如果你现在能马上把 Python 用于实习的工作,就先学 Python 。 获得的实践经验后,你会慢慢发现要让自己的编程能力(无论对哪一种编程语言)更上一层楼, 要学习各种设计模式,算法,数据结构之类的, 那这个时候就 JAVA 甚至 C 就可以出场了。 这就像在玩拼图, 先拿实际工作中用得到的部分, 然后慢慢的补完整个图片。目标都是一致的,只是感觉你有实践的机会,那么学的速度会更快些。
    ToughGuy
    ToughGuy
    Jul 29, 2016
    30
    用 php 都不用 java
    Infernalzero
    Infernalzero
    Jul 29, 2016
    31
    运维用 java 没什么问题,只要自己用起来觉得合适就行
    我就是那个用 java 搞运维的,毕竟开发也是 java ,懒得再因为运维换个语言了





    其实是因为 java 这语言有毒,一旦写习惯了你看其他语言各种不舒服斯基
    zhujin
    zhujin
    Jul 29, 2016
    32
    Python.运维.
    hosealee
    hosealee
    Jul 29, 2016
    33
    java 也可以,但是总感觉效率没有 python 高,我就是从 java 入手的,然后再学 python ,目前做 python 开发。
    我个人感觉,先学 java 能给你打下一个好的基础,俺们这里的小伙伴直接 python 上手,感觉写出来的代码惨不忍睹,只是先学 java 的话,时间比较长,成本高。
    另外,运维的话 shell 必会之,有一些 shell 能解决的就不要用其他的语言了,我们还经常碰到 python 调用 shell 脚本的情况,
    仅供参考
    lfzyx
    lfzyx
    Jul 29, 2016
    34
    如果要养成良好的编程习惯,那我建议你选择 C ,搭配 python 。这两个都是 linux 自带的,不用像 java 一样需要装环境。
    araraloren
    araraloren
    Jul 29, 2016
    35
    ~~ 不是很明白,良好的编程习惯 和 学 java 之间的关系。。
    如果只是运维,就我的理解看 python 足够了,编程习惯是靠自己学习、积累的,很多坑只有踩了才知道。。
    changshu
    changshu
    Jul 29, 2016
    36
    运维学 go 也比学 java 靠谱啊, 不然每台机器装个 JRE 还是先拿 GCJ 编译一下.
    deljuven
    deljuven
    Jul 29, 2016
    37
    python 吧,如果坚定地做运维的话
    shyling
    shyling
    Jul 29, 2016 via Android
    38
    @xylsmmmmmmmm3 我不觉得所谓编程习惯和用 java 有什么关系
    nashge
    nashge
    Jul 29, 2016
    39
    python
    walkman660
    walkman660
    Jul 29, 2016
    40
    先说说什么具体问题 SHELL 解决不了?
    lovedebug
    lovedebug
    Jul 29, 2016
    41
    java 写脚本。。还不如 shell 和 js ,推荐 python 和 shell ,有精力 nodejs 也能搞
    repus911
    repus911
    Jul 29, 2016
    42
    编程习惯 风格 OO 的思想 设计模式 python 又不是不可以
    是不是你们那边开发是 java 的
    对于运维学 java 我只能同意一楼 MDZZ
    chenkun0128
    chenkun0128
    Jul 29, 2016
    43
    运维的话最好还是 shell ,如果非要选的话就 python , 很难想象你在 vi 上调试着 java 代码是一种什么感觉。
    Amayadream
    Amayadream
    Jul 29, 2016
    44
    不能想象命令行写 Java 是什么样的体验.
    jinfeng333
    jinfeng333
    Jul 29, 2016
    45
    用 java 写自动化运维脚本 会很酸爽的 233333
    wmhx
    wmhx
    Jul 29, 2016
    46
    java 这种强类型的强迫症语言,对习惯的约束还是很强的 ; 但运维还是不建议用 .
    hooluupog
    hooluupog
    Jul 29, 2016
    47
    python 或者 Go 。
    Go 做运维,性能,部署,静态链接都有优势。 python 的优势是库多,开发效率快, Go 开发效率也不低。
    不推荐 java 。 java 搞运维??
    imcxy
    imcxy
    Jul 29, 2016
    48
    组长告诉我选择 java ,因为 java 相对于 python 门槛能高一点。也对于一个人培养一个良好的编程习惯有好处。。。。。。

    ________________

    程序员的英文水平高了,中文理解能力反而会出现下降?一共 47 楼,有 30 楼都在纠结 java 写脚本。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    49
    @snnn 什么叫做上岸?
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    50
    @likai 音乐 Java 比 python 门槛高。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    51
    @javenxww 不是拽,只是“傻逼”太多。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 29, 2016
    52
    @hosealee 非常感谢,看了这么多。从你这醒悟的最多。谢谢。
    odirus
    odirus
    Jul 29, 2016
    53
    为了工作可以先把 python 学好

    但是,很多大型的运维组件系统常常能看见 Java 的身影,如果看得懂别人的某些原理,那你就高大上了。
    hosealee
    hosealee
    Jul 29, 2016
    54
    @xylsmmmmmmmm3 客气了,一点自己的见解,希望能帮到你
    Presageee
    Presageee
    Jul 29, 2016 via iPhone
    55
    都可以学啊 现在就是准备 java/scala l+ shell 做运维(不是专业运维
    fire5
    fire5
    Jul 29, 2016
    56
    麻利的去 python ,牛 B 点直接学 golang 吧。编译好一个可执行,直接扔上去跑。

    java 还是去做企业级开发吧。
    wizardoz
    wizardoz
    Jul 29, 2016
    57
    为什么大家都觉得 Python 简单?难道是我智商余额不足?只有我是觉得 Python 学的深很不容易吗?
    loading
    loading
    Jul 29, 2016 via Android
    58
    shell 最好。
    和你部署环境一致的 python 次之。
    需要加库的 python 更次。
    需要升级服务器自带的 python 更更次。
    java …什么鬼。


    其实可以考虑 golang 。
    baozijun
    baozijun
    Jul 29, 2016❤️1
    59
    @wizardoz 任何一门语言学得深都难啊。 Python 入门确实简单啊,语法直观自然,有其他语言经验入门会超级快,自己写的 PHP 小站的数据采集程序就是花了一天时间 python 入门后照着程序改的,要吐槽的是 python 的多线程略坑,不过用起来确实爽。
    beyond_st
    beyond_st
    Jul 29, 2016
    60
    为什么有人会认为 XXX 比其他语言更能养成良好的编程习惯?
    chcx
    chcx
    Jul 29, 2016
    61
    运维,搞毛线 java 啊。。
    rrfeng
    rrfeng
    Jul 29, 2016
    62
    所以这不是个运维的问题。

    是学开发是选择 java 还是 python 的问题。
    keenkiller
    keenkiller
    Jul 29, 2016
    63
    肯定是 py 啊。。

    java 良好的编程习惯是啥?设计模式?读读 clean code 不就完了…
    Felldeadbird
    Felldeadbird
    Jul 29, 2016
    64
    哪个语言的运维库丰富就用那个语言的。
    或者说,目前公司运维平台技术是基于何种语言开发的,那么就用那个语言。反之看第一点。
    而说什么从长远来看,你学什么语言,没思想觉悟的话,写出来的代码都是一坨屎。
    SlipStupig
    SlipStupig
    Jul 29, 2016
    65
    @wizardoz 同意+1 , python 语法本身很简单除了各种特性以外,想再深入 python 学深入就是虚拟机原理,各种实现了.....

    @xylsmmmmmmmm3 有多大的运维问题是 shell 解决不了的,难道是让运维人员去做软件开发?
    SlipStupig
    SlipStupig
    Jul 29, 2016
    66
    MushishiXian
    MushishiXian
    Jul 29, 2016
    67
    自己敲不出好代码还打算怪语言咯?运维用得比较多的是 python 吧
    bobuick
    bobuick
    Jul 29, 2016
    68
    运维你用 java 写脚本?
    等你写好, 问题早过去一年了。
    shimanooo
    shimanooo
    Jul 29, 2016
    69
    千万 *要* 小看 shell ,稍复杂的东西都要避免用 bash 写。
    notolddriver
    notolddriver
    Jul 29, 2016
    70
    听说阿里运维用的 java
    cjyang1128
    cjyang1128
    Jul 29, 2016
    71
    @notolddriver 这是高级黑吗
    qhxin
    qhxin
    Jul 29, 2016
    72
    用 PHP 写
    williamx
    williamx
    Jul 29, 2016
    73
    你的组长是希望你能成长为一个懂开发的运维,我想他的“懂开发”不仅仅是会写脚本,而是能融入到整个项目的开发中。你组长对你的期望很高啊!基于这个目的,少年,选 java 没错!
    snopy
    snopy
    Jul 29, 2016
    74
    shell+Perl ,会了再哔哔其他的,否则就是在浪费时间扯淡
    shanks
    shanks
    Jul 29, 2016
    75
    java 做运维平台开发,并不是做脚本开发。
    hard2reg
    hard2reg
    Jul 29, 2016
    76
    Life is short , you need python .
    Clarencep
    Clarencep
    Jul 29, 2016
    77
    顺便学习下 HTML+CSS 吧,搞个可视化运维系统
    kkzxak47
    kkzxak47
    Jul 29, 2016 via Android
    78
    Python 吧,自动化运维用得上,现在也比较热,本身作为胶水语言也很有用
    iyaozhen
    iyaozhen
    Jul 29, 2016 via Android
    79
    我不知道为什么要用 Java 。即使要开发监控平台用 Python 、 PHP 也更合适呀。

    做运维的话 shell 、 Python 必须会呀,而且现在 go 更加流行,某些场景下更好用。

    还有编程习惯那个理由不敢苟同。

    不过若你们是搞大规模日志处理(logstash 、 kafka 、 storm)那些东西,还是 Java 更合适。
    BUPTGuo
    BUPTGuo
    Jul 29, 2016
    80
    果断 Python ,或者上 Go 。 Java 除了对接大数据的那套系统方便一些,其他的绝对没有前两个快捷方便。

    语言都是其次,其实永久了就是编程的思路了。前两天去面试,面试官写 CPP 的,考我指针我实在是反映了半天。。。
    billlee
    billlee
    Jul 29, 2016
    81
    @hosealee 讲到点子上了,别说是没学过编程语言,很多会 C 的人,写出来的 python 代码都惨不忍睹。这些人根本不懂如何写出可维护的代码,只是 C 的限制较多,乱写也还是能看懂,到了自由使用动态类型的 python 上,就写成一坨翔。
    hosealee
    hosealee
    Jul 30, 2016
    82
    @billlee 哈哈,确实是这样,改别人一坨翔一样的代码痛不欲生
    jyf007
    jyf007
    Jul 30, 2016 via Android
    83
    @hosealee 我也是,终于进坑了
    luefei
    luefei
    Jul 30, 2016
    84
    哎。懂开发的运维 还是有相当优势的,但是为何要选择 java 呢。。 C ++ 也比 java 好啊
    snnn
    snnn
    Jul 30, 2016
    85
    @xylsmmmmmmmm3 苦海无边,回头是岸。不要做运维,太辛苦
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 30, 2016
    86
    @wizardoz 不是 python 简单,相对于 java 和 php c 等语言 更容易上手而已。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 30, 2016
    87
    @snnn 我现在想弃坑,但是马上大四了,我害怕时间不够啊。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 30, 2016
    88
    .@luefei 你说的非常对, c++从效率上谈 c++>java>python ,但是易上手程度的话 python >java>c++ ,因此我决定学 java ,因为 c++相对而言比较难上手。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 30, 2016
    89
    @shimanooo 。。。我感觉 shell 和强大。
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Jul 30, 2016
    90
    @MushishiXian 没有怪语言,只是自己刚开始,希望能从开始培养一个良好的习惯而已。
    shimanooo
    shimanooo
    Jul 30, 2016
    91
    @xylsmmmmmmmm3 。。。我感觉我国很强大。
    franklinyu
    franklinyu
    Jul 31, 2016
    92
    @billlee 「很多会 C 的人,写出来的 python 代码都惨不忍睹」???這些人不能算「會 C 的人」,最多算「知道 C 語法的人」。就好像懂象棋規則的人不一定會下象棋。(這肯定不是 C 被黑得最慘的一次)
    SmiteChow
    SmiteChow
    Jul 31, 2016
    93
    python
    wweir
    wweir
    Jul 31, 2016 via iPhone
    94
    用 JAVA 多好啊,上去装一个 JVM ,没事还能多装几个版本。再也不愁没理由跟公司多申请几块硬盘、几根内存了
    northisland
    northisland
    Jul 31, 2016
    95
    人生苦短
    serial
    serial
    Aug 1, 2016
    96
    首先,你运维写代码是干什么的? 拼接 Shell 命令, 80% 都是字符串、正则表达式处理。你用 Java 来处理字符串? 运维写的程序速度快有个毛用,一旦程序运行起来,运维的程序就退出了。
    tinytub
    tinytub
    Aug 1, 2016
    97
    其实我想知道楼主为何没毕业就要入运维的坑。。。
    jason19659
    jason19659
    Aug 1, 2016
    98
    python 吧 java 要学很久很久很久很久的
    xylsmmmmmmmm3
    xylsmmmmmmmm3
    OP
    Aug 1, 2016
    99
    @tinytub 其实现在后悔入运维了。但是现在搞开发,时间来不急了。
    tooweakchen
    tooweakchen
    Aug 1, 2016
    100
    不知道为什么会推荐 java 。果断 python
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1189 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 163ms · UTC 00:44 · PVG 08:44 · LAX 16:44 · JFK 19:44
    ♥ Do have faith in what you're doing.