Re: 軟體設計、物件導向、職銜、科系認同、錢,以ꐠ…
看板CSSE (電腦科學及軟體工程)作者milochen (16/100天自我觀察)時間18年前 (2007/01/08 02:20)推噓2(2推 0噓 4→)留言6則, 2人參與討論串1/7 (看更多)
※ 引述《tinlans ( )》之銘言:
: 鑑於個人前陣子培養的新習慣:
: 延伸原主題過三步換標題以減輕原 po 心理壓力。
: 所以先換標題,
: 不過我不是教授也不是從商的,
: 標題下得不好就請見諒。
: ※ 引述《lg31cm (我住5F)》之銘言:
[恕刪]
其實活在台灣的資訊裡,很多都會迷失掉
話說自己也是在科技大學畢業後,在當兵時,
剛好想說有機會會面臨找工作的問題,又聽說某某公司考C++是用英文的
所以也來讀英文,順便去看看國外在討論問題時,他們的重心在那邊。
接著才發現,不對耶!! 跟之前認知差距好大, 有非常大的不對勁。
以前大學時代學校教的就是一個main.cpp打天下,反正老師也只知道說
"反正你就是要 #include <iostream>" 才能開始寫,然後會寫遞迴程式的人
,其程式功力在班上就可以排行前幾名了。但也也是一直到了大學
因為我也是發現怎麼技職跟一般大學又有不對勁(就是類似台灣跟國外)
所以有一段時間去摸高中學的集合論裡面講的function為何,所以到後來才真的搞懂
到底遞迴是怎麼一回事,才算是有個完整的了解。若要說真的全盤通,
也已經是在當兵的時候了。
不經感嘆,雖然同樣都是努力,不過在台灣就是很容易接受到錯誤的資訊與情報
在我當兵時,曾經有人說「失敗的人講的話永遠不可採信,只有成功的人說的話才算數」
她的道理在於「因為失敗的人之所以失敗,是因為他跟本就搞不清楚自己失敗在那」
在台灣,如果平時不多作功課,主動的去接觸世界上的成功人事(不能僅限於台灣)
,多吸收成功人事的觀點,所謂的看書不是去看他們的自傳,因為這種會出書的東西
說穿了就是為了在討好普遍的觀眾,自傳千萬不可看,而是要與他們親身交談去作了解。
以前高職的時候,每一天至少都會花三個小時以上在作coding,不過不是for job
只是純碎因為 想到什麼東西,就可以寫出那個東西,因此而感到興奮。
退伍出來工作也半年了,前三個月跟不會作系統分析的人作系統分析
(感觸是不知道那一天才能遇見真的SA,來作有用的SA,很多SA本身程式設計概念
都還停留在procedural,然後號稱自己物件導向分析)
等到後三個月在作C++開發以後,才發現其實物件導向分析是什麼
自己真的也是完全都不知道。
C++ 怎麼寫呢?? 寫了三個月才發現, 打從底子來說,自己跟本就是不會C++的人。
應該要來整個全部重新學習,否則一直拿著錯誤的舊觀念再繼續學下去的話,
跟本就不可能有學好的一天。
但是說實在的,如何安排一個好的流程,來學好C++,自己其實也不知道到底要看什麼
書,或者如何的來規劃。這方面的資訊可能版上很多,但其實自己也不知道那個才是
對的,那個是可以follow的方向。所以真的要學習,就是一直作開發,有問題就發問。
也別無其它辦法了。
像高職對於作硬體設計方面有一套很完善的流程,可以讓你好好學之後,會對整個
設計非常清楚。而一般大學特別是在數位邏輯設計實務上特別不行,這時不得不佩服
當初在歸劃這個學硬體設計的課程時,竟然可以把這麼複雜的東西,整理到
國中數理程度的就能夠容易上手。這真的是相當不簡單的一件事。
不過不知道像要學軟體開發的話,不知道有沒有這種一連貫的流程。如果真有就好了:(
以C++來說,其實台灣應該本來有很好的環境可以培養,
因為有聊到一位在西安那邊的人,碩士畢業後有去作軟體開發工作
Design Pattern是他們最基本在用的術語,他們的認知裡這是需要經驗但很好用的東西
,他們的認知裡認為,作程式設計的人,不能不會這本書。他們也很喜歡侯捷,因為
大陸那邊的人其實英文並不是很好,翻譯的書藉對他們的學習帶來很的幫助,所以
像侯捷翻譯的書,對他們來說實在是太有幫助了。後來想想,
台灣的技術還沒被大陸覆蓋掉??,覺得還滿不可思議的
後來想想可能是因為台灣的企業界所保有的 硬體設計 經驗知識
是大陸那邊一時還無法取代的關係。
Google 跟 MS 在大陸徵才,月薪也只有給二萬元人民幣,
位於北京中國科學院 ,一個少年班的,26歲拿到博士,可以自己一個人獨立開發
distributed virtual machine,薪水我有點忘了,好像月薪一萬還兩萬人民幣。
什麼是少年班? 沈向洋 就是少年班的,
反正 少年班 是 算是一種很猛的天才特殊教育 XD
這些都是大概自己透過因緣際會的關係,實際獲得的一些小情報
然後一方面又看到自己的C++,跟本就是直接稱的上「不會C++」還比較貼切
: 抄完這些東西之後就什麼也沒補充了,
: 然後初學者,包括自以為 C++ 都學通了的人就真的被耍到,
: 真的有什麼想要 reuse 的東西就給它「繼承」下去,
: 譬如說,Derived 這個 class 想 reuse ItemA、ItemB、ItemC 這三個 classes 的功能,
: 而 ItemA、ItemB、ItemC 都繼承了 BaseItem,
: 他們就真的這樣寫下去:
: class Derived : public BaseA, public BaseB, public BaseC {
: ...
: };
: 首先遇到的問題有可能是需要 virtual 繼承的問題,
: 不過這個跟他們解釋過以後普遍還覺得 ok 可以接受;
: 但是他們程式寫到後來 (接近 UI 那一面的時候),
: 突然想到可能需要依 user 輸入來改變要 reuse 的 classes,
: 也就是用其它事先繼承自 BaseItem 並已實作的現成 classes 來替代。
: 然而這些人的腦袋被教科書誤導已深,
: 在歷經一番 code 亂改亂 try 都得到 error messages 之後,
: 直接丟出一句「C++ 怎麼沒有支援動態繼承啊?」,
: 這時他們用 OO 寫 code 的意願就逐漸大大的被動搖了,
: 因為他們發現事實沒有想像中以及書中所說的完美,
: 腦袋裡都想著(嗶--)的怎麼這麼麻煩,林(嗶--)花在解決這 error 的時間,
: 早就用舊方法寫完了,OO 這東西怎麼看起來簡單用起來這麼複雜啊。
: 要是好心跟他們說其實應該用合成的方式而不是亂用繼承,
: 也就是:
: class Derived {
: ItemBase *first;
: ItemBase *second;
: ItemBase *third;
: ...
: };
: 這樣的方式來 reuse,
: 就可以達成他們當初打算用「動態繼承」所想要達成的目的,
: 結果你猜猜看絕大多數的人是啥反應?
: (嗶--)!那當初叫林(嗶--)花那麼多時間學繼承怎樣用是要衝三(嗶--)!
: 這樣寫不是還要林(嗶--)多寫一堆(嗶----)東西去轉 call members 裡的東西!?
: (嗶--)你的 OO!(嗶--)背回去寫 C 還比較快!學這三(嗶--) OO 浪費林(嗶--)時間!
: 差不多就是這類型的反應,
: 我也不諱言,
: 走到這一步還沒把 OO 甚至是整個 C++ 扔掉的,
: 在我目前為止看過的人裡面差不多是總數的 4%,
: 但我前面也說過這個 % 數只是一種假象,
: 是大家都高學歷、人人有大學讀、校校都有資X系才造成的假象,
: 全世界是有幾個國家會像台灣這樣的?
: 以台灣這種人口數量和產業種類和來說,有這幾 % 就夠多了;
: 好了為了避免進入邪惡的政治議題,這裡也是點到為止。
說真的自己跟本不知道 繼承 要如何使用
頂多只知道 用 concrete class去繼承 abstract class而己
而且我只會用像大大您說的 像這樣子的寫法
class Derived {
ItemBase *first;
ItemBase *second;
ItemBase *third;
...
};
很多以前在金石堂買的C++書,所說的那個繼承,到最後都會發現
為什麼都用不起來。到底繼承的精隨在那邊,
現在想想還真的不知道何時才需要concrete class 去繼承 concrete class。>"<
很糟糕,繼承它有這麼多的規範,有friend,protect,public,private什麼的
以前都從書亂看看來的,現在等真的上戰場時,發現怎麼都不知道怎麼用
而且之所以用,也常常只是為了要讓 在 語法 合法, 而 語意 上常常是無意義的
>"<
其實還蠻想要把以前學的C++ 概念重新刷掉,
整個把自己當作白紙從新來學 。 但又不知道
該如何去判斷 那個 書可學,那個書不可學。
或者那個書適合,那個書不適合看。
見笑了 >"<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.146.217
※ 編輯: milochen 來自: 125.225.146.217 (01/08 02:20)
推
01/08 10:32, , 1F
01/08 10:32, 1F
→
01/08 10:37, , 2F
01/08 10:37, 2F
→
01/08 10:38, , 3F
01/08 10:38, 3F
→
01/08 10:49, , 4F
01/08 10:49, 4F
→
01/08 10:50, , 5F
01/08 10:50, 5F
推
01/10 00:32, , 6F
01/10 00:32, 6F
討論串 (同標題文章)
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章