現在的環境有點可惜啦因為寫程式需要有些基礎但等到大學之後才開始學就有點慢了像是邏輯概念阿,二進位運算,TCP/IP網路架購,XML...等這些東西學校有的會教,有的不會教有的教了但卻沒有指出發展的歷史脈絡很多技術的發展背後都有相關的需求支撐若是只從一部分的技術角度去切入,當然會覺得看不清
//當然會覺得看不清看不清~看2次,看3次..現在google,wiki..很方便的,連結在連結..歷史都出來了讀那麼多年的書..有的都讀到30歲,碩士..連學問都不知道怎麼做..很多人能力就在老師教而已..老師教的我會..我師沒教就不行學校畢業後..週日,晚上..就是吃喝玩樂了..去工廠..學長/師父不教..什麼爛公司沒東西學去工廠..學長/師父教..什麼爛公司,學長/師父兇得屁
一般的自學者比較容易遇到的問題大概是沒有一個明確的目標或是檢查點而亂設定一個太大的目標又可能牽涉到太多項目 而不知道如何下手然後結果就是什麼都開始不了也學習不到什麼如果真的對程式有興趣建議就從PHP開始先碰碰HTML,網頁,javascript,甚至資料庫,伺服器架設等等這些項目有許多資料資源可以參考遇到問題也容易找到答案寫個前端網頁也較容易設定一個目標真的要學JAVA其實原理也是差不多然後再往JAVA其他方向發展,你會較有概念和經驗設計樣式是進階者才需要思考的問題現在翻當然是一點無法體會只會催眠而已
讀什麼~學什麼都一樣..要工作為前提..上104,1111..看哪些程式語言最熱門..哪些技術最多買書,上官網看,學..到某一個程度..就要找工作上司,老闆給你很多任務..要會很多知識,語言, 技術..去把你讀1x年的書,你的研究把它串起來..有任務,就有目標,方向..一方面你把任務完成,另一面朝目標前進有人就對演算法有興趣..要做頂級工程師有人對系統有興趣,朝系統分析師前進有人對ERP有興趣,就去研究人流,物流,金錢流有人要當專案經理..拉拉甘特圖..
findaway wrote:我沒有資訊的背景,...(恕刪) 軟體架構設計時根據不同的抽象層次可分為三種不同層次的模式:1.架構模式(Architectural Pattern)2.設計模式(Design Pattern)3.代碼模式(Coding Pattern)--------------以下是代碼模式(Coding Pattern)階段------------------先確認自己是否已經夠了解程式語言了例如:C語言1.資料型態-變數在記憶體內的大小2.流程控制if else ,for loop3.函式4.陣列5.動態記憶體分配與靜態記憶體分配6.指標7.指標與陣列的差別備註:小弟學習的心得,指標可以是陣列,陣列不可以是指標8.指標+函式9.指標的指標備註:指標最多只能用到兩層**p,如果用到***p以上表示架構有問題程式還是可以跑但複雜度太高10.struct備註:1~10是結構化程式的基礎11.了解oop,類別實體化後是物件備註:實際上是記憶體配置的過程12.封裝13.繼承14.多型備註:問題:oop三大特性中哪個最重要,為什麼答案是多型,此特性讓程式更具有彈性16.what is Virtual Table?備註:了解多型內部是如何運作的簡單說就是'指標+函式'應用:call back function,delegate(委派)備註:11~16是物件導向程式的基礎--------------以下是設計模式(Design Pattern,簡稱DP)階段------------------17.先學習UML19.SOLID備註:只要遵守SOLID是不是DP就不是那麼重要了20.Creational 模式21.Structural 模式22.Behavioral 模式23.多執行緒模式備註:學習DP的過程需要一些實作經驗如果只是單純看看UML並實作出來個人認為很難體會各Pattern的精隨各Pattern有各自優缺點要找到是當時機使用別走火入魔了--------------以下是架構模式(Architectural Pattern)階段------------------節錄:http://thoughspace.blogspot.tw/2008/05/pattren.html由於軟體樣式(Pattern)的概念是源於亞歷山大的建築模式語言,因此大多數人都會以建築的觀點來討論軟體樣式。儘管蔡學鏞在《Design Pattern 新解》這篇文章裡,認為『許多人一講到 Design Pattern,就會扯到什麼建築設計,因為他們全都是看四人幫的「Design Patterns」經典本的解釋,沒消化就照單全收。 如果不能用更生活化的方式解釋 Design Pattern,我會懷疑他們是不是真的瞭解 Design Pattern 的真義。』反對把建築模式和軟體設計樣式畫上等釋號,然而,要解我為什麼認為「pattern」這個詞要譯為「樣式」,免不了在後面卻必須談談建築。小弟才粗學淺這階段還在學習中可以參考POSA全系列的書籍KENT BACK書籍Martin Fowler書籍此階段是整個軟體架構最上層常見的MVC也是屬於此階段的簡單說就是在建立Framework備註:作者小弟忘記是KENT BACK或Martin Fowler了有本著作真的是在教你怎麼打造自己的freamwork學習程式設計的順序是3.代碼模式(Coding Pattern)2.設計模式(Design Pattern)1.架構模式(Architectural Pattern)但其實軟體發展的歷史脈絡是1.架構模式(Architectural Pattern)2.設計模式(Design Pattern)3.代碼模式(Coding Pattern)例如:MFC中的Document 、 View因為doc內的程式碼會有大泥球(Big Ball of Mud)問題所以架構模式(Architectural Pattern)中的MCV Framework就發展出來了MVC在發展與應用的過程中因為multi view有資料同步問題所以設計模式(Design Pattern)中的Observer Pattern就發展出來了隨著2000後網頁設計程式的演進因為HTML語法與後端網頁程式語言相互交雜MVC架構被應用在各家程式語言中例如:PHP,asp.net,jsp,ror所以代碼模式(Coding Pattern)中的PHP備註:現在常見的Web MVC架構並沒有採用Observer Pattern所以不是MVC正名其實是Model 2參考:http://blog.turn.tw/?p=1539亞歷山大的建築模式語言書中常用:情境、問題、解決方案小弟在介紹上述MVC演進過程中情境 = MVC演進過程中因為 = 問題所以 = 解決方案有些Design Pattern的書籍也常用這樣的方式介紹
12.封裝13.繼承14.多型都很重要封裝..將Domain Know 包裝起來..降低複雜度..讓外面只看到簡單的API而不是複雜的邏輯..Public,Private,Protected..都很重要..開太多API,外面就知道你裡面邏輯,就會攻擊你..有相當多的知識在裡面繼承..讓你只要少少Code就有你的功能..技統架構師..寫一堆繼承..使用者使要Override 掉特定的方法就能實現它的功能你是輪胎廠..你要測試你輪胎的性能..你不用去做一台車子,然後測試輪胎效能..你只要使用車子繼承它,Oveeride 掉輪胎部分就可以了因為大部分人都是繼承別人的,會使用就好..相對對繼承不熟..