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

入行了一年,感觉不知道接下来该怎么做才能继续进步了,求指教

  •  
  •   cad0420 ·
    andiechu · 2014-04-25 11:31:15 +08:00 · 10297 次点击
    这是一个创建于 3625 天前的主题,其中的信息可能已经有所发展或是发生改变。
    各位大神大家好,从最开始只有大学里面基础的编程技术,到自学现在成为一个使用Java开发Web后端的程序员,我入行到现在算是一年零两个月。

    在这一年里面我从只会Java SE的基础语法到现在算是可以独立开发一个web应用,我感觉自己还算是有进步的,虽然进步非常缓慢。现在在公司做一个内网的应用,因为最近人员有变动所以基本上现在这个项目就是我一个人在做还有运营管理。现在的公司也加班不是特别多,女工程师们也都比较照顾,大部分时间都不用加班到太晚。

    作为一个女生,似乎这样就不错了。但是我始终想做一个出色的程序员。我不怕加班,甚至想要多加班多学习。

    之前我一直都是在不停的看书看书,后来渐渐发现这种学习方式很错误,我更需要的是多写代码。于是我想的就是要多做项目。之前想说要建一个blog,于是就找到了一个开源的Java的博客系统,看了源码以后觉得自己学习到很多。但是始终,感觉java好像只是适合做企业级应用,做web应用始终还是太烦冗。但是学习企业级开发,我除了看书,似乎就没有更好的方式再去练习了。只是看书的学习方式让我越来越焦虑。

    我很羡慕写Python和Ruby的,感觉好像可以很轻量的就可以创造出东西来。可以创造出些什么,这也是我当初转行做程序员的原因。但是现在好像Java EE开发都没有掌握好,就再去学习别的语言,似乎短时间之内对我的职业水平不能有什么提高。

    总之,现在不知道如何来提升自己的能力了。感觉遭遇了瓶颈期。不过也或许是现在心态太过于浮躁了。从来不做伸手党,今天来这里讨教一回了……也欢迎各位大神来喷我……T^T 谢谢……
    第 1 条附言  ·  2014-04-25 13:28:35 +08:00
    其实也不是说要不要多学一门语言的问题,主要还是现在的java不知道如何再进步。看书的话,不用也会忘了许多的吧。。
    64 条回复    2014-04-28 17:16:35 +08:00
    ChiangDi
        1
    ChiangDi  
       2014-04-25 11:34:35 +08:00
    作为一个女生!!!!
    verfino
        2
    verfino  
       2014-04-25 11:37:57 +08:00
    要我是你有Java基础跟环境,我会去学学Android

    PS: 作为一个Ruby开发者,表示Java才是万能的
    cad0420
        3
    cad0420  
    OP
       2014-04-25 11:39:11 +08:00
    @verfino 我知道Java是万能的啊,但是现在不知道怎么进步了。。安卓开发也可以呀,只是感觉现在web开发还没有学好。。TAT 难过的不想去吃午饭了
    cad0420
        4
    cad0420  
    OP
       2014-04-25 11:41:15 +08:00
    @verfino 吓我一跳,我还以为你是我们公司的一个同事。。因为你是写Ruby的,而且我看你页面上写的自己开发的app和他开发的都是差不多类型的情侣应用……
    too
        5
    too  
       2014-04-25 11:45:28 +08:00
    可以考虑跳槽,找一个认可你,而你也认可的团队。跟比你经验丰富的人学习。
    txx
        6
    txx  
       2014-04-25 11:46:02 +08:00   ❤️ 11
    從我自身來講吧,當我遇到我感覺無法提升的瓶頸的時候了。我會在業餘時間換個方向。

    例如我最開始是做cocos2d-iPhone的,之後把cocos2d源碼看了一遍,感覺沒什麼可以玩的了。
    就去學應用開發了。

    之後覺得應用開發有趣就轉行應用開發,中間有一段感覺無法提升了,也沒太大的興趣了。
    就去看了一段node

    node 的 api設計 架構設計 設計模式對我有了些影響,我在寫iOS開發也潛移默化的往這些design pattern上靠。

    我並不覺得這是三心二意,在學習的時候我會反思,例如:為何他會把這個 事件分發的方式設計成這樣,而不是我熟悉的 cocoa 的那個樣子,基於什麼考慮,語言特性?設計模式?安全?那麼我寫代碼設計成這樣是優還是劣?能不能為我所用?

    我說了這麼一堆,在v2ex這個社區裡面算關公面前耍大刀了。不過這是我從入門到現在工作幾年的感觸,也許能幫到你。
    verfino
        7
    verfino  
       2014-04-25 11:47:17 +08:00
    @cad0420
    有这种想法就是好事,我想很多做web的都有这种感受吧,熟悉了MVC和CRUD之后,就慢慢觉得自己瓶颈了。
    建议你去尝试一些新技术,新框架(尤其是前端)和一些比较潮流的新玩意,千万别固步自封到Java里面,一个程序员如果只会一种语言应该很不称职的;同时不停地重构自己代码,甚至把更多的新技术用到工作上;而且你也完全可以去学习另外一种语言开拓思路,比如说common lisp

    - -看 是不是还有好多事
    Mutoo
        8
    Mutoo  
       2014-04-25 11:49:59 +08:00
    想做出色的程序员,继续看书吧,不要停。看的面要更广更深一些。
    est
        9
    est  
       2014-04-25 12:04:14 +08:00
    > 作为一个女生!!!!


    亮了。
    scola
        10
    scola  
       2014-04-25 12:11:14 +08:00
    支持 学android,我不懂java,正学java再android玩玩
    NovemberEleven
        11
    NovemberEleven  
       2014-04-25 12:19:14 +08:00
    什么有趣学什么,不要停下脚步。我做过web,前端,android,现在又来做游戏。
    Lelouchcr
        12
    Lelouchcr  
       2014-04-25 12:29:54 +08:00
    俺觉得,首先别纠结语言

    java也有play frameword,grails 等一站式框架。

    各种东东都尝试下然后了解他的原理,然后就会发现自己好菜呀,有好多东西要看。

    然后就没时间想这个问题了。
    kshatriya
        13
    kshatriya  
       2014-04-25 12:30:49 +08:00
    scala, twitter现在用scala了, 基于jvm
    kshatriya
        14
    kshatriya  
       2014-04-25 12:33:12 +08:00
    lidonghao
        15
    lidonghao  
       2014-04-25 12:35:04 +08:00
    Ruby 看了一段时间,现在业余时间转为学习android 。。囧
    kshatriya
        16
    kshatriya  
       2014-04-25 12:49:00 +08:00
    @lidonghao 不是有个ruboto嘛
    meits
        17
    meits  
       2014-04-25 13:07:40 +08:00
    多看一些各方面的书丰富自己的视野,然后选择你自己喜欢的方向,只有你自己知道什么才是最适合的
    humiaozuzu
        18
    humiaozuzu  
       2014-04-25 13:23:00 +08:00
    cad 姐姐你好 =。=
    来玩 Python 吧,看看 Hacker News 可以看到很多方向
    cad0420
        19
    cad0420  
    OP
       2014-04-25 13:27:00 +08:00
    @humiaozuzu 一不小心又暴露身份了。。-。-
    dong3580
        20
    dong3580  
       2014-04-25 13:28:07 +08:00
    @cad0420
    作为女生,作为女生长期做程序员的少~~~
    所以选好自己的位置吧。
    humiaozuzu
        21
    humiaozuzu  
       2014-04-25 13:50:06 +08:00   ❤️ 1
    说点正经的
    业务之外的:
    个人时间管理,个人心智管理,个人目标管理,心智黑客,你可以把他们叫做 meta knowledge,元知识,学习知识的知识,管理人生的知识。

    业务基础的知识:
    算法,操作系统原理,数据库原理,设计模式,编程语言的范式。我觉得最后一个是很多人忽视了的。

    业务知识的扩展
    不会运维的后端不是好的前端,这是纵向的。
    横向的后端好多可以学的啊,邮件,CDN,统计分析,推荐系统,缓存,队列,推送,搜索,安全

    前2项里很多东西的学习都是短时间看不到成效,需要在寂寞的时间里忍受孤独独自认真学习的。
    写完后又抽了自己一巴掌,怎么又耐不住寂寞上v2ex了呢。
    lookhi
        22
    lookhi  
       2014-04-25 13:51:11 +08:00
    作为一个女生 生命苦短 请换个语言吧。
    一年java 和 一年py ruby之类的效果差远了。
    kiah
        23
    kiah  
       2014-04-25 14:12:34 +08:00
    女攻城狮。。。
    min
        24
    min  
       2014-04-25 14:33:32 +08:00
    加关注!
    xmkevinchen
        25
    xmkevinchen  
       2014-04-25 14:51:21 +08:00   ❤️ 1
    搞懂这个框架吧,SSH的基础经典
    https://github.com/springside/springside4
    kyze8439690
        26
    kyze8439690  
       2014-04-25 14:52:11 +08:00
    github头像好顶赞
    xmkevinchen
        27
    xmkevinchen  
       2014-04-25 14:53:10 +08:00
    搞懂J2EE,再去看RoR, django等等,都是大同小异了
    kafka0102
        28
    kafka0102  
       2014-04-25 15:34:32 +08:00   ❤️ 4
    做技术可以学的东西太多了,只是在不同的阶段做好不同的规划,要结合当前所做的事情去做更深入或广度的学习。以Java Web开发为例,至少可以拓展的点有:
    1、Web框架的原理学习,比如Spring、Play等等,最好自己能写出个简易的MVC框架(几千行代码)。这样至少对常用设计模式、反射等技术很熟练了。
    2、优秀代码研读。比如Java集合类、JUnit、Spring等源码,写出源码分析,会有很多收获。源码分析可以学一辈子的。
    3、对Nginx、Tomcat、Jetty等Web server的深入学习。
    4、对Redis、Mysql、Mongodb等存储的学习。也许环境受限,但至少可以做些实验性的研究,比如主从、简单集群的搭建和应用。
    5、学习重构、模式、架构等偏虚的东西,但会对高编程境界很有帮助。
    6、各种场景的性能优化。比如你写一个页面,能抗住多大并发流量?瓶颈出在哪?遇到问题该如何下手处理?
    7、周边技能培养,运维、测试、前端、不一而足。
    8、Java相对其他语言来说,代码易读性很好,可以学习使用的库和框架太多了。一段时间可以专门研究某套代码,时间久了,技能就提高多了。
    cad0420
        29
    cad0420  
    OP
       2014-04-25 15:42:29 +08:00
    @kafka0102 非常感谢!!
    tctctc
        30
    tctctc  
       2014-04-25 16:08:09 +08:00
    @ChiangDi 同意
    P9
        31
    P9  
       2014-04-25 16:09:15 +08:00
    作为一个Python从业者, Python才是最好用的。万能不顶用,说万能,Java比不上C
    pyKun
        32
    pyKun  
       2014-04-25 16:10:23 +08:00
    投入开源社区吧
    OrangeHat
        33
    OrangeHat  
       2014-04-25 16:12:47 +08:00
    @kyze8439690 推上的更赞。煜锋也跑去魅族了。
    yueyoum
        34
    yueyoum  
       2014-04-25 17:05:20 +08:00
    妹子,来跟叔叔学习吧,哈哈哈哈。


    忽略上面那句…………


    你的想法很好,这么有动力去学习。
    不过才如行一年,JAVA的生态圈深如海,现在一边做自己手上的工作,一边看看业界新闻,
    看看各种NB框架的源码。 它们的设计。


    当然,光看效果不大, 得有实际体会才行。
    你现在做的内网应用,估计最麻烦的就是权限问题了。但只要设计好模型,也好处理。


    当你转到真正的互联网项目上的时候,就要考虑高性能,可扩展,易于部署,可维护,
    高可用 等等问题。



    最好 在github 上建个项目吧, 练手
    kyze8439690
        35
    kyze8439690  
       2014-04-25 17:13:10 +08:00
    @OrangeHat 我擦,他不是一直叫着要去北京吸毒吗?怎么跑珠海去了?
    hepin1989
        36
    hepin1989  
       2014-04-25 17:18:32 +08:00
    作为女生,早点结婚比较好
    hepin1989
        37
    hepin1989  
       2014-04-25 17:19:17 +08:00
    我觉得作为女生,有个好对象,比什么都靠谱,哈哈
    loryyang
        38
    loryyang  
       2014-04-25 17:37:00 +08:00
    跳槽,积累经验和人脉,发展需要更大的平台和更牛的队友,当然个人的努力是基础
    OrangeHat
        39
    OrangeHat  
       2014-04-25 17:52:55 +08:00
    @kyze8439690 ...可能MZ真的有好多漂亮女程或射鸡师~
    hustlzp
        40
    hustlzp  
       2014-04-25 17:59:15 +08:00
    看了下你的简历,我也是hust 08级的,好巧 :)
    dorentus
        41
    dorentus  
       2014-04-25 18:55:26 +08:00   ❤️ 1
    学其他语言其实也可以加深对 java 的理解的啊

    而且软件开发到最后目的是把事情做好,为此得选择合适的工具、作适当的规划,语言什么都是浮云啦
    ivanlw
        42
    ivanlw  
       2014-04-25 19:40:20 +08:00
    作为一个女生,我觉得把照片po出来的话,会有助于大家对你的帮助的~
    a591826944
        43
    a591826944  
       2014-04-25 20:18:46 +08:00
    首先我非常同意 @txx 同学的一些观点,之前楼主又说觉得java EE还没学好就去学别的,不是很好,但是我觉得恰好这方面其实无需担心,程序语言都是相通的,相辅相成,重要的时思想的进步,而不是语言的应用熟练度
    比如我,三年PHPer,还会点python,但是我发现我学的都是解释型语言,没有编译型的,这让我感觉不完整,所以我就决定学一个有用的编译型,C++?JAVA?。。所以我最后选择了 Obj-c。。起码我可以做几个IOS手机应用出来自己用,也不算白学,重点是也补充了一些思想上的东西。
    而且以后我还想学nodeJs..等等。。我觉得他们各有各的好处。。
    vvniu
        44
    vvniu  
       2014-04-25 20:29:07 +08:00
    @txx 不能更同意
    maxsky
        45
    maxsky  
       2014-04-25 20:47:51 +08:00
    @humiaozuzu 挺不错~
    maxsky
        46
    maxsky  
       2014-04-25 20:48:58 +08:00
    @xmkevinchen 江南白衣大哥的。
    lu18887
        47
    lu18887  
       2014-04-25 22:20:00 +08:00
    you should learn something beyond programming languages!
    artwalk
        48
    artwalk  
       2014-04-25 22:31:52 +08:00
    只是看书的学习方式让我越来越焦虑

    结对编程吧~
    chemzqm
        49
    chemzqm  
       2014-04-25 23:15:47 +08:00
    http://andiechu.com/andie-cv/ 简历做的也很赞。
    话说我以前也是学生物的,我以前也用Spring Mybatis Ext Jquery, 后来我觉得维护它们真是太费劲了,而我又不想去做我不想维护的东西。
    我觉得楼主一年就能做到这个水平真的好厉害,学前端吧,虽然也是个大坑,但比Java好玩:)
    chemzqm
        50
    chemzqm  
       2014-04-25 23:17:16 +08:00
    @artwalk You got the point
    wong2
        51
    wong2  
       2014-04-25 23:26:45 +08:00
    cad姐姐怎么居然转程序员了!
    neevek
        52
    neevek  
       2014-04-25 23:48:29 +08:00
    工作一年多,你现在最需要的不是技术广度,是技术深度,而所谓的深度往往是基于初入门者所忽略的基础,我见过很多已经工作3、5年的人,很多基础都没搞清楚。比如:各种编码、HashTable的实现、线程安全、HTTP协议、TCP协议。。。。基础打好了,你就可以更深入的学习,再去学习任何其他语言和技术效率会高很多。
    adami
        53
    adami  
       2014-04-26 00:20:09 +08:00
    计算机只能当个玩意,不能当职业,没什么意思
    skydiver
        54
    skydiver  
       2014-04-26 00:39:11 +08:00
    @wong2 原来lz是 CAD 姐姐!
    chengxuan
        55
    chengxuan  
       2014-04-26 00:43:54 +08:00
    Python啊 还是算啦吧,你会发现go很更好。。。

    其实学啥都无所谓,学牛逼都不容易。。。
    LoongT
        56
    LoongT  
       2014-04-26 12:31:14 +08:00
    Java是个大生态圈,要想深入专研肯定有途径。
    虽然我也一样是学Java的,不过JavaEE我个人不够资历,就不说了。
    个人的想法是会去专研Hibernate和Spring。不过我不想去学用SSH做Web开发,感觉好累...

    另外是我对Android开发有投入,既然已经掌握了Java,学Android开发也就是顺手的事情。

    学习Java以外的语言我觉得非常有必要。
    学过之后才发现Java的书写真的好枯燥单调。
    引几句话深刻表现了我的体会:“我真的很喜欢Java,Java既不是一门好的语言,也不算是很差的语言。使用Haskell或Perl时你时常担心是不是应该用最简洁、最高效的方式。在Java中就不必考虑这些,因为最简洁、最高效是不可能的。无论你做什么,怎样去努力,代码都会变得普通、繁琐、冗长、臃肿。”
    额外学习一门不太相似的语言对于拓展思维非常有帮助,尤其是非OO范式方面的。
    个人选择学习Scala,同时会根据需要选择学习其他的(比如最近因为公开课需要,学习Ruby和Rails)。
    这个方面会担心贪多嚼不烂,但盯住一两个深入学习,再了解其他的,还是利大于弊的感觉。
    语言的选择我觉得基本都是自家人说自家事,还是要根据自身需求来选择。

    以上是同样各种挣扎的学习者的感言,经验不足,请谨慎。
    anubiskong
        57
    anubiskong  
       2014-04-26 18:31:36 +08:00
    在自己所在的领域加深功力是必然.
    你既然是java入行, 那么时时刻刻关注java的发展, 并且接触java相关的技术(android之类), 都是必须要做的事情
    不过作为一个程序员, 可能需要更广阔的眼光. 在你钉钉子钻研的同时, 刷刷漆铺一下知识面是有必要的
    java是强类型需要编译的语言, 你可以学一些同类语言, 比如C++, 推荐学一下C++的QT.或者用cocos2d-x写一个小游戏.
    也可以学一些脚本语言, 比如javascript, 推荐从nodejs开始
    因为你刚入行, 所以我建议你去学一下javascript, 用nodejs写一个小工具或者小网站, 最好是在linux上面搞.这个学习的过程会给你带来和java完全不一样的编程感受, 看过完全不同思路的编程语言后, 你解决问题的方式和眼界都会有所成长
    cad0420
        58
    cad0420  
    OP
       2014-04-26 20:15:48 +08:00 via Android
    @txx 谢谢!你说的这些感觉对我有很大启发啊!

    @chemzqm 不喜欢前端…这个简历其实还没有写完…

    @wong2 是啊…我们学校的人好多啊…

    @neevek 嗯,我也觉得自己这些基础方面都很差,应该补一下…
    unionx
        59
    unionx  
       2014-04-26 21:31:42 +08:00
    别忘了把操作系统基础、数据库基础、网络基础这些东西学一下啊
    fatelovely
        60
    fatelovely  
       2014-04-26 22:48:50 +08:00
    不知道你所谓的进步是指什么?对java熟悉到出神入化么?其实语言,了解设计思想,了解基本用法。剩下的就是用你的创造力去创造东西。没错,软件就是”可以创造点什么“。.think about something you want to create,then just do it.
    baozijun
        61
    baozijun  
       2014-04-27 12:14:21 +08:00   ❤️ 1
    java是一门极度规范化的商业语言,语法和机制比较完善,写起来比较枯燥。但看过部分android源码的表示这种枯燥但规范的语法是有必要性的。
    建议楼主学web开发的时候刚开始用JFinal来写一个小的blog(只有增删改查和基本的登陆注册),前端前面不要管,能看就行,开发完了再修改!不要用Struts2,ORM框架可以用MyBatis,中间不会了就狂补知识点,然后在回来把最基础的但最实用的Servlet看一下(刚开始建议不要熟悉,只要了解多数基本的用法,毕竟太多了...),之后开始看Spring。
    坚持三四个月,你会明白有了注解的java开发web还是很简单又很强大的。(后期重构后400多行代码[不算xml和View层^_^,其实xml也不太多,很多只是复制粘贴用正则],就能做出个功能完整的blog(多谢spring框架和jpa)-增删改查,登陆注册,验证码,上传下载,后台管理,用户授权(使用单点登录框架),邮箱验证(sendcloud))。
    其实学习web开发,刚开始就是学习MVC的开发模式,学会正确的重构来精简健壮代码,要学会使用api和减少劳动的工具,刚开始不要重复造轮子,先用别人做好的,把作品完成后有了成就感再想一下自己写要怎么写。
    之后随便从数十万个开源项目找一个看下,推荐上面 @xmkevinchen 提到的SpringSide4,强烈建议看下他的wiki,受益颇多。
    timepast
        62
    timepast  
       2014-04-28 09:32:33 +08:00
    看源码!一起进步
    artwalk
        63
    artwalk  
       2014-04-28 09:51:12 +08:00
    @chemzqm 肿么结对?最近想看iOS
    lancelot
        64
    lancelot  
       2014-04-28 17:16:35 +08:00
    女生真是优势多多啊,这光环...在程序员社区就是无敌。
    我个人觉得还是先认识一些人吧,或者先广泛了解一下各行业中比较有优势的项目。妹子你先要找到定位,或者说职业发展。不是怎么做,而是做什么。而找到定位的过程是要和人交流才能有收获的,我觉得你是有想法的,才工作一年时间能看到一些问题。在这里气氛也挺不错,这里挺多大叔都想以师带徒呢呵呵。
    另外,有时间最好把英语学好,若本身水平就不错,也不要丢掉,用得着的。
    最后,我自己认识的一些妹子职业生涯都终结于相夫教子了,我觉得这也是一种幸运。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3930 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:27 · PVG 18:27 · LAX 03:27 · JFK 06:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.