軟件開發(fā)需要學(xué)什么知乎(軟件開發(fā)需要學(xué)哪些課程)
本篇文章給大家談?wù)勡浖_發(fā)需要學(xué)什么知乎,以及軟件開發(fā)需要學(xué)哪些課程對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、怎樣從零開始學(xué)習(xí)安卓軟件開發(fā)?
- 2、軟件開發(fā)人員需要學(xué)習(xí)多門編程語言么 知乎
- 3、軟件開發(fā)如何開始學(xué)習(xí)?
- 4、軟件開發(fā)難學(xué)嗎??
怎樣從零開始學(xué)習(xí)安卓軟件開發(fā)?
1、Java se基礎(chǔ)
1).Java基本數(shù)據(jù)類型與表達(dá)式,分支循環(huán)。
2).String和StringBuffer的使用、正則表達(dá)式。
3).面向?qū)ο蟮某橄?,封裝,繼承,多態(tài),類與對象,對象初始化和回收;構(gòu)造函數(shù)、this關(guān)鍵字、方法和方法的參數(shù)傳遞過程、static關(guān)鍵字、內(nèi)部類。
4).對象實(shí)例化過程、方法的覆蓋、final關(guān)鍵字、抽象類、接口、繼承的優(yōu)點(diǎn)和缺點(diǎn)剖析;對象的多態(tài)性:子類和父類之間的轉(zhuǎn)換、抽象類和接口在多態(tài)中的應(yīng)用、多態(tài)帶來的好處。
5).Java異常處理,異常的機(jī)制原理。
6).常用的設(shè)計(jì)模式:Singleton、Template、Strategy模式。
7).JavaAPI介紹:種基本數(shù)據(jù)類型包裝類,System和Runtime類,Date和DateFomat類等。
8).Java集合介紹:Collection、Set、List、ArrayList、LinkedList、Hashset、Map、HashMap、Iterator等常用集合類API。
9).JavaI/O輸入輸出流:File和FileRandomAccess類,字節(jié)流InputStream和OutputStream,字符流Reader和Writer,以及相應(yīng)實(shí)現(xiàn)類,IO性能分析,字節(jié)和字符的轉(zhuǎn)化流,包裝流的概念,以及常用包裝類,計(jì)算機(jī)編碼。
10).Java高級特性:反射和泛型。
11).多線程原理:如何在程序中創(chuàng)建多線程(Thread、Runnable),線程安全問題,線程的同步,線程之間的通訊、死鎖。
2、android UI編程
1)、Android開發(fā)環(huán)境搭建:Android介紹,Android開發(fā)環(huán)境搭建,第一個Android應(yīng)用程序,Android應(yīng)用程序目錄結(jié)構(gòu)。
2)、Android初級控件的使用:
TextView控件的使用
Button控件的使用方法
EditText控件的使用方法
ImageView的使用方法
RadioButton的使用方法
Checkbox的使用方法
Menu的使用方法
3)、Android高級控件的使用:
ListView的使用方法
GridView的使用方法
Adapter的使用方法
Spinner的使用方法
Gallary的使用方法
ScrollView的使用方法
RecyclerView
4、對話框與菜單的使用:
Dialog的基本概念
BlockquoteAlertDialog的使用方法
DatePickerDialog的使用方法
Menu的使用方法
自定義Menu的實(shí)現(xiàn)方法
5.控件的布局方法:
線性布局的使用方法
相對布局的使用方法
6.多Acitivity管理:
AndroidManifest.xml文件的作用
Intent的使用方法
使用Intent傳遞數(shù)據(jù)的方法
啟動Activity的方法
IntentFilter的使用方法
Activity Group的使用方法
7、自定義控件實(shí)現(xiàn)方法:
自定義ListView的實(shí)現(xiàn)方法
可折疊ListView的使用方法
自定義Adapter的實(shí)現(xiàn)方法
自定義View的實(shí)現(xiàn)方法
動態(tài)控件布局的上實(shí)現(xiàn)方法
上拉刷新下拉加載更多
3、android網(wǎng)絡(luò)編程與數(shù)據(jù)存儲
1).基于Android平臺的HTTP通訊:
Http協(xié)議回顧
使用Get方法向服務(wù)器提交數(shù)據(jù)的方法
使用POST方法向服務(wù)器提交數(shù)據(jù)的實(shí)現(xiàn)方法
使用Http協(xié)議實(shí)現(xiàn)多線程下載
使用Http協(xié)議實(shí)現(xiàn)斷點(diǎn)續(xù)傳
2).Android數(shù)據(jù)存儲技術(shù):
SQLite3數(shù)據(jù)庫簡介
SQL語句回顧
SQLite3編程接口介紹
SQLite3事務(wù)管理
SQLite3游標(biāo)使用方法
SQLite3性能分析
訪問SDCard的方法
訪問SharedPreferences的方法
初級工程師
技術(shù)要求:
基本知識點(diǎn)
比如四大組件如何使用、如何創(chuàng)建Service、如何進(jìn)行布局、簡單的自定義View、動畫等常見技術(shù)
書籍推薦
《第一行代碼 Android》、《瘋狂Android》
中級工程師
技術(shù)要求:
稍微深入的知識點(diǎn)
AIDL、Messenger、Binder、多進(jìn)程、動畫、滑動沖突、自定義View、消息隊(duì)列等
書籍推薦
《Android開發(fā)藝術(shù)探索》、《Android群英傳》
AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的區(qū)別;
Binder:從Java層大概理解Binder的工作原理,懂Parcel對象的使用;
多進(jìn)程:熟練掌握多進(jìn)程的運(yùn)行機(jī)制,懂Messenger、Socket等;
事件分發(fā):彈性滑動、滑動沖突等;
玩轉(zhuǎn)View:View的繪制原理、各種自定義View;
動畫系列:熟悉View動畫和屬性動畫的不同點(diǎn),懂屬性動畫的工作原理;
懂性能優(yōu)化、熟悉mat等工具
懂點(diǎn)常見的設(shè)計(jì)模式
搞懂view的滑動原理
搞懂如何實(shí)現(xiàn)彈性滑動
搞懂view的滑動沖突
搞懂view的measure、layout和draw
然后再學(xué)習(xí)幾個已有的自定義view的例子
最后就可以搞定自定義view了,所謂萬變不離其宗
高級工程師
技術(shù)要求:
稍微深入的知識點(diǎn)
系統(tǒng)核心機(jī)制
基本知識點(diǎn)的細(xì)節(jié)
設(shè)計(jì)模式和架構(gòu)
書籍推薦
《Android開發(fā)藝術(shù)探索》、《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》、《Android內(nèi)核剖析》
繼續(xù)加深理解”稍微深入的知識點(diǎn)“中所定義的內(nèi)容
了解系統(tǒng)核心機(jī)制:
了解SystemServer的啟動過程
了解主線程的消息循環(huán)模型
了解AMS和PMS的工作原理
能夠回答問題”一個應(yīng)用存在多少個Window?“
了解四大組件的大概工作流程
…
基本知識點(diǎn)的細(xì)節(jié)
Activity的啟動模式以及異常情況下不同Activity的表現(xiàn)
Service的onBind和onReBind的關(guān)聯(lián)
onServiceDisconnected(ComponentName className)和binderDied()的區(qū)別
AsyncTask在不同版本上的表現(xiàn)細(xì)節(jié)
線程池的細(xì)節(jié)和參數(shù)配置
…
熟悉設(shè)計(jì)模式,有架構(gòu)意識學(xué)習(xí)方法
-----------------------------------------------------------------
作者:小碼同學(xué)
鏈接:
來源:知乎
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
軟件開發(fā)人員需要學(xué)習(xí)多門編程語言么 知乎
作為一個從開發(fā)人員轉(zhuǎn)行的人,我自己認(rèn)為不需要精通多門語言,但是都要略懂一點(diǎn):
精通一門或者兩門編程語言就好,畢竟現(xiàn)在語言猶如繁星,你根本沒有精力去學(xué)習(xí)那么多,更別談精通了;
但是多少都要懂一點(diǎn),為什么呢?因?yàn)樵谡嬲_發(fā)時,你會遇到各種各樣的問題,有的插件需要用其他語言寫(比如與硬件的對接大多數(shù)時候需要用到C和匯編),所以到時候你至少也要看得懂這些語言的語法
語言只是工具,精髓在算法(也可以說是邏輯),不管有多少種編程語言,真正應(yīng)用到軟件時,都是需要算法來實(shí)現(xiàn)的,所以學(xué)多門語言,不如努力學(xué)習(xí)算法,到時候需要用到新語言時,你只需要學(xué)習(xí)相關(guān)語法和函數(shù)即可
希望能幫到你
軟件開發(fā)如何開始學(xué)習(xí)?
開始自學(xué)軟件編程課程
編程語言種類繁多,各有千秋,在學(xué)習(xí)之前需要明確自己要學(xué)習(xí)哪一門編程語言。確定之后需要制訂一個合理的學(xué)習(xí)計(jì)劃,并且持之以恒地執(zhí)行學(xué)習(xí)計(jì)劃。在學(xué)習(xí)過程中要養(yǎng)成良好的學(xué)習(xí)習(xí)慣。
不愛研究、坐不住,但凡三天打魚兩天曬網(wǎng),或者對計(jì)算機(jī)不喜歡等一類人不適合學(xué)習(xí)編程,哪怕一時努力,最后也不是結(jié)不了業(yè),就是功敗垂成,難以在這條路上走遠(yuǎn)。編程入門點(diǎn)是興趣。興趣是學(xué)習(xí)的最大動力源。需要有恒心有耐心,進(jìn)入這個行業(yè)并不難,就算你沒有基礎(chǔ)和經(jīng)驗(yàn),也是可以學(xué)好的。那些創(chuàng)造編程語言的人,創(chuàng)造計(jì)算機(jī)的人也都是從零開始的。他們也是在不斷揣摩、不斷學(xué)習(xí)和實(shí)踐之火才獲得成果。沒有一個技術(shù)大牛是從一開始就什么都會的,都是從什么也不會開始的。只需你有興趣而且肯努力,可能慢慢就會發(fā)現(xiàn)學(xué)習(xí)軟件開發(fā)也沒有想象中的那么難。
2、要重視編程基本功
絕大部分行業(yè)內(nèi)的大牛都是經(jīng)歷過辛苦而又長期的程序開發(fā)學(xué)習(xí)和實(shí)戰(zhàn)進(jìn)程的,假如你想要成為一名優(yōu)秀的程序員,最基本的編碼學(xué)習(xí)肯定是不能跳過的,底層的知識必需要扎實(shí)掌握,就如同Java開發(fā),項(xiàng)目訓(xùn)練前提是掌握一定的java課程基礎(chǔ),假如不先把基礎(chǔ)穩(wěn)固,就直接做項(xiàng)目的話,是很難做出來而且學(xué)不會那種邏輯思考的能力。
3、附加技能的學(xué)習(xí)
前面說了軟件開發(fā)涉及到一種邏輯思維,那么必定要學(xué)習(xí)一些數(shù)學(xué)知識,學(xué)會數(shù)學(xué)公式的運(yùn)算。軟件開發(fā)行業(yè)是特別注重效率的,假如你編寫的某個功能的邏輯不是很清楚,可能整個項(xiàng)目都會繞一個很大的圈子,這樣的代碼存在許多冗余成分,浪費(fèi)很多時間,所以要懂得培養(yǎng)自己必定的邏輯思維。其次就是英語的學(xué)習(xí)了,雖然學(xué)軟件開發(fā)不需要有很強(qiáng)的英語能力,但有必定的英語才能的話,更加有利于自己往更深邃的技術(shù)發(fā)展。
4、動手能力的培養(yǎng)
作為一個程序員動手能力是非常重要的,你學(xué)習(xí)的各個知識點(diǎn)和思維都自己去開發(fā)操練才能穩(wěn)固,作為老師最怕的學(xué)生就是他們只停留在書本或許課堂上的了解,而自己不去實(shí)實(shí)在在的把它完成出來,著手做的過程中你會不斷發(fā)現(xiàn)問題,然后自己去解決問題,這樣你才能成為一個真正的高手。也要學(xué)會找到有效的學(xué)習(xí)辦法,這樣學(xué)起來會如魚得水的??梢韵瓤匆曨l學(xué)習(xí),學(xué)起來就比曾經(jīng)看書快許多,并且也更簡略,覺得自己掌握了一定的知識后,可以嘗試做項(xiàng)目,從小項(xiàng)目開始練手到商業(yè)項(xiàng)目實(shí)戰(zhàn),懂得實(shí)操的軟件開發(fā)工程師才是企業(yè)真正喜歡的
軟件開發(fā)難學(xué)嗎??
軟件開發(fā)可能比一些其他專業(yè)更難學(xué),因?yàn)樗枰獙W(xué)習(xí)的知識點(diǎn)較多,而且涉及到的領(lǐng)域也比較廣泛。軟件開發(fā)是一個非常技術(shù)性的領(lǐng)域,需要掌握大量的理論知識和實(shí)踐技能,因此可能有些難度,但這并不代表沒基礎(chǔ)的學(xué)生就學(xué)不會。零基礎(chǔ)的學(xué)員也不要擔(dān)心,現(xiàn)在很多培訓(xùn)班都是針對0基礎(chǔ)的學(xué)員設(shè)計(jì)的課程,都針對不同應(yīng)用行業(yè),不同語言做定向培訓(xùn)。所以,難不難也要因人而異。
就拿國內(nèi)從業(yè)比較廣泛的Java開發(fā)工程師來講,高中畢業(yè)生都可以做。既然高中生都能從事于Java開發(fā),說明軟件開發(fā)實(shí)際上并沒有我們想的那么難,畢竟目前所學(xué)的軟件技術(shù)并不是做科研。
想要讓軟件開發(fā)變得簡單,我們需選擇一門容易上手的編程語言。從國內(nèi)軟件行業(yè)來看,目前Java的開發(fā)者數(shù)量還是相當(dāng)龐大的,而且可從事的領(lǐng)域也比較廣。當(dāng)然,我并不是在這里勸你學(xué)習(xí)java,而是讓自己選擇適合的編程語言,并知道自己使用的編程語言能做什么,用在哪些地方。
對于零基礎(chǔ)想學(xué)java的人,千萬不要害怕,不要覺得沒基礎(chǔ)就學(xué)得很吃力,學(xué)不會等等。
剛開始零基礎(chǔ)入門的學(xué)習(xí)進(jìn)度是很慢的,不用著急,慢工才能出細(xì)活,說白了Java入門階段也就是個熟練的過程花費(fèi)的學(xué)習(xí)時間比較長。不可否認(rèn),大家在開始接受新事物的時候都會陷入困境的。
學(xué)習(xí)是循序漸進(jìn)的,零基礎(chǔ)入門Java到底難不難,只有自己接觸到課程才知道。當(dāng)然,沒接觸之前學(xué)起來可能會覺得有點(diǎn)難,但是當(dāng)你入門后你就會發(fā)現(xiàn)越來越有趣了,不光是學(xué)習(xí)java語言,其他語言也一樣。
記住,軟件開發(fā)需要有一定的基礎(chǔ),但是并沒有特別高的門檻,只要具備有一定的英文和數(shù)學(xué)基礎(chǔ)(初高中水平就好了),就可以學(xué)軟件開發(fā),尤其是編程語言的使用,因此對于軟件開發(fā)而言,只要能夠長期堅(jiān)持下去,并且多多從事實(shí)際項(xiàng)目的開發(fā),就可以積累經(jīng)驗(yàn),達(dá)到一個比較高的水平,所以軟件開發(fā)并不難學(xué),只要堅(jiān)持,就可以有所成就。
至于零基礎(chǔ)學(xué)java所用的時間,我以培訓(xùn)時間為標(biāo)準(zhǔn),大學(xué)生一般的學(xué)習(xí)時間是5-6個月,高中生確在兩年左右。
軟件開發(fā)需要學(xué)什么知乎的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于軟件開發(fā)需要學(xué)哪些課程、軟件開發(fā)需要學(xué)什么知乎的信息別忘了在本站進(jìn)行查找喔。