• 6

關於非本科系的程式設計師的生涯規劃

非本科系的程式設計師
有一點很重要:選擇正確的領域

請參考下面文章:
http://www2.nuu.edu.tw/~elearning/nuuopencourse/93open/93004/html/ch1/1-1.htm


軟體分為 "系統軟體" 與 "應用軟體" (圖最右邊的淺藍色字)

在"系統軟體"領域要拼贏認真的資訊科系程式設計師很難
但場合換到"應用軟體"領域,結合自己原來的科系就會有相對優勢
就像這位大大說的:
davidho wrote:
像IE的他對生產流程特熟,工時概念強,加上他自己很有興趣也會機械語言(純資管的是只會應用層)
國貿的,他對商業邏輯上有相對表現
會計那位,在跟財務單位談需求時,是大部份IT較難聽懂的
其實我覺總結是,你要想想你原來背景可以幫助你自己什麼,在溝通上比純IT多出什麼優勢?


在系統軟體領域,資工的以下課程非常重要
非資訊科系學生很難在這一塊靠自修學會
andrew1218 wrote:
但事實上, 資工絕大部份的課根本沒有在教寫程式.
OS, DS, 計組, Algorithm, 工數, 數值分析, Cal, PL....etc
若要學寫程式的課, 幾乎都是選修的課.
畢竟, 演算法才是處理問題的核心, 而程式只是達到目的的手段之一.


但如果換到應用軟體領域
我就看過有程式設計師一邊看會計課本、一邊寫程式
(然後我和他聊了一下,他說以前沒修過會計學)
寫出來的東西,其結果我想不用多說了...


雙重悲劇 wrote:
但個人喜好從零自製想要的框架,沒有特別去碰Spring與hibernate


我看你應該要多多去歷練,在業界說熟java的Web部分,不熟java ssh 架構肯定被打槍,不用特別去想甚麼本科和非本科的,小弟商科畢業的,在業界也10幾年了,還不是活得好好的,寫程式只是實作產品的一個方法,最終最有價值的那個是要能做出好的產品的人,努力讓自己變這一類的人吧
jiangbruce888 wrote:
我看你應該要多多去...(恕刪)


謝謝您的建議,在去年差不多這個時候,我有買了SSH的書籍來看,但由於沒有實際在應用的工作環境,我就沒有特地去碰了。
(避免硬學又忘記)

不過我這些年來都是用JDBC... 還為了AJAX與JSON,自製了DAO模組來用,就當作練SQL語法這樣。
(反正Hibernate最後也是走JDBC...XD)

如果工作上有機會碰到SSH,就不會猶豫了。

蝦米爸爸 wrote:
非本科系的程式設計...(恕刪)


謝謝您提供此圖表。

先前有在大學學過應用數學(工數)、物理數學、數值分析及古典物理模擬(手寫證明運動方程式給系統跑結果)為專題。
自學期間則是將遞迴、幾種不同的排序方法、掃二維、三維以及遊戲開發類的向量都實作了很多次。

目前我的本科能力應用到IT方面,如何帶來雙管齊下般的高價值仍在模糊地帶,或許會在FAB的work-flow發現一些眉目吧!
雙重悲劇 wrote:
如果我有更多的人手與會思考的腦,ERP、MES系統也能做。
不過我覺得,此樓已偏了,如何精進自己,我再去尋找更佳的答案。


如果我有更多的人手與會思考的腦,ERP、MES系統也能做。
這點小弟其實很懷疑您真的做得到嗎?
因為您沒真正待過現場

還是您想開發像IBM的系統架構
光開發MQ對您來說可能就是很大的負擔了
不知道您對IPC了解多少?
socket部分看來您應該是OK的
那其他的部分呢?

雙重悲劇 wrote:
然而我也把演算法REVIEW一遍,從二維演算到三維演算,無論是排序、遞迴、搜尋,但其實演算法對於目前應用到的地方非常少。

很多演算法與資料結構技巧其實您天天在用
但自己卻不知道
您永遠站在巨人的肩膀上,所以您認為您跟巨人一樣高


目前認為您缺的部分是:
1.軟體工程:
帶團隊做專案時會需要用到
請問給您帶團隊,開發時你會用甚麼開發模式?
TDD?DDD?Event-driven programming?
還是不管自幹自幹好了

2.POSA
軟體架構
MVC只是其中的一小塊而已
自己寫一個MVC?
這一項是小弟帶過組員的基本條件

3.資料結構:這個部分您很弱
遞迴我幾乎每個程式都會用到
不然collection物件應該也常用到吧!?
有人問過我oracle,MySQL,MSSQL搜尋最佳的時間複雜度是多少?
看到一段sql時,你是否能判斷出此SQL時間複雜度?

4.演算法:
應用到的地方非常少?
deep learning,最近不是很紅?
做大數據分析不會用到嗎?
不是演算法應用少,只是您沒再用而已

5.產業domain knowledge不足
以前我在CIM寫程式
我哥在廠端是製程工程師
每天跟我抱怨我寫的程式或CIM程式有多難用
所以我自願跑去廠端
待過製造部跟整合部門
到現在已經三年多了
其實是domain knowledge不夠強...
寫的跟現場要得根本就不一樣

6.態度:杯水有點滿了
虛心一點,EQ有待加強
對您會比較好
從回話中發現您會常跟其他人起口角
只要有人說你程式程度不好的話,比不上本科系等等
您整個小宇宙就爆炸了...
是不是本科系有那麼重要嗎?

您文中提到的事蹟
小弟幾乎也都經歷過
這樣的程度的人其實很多...
也許您比我想像中的厲害
只是目前還看不出來....

寫程式自己過得開心就好了
小弟認為寫程式應該聽著歌
用機械式鍵盤把code打出來
整個人放空,舒服...
chunchiahsieh wrote:
6.態度:杯水有點滿了..(恕刪)


謝謝您的指點,第六點受教了,這很重要,我放在第一個回應您。

至於ERP與MES,您請先忽略,剛剛才發現不是同個人回應我,因為那只是個...「去巨匠學一學就好了」的延伸。

請先轉看#38,然後#40

後面接著你看到了我的回應#42,當時我一直以為是我在#38回應的對象。

已寫信致歉。 (暈)

chunchiahsieh wrote:
4.演算法..(恕刪)


對於您說的演算法部分,我的意思是目前我接觸的工作內容很少去「寫」到,我文意不清造成您的誤會了。

chunchiahsieh wrote:
5.產業domain knowledge不足 .. (恕刪)


雖然我之前是PE,研究所也做類似的製程,但其實到了業界,要長時間觀摩著才能夠累積出domain knowledge
目前是保持著正常上班,一邊累積實力,但下班後的idle令人心慌。

chunchiahsieh wrote:
3.資料結構:這個部分您很弱 ... (恕刪)


我方便詢問是從哪邊判斷出強弱的嗎?


chunchiahsieh wrote:
2.SOPA ... (恕刪)


我這方面確實沒有跨足到,也不知道這是什麼。
小弟上班兩年,能認識到的名詞還不多...

對於MVC...我憶起曾被資工的質疑:「為什麼不直接M對V就好了,C不是很多餘嗎?」

OTZ

chunchiahsieh wrote:
1.軟體工程: ... (恕刪)


目前是被帶的階段,已經筆記起來,感謝。
SOPA打錯字了
POSA:Pattern-Oriented Software Architecture
沒注意到打錯字...

雙重悲劇 wrote:
3.資料結構:這個部分您很弱 ... (恕刪)
如果我有更多的人手與會思考的腦,ERP、MES系統也能做。... (恕刪)

您之前文中提到同時連線數400+(分散式主機)
會提出來我想您對此程式應該充滿信心吧!
請問您有用到queue嗎?
如果有鐵定不只400+

小弟曾經做過同時20000筆request
定時要處理一天兩次,由各工廠主機送出來
我是參考IBM的MQ寫個queue搞定的(queue server)

IBM MQ包含了很多資料結構的知識在裡面
某公司拋棄IBM MQ
成立一個課自幹MQ
下場不是很好

您認為:如果我有更多的人手與會思考的腦,ERP、MES系統也能做。
基於上述認為您把整個架構想得太簡單了
說白了有點"無知"

雙重悲劇 wrote:
對於MVC...我憶起曾被資工的質疑:「為什麼不直接M對V就好了,C不是很多餘嗎?」...(恕刪)

唉..這種程度的工程師不知道有多少
MVC..我問10個工程師..9個都回知道..我懂我懂,不就是M是xx,V是xx,C是xx..
然後Review程式..大家都沒照規範寫..

我曾經飆過,也開過很多堂課..
最後老闆說~限制不要太多,不然找不到人,只要先把功能做出來..你年輕時又多會..
最後放牛吃草,隨便他們怎麼寫

Android,IOS 非同步Web Call,沒幾個人會..每一個人UI都卡卡..或者就Wait dialog 三不五時跑..
看了我都想APP丟掉.
什麼商業價值的東西都還沒寫出來,光是UI反應,操作都做不好..還說會寫APP

我用M寫去手機DB.另一隻背景Server 去跟 Remote Service 作非同步
不管手機有沒有網路,都是跑得很順暢..

資工/管..寫程式要很瘋..
很多人認為寫程式不就這樣
很多人大學畢業,老師教得就這樣..沒再進步.回家打電動,上英/日文,學才藝的一堆

我沒學歷..我退伍找到資訊工作..前10年沒過年過節,假日沒在休..
每天看MSDN文件..看能不能與MS同步
英文看不懂就用字典一個個的翻
從基本語法到Design Pattern..n_tires 怎麼切.每一層要做哪些工作..如資料驗證等
Java 23 Design Pattern 命令,委派,通知,監控,配接,Lazy..
OO 高內聚,低耦合,多型,介面,繼承..抽象..

程式設計很深奧的..
如果你認為不就這樣
如果你認為老師教的,皮毛工,你就說我是人才,我薪水要10W..
我丟給你一個專案,你可能很快就怪了

雙重悲劇 wrote:
謝謝您的建議,在去...(恕刪)

雙重悲劇 wrote:
不過我這些年來都是用JDBC... 還為了AJAX與JSON,自製了DAO模組來用,就當作練SQL語法這樣。
(反正Hibernate最後也是走JDBC...XD)

雙重悲劇 wrote:
對於MVC...我憶起曾被資工的質疑:「為什麼不直接M對V就好了,C不是很多餘嗎?」


其實IT每一門技術跟經濟學的模型推論一樣有假設和限制,我觀察你的留言都只有如何實作部分,當你獨當一面時,就需要對技術做選擇,當你要選擇時就要需要知道這門技術的適用時機,不論是O/R mapping,或是MVC架構,其實都在解決大型系統重工和修改問題,你把C和M弄在一起,萬一有天只動流程,不改資料結構,那你可能要動到C和M的東西,一支還好,如果是一萬支你可能就昏倒了,但如果只有2,3支程式以後沒擴充空間,你也用上述技術,也不太對,因為他花時間,還有效能上這些技術並不會比較好的
自己寫,隨便..功能出來就好了

Team 開發
從需求分析
系統分析
UML 出來
規格書出來
字典出來

Class 出來
Test case 出來
雛形報告

然後工作指派
誰負責哪一塊Class,什麼Methods,什麼時候完成
單元測試,A測試,B測試..產出文件..
每一件都很重要
很多成員同步開發..責任區分
你負責資料庫,你負責UI..你負責Service.. M 序列化成資料庫,序列化成檔案,序列化成Json,序列化成XML..資料驗證,安全,加密..
手機端收到Jsno,反序列成M,然後手機 Controller,Activity..對資料操作,然後呈現到UI上

以前標案,廠商幾次都包給大陸寫..開發很快,價格低..但都遇瓶頸結不了案
找我3倍價..然後要我開規格,說故事..說要找專家學者來審
二次個四張圖UML說資料怎麼流,城市怎麼跑,看圖說故事..就過了
UML..轉Class,假資料..去跑流程無誤..
然後就誰做哪一塊,Input 什麼,output 什麼,甘特圖,排時間,畫押..
400萬專案..24人月,誤差1個人月..精準無比..

你無經驗..一塊大專案..你根本無法估時間,成本,人力..打掉重練幾次都是無法做出來
  • 6
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?