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

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

  •  
  •   acrisliu · Jun 6, 2015 · 6370 views
    This topic created in 4171 days ago, the information mentioned may be changed or developed.
    各位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的老路来得爽快,各位有经验的大大们,麻烦指点一下迷津,感谢各位哈~
    Supplement 1  ·  Jun 8, 2015
    没想到收到这么多V友的回复,感谢各位的建议和意见。
    昨天试着接触了一下Play2,但是下载依赖的速度有点慢,和IDEA一起用的话还会有些小BUG。
    今天在@lostpupil的建议下看了一下Ruby on Rails,感觉还不错,所以暂时准备学习下Ruby语言,IDE准备用jetbrains的RubyMine。
    再次感谢大家的指点哈~
    55 replies  •  2015-06-08 19:26:56 +08:00
    ren2881971
    ren2881971
    Jun 6, 2015
    1
    听哥一句话,趁你年轻时间多。

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

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

    语言只是个工具而已。
    hellomsg
    hellomsg
    Jun 6, 2015
    2
    感觉还是别在外包公司待,找个互联网公司。
    wy315700
    wy315700
    Jun 6, 2015
    3
    在哪工作无所谓,
    活的开心就好。

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

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


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

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

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

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

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

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

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

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

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

    P(拍)H(黄)P(片)前途无量~
    MrEggNoodle
    MrEggNoodle
    Jun 6, 2015
    28
    @wee 其实你出来两年你会明白,语言说到底只是一个工具。
    acrisliu
    acrisliu
    OP
    Jun 7, 2015
    29
    @MrEggNoodle 所以经验和能力才是最重要的么
    em70
    em70
    Jun 7, 2015
    30
    有java基础,赶快转android开发,市场急缺移动应用开发人员,你看看多少创业团队只差程序员就明白了
    sinofool
    sinofool
    Jun 7, 2015❤️1
    31
    我做了10年开发,回头看看最重要的两点是:做核心业务,深挖技术根源。
    acrisliu
    acrisliu
    OP
    Jun 7, 2015
    32
    @sinofool 多谢指点哈
    LoongT
    LoongT
    Jun 7, 2015
    33
    大学快毕业的时候,能拿出手的也就是一门 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
    hippoboy
    Jun 7, 2015
    34
    语言只是工具+1
    shenyi26
    shenyi26
    Jun 7, 2015
    35
    IoC, DI都搞明白了吗?Spring 火了这么多年总是有自己的道理的,背后的种种模式也是学习的很好途径。一味追求最新的技术也不是什么好事。当然scala还是值得一学的,了解一下函数式的理念。外包公司还是不要呆了。
    ruandao
    ruandao
    Jun 7, 2015
    36
    http://huyuefeng.me/intro-to-prog/

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

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

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

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

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

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