㈠ 我想自己開發軟體需要學習什麼
方法/步驟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++語言本身的理解。
你要想有好的發展,還是學吧。