##有关本科生技术方向的选择等问题
自从开通了CSDN博客专栏《**软件项目实践中的C语言一瞥**》([http://blog.csdn.net/column/details/anotherc.html](http://blog.csdn.net/column/details/anotherc.html))之后,我经常收到读者的邮件,以下是一位在校本科生的邮件:
学长:
您好!
我是一名在读的大二学生,现在所学的专业(计算机科学与技术)并不是我当初填报这所学校想学的,但是我努力的改变使自己适应这个环境,让自己喜欢上这个专业,并且我做到了。我现在对IT是很感兴趣的。
或许是有中紧迫感吧,或许也是之前学的杂。马上进入大三了,眼看着毕业也快了,我不知道该怎么选择以后的就业方向,是做web开发还是移动平台的开发?想学web开发,但它又有前端和后台,我又两种都想学,但是有怕时间不够,学不好。
之前学了C、C++等,都做过了一些带项目作业,去年暑假的时候又因为老师项目原因我又学了java,并打算往Android的移动开发走下去,也用java做过几个swing项目,当然,可与时间写着完的。但是,坑爹的是老师的那个项目我连代码都没碰到过。转眼到了大二下学期,我的一个同学邀请我加入一个团队,因为他们需要技术人员(在我们学院这个小家庭,大家都觉得我的技术算是不错的吧,C、C++、Javad都还好。但是现在想想,只能算是我比他们勤奋了一点,多写了点代码),而这个是web的开发,所以我现在又在学wen开发,前端和后台(php)都学。但是,我有时候就会在想,我以后到底该往哪个方向走???
我看过学长写的博客,挺喜欢的,尤其是那先经验的分享。所以,我也想吧我现在碰到的问题写出来,想咨询学长。
以下是我的答复:
学弟:
你好!
看了你的邮件,我首先为你感到高兴,因为你虽然才上了两年大学,但学到了很多东西,包括:C、C++、Java语言以及WEB开发等,并且,你还用Java做过几个项目。从邮件可以看出:第一,你很勤奋;第二,你不停地在思考和尝试;第三,你的人缘也比较好(因为有同学主动邀请你加入一个团队)。
我无法决定你往哪个方向走,这要看你的性格特点、技术能力及兴趣爱好等。IT这一行,只要你在一个方向钻研得很深,成了专家,那么不管学的是什么,都是有用的;但如果你学的东西很多,但每一样都是学了皮毛,所谓“什么都懂,但什么都不精通”,那么你的发展也不会很好。
结合个人经验,我要告诉你下面这些事情:
第一,现在的软件系统非常的庞大,有前台、后台、底层等各个模块。不同的人完成不同的模块的设计、编码等工作,最后大家再将各自的模块结合而成为一个系统。因此,你不要想到自己要将一个系统所包括的所有东西都学会,这是很难、也是不现实的。你只需要将某一模块弄懂,那么你就是专家,你所学到的知识和经验就是一笔财富。
第二,具体到语言本身而言,C、C++、Java实现的模块也不一样。C、C++语言偏向于底层,而Java偏向于应用。举个例子,一套计费系统,可以用Java来编写WEB界面;用C语言来编写底层的通信模块,提供API供WEB页面调用。因此,要看你喜欢编写应用软件还是底层的软件。
第三,不要看到现在什么技术很热,就不管三七二十一地去学。你现在的主要任务是将专业基础打好,再适当地研究一下你比较感兴趣的技术。我看你一会儿学这个,一会儿又学那个,虽然不断地尝试是很好的,但也不能变化得过于频繁,否则就没有技术经验积累下来,以后的技术高楼也就没有一个好的根基。
以上是我个人的看法,请结合你的实际情况来参考。祝你在学技术的道路上越走越顺,请继续关注本人博客。
周兆熊
2014.05.09
(本人微博:[http://weibo.com/zhouzxi?topnav=1&wvr=5](http://weibo.com/zhouzxi?topnav=1&wvr=5),微信号:245924426,欢迎关注!)