软件开发知识学习
1.软件开发一般要学习什么知识
如何成为好的程序员?How To Become a good Programmer?首先问你一个问题:你们在学校都学些什么课程?问这个问题的原因是,我认为学校的计算机科学基础课很重要。
如果你所在学校的课程设置合理,那你应该先把主要精力花在这些基础课上。很多学生看到基础理论就茫然,不知道这些图表,符号,甚至硬件的知识对将来的软件开发有什么用。
用处大得很哪。比如,操作系统课里讲到的多线程的东西在系统编程里很有用。
又比如,尽管你将来不会去涉及电脑的硬件,计算机架构里的知识对分析算法的性能(快慢等等)很有用。可以把计算机语言和开发工具比作文字,而把计算机科学的知识比做思想。
只有思想,不会行文,不行;但是,行文流畅,思想空洞,也不行。大学的阶段正是打好基础,丰富思想的年代。
成为一名好的程序员,不是简单地通过学几门课程就能做到的。我个人认为成为一名好的程序员的要素有:1。
扎实的基础知识;2。很强的解决问题的能力;3。
熟练的编程调试能力;4。创新能力;5。
团队合作能力;6。持续的自学能力;7。
好奇心 这些能力和品质(甚至可以说是习惯)都应该从大学阶段就着手培养,并且从身边的小事开始培养。比如,很多中国的大学毕业生都缺乏编程和调试经验。
学习C语言,考试过关就算学会了。课题项目中,只要程序能够编译,运行,并且输入输出满足要求就了事了。
但是,写程序的时候是否想过如何把程序写得更加精炼,高效,高质量?对程序调试中出现的问题是否刨根问底知道原因,还是不求甚解搪塞过去算数?还有,很多中国的大学毕业生对于知识的掌握肤浅,机械,没有好奇心,不会刨根问底。比如,学会了C++,有没有看过一个object在编译后,在汇编代码中是如何被初始化的?这个object的各个成员在内存中是如何放的?在一个成员函数被调用的时候编译器在汇编代码中加入了哪些额外的动作?虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到。
但是,你是否有过好奇心去知道?最后,一些中国学生的大问题就是死记硬背,没有学到某种算法技术的根本原理,没有应变和创新的能力。比如,有个问题是如何在不用额外内存的情况下把一棵树的同一层节点都连起来。
很多学生都能够回答这是一个广度遍历的问题。但是,课本上说了广度遍历是一定要有额外数据结构辅助的(队列)。
所以,不给额外内存怎么行?请看,课本上说的用队列的方法记住了,但是就是不知道为什么要用队列。如果深刻掌握了这个队列的作用,那么这个问题是很容易的。
举了这么多例子,我想说明的事,想成为一位好程序员(其实从事任何一个行业都是如此),重要的是要养成一个钻研,好奇,创新,动手,合作,不满足于填鸭,不满足于考试交差,不满足于表象的一种优秀的习惯。这不是学几门课能够一蹴而就的。
当然,如果你的在校课程不能使你满足,我以及论坛上的朋友可能能够给你推荐一些书或科目。我觉得要提高编程的能力,有一位良师很重要。
这位良师可以是在编程方面比你走在前面的同学,也可以是学校里你帮他做项目的老师,也可以是校外公司里的老师或老板。很多东西在实际的项目中,有一位良师察看你的程序,帮你指出不足,手把手地指导你调试,会对你很有帮助。
所以,当学会了书本上的基本知识以后,可以努力寻找一些有实用性的项目,借机在项目中找到高手指导。这个项目可以在学校找,也可以到校外找。
一开始不要计较报酬,甚至如果能够寻到高手指点,白干也行。其次是读好的源代码。
多读好的源代码就象多读好的文章,会有利于自己写作。能够读懂别人的代码也是一门硬功夫。
将来很多项目中你不会重头做,而是在半途加入(一般文档又不很齐全),因此需要能够很快读懂别人代码和想法的能力。再次是看一些编程方面的好书。
Writing Solid Code是一本很经典的书。最近出的Writing Secure Code也不错。
在你熟练掌握C以后,可以学一下C++并熟悉面向对象的程序设计思路。在掌握C++的基础上可以看一下Design Patterns。
看你要把编程学到多么专业。到一定程度,你会发现如果没有学过数据结构,算法原理,编译原理和操作系统,可能在某些方面会遇到一些障碍。
所以,如果有精力和条件的话,可以同时了解这些方面的知识。最后,我要提醒你不要因为编程这一业余爱好而影响了你本专业的课程,除非你决定转行。
对很多在校学生来说,本专业的成绩很重要,因为这个成绩可能会影响到将 来找工作,申请研究生院等等。英语也很重要。
我读翻译的计算机书总觉得隔了一层,翻得不贴切。能够直接阅读英文资料更好。
计算机专业修炼和武侠小说中功夫修炼都是一样的:金庸先生小说中提到高手习武包括内功和外功,其实这个道理在计算机专业同学中一样适用!内功包括:基本心法和高级心法 基本心法需要每个习武者必须修炼,包括:数据结构、编译原理、计算机组成原理、高等数学、线性代数以及外语等。高级心法根据个人需要定,比如:网络类需要学习包括TCP/IP原理等;软件工程需要学习包括软件工程的基础课程。
外功包括:基本招。
2.软件开发都学什么
要学的有:第一阶段52611、计算机操作基础2、Office办公自动化3、4102计算机组装与维护4、C语言1653第二阶段1、SQL Server2005数据库设计2、和高级查询3、数据结构4、C#面向对象程序设计5、HTML5与CSS3开发版6、JavaScript7、jQuery高级编程8、PHP开发第三阶段APP Development1、JavaScript特效制作2、jQuery应用权开发3、HTML5与CSS3开发4、Java面向对象程序设计第四阶段JAVAWEB Development1、产品流程应用2、移动平台界面设计3、Oracle数据库开发4、JavaWeb应用开发Mobile APP Development1、实训一:WEB前端设计与开发2、实训二:J2EE项目开发。
3.软件开发人员需要学习哪些知识
任何语言的学习都是循序渐进的,当然这是大道理了,谁都知道。
呵呵!
但是,作为C语言,如果你还不大了解,建议拜读一下谭浩强《C语言程序设计》,这是本不错的入门级别的书。一定要静下心来,尤其是指针这一块。
然后,当然是:实践+理论,也就是,学习的过程中,要多多的上机实践。
切忌,自己多动手实践,比盲目的看多少文章都重要。
当然,要想提高,那本人就不班门弄斧了。
共同学习,共同进步!
4.软件开发需要学什么
方法/步骤1:重视基础课的学习计算机虽然是高科技的象征,但又受到其它专业发展的制约。
计算机专业知识的学习同样要加强一些相关知识的学习。计算机学习过程往往是由硬件开始,走向软件,但最终又会走向硬件。
一个软件开发高手非常注重程序效率,而效率却往往与计算机硬件知识是紧密相关。因此高等数学、离散数学、线性代数等数学知识的学习也有一定需求。
尤其是软件开发高手,开发过程会涉及数学方面往往会更多一些。要自始自终地加强英语的学习。
因为目前的计算机程序设计语言主要是外国开发的,编代码的主要语句往往是英文,中文通常是做解释和说明用。有一定的英文基础,在计算机学习上可以事半功倍。
方法/步骤2:重视编程基本功的学习学习软件需要什么?一个优秀的程序员也不是十天半个月就能够造就出来的,必须要扎扎实实学好编程基础知识,要经历一个漫长且辛苦的学习和程序开发过程。因此计算机专业学生,首先要做好吃苦的准备。
当我们在学习一些基础课如java,C语言等,我们会感觉到似乎这些没什么大作用,这些近似于低级语言的东西好像再努力也难成大器呀!计算机教育应该重视代码编程的教育,专业学生也不能忽视代码开发的学习。如果你要问C语言这种代码开发功能具有多大的用处,大名鼎鼎的UNIX操作系统就是使用C语言书写的。
而且我们玩的所有游戏几乎也是使用C语言编写的。学习C语言的难度比学习汇编语言的难度小多了,而且C语言是一门“必修课”所以每一位立志成为电脑编程者的用户都必须征服C语言这座山峰。
方法/步骤3:理论联系实践学习编写程序,不仅要领悟老师的各种知识点,多看教材,还要结合课程重视上机的练习。很多学生在理解老师知识点和看教材上花了很多时间,却不重视上机的练习,最终会走向“书呆子”类,很难在软件开发中占有一席之地。
在看教材、听课的同时,要将知识点在上机过程中做第二消化,这样便比光消化课本会强得多。当然每次上机应该做好准备,很多学生是无目标的上机,其学习效率当然会很低。
上机前要计划一下上机做些什么,要有一些新思路来设计和调试程序。只有在上机过程中不断发现问题,解决问题,才能逐步迈向程序员之路。
又一些同学光重视上机,忽视理论的学习,这些同学刚开始好像进步快,但到了一定的层次,就会停滞不前了。因此,实操要与理论同步,紧密结合,方可为编程打下扎实的基础。
总结学习软件需要什么?软件编程需要实践。方法/步骤4:深入学习,练就高手经过一定时间的学习、实践,你已经具备了较扎实的计算机编程方法和技巧。
正因为你有了上面的基础,学习起新的语言来更是轻车熟路。总之,学习软件需要什么?实际和其他的一些技术错不多,只要你肯吃苦,没什么学不成的,所以只有想不到没有做不到,告诫软件爱好着要想掌握它,就要实践、实践、再实践。
当学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法。