最近,我收到一位研究生朋友的邮件,大致内容如下:
周老师您好,我是XXX大学软件工程专业的一名研究生我叫XXX,学习的方向是java,有些问题不知道周老师能否帮我解惑下,在此谢谢老师!
1.我应该专注于后台的学习么?我在实际学习中,感觉到前台和后台也是分不开的总要涉及到,学习的过程中我学习了SSH大量的知识,再回头看看前台的一些技术jsp,html,css,jQuery感觉技术太多了,需要大量的练习记忆,不知道到底应该如何学习这些知识?
2.精通SSH(在此以SSH举个例子)等等技术到底需要个什么程度,是熟悉流程还是完全自己能够全部写出比如SSH的搭建,整合等等(我目前是按照后者做的)
3.除了java相关的技术学习以外,我还想关注目前互联网的其他技术比如云计算,Hadoop, spark等等,不知道是否可行呢?
4.关于数据库我到底应该如何看待?(我个人感觉数据库在我自己的学习过程中的作用不是很大,有了框架以后更是不需要怎么操作数据库所以想请老师指导下我!)
谢谢周老师!!麻烦了!!
我的答复如下:
同学你好,我不知道你是学弟还是学妹,就直接叫同学吧。也许你已经从我的博客上看到了,我从事的是通信类软件的开发,主要涉及到的编程语言为C语言。因此,我对java语言并不是很熟。以下,我只有结合自己的工作经历来回答你的问题。
(1) 因为现在你还在学校,还不知道未来要从事的工作的具体内容是什么,所以你尽量不要只专注于某一个方向的学习。你的第一个问题是“应该专注于后台的学习么”,我的回答是不应该。你现在要做的是对系统或一个知识体系有一个宏观上的把握,然后做到对某个具体的方向有一定的深入的了解就可以了。研究生阶段的学习时间也就这么两三年,一晃就过去了,你应该追求知识的广度,然后才是适当的深度。另外,你感觉要学的技术太多,不知道到底应该如何学习这些知识。办法只有一个:不停地实践。不要只是记忆背诵,要找到实际的项目来做,从代码的编写或系统的设计等方面来学习。你可以到网上去找一些相关的项目来练手,记住一定要动手敲代码,这样才能提高自己的能力,同时也才能够加强对所学知识的记忆。
(2) 作为在校的学生,你讲“精通”二字还为时尚早。你能够做到的只是熟悉,只是比一般人懂得多一点。你现在学习SSH的方法是对的,要亲自参与SSH的搭建和整合,这样才能够了解其组成和工作原理,在此过程中也要多动手编写代码。
(3) 比尔盖茨曾说过,微软距离破产永远只有18个月。确实,IT领域发展得太快了,新的知识和工具层出不穷,这就促使我们要不断地学习。除了java相关的技术学习以外,你肯定也需要对最新的技术发展有一定的了解,即使你还是在校学生。当然,你关注的方面不仅仅是云计算、Hadoop、spark等,其它所有的热门技术发展方向都请尽量留意一下。你可以通过CSDN来获取这些信息。
(4) 对于数据库的相关学习,我建议你在学校里面要牢牢掌握其基础知识,包括SQL语句的编写、数据库的运行原理及调优等。由于学校和工作单位的差别,你在学校不可能对数据库有一个深入的认识,只有工作之后,涉及到相关开发项目,才能够一步步加深对数据库的了解。我对数据库概念的建立也是在工作中来逐渐完成的。在学校里面,不要轻视任何一门知识,虽然有可能现在用不到,但并不能说明未来也用不到。你要有一种开放的学习的心态和意识,以后在工作岗位上要随时准备学习。
总的说来,我感觉你是一个很勤奋的学生,希望你掌握正确的学习方法,并好好利用在校的学习时光。祝你找到满意的工作,请继续关注本人博客。
(PS:这个问题在V众投上的回答:http://www.vzhongtou.com/question/415,欢迎大家关注V众投。)
周兆熊
2014年7月22日
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)