对于快要毕业的大学生来上海找工作,我觉得最重要的是基础知识一定要好.我推荐看JAVA编程思想这本书,很多公司笔试的JAVA方面的题目出自这本书.另外JSP,SERVLET,JDBC一定要有所了解,这个能说明你在大学的时候实习过,做过一些小项目的.HIBERNATE,STRUTS,SPRING这些东西我不推荐你去学习,我觉得你应该学习如何处理异常,学会用JDBC访问数据库,学会如何释放资源,如何控制数据库事务,学会如何写自定义标签,这样能够显著的提高你的编程水平.
工作一年的后我觉得应该回过去看看大学的数据结构,算法,操作系统,然后应该对面象对象要有更深刻的理解,设计模式也应该慢慢开始涉及到(JAVA变编程思想这本书建议多看几次).我不建议工作一年就开始换工作,因为找工作要花时间,新工作就要适应新的框架和新的业务,这样你就会乱费很多时间的.我还是不建议你去看HIBERNATE,STRUTS,SPRING这样的东西,虽然你工作中可能要用到它.对于英语我觉得应该早做准备,强迫自己看一些英文方面的书籍,提高自己的口语水平,另外我还要强调一点,适当的参加培训是很有必要的,上海有很多的外语培训机构(主要是培训商务交流),效果很不错的,不过也很贵的,所以去前一定要计划好,不要象大学那样交了钱不去上课或者不认真听课,那样就最好先不要去.
工作两年后,如果你算法,数据结构,设计模式等等有比较深的了解的时候
我觉得HIBERNATE,STRUTS,SPRING的实现方法你应该能够很快理解.
我还是不推荐你学习这些,我推荐学习EJB.推荐书籍精通EJB,ED ROMAN写的那本.就象他说的这本书不是宣传EJB,不是写关于EJB世界如何精彩,不是为了消灭某个其他对手等等,学习这本书是希望你能构建出健壮,安全,可扩展的服务器部署.他里面很多的概念你可能在工作中碰不到,但是不表示你可以不需要理会,而应该去思考如果碰到这样的问题我应该怎样解决,然后可以去网上找资料解决它.(这本书是写EJB2.0的,但是我还是推荐,看完后你绝对不会觉得是乱费时间,我也觉得没有做过项目也很难理解这本书的)
我觉得一个程序员要到一定档次,英语是必须的,所以我觉得如果能有一个全英文的工作环境工作一段时间是很应该的.现在基本上的技术规范全部是英文写的,很多技术论文也是英文的,如果英语不行,水平很难提高.其实对于在上海工作三年的程序员基本上知道自己应该如何发展的.
再说说上海JAVA程序员的大概工资吧.一般应届毕业生3K左右,三年工作经验5K以上,5年工作经验8K以上.这个工资是指很多公司全部能够给出,而且也比较容易找到的.对于很厉害的人肯定不合适.大公司和外企在我说的基础上乘1.5倍.(其实上海找软件开发大专就可以了,只不过要牺牲一部分福利,和需要更高的能力,本科就一点问题也没有)
对于从外地来上海找工作的学生,我建议做好长期打算,毕竟找工作是需要开销的,上海的交通费用很高,而且是省不掉的.但是心态一定要摆正,首先要有决心,工作一定可以找到,另外不要浮躁,其实找工作应该是一个不段学习的过程,
当你面试一家公司,那么笔试的题目在你面试完后一定要花时间把你你不会的搞明白,笔试十家后你会发现其实题目差不多的.态度一定要谦虚,待遇可以适当降低
但是不要低于2.5K(不过一般你转正都能要求到这个数目的,只要你好好和老板谈).要相信工作可以找到也要做好长期打算(就是万一短时间找不到工作的打算,不要轻易退场,挺一挺就过去了),经济上要准备充足.而且面试不要担心什么的,上海软件公司多得很,你今天面试不过,三个月后这个公司可能又要你去面试的.他不会记得你的.在投简历的时候,简单点的两页就可以突出你在学校期间做过哪些项目.只要是软件工程师就可以投,最多乱费两页纸,不要做太好的简历,是乱费钱.网上投简历就应该全部投,最多是不要你去面试,不会少什么的.找工作能力是一方面,技巧也有的,只有自己慢慢体会了.
再说说为什么我不推荐学习HIBERNATE,STRUTS,SPRING,因为我一直就在用这个,现在突然发现自己好象无法前进了.所以现在又重新学习基础,但是问题是我年龄大了,事情多了,可以供学习的时间不多了.所以我才极力推荐在工作的前三年一定要把基本功打扎实.现在有很多程序员会用HIBERNATE,STRUTS,SPRING来写项目,可是确不会写一个JDBC连接,对JAVA的多线程一点不知道,SERVLET不会的也很多.这个是很不好的,也是现在国内很多程序员的通病.为什么很多人说程序员到30就写不动代码,学不会新东西了,你基础那么差还能学会就真的怪了.
不要把时间放到讨论EJB和SPRING哪个好哪个差上面,不过我还是倾向EJB的,很多人说EJB能实现的SPRING也能实现(好象有EJB能实现的但SPRING不能实现,但是没有完全了解不敢说),但是为什么不想想SPRING能实现的难道EJB不能实现,实现麻烦一点有什么关系呢,学习一个东西不是要看到它的优点,而更应该看到它的缺点.呵呵,不要骂我,我认为SOA将成为潮流,把骂我的时间放到了解SOA上.而且想去大的外企,那么社会招聘百分之八十会问EJB的.进去大的外企有两个方式,一个是社会招聘,但是这个面试特别严格,基础不好外语不好的基本上没有戏.(社会招聘指招聘有工作经验的,应届毕业生叫校园招聘)另外一个就是通过外包进去,这样进去要求要低,但是你必须乱费几年,等机会直接进你外包出去的公司或者跳巢到和他同一档次的外企.
很多人说待遇不重要,重要的是学到东西,这个是不对的.待遇是你价值的体现,学东西就为了更好的待遇,所以要工资的时候不要觉得不好意思,想要多少就直接说出来.只有生活有保障才能更好的学习,更好的工作.工资高,心情就好,做什么也快呀.其实应该这么说,能学到什么不重要,重要的是工资要高.
所谓程序员只能到30岁的说法是明显不对的,程序员也不是一个跳板,不要总是想去做系统分析,去搞管理,而应该扎扎实实的学习.做程序员有什么不好,从程序员开始,往中级程序员,高级程序员,职深程序员,专家程序员一直走下去.
再次强调,外语很重要,请把它放在第一位置.最近好象软件行业也开始好转起来了,对日的外包多不说,欧美的外包也多起来了,而且外包的性质也发生变化,从最初的编码和测试发展到分析,设计,编码,测试全部外包了.这样和做国内的项目区别不大,所以还是很有发展前景的.