㈠ 我想自己开发软件需要学习什么
方法/步骤1:
重视基础课的学习
计算机虽然是高科技的象征,但又受到其它专业发展的制约。计算机专业知识的学习同样要加强一些相关知识的学习。计算机学习过程往往是由硬件开始,走向软件,但最终又会走向硬件。一个软件开发高手非常注重程序效率,而效率却往往与计算机硬件知识是紧密相关。
因此高等数学、离散数学、线性代数等数学知识的学习也有一定需求。尤其是软件开发高手,开发过程会涉及数学方面往往会更多一些。
要自始自终地加强英语的学习。因为目前的计算机程序设计语言主要是外国开发的,编代码的主要语句往往是英文,中文通常是做解释和说明用。有一定的英文基础,在计算机学习上可以事半功倍。
方法/步骤2:
重视编程基本功的学习
学习软件需要什么?一个优秀的程序员也不是十天半个月就能够造就出来的,必须要扎扎实实学好编程基础知识,要经历一个漫长且辛苦的学习和程序开发过程。因此计算机专业学生,首先要做好吃苦的准备。
当我们在学习一些基础课如java,C语言等,我们会感觉到似乎这些没什么大作用,这些近似于低级语言的东西好像再努力也难成大器呀!计算机教育应该重视代码编程的教育,专业学生也不能忽视代码开发的学习。
如果你要问C语言这种代码开发功能具有多大的用处,大名鼎鼎的UNIX操作系统就是使用C语言书写的。而且我们玩的所有游戏几乎也是使用C语言编写的。
学习C语言的难度比学习汇编语言的难度小多了,而且C语言是一门“必修课”所以每一位立志成为电脑编程者的用户都必须征服C语言这座山峰。
方法/步骤3:
理论联系实践
学习编写程序,不仅要领悟老师的各种知识点,多看教材,还要结合课程重视上机的练习。很多学生在理解老师知识点和看教材上花了很多时间,却不重视上机的练习,最终会走向“书呆子”类,很难在软件开发中占有一席之地。在看教材、听课的同时,要将知识点在上机过程中做第二消化,这样便比光消化课本会强得多。当然每次上机应该做好准备,很多学生是无目标的上机,其学习效率当
然会很低。上机前要计划一下上机做些什么,要有一些新思路来设计和调试程序。只有在上机过程中不断发现问题,解决问题,才能逐步迈向程序员之路。又一些同学光重视上机,
忽视理论的学习,这些同学刚开始好像进步快,但到了一定的层次,就会停滞不前了。因此,实操要与理论同步,紧密结合,方可为编程打下扎实的基础。
总结学习软件需要什么?软件编程需要实践。
方法/步骤4:
深入学习,练就高手
经过一定时间的学习、实践,你已经具备了较扎实的计算机编程方法和技巧。正因为你有了上面的基础,学习起新的语言来更是轻车熟路。
总之,学习软件需要什么?实际和其他的一些技术错不多,只要你肯吃苦,没什么学不成的,所以只有想不到没有做不到,告诫软件爱好着要想掌握它,就要实践、实践、再实践。当学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法。
㈡ 学习软件的人用不用学编译原理和汇编
当然要学啦,学计算的人应该懂得一般的编译原理及汇编程序。不断丰富自己的知识。
㈢ 学习编译原理的重要性
编译原理代表了软件技术的最高层次,它表示了一个由人的理性思维到形式思维的过程,形式思维属于数学思维,接近计算机思维.编译原理的技术可以应用到软件开发的各个方面,包括需求分析,架构设计,模式等等,都可以应用到,语言是人类最伟大的工具.编译原理以语言为核心,构建了完美的解决方案.将现实生活中待解决的问题,以语言来描述,再翻译成计算机所识别的语言,形成完美、灵活、高效的神奇演绎。而语言的实现过程,将囊括许多算法和工具。
学习编译原理这门课程让我们在写代码的时候更简洁灵活,同时,学习编译原理可以提高你自己的程序设计的精简度以及有利于提高我们编译程序员的个人素质与能力。我们应该好好学习这门课程。
㈣ 学软件开发真的不需要基础的吗
首先不建议自学,慢,有问题不知道如何解决,很快就会失去耐心和信心
其次软件开发是有很多分类的,如果你偏重应用软件,不需要从最基础的东西学起。比如什么编译原理、计算机原理等等都不用学
再次软件开发属于多学科整合,需要相关知识。比如做游戏开发起码要会打游戏,知道一般应该怎么操作才好开发。比如做财务软件,应该有基本的财务知识,不然只做个收入减支出,不能真正实用。
最后搞软件开发是有捷径的。先看下书,对照开发工具有个最基本概念。然后找本有实例的书,边学边练,第三步从网上找别人编好的源代码,分析学习,加深概念。很快就能初步掌握开发技巧,然后边实践边学习,就改变了枯燥的背语法、背函数的学习方式。
当然,有人指导或互相学习,更能快速入门
如果有压力同时有人给指导,一门编程语言零基础2个月应该能入门
㈤ 编译原理究竟有没有用对编程的人
我跟你说,编译原理太有用了。
我是做手机游戏的,现在做一个游戏引擎。既然是引擎,就需要提供抽象的东西给上层使用。这里,我引入了脚本系统。
这个脚本系统包括一堆我根据实际需求自行设计的指令集,包括基本的输入输出,四则运算,系统功能调用,函数声明,调用等等(其实你要是用过lua或者其他游戏脚本你就知道了。)整个结构包括指令集、编译器、虚拟机等部分。这样,引擎提供一些基础服务,比如绘图,计算位置等,脚本就可以非常简单控制游戏。甚至快速构建新游戏。你应该知道QUAKE引擎吧?
这里提供给你一个计算器的小程序,应用了EBNF理论,支持表达式,比如(2+3*6)*4+4,你自己体验一下它的简洁和强大。
/*
simple integer arithmetic calculator according to the EBNF
<exp> -> <term>{<addop><term>}
<addop>->+|-
<term>-><factor>{<mulop><factor>}
<mulop> -> *
<factor> -> ( <exp> )| Number
Input a line of text from stdin
Outputs "Error" or the result.
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char token;/*global token variable*/
/*function prototypes for recursive calls*/
int exp(void);
int term(void);
int factor(void);
void error(void)
{
fprintf(stderr,"Error\n");
exit(1);
}
void match(char expectedToken)
{
if(token==expectedToken)token=getchar();
else error();
}
main()
{
int result;
token = getchar();/*load token with first character for lookahead*/
result = exp();
if(token=='\n')/*check for end of line */
printf("Result = %d\n",result);
else error();/*extraneous cahrs on line*/
return 0;
}
int exp(void)
{
int temp = term();
while((token=='+')||(token=='-'))
switch(token)
{
case '+':
match('+');
temp+=term();
break;
case '-':
match('-');
temp-=term();
break;
}
return temp;
}
int term(void)
{
int temp = factor();
while (token=='*')
{
match('*');
temp*=factor();
}
return temp;
}
int factor(void)
{
int temp;
if(token=='('){
match('(');
temp = exp();
match(')');
}
else if(isdigit(token)){
ungetc(token,stdin);
scanf("%d",&temp);
token = getchar();
}
else error();
return temp;
}
其实编程学到一定程度总是没有方向了,总是在问学C/C++下一步怎么学啊,觉得掌握了该语言了云云,实际上,你缺少的就是这些软的东西,缺少的是理论。
编译原理不是单一的理论,它涵盖了一个niche,里面可以学到很多其他知识,比如正则表达式、BNF、EBNF、分析树、语法树还有很多运行时环境等知识
这些给你带来的是非常丰厚的回报。不说多了,学完运行时,你就会加深对C++语言本身的理解。
你要想有好的发展,还是学吧。