ThomasTCH wrote:
如果只是興趣就不用方向...(恕刪)


樓主需要的是興趣+方向

只怕他兩個都沒有
現在的環境有點可惜啦
因為寫程式需要有些基礎
但等到大學之後才開始學就有點慢了

像是邏輯概念阿,二進位運算,TCP/IP網路架購,XML...等
這些東西學校有的會教,有的不會教
有的教了但卻沒有指出發展的歷史脈絡
很多技術的發展背後都有相關的需求支撐
若是只從一部分的技術角度去切入,當然會覺得看不清
//當然會覺得看不清

看不清~看2次,看3次..
現在google,wiki..很方便的,連結在連結..歷史都出來了
讀那麼多年的書..有的都讀到30歲,碩士..連學問都不知道怎麼做..

很多人能力就在老師教而已..老師教的我會..我師沒教就不行
學校畢業後..週日,晚上..就是吃喝玩樂了..

去工廠..學長/師父不教..什麼爛公司沒東西學
去工廠..學長/師父教..什麼爛公司,學長/師父兇得屁

OriginStar wrote:
現在的環境有點可惜...(恕刪)


90% 的軟體工程師,都不是在學校學的,很多甚至是非本科系。
台灣的教育檢討也沒用,差到一個極點也不知反省,只能靠自己走出一條路了



台灣大多是學店,學歷賣得掉就萬幸了。


不過軟體進步太快,別說教育界
業界要跟得上都有困難,

因此絕對不要為學而學,
要有動機或是目的,最好還要有壓力
一般的自學者比較容易遇到的問題

大概是沒有一個明確的目標或是檢查點

而亂設定一個太大的目標

又可能牽涉到太多項目 而不知道如何下手

然後結果就是什麼都開始不了也學習不到什麼

如果真的對程式有興趣

建議就從PHP開始

先碰碰HTML,網頁,javascript,甚至資料庫,伺服器架設等等

這些項目有許多資料資源可以參考

遇到問題也容易找到答案

寫個前端網頁也較容易設定一個目標

真的要學JAVA

其實原理也是差不多

然後再往JAVA其他方向發展,你會較有概念和經驗

設計樣式是進階者才需要思考的問題

現在翻當然是一點無法體會

只會催眠而已

讀什麼~學什麼都一樣..
要工作為前提..
上104,1111..看哪些程式語言最熱門..哪些技術最多
買書,上官網看,學..
到某一個程度..就要找工作
上司,老闆給你很多任務..要會很多知識,語言, 技術..去把你讀1x年的書,你的研究把它串起來..
有任務,就有目標,方向..
一方面你把任務完成,另一面朝目標前進

有人就對演算法有興趣..要做頂級工程師
有人對系統有興趣,朝系統分析師前進
有人對ERP有興趣,就去研究人流,物流,金錢流
有人要當專案經理..拉拉甘特圖..


OriginStar wrote:
現在的環境有點可惜...(恕刪)


>>有的教了但卻沒有指出發展的歷史脈絡
學校這樣教大學四年根本教不完
現在的學生認真的也沒幾個


findaway wrote:
我沒有資訊的背景,...(恕刪)


軟體架構設計時根據不同的抽象層次可分為三種不同層次的模式:
1.架構模式(Architectural Pattern)
2.設計模式(Design Pattern)
3.代碼模式(Coding Pattern)

--------------以下是代碼模式(Coding Pattern)階段------------------
先確認自己是否已經夠了解程式語言了
例如:C語言
1.資料型態-變數在記憶體內的大小
2.流程控制if else ,for loop
3.函式
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.先學習UML
19.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 掉輪胎部分就可以了
因為大部分人都是繼承別人的,會使用就好..相對對繼承不熟..
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 7)

今日熱門文章 網友點擊推薦!