软件开发要勤学习,会学习
学习软件开发很多人是中途改行学习。我是软件开发专业毕业的,从事软件开发也有了一段时间。而且现在从事软件开发的教学工作,结合我的学习和开发经验谈一下我对如何学习软件开发的看法。并不一定对每一个人都适合,但是希望对学习的人能有一点帮助
首先学习任何的语言都要从基础开始。在我教过的学生中,有部分人急于求成,希望能一步登天。开始学习的时候不太注意基础性的东西,或者认为那些很简单,或者认为那些没有用。这些想法都会对以后的学习带来很大的阻力。比如在开始学习c语言逻辑的时候,一定要弄明白程序的语法结构,对于结构的细节也要完全弄清楚。比如switch多路分支判断,一定要弄清楚各个关键字的用途,什么时候用,什么时候不必须使用。例如break等。这对于专业的人员可能是多此一举,但是对于初学人员一定要注意。起码在我教过的学生中就有能写出程序,但是对于程序中的一些基础知识并不清楚。还有就是程序的流程。起码对流程图的基础应该有初步的认识。很多的学生关注与代码的实现,而对于流程图的学习很忽略,或者根本就不理解,当你学习时间长的话,你就会发现你并不一定了解程序到底是怎么回事情。
一定要重技术,轻技巧。很多学生重技巧、轻技术,这是我在教学当中遇到的很严重的问题。大部分学生对于程序的实现非常感兴趣,尤其是一些具有特殊效果的程序,漂亮的界面,独特的运行效果。但是对于其中的技术并不关注,只在意如何能实现这种效果。其实程序的实现并不是那么重要,如果你对基础的技术,技术的特性充分的了解了,我想你能做到具体的实现。网站中有很多的源代码,我也鼓励学生多看一些,但是你看得化一定要弄清楚其中的技术运用,而不要只是关注效果。即使需要较长的时间!
每天给自己制定一个学习的目标。好多学生在学习一段时间后,尤其是具备了一些基础,能编写出一些简单的程序后就不知道课下学什么了。其实每个人的技术,无论多高都是一点点积累的。我建议的是每天给自己定一个解决问题或者学习某一点的目标。即使你认为的这个目标很简单,也要耐心的去学习或者去解决。我认为没有简单的技术,只要你不会都是不简单的。比如,你今天可以先制定一个学习目标:java中数据源的配置,这样今天晚上你就可以向着这个方向努力,无论是自学还是上网查资料,一定要弄清楚。不要东学一下,西学一下,哪一个都似是而非。
学习软件开发技术的时候不要刻意追新求奇,尤其是在初学阶段。好多人在初学的时候每听到一个新的技术都刻意的去追,比如听说了spring,好了,不考虑自己的实际情况,用好多的时间去学。但由于自己当前并不具备学习这个技术的能力(比如java的基础还不是很扎实)。这样不但学不会,而且浪费了大量的时间。你要知道,并不是学就是好,如果你用了好多时间学习一个你当前根本学不会的东西,还不如不学,那是在浪费时间。不要听别人或者上网看到一些对新技术的评论马上就心潮澎湃,马上去追,一定要考虑自己的真实情况。
加强一些辅助能力的培养,比如英语的学习。好多学生英语不太好。我的看法是这样的,你可以一点一点的积累。每天学一点。可能每天你感觉不到变化,但是天长日久,你会发现你的英文水平提高了很多。英语对软件开发的学习很重要,毕竟软件的大部分技术是英语国家的人创造的。
一个人技术的提高不是一天两天能看出来的。有些学生总是问我,为什么自己学了很长的时间但是感觉自己的水平并没有提高。其实你可能每天都在提高,但是每天提高的幅度你感觉不到,学习任何技术都是一样是一个积累的过程,时间长了你的水平自然高了,但是平时你感觉不到。就像你看你的朋友一样,你和他一直相处,即使相处10年,你也许不会感觉到他的变化,不是他没有变化,而是每天的变化太小,而你一直和他在一起。换成角度,如果你2,3年没有看到他,突然一看,你会发现他有很大的变化。