軟件開(kāi)發(fā)需要學(xué)什么
長(zhǎng)春軟件開(kāi)發(fā)是需要具備哪些能力?
(1)邏輯思維能力,包括數(shù)學(xué)的邏輯思維能力,因?yàn)檐浖_(kāi)發(fā)是一門(mén)邏輯能力要很強(qiáng)的專業(yè)。
(2)良好的語(yǔ)言表達(dá)能力和溝通能力
這是軟件開(kāi)發(fā)工程師應(yīng)該具備的一個(gè)很重要的素質(zhì),因?yàn)檐浖こ處熓菫橛脩糸_(kāi)發(fā)軟件,經(jīng)常需要面對(duì)客戶。
(3)獨(dú)立思考能力,動(dòng)手能力
學(xué)習(xí)的各個(gè)知識(shí)點(diǎn)和思維都需要自己去自己去練習(xí)才能鞏固,學(xué)校老師最怕的一種學(xué)生就是學(xué)習(xí)了知識(shí)及技能只停留在書(shū)本或者課堂上的理解,而不去實(shí)踐去操作,只有在動(dòng)手的過(guò)程中你才會(huì)不斷發(fā)現(xiàn)問(wèn)題,然后解決問(wèn)題,這樣的反復(fù)。才能提高自己的編程能力,這樣你才能成為一個(gè)真正意義上程序員。
(4)過(guò)硬的心理素質(zhì)
軟件開(kāi)發(fā)工程師在實(shí)際的軟件開(kāi)發(fā)過(guò)程中,各種不可預(yù)料的情況隨時(shí)可能發(fā)生:需求來(lái)回修改,工期突然發(fā)生變更甚至很多個(gè)人生活的很多情緒都會(huì)參雜進(jìn)來(lái),因此軟件開(kāi)發(fā)工程師可能需承受巨大心理壓力。開(kāi)發(fā)軟件本身就是一項(xiàng)艱苦的腦力和體力勞動(dòng),軟件工程師開(kāi)發(fā)成功一個(gè)軟件,要經(jīng)過(guò)反復(fù)修改,要花費(fèi)大量的進(jìn)間和精力,一個(gè)軟件工程師如果沒(méi)有過(guò)硬的心理素質(zhì),他就很難排除干擾、穩(wěn)定情緒的按照嚴(yán)格的規(guī)范實(shí)施一個(gè)成功的軟件項(xiàng)目。
軟件設(shè)計(jì)需要學(xué)什么---在學(xué)校
不論你學(xué)的是vb、java、C、C++、C#你都要學(xué)習(xí)下面的東西,這些在學(xué)校都是開(kāi)有專門(mén)的課程的。
1、計(jì)算機(jī)硬件原理:了解硬件怎么工作,知道軟件是怎樣在硬件上工作的,CPU架構(gòu),指令,怎么做運(yùn)算,內(nèi)存如何工作,內(nèi)容地址是怎么回事,硬盤(pán)如何存儲(chǔ),數(shù)據(jù)和指令如何通過(guò)電路和元器件轉(zhuǎn)化成電流和脈沖,可能需要數(shù)據(jù)電路的原理。無(wú)論從事計(jì)算機(jī)哪方面,比如網(wǎng)絡(luò)、軟硬件,這個(gè)原理都必須精通。因?yàn)橛?jì)算機(jī)技術(shù)是很抽象的,但是在現(xiàn)實(shí)和具象上是依賴硬件。
2、操作系統(tǒng)原理:在了解了硬件原理后,了解操作系統(tǒng)是怎么工作的。因?yàn)樗械能浖际腔诓僮飨到y(tǒng)的,而操作系統(tǒng)本身也是一個(gè)軟件。這些結(jié)合硬件來(lái)理解,就更容易了。
3、編譯原理:了解軟件從源文件到目標(biāo)文件,到執(zhí)行的全過(guò)程。如果有必要,其中的東西也要專門(mén)買(mǎi)書(shū)去研究。這樣代碼上不容易犯錯(cuò)誤。了解了硬件原理和操作系統(tǒng)原理的基礎(chǔ)上,了解編譯原理也就比較簡(jiǎn)單。當(dāng)然每種語(yǔ)言編譯過(guò)程都不一樣,但是原理都是基本相同
4、數(shù)據(jù)結(jié)構(gòu)和算法分析:好的算法,事半功倍,此外可能還要補(bǔ)一些高中數(shù)學(xué)、高等數(shù)學(xué)的知識(shí)。
以上每部分,都要至少1-2個(gè)月或者150個(gè)小時(shí)以上的鉆研,要做到基本掌握。如果不掌握以上部分,不是說(shuō)學(xué)不了軟件,但是如果想學(xué)精通,想比一般人強(qiáng),是不可能的,因?yàn)槟阒恢涝趺醋觯菫槭裁催@樣做不清楚,就是死記硬背了,反反復(fù)復(fù)的記憶效率也很差。
一般學(xué)校每種都會(huì)教(只是入門(mén)),精通主要看就業(yè)和自學(xué)。