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

一枚即将毕业的程序员想咨询几个问题,大家有空的话都进来看看吧~

  •  
  •   acrisliu · 2015-06-06 15:47:17 +08:00 · 5318 次点击
    这是一个创建于 3444 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位V友大家好,
    本人即将大学毕业的程序员一枚,在学校主要学习Java EE,目前在某外包公司实习。
    即将毕业了,我对自己的前途有点迷茫,最近经常逛V2EX,发现自己要学的东西实在太多太多。目前绝大部分做Java Web开发的公司,仍是以SSH或者Spring MVC,MyBatis等成熟的框架为主。本人之前已经对Java Web有点厌倦了,就是因为他太依赖框架,感觉对个人能力的提高不太明显。我是那种喜欢追新的人,系统、软件、开发工具、程序语言等等都喜欢玩最新的。
    恰好这两天接触了一下传说中的Play Framework,让我对Java的激情又回来了,顺便还想学习下Scala,然而就在我了解Scala的时候,我又想学习Groovy了.....
    说了那么多废话,那么问题来了,Java、Scala、Groovy,这三门语言我该何去何从呢?另外,如果我学会了Play Framework等等新框架,以后能找到工作么(我害怕一进公司又是SSH+JDK6+MyEclipse 8...)?
    其实也考虑过转行,去做做前端,或者写写“世界上最好的编程语言”,但是感觉学习成本有点大,还不如走Java的老路来得爽快,各位有经验的大大们,麻烦指点一下迷津,感谢各位哈~
    第 1 条附言  ·  2015-06-08 13:51:26 +08:00
    没想到收到这么多V友的回复,感谢各位的建议和意见。
    昨天试着接触了一下Play2,但是下载依赖的速度有点慢,和IDEA一起用的话还会有些小BUG。
    今天在@lostpupil的建议下看了一下Ruby on Rails,感觉还不错,所以暂时准备学习下Ruby语言,IDE准备用jetbrains的RubyMine。
    再次感谢大家的指点哈~
    55 条回复    2015-06-08 19:26:56 +08:00
    ren2881971
        1
    ren2881971  
       2015-06-06 15:57:34 +08:00
    听哥一句话,趁你年轻时间多。

    趁早跳出外包公司,远离企业开发

    不要问我为什么。这么做就对了。

    语言只是个工具而已。
    hellomsg
        2
    hellomsg  
       2015-06-06 16:01:22 +08:00
    感觉还是别在外包公司待,找个互联网公司。
    wy315700
        3
    wy315700  
       2015-06-06 16:13:48 +08:00
    在哪工作无所谓,
    活的开心就好。

    最好下班后能有一帮人出去吃烧烤喝啤酒吹牛。
    pengfei
        4
    pengfei  
       2015-06-06 16:34:19 +08:00
    @hellomsg 我属于类似的情况 不知道怎么去选择
    acrisliu
        5
    acrisliu  
    OP
       2015-06-06 16:43:46 +08:00
    @ren2881971
    @hellomsg
    感谢提醒哈,其实我也不想待外包公司了,拿到毕业证就准备换了,但是学习还是要继续的~
    incompatible
        6
    incompatible  
       2015-06-06 16:51:03 +08:00
    依赖框架不是问题。问题是你有没有试过去了解框架背后的东西? 用spring和不用spring、用mybatis和不用mybatis的区别在哪? 事务是如何控制的? AOP是怎么实现的? 为什么要用IoC?

    Java业内规模稍大的公司,基本还是在用spring、mybatsi/hibernate这套主流框架。一些小的团队可能会使用play framework。学习后者不会带来太大的好处,但也没什么坏处
    neo2015
        7
    neo2015  
       2015-06-06 16:53:23 +08:00
    如果说,楼主已经吃透了spring,即了解了背后的东西。那么楼主可以随意这样说
    nj
        8
    nj  
       2015-06-06 17:35:34 +08:00
    @hellomsg @ren2881971 能否给稍微详细的说下为什么都劝不要去外包公司呢? 感觉实际上也没多大差别。
    ren2881971
        9
    ren2881971  
       2015-06-06 17:37:43 +08:00
    @nj 去感受下就知道了~ 因为我的工作有一部分是带领外包开发。。
    真心不想有人跳进外包的坑。
    frankzeng
        10
    frankzeng  
       2015-06-06 17:39:12 +08:00
    你在酷工作节点看看,有几个公司是招java企业应用的,没几个,大多都是php、python,所以赶紧转语言吧。
    nj
        11
    nj  
       2015-06-06 17:49:11 +08:00
    @ren2881971 你还是没说为什么坑。。。
    w99wen
        12
    w99wen  
       2015-06-06 17:57:43 +08:00   ❤️ 3
    @nj
    我亲哥哥是个小队长,手下有几个做外包的,他的说法是,一般都让外包做非核心部分。也就是坐坐比较杂活的活。
    而且,外包(貌似叫合作员工)一般都呆不久,有经验之后都想跳槽。
    最重要的,外包的员工是没有地位的,除非你技术过硬,有经验。
    菊花对外包真的是说辞你就辞你,老大看某个外包不爽,直接内定让你闪人。
    给不给涨工资也是有指标的,其实涨了,外包公司也要拿走一部分。
    最后很多时候就是知道外包员工要走,但是没办法,留不住,本来就是找个干那种活的,能给多少钱,给的多了,节约成本的目标就没办法实现了。


    总结一句话,好汉不做外包。
    外包外派公司说的天花乱坠,找你来,让你去应聘签合同,说什么微软什么腾讯什么移动的项目,其实说到底,这些项目都跟外包员工没有半毛钱关系。
    那些找外包员工的公司大都是大公司,大公司的待遇比较好,人力成本贵。有些事情根本不需要那么高的技术水平,也自然不需要那么高的薪水。
    外包或者外派是来接收这部分需求的。

    我是从来不肯做二等公民。
    ren2881971
        13
    ren2881971  
       2015-06-06 18:08:01 +08:00
    @w99wen 有人替我说了。。 我懒得码字。。
    acrisliu
        14
    acrisliu  
    OP
       2015-06-06 18:14:00 +08:00
    @w99wen 说的很有道理
    karloku
        15
    karloku  
       2015-06-06 19:12:24 +08:00   ❤️ 1
    招聘中接触过外包公司和互联网公司出来的, 年限差不多的人接触起来, 差别还是很大

    外包公司做的的那些通常会有比较大的项目经历, 做事也快, 但是普遍来说技术面会比较老比较窄. 要么是接手其他外包公司卖出来的项目, 要么就是用外包公司自己的那套开发框架. 这样的环境里人再有进取心也很有可能是往错误的方向, 因为日常接触的项目会影响人的眼界.

    互联网公司里这个对技术探索和学习的氛围就好多了.

    努力的人都会有进步, 不过既然都那么努力了, 找个对得起自己努力的地方
    acrisliu
        16
    acrisliu  
    OP
       2015-06-06 20:07:26 +08:00
    @karloku 嗯嗯,我也这么觉得,毕业后还是决定去找个互联网公司。
    wee
        17
    wee  
       2015-06-06 20:44:03 +08:00
    16应届,还不是和还没开始找工作,当初也有点后悔入了javaEE的坑,但学习时间略长,就不想换主力语言了。
    现在在做的就几点:
    1.好好刷题,注重算法和数据结构
    2.开始深入了解jvm
    3.除了SSH,了解play,jfinal等新的框架,开始学习ruby,学习ROR,做点demo出来

    我给自己限定的学习范围就是jvm上能跑起来的都学习下...
    感觉未来发展的方向肯定是DSL和混合式编程,so学习下ruby对java的开发应该会有点好处,至于scala这个齐活的语言,觉得招聘的时候会ruby就够了,公司需要可以现场学,学习还是应该深入一点,不能什么都学而不精。
    还有现在的公司都不用intellij吗,弃用eclipse一年了...

    另外其实我也挺迷茫的,跪求找实习的经验....
    forkon
        18
    forkon  
       2015-06-06 21:10:14 +08:00 via iPhone
    《你的生命有什么可能》這本書裏有你要的答案
    hellomsg
        19
    hellomsg  
       2015-06-06 21:10:29 +08:00
    @karloku 赞,要对得起自己,别太贬低自己的实力
    acrisliu
        20
    acrisliu  
    OP
       2015-06-06 21:13:41 +08:00
    @wee 看来我们有点相似哈
    acrisliu
        21
    acrisliu  
    OP
       2015-06-06 21:13:52 +08:00
    @forkon 有空我会看看
    chenggiant
        22
    chenggiant  
       2015-06-06 21:45:13 +08:00
    话说楼主有用过Primefaces么...最近被这个折腾的要死呀!....
    acrisliu
        23
    acrisliu  
    OP
       2015-06-06 21:51:07 +08:00
    @chenggiant 这个我没有用过哦
    lujiajing1126
        24
    lujiajing1126  
       2015-06-06 22:11:29 +08:00   ❤️ 1
    Java最重要的还是并发编程(参考JCIP),内存模型(JSR-133),JVM,NIO网络编程(Netty,Mina)

    至于JavaEE,我不是很熟,但是我觉得javaEE的标准才是最重要的,像jms之类(JSR-194)

    Scala确实不错,语言你学不完,最重要的还是基础,Scala,Groovy的话就是FP编程,可以学习一下LISP系(SCIP等)
    acrisliu
        25
    acrisliu  
    OP
       2015-06-06 22:17:05 +08:00
    @lujiajing1126 好的,谢谢你的建议~
    MarineLv
        26
    MarineLv  
       2015-06-06 22:55:32 +08:00
    会java的话可以顺便学学andorid啊,现在还是挺抢手的。
    后端开发的话,越是初创公司越倾向于Ruby on Rails/Python/Node.js这类脚本语言,开发速度快。越是大公司越倾向于用java这样的强类型语言,代码规模大了以后比较好控制。
    Lucups
        27
    Lucups  
       2015-06-06 23:29:20 +08:00
    还不快快加入PHP开发大军!

    P(拍)H(黄)P(片)前途无量~
    MrEggNoodle
        28
    MrEggNoodle  
       2015-06-06 23:41:31 +08:00
    @wee 其实你出来两年你会明白,语言说到底只是一个工具。
    acrisliu
        29
    acrisliu  
    OP
       2015-06-07 00:16:06 +08:00
    @MrEggNoodle 所以经验和能力才是最重要的么
    em70
        30
    em70  
       2015-06-07 00:19:42 +08:00
    有java基础,赶快转android开发,市场急缺移动应用开发人员,你看看多少创业团队只差程序员就明白了
    sinofool
        31
    sinofool  
       2015-06-07 00:28:19 +08:00   ❤️ 1
    我做了10年开发,回头看看最重要的两点是:做核心业务,深挖技术根源。
    acrisliu
        32
    acrisliu  
    OP
       2015-06-07 00:38:53 +08:00
    @sinofool 多谢指点哈
    LoongT
        33
    LoongT  
       2015-06-07 00:40:49 +08:00
    大学快毕业的时候,能拿出手的也就是一门 Java,但并不会 JavaEE 方面的东西。
    (想起来毕设是用 Java 加 Play 做的。)
    然后我现在做的是 Android。这个是可以考虑转方向的。个人觉得 Android 比 JavaEE 前景要好一些。
    不过 Android 有 Android 的苦,我有发帖子抱怨过...

    我有自学过 Scala,然后我的公司主力语言是 Scala,框架 Lift。
    学好了 Scala,我觉得是不会愁工作的吧。Scala 还是公认难度较大的,加分比较多。
    另外是 Scala 的明星项目,Akka 和 Spark,你也可以考虑在这两个框架下的机会。
    Groovy 没太多了解,就只知道个 Gradle,不多说..

    不过程序语言的确就是个工具,用着趁手最要紧。(其实我也还没达到不纠结语言的水平。)
    学习共通的东西:OO pattern,FP pattern。或者研究下 JVM 相关的东西。

    对 LZ 想说的话基本就是想对自己说的:别纠结了,快去做!
    hippoboy
        34
    hippoboy  
       2015-06-07 02:15:49 +08:00
    语言只是工具+1
    shenyi26
        35
    shenyi26  
       2015-06-07 03:15:59 +08:00
    IoC, DI都搞明白了吗?Spring 火了这么多年总是有自己的道理的,背后的种种模式也是学习的很好途径。一味追求最新的技术也不是什么好事。当然scala还是值得一学的,了解一下函数式的理念。外包公司还是不要呆了。
    ruandao
        36
    ruandao  
       2015-06-07 03:25:36 +08:00
    http://huyuefeng.me/intro-to-prog/

    我也推荐下 sicp , 我正在啃,是看别人的推荐推荐的...orz

    就是看,3年,5年后,你会怎样

    我自己比较折腾,很多东西都去学,学的杂, 但是,记忆不行....基本上,一个东西久不用就忘了...留不下来的不属于你

    别玩!!! 拿本书(经典的才有用...)啃下来
    anubiskong
        37
    anubiskong  
       2015-06-07 08:36:25 +08:00
    珍惜青春, 远离java
    li24361
        38
    li24361  
       2015-06-07 09:36:07 +08:00
    管他什么语言,反正总会过时的,钱多才是王道,我见过写jsp+servlet 的年薪百万,说实话,不过是经验积累+学习能力+跳槽。
    hpeng
        39
    hpeng  
       2015-06-07 11:27:19 +08:00 via Android
    不要贬低其他框架…他们这么热门是有道理的。如果你仅仅是用厌了那些框架,我没话说。要是能写出这差不多的框架那就是牛逼哄哄的人了
    blackboom
        40
    blackboom  
       2015-06-07 13:31:01 +08:00 via Android
    我为什么在学习过程中讨厌框架😂
    正在看java虚拟机相关的书
    magicdawn
        41
    magicdawn  
       2015-06-07 15:33:03 +08:00
    @ren2881971

    > 趁早跳出外包公司,远离企业开发

    怎么说? 把码农真的当码农了?
    zonghua
        42
    zonghua  
       2015-06-07 15:41:19 +08:00 via iPhone
    @li24361 在越南工作吗?那些繁重的框架都是基于servlet吧?
    acrisliu
        43
    acrisliu  
    OP
       2015-06-07 18:54:42 +08:00
    表示今天折腾了一下Play框架,下载依赖慢的想死...
    lostpupil
        44
    lostpupil  
       2015-06-07 19:17:48 +08:00
    额 Play我公司用了,大概就是几个问题,依赖安装慢,运行慢,页面多了之后,重启服务器需要很长的时间。
    Java EE是我课设做完之后就丢掉了,做网站RoR更懂你,别问我为什么。然后其实你知道很多JVM上面的语言,但是你并没有提到Clojure,Clojure没有那么多的框架,它主张是最小可用lib,如果你学了他,对于你今后都很有用处的哟。讲真。
    fresco
        45
    fresco  
       2015-06-07 19:37:20 +08:00
    @ruandao 非常不错的文章,看完受益匪浅,感觉就是在说自己。
    zhang2273388
        46
    zhang2273388  
       2015-06-07 20:17:25 +08:00
    @wy315700 我不得不赞一个
    wy315700
        47
    wy315700  
       2015-06-07 20:20:39 +08:00
    @zhang2273388
    其实一个学体育的人说,你们做IT的,孤独 ,没朋友。哪像他们,遇到麻烦一个电话,一群哥们出来替你搞定。他们有一次,学校里三个同学和小混混打架,被抓到派出所,结果整个学院出动,包围派出所。
    acrisliu
        48
    acrisliu  
    OP
       2015-06-07 20:25:21 +08:00
    @lostpupil 嗯嗯 多谢指点 有空我会看看Clojure
    xiparos
        49
    xiparos  
       2015-06-08 06:43:35 +08:00
    珍爱生命,远离java,只要是企业级开发的一概不碰
    从iOS,Android移动端学习下语言和框架
    wowpanda
        50
    wowpanda  
       2015-06-08 08:12:03 +08:00
    @LoongT 请问怎么跳到以scala为主要开发语言的公司呢?
    lostpupil
        51
    lostpupil  
       2015-06-08 08:55:29 +08:00
    @acrisliu 简单来说,你学了Clojure就不会有这么多选项了。还有就是前端的问题,前端其实挺麻烦的,要学习的知识一点都不少,而且目前你的水平远远达不到一个前端的水平。切不要因为他们说前端简单就去信了他们的邪,个人能力的提高其实在于经验的不断积累,如果你把JavaEE做好了,一点也不会逊色,我也是一个追求新东西的人,RoR,Node,Swift,如果说你喜欢web开发,RoR能让你写的很快乐,如果你不喜欢框架,那么Clojure适合你。小而美。喜欢手机端那就去学,其实安卓也是Java写的。本质上并没有差别,从一个框架换到另一个框架,iOS开发的话,入门选斯威夫特。一个优秀的程序员并不只是会一种语言,语言只是工具,当然好的工具能让你更快的完成事情。真重要的其实是经验,现在的你其实更需要经验的积累。然后你会发现不同的问题,不同的语言其实也有不同的解决方案。
    acrisliu
        52
    acrisliu  
    OP
       2015-06-08 10:21:31 +08:00
    @lostpupil 感谢你的指点,不过想问一下,现在招Clojure或者RoR程序员的公司好像不是很多吧?我貌似一直没看见过,如果学习这些不是特别主流的语言,会不会给以后找工作带来难度呢?
    LoongT
        53
    LoongT  
       2015-06-08 11:22:17 +08:00
    @wowpanda 我并不是跳槽过去的...
    所以我只能建议在找的时候就找需要 Scala 程序员的。
    或者是找 Spark、Akka 相关的。
    wowpanda
        54
    wowpanda  
       2015-06-08 12:08:14 +08:00
    @LoongT 但是现在招聘网站上scala招的好少啊,另外如果是应届毕业生刚刚毕业离校,想找scala这方面的工作的话,难度大吗?
    LoongT
        55
    LoongT  
       2015-06-08 19:26:56 +08:00
    @wowpanda 我并不是以 Scala 开发入职的,所以并不是非常了解...
    Scala 为主力语言的公司的确不多,但同时 Scala 开发人员也一样不多。所以找工作还是看水平吧。我觉得基础过关,公司也该愿意培养的。毕竟选择了 Scala 多少能说明你有一定的驾驭语言复杂度的能力,同时也对新技术有热情。
    一部分公司虽然不是以 Scala 为主力语言,但系统中的一部分需要 Scala 开发人员。也就是 Spark 或 Akka 的应用方向了。这个也可以尝试一下,然而我也了解很有限。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 03:49 · PVG 11:49 · LAX 19:49 · JFK 22:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.