【大牛经验】给新人程序员一些经验

给新人程序员一些经验

熟业务,精一块,在扩展

最近总有些断断续续的思考,想想从我入行以来,我到底学会了什么,做成过什么,以后要做什么,如何提升自己······· 工作3年了,常听人说3年,5年,10年是程序员的坎,每过一个都会有新的想法,新的改变。 最近刚失业,原公司要解散开发团队,转做其他业务,这个消息对我来说在意料之外,但是又在情理之中,只是没想到来的这么快,再这家公司待了2年,学到了不少技术,但是最后的半年,因为公司产品研发的一些问题,加上自身的懈怠和懒惰,基本上是在打酱油,现在想起来感觉很后悔,浪费了光阴,像这样能有一份收入同时又可以学到东西的机会其实是很难得的,只怪自己当时没领悟到。 然后就是投简历找工作,我预想的是有了工作经验再找工作应该不像当年刚毕业找工作那么难了吧,实际上却是当我拿着3年工作经验的简历面试了一些公司之后发现,其实我的能力对于胜任3年工作经验的工程师岗位还是有些差距的,突然感觉到比刚毕业时更无助的感觉,也后悔工作3年却没积累到3年的经验,也许我是一个经验用了3年,而不是有了3年经验。 我是做j2ee开发的,一直都在做网站方面的开发,但是这一段时间的面试下来,我感觉现在的公司招人特别是工程师这一岗位的要求是全能型人才,必须了解并掌握软件开发中每个环节的具体操作。而我,却只掌握了其中部分,其他的只有听过或见别人弄过,是只知其然,不知其所以然。所以鉴于我这样的情况,一些公司给我的定性是初级开发工程师,一开始我觉得很不高兴,哥好歹也工作3年了,就给哥这评价,可后来仔细一想,人家讲的未必没有道理。现在大部分软件公司的技术团队都不会很庞大,但是工作量和工作强度却是非常之大,如果一个团队成员不能独当一面,不能兼顾多方面工作,没有很全面的实力的话,整个团队效率和能创造出的效益也是非常低下的。 那我们作为一个java程序员到底需要掌握多少技术才能适应现在的用人单位呢? 我个人总结后觉得有以下这么几项: 1. java 基础   这就不用多说了吧,不用说精通,至少是常用的要熟练,不会说连jdk里面提供的类都没认全的(我确实有小部分不常用的没记住的T.T) 2. 各种工具的使用   eclipse,SVN ,数据库管理工具等等 3. j2ee 框架   只要你是用java来做WEB应用,绝对少不了使用j2ee框架,目前流行的有   1)struts 2)spring 3) hibernate 4)ibatis 5)spirngMvc 等等的其他一些相似的框架,还有项目架构中经常会用到的缓存框架例如memcached ,ehcache,oscache等Java缓存框架   你需要掌握基本使用,部署,性能调优,配置 4. 数据库基础   数据库一直是程序员需要重点掌握的一部分,当下主流的还是关系型数据库,产品有oracle mysql sqlserver db2,当然nosql型数据库也是未来方向,很多公司也已经在使用,如redis mongodb membase 等等   你需要掌握基本使用,和根据业务逻辑设计表,索引,视图,存储过程,函数等 5. 应用服务器   凡是web应用首先都要部署到应用服务器上,常用的产品有tomcat,jboss,apache,resin 等等,还有用来提升性能的反向代理服务器如nginx等   你需要掌握如何部署项目,基本调试,调优 6. Linux系统   我们平常的编码通常在windows环境下,可是生产环境却通常是在Linux下,因为微软的东西,你懂得   所以我们需要掌握的是shell脚本,vi ,各种软件的安装,部署,其中shell脚本是最重要的(我个人觉得哈) 7. 前端开发基础 html css js   如果你不是专攻服务器编程的话,你一定会接触前端开发,这其中html你需要掌握各种标签的使用,css首先你得看得懂是吧,js 目前来看属于一门独立的程序设计语言,也是前端中非常重要的一块,需要掌握其语法和一些常用框架如jquery,extjs等的使用(我之前的公司前端只负责切html和css,js啥的都是我们自己来) 8. 设计模式   面试官最喜欢问的问题之一,这个被很多人吹的很神的东西我个人认为既不用奉为圭臬,也不用弃如敝履,这是一个思想的东西,也许写一辈子程序那23个设计模式也不一定全用的上,但是知道并且能够在适当的时候用他来解决问题就够了 9. 数据结构 算法   记得国外哪位大神说过,编程=数据结构 + 算法 。虽然感觉平常的工作中用到的不多,但还是觉得这是一个内功的东西,不会这两样也许你也可以完成很多开发工作,但是如果你精通这两样,你的思想境界和思考问题的高度就不是一般人能比的了,如果想要在程序员这条路上继续走下去,不管以后是成为技术专家还是技术性管理人才,都是必须要烂熟于心的。 -------------------------- 上面几点是我觉得应该掌握的具体的技术,再讲些其他层面的吧 1. 项目管理   这里的项目管理我指的是对项目架构的理解和软件开发标准化流程的一些东西,因为一个团队除了技术老大之外其他成员也还是需要深刻的达成一个这方面的共识,不然没法共事对吧 2. 项目架构设计   这个就是需要大量实践和多看书来培养的了,如果你想成为架构师这是必须的,目前web方面的项目架构都是朝着高性能,高可用,大数据的方向,你需要掌握的不仅是上面提到的所有技能还有技术之外的产品,业务等更深更广的东西 上面仅仅是我工作中遇到和我认为应该掌握的,也是仅针对Java的web开发方向,如果你是android开发的话,还需要掌握android sdk中的方方面面。 如果将上述方面的技术都掌握到熟练的程度,胜任一个3年经验的开发岗位应该是没有问题了(我就没有全部掌握...T.T),当然 如果你希望你的技术水平不只是熟练的话,个人认为则需要把上述其中几项往深度方面修炼,然后有所成再往广度发展, 先在一个领域有足够的深度,再往广度发展会容易很多,职业道路也会好走很多。 --------------------------------- 首先感谢您看我啰嗦废话到这里,以上都是我在工作3年这个十字路口的一些所思所想,肯定有所不足和幼稚,希望您看到这里也能发表下您对您职业生涯的感想,我们大家一起交流成长,努力提高自己的技术水平,可以为将来更好的工作机会做准备。

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2017-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

黑客的世界,那些最神秘的黑客文化,你知道吗?

拥抱开源是最核心和最传统原则,编写其他黑客认为有趣或有用的程序,并将程序源送给整个黑客组织使用。过去我们称这些作品为“免费软件”,但这让很多人不清楚到底“免费”...

25960
来自专栏互联网高可用架构

从点线面体谈开发到架构师的转型【完整版】

17150
来自专栏罗超频道

小程序上线在即,App不会死,但移动互联网却会变天

张小龙在2017微信公开课Pro上发布的小程序即将在1月9日正式上线。在张小龙发布小程序之后,有两家来自杭州的创业者称,它们的估值均上涨了10倍——吸引眼球的成...

31260
来自专栏北京马哥教育

运维工程师的职责和前景

运维中关键技术点解剖:1 大量高并发网站的设计方案 ;2 高可靠、高可伸缩性网络架构设计;3 网站安全问题,如何避免被黑?4 南北互联问题,动态CDN解决方案;...

46450
来自专栏软件测试经验与教训

怎么让研发做好他们不重视但是对测试很重要的事情?

37680
来自专栏灯塔大数据

探秘 | 大数据创业真火,快看看这十家都是干啥的?

IDC预测,数据总量将从2016年的16.1ZB增长到2025年的163ZB。调研公司MarketsandMarkets预计,管理这些数据并让这些数据变得更有价...

29880
来自专栏钱塘大数据

四大银行(工建农中)大数据进展如何?

中国建设银行 中国建设银行信息技术管理部资深经理林磊明 ▼ ? ▼ 1、银行压力越来越大 从十二五走到十三五期间,银行业面临的各方面的压力越来越大,从我们的年报...

43840
来自专栏CSDN技术头条

从点线面体谈开发到架构师的转型

我工作十余年,从负责一个模块,到负责一个产品,再到负责整个支付平台的架构设计,包括业务架构、产品架构到应用架构,再到技术架构,是一个从点到面逐渐转型的过程,同样...

14050
来自专栏云市场·精选汇

小程序+公众号玩出新花样?有趣skr了

微信也是一张流量温床,奈何转化能力一般,而小程序的出现结合小程序一起,从公众号呈现内容,到引流吸粉,再到转化成交,很大程度上帮助了商家解决了高成本问题。

27850
来自专栏EAWorld

2018年最受欢迎的3种编程语言以及他们的年薪

原题:Top 3 most popular programming languages in 2018 (and their annual salaries)

16020

扫码关注云+社区

领取腾讯云代金券