Java语言本身降低了编程的难度(相对C语言而言),这样使得更多的人可以成为Java程序员。参差不齐就在所难免。
在实际的基于Java的项目中你会大量使用各种各样的Framework。这些Framework在提供了强大的开发支持同时也向开发人员屏蔽了更加底层的实现。作为一个程序员,你不仅需要了解这些Framework如何使用,还应该了解他们是如何运作的。只有这样才能提升你的价值。例如:当你在使用Spring的时候有没有考虑过它是如何实现IOC的呢?什么是动态代理?你在使用一个方便的工具发布你的WebService的时候你有没有认真的读过W3C的相关标准?诚然这些东西并不会对你的目前的项目提供更多的帮助,但它会提升你对程序的理解,使你成为一个真正的程序员。
作为一个Java程序员,仅仅关于Java语言的相关技术是不够的。多看看其他语言的东西,C,C++,Ruby,Python,PHP,ActionScript,JavaScript等等等等。在你的可能是漫长的职业生涯中你都应该有所涉猎。
最后要知道自己的道路方向,N年以后是想做PM或者Architecture,这都需要另外的学习来充实自己。
程序员不好做,应届毕业的程序员更不好做。没人会把你当盘菜,你需要把自己变成一盘菜。