說實在的,我非常渴望成為程式設計師,但不知須了解哪些程式語言或知識才能在職場保持穩定?還有需要哪些證照以及努力?
我在其他地方發問都沒得到滿意的解答,希望在這邊能聽到前輩們的ㄧ些經驗或給我一些行動上的建議。謝謝
我自己本身就在退伍之後找到一家軟體公司,進入RD部門,成為一個程式設計師。這是我第一分完整而正式的工作,我非常喜歡我的這份工作。在公司裡我是新手,老闆為了給我一些訓練,所以給我一些較小的案子試試看,結果不是花太多時間,就是沒做完,結論是在前三個月的日子裡,幾乎都是搞砸居多。為了爭取大家的認同,我也算是蠻拼的,天天加班沒話說,一兩次還乾脆睡在公司裡,連假日都來了。但是對這些案子還是沒搞好,自己也有一點氣餒。現在又過了幾個月,自己慢慢也上手了,完成了幾個案子,自信心也增加了,但是距離公司裡的那些老手,其實還有一大截。
在商場上,講求的是Timming,產品上線有一定的時程,一個大型的產品也不可能由單獨的一位程式設計師去完成,所以程式設計師的工作,其實是team work。在我的那些失敗的經驗裡,我因為"喜歡"寫程式而幸運成為軟體研發工程師,但是只有"喜歡"是不夠的,我的實力仍是不夠。公司產品主要是在Linux上,所以開發工具是gcc,我會用Linux,但是稱不上精通;我懂C語言,但是沒有參考資料在手邊,也難以完成一個案子。因為實力的不足,在team work裡,容易成為拖累團隊,影響產品進度的人,這是在商場上的大忌。
所以如果要成為一位稱職的程式設計師、軟體研發工程師,你必須對你所使用的工具時分熟悉,接近精通的程度只是基本條件。像在我的例子裡,我必須很熟Linux作業系統的運作,可以自己解決系統問題。我必須很了解C語言和整個編譯與除錯的過程。有了這些能力,充其量也只是程式設計師(匠)而以。接下來就要訓練自己專案管理的能力,系統開發的能力,軟體的架構規劃等等知識,才能稱得上是RD。就我而言,我也還在努力學習當中。
我想給你的建議是,光是喜歡寫程式是不夠的,在學校裡跟在商業環境中的差距,是非常大的。你必須要很有決心,以這份力量去完全搞懂你的工具,不管是Windows、Linux、C或Java,都要很熟。初期至少要具備debug的能力,這點你可以從trace code做起。找一個完整的專案,從它的Makefile開始trace,到每隻程式裡的每一行都要搞懂。要找這樣的專案並不難,你可以試試一些Open Source軟體(ex: http://sourceforge.net/),他們通常有提供完整的source code。看多了,你就會有感覺了。
祝你也可以跟我一樣幸運。
先問自己一個問題,要成為那一種程式設計師?
是要求一份穩定的工作?
還是想像 YouTube, Google 一夕成名賺大錢?
是要跟大多數人走相同的路並競爭?
還是只是要交朋友的?(經濟無虞)
建議您可以先看看一些討論區的討論,
再想清楚自己要的是什麼。
在採取行動之前,弄清楚 WHY 要比 HOW 重要的多了
http://www.javaworld.com.tw/jute/post/page?bid=15&sty=1&age=0
http://www.programmer-club.com/pc2020v5/forum/forumN.asp?board_pc2020=career
如果連這兩個網站您都看不下去,
或者沒興趣的話,
勸您就打消這個念頭吧...
對沒有錯,你要先了解你要成為什麼樣的programmer,因為很多這樣的工作是很無趣,你要有心裡準備才有辦法溶入這樣的產業
以目前市場而言, 可分微軟派與非微軟派, 微軟就是 .NET為主, 飛微軟派當然就是java了, 相關的認證市場上很多資料可以查, 不過這行的必要條件就是邏輯能力, 還有抗壓性, 如果要做的久, 那興趣也是非常重要的.
如果不是科班(資工/資管)出身,建議先去拿個相關的文憑,資策會有開一些短期的程式設計師養成班,可以考慮!做這行興趣很重要,如果沒有興趣,很難支持下去,如果剛畢業,趁年輕到國外拿個computer science的學位,除了培養語文能力,也比較有機會加入一流的軟體公司,跟世界各國的人一起co-work,對未來的職場生涯會有很大的幫助!
首先,你要超乎常人的渴望與熱情來對待 Programmer 這個位置, 因為它不像一般工作一樣光鮮亮麗, 趕進度時, 有可能昏天暗地都不睡覺, 為了抓一隻Bug時, 你必須無聊的一測再測, 如果寫不出來, 哪就有得瞧了!! 總之, 沒經歷過 Programmer 的生活, 是無法體會的, 系統完成的功勞不見的有你的份, 但系統有問題, 你就要負責到底.
所以先想一想你位什麼要成為一個 Programmer. 當然,你也要能遇到一個好主管可以帶領你, 好讓你成為一個專業的 Programmer的時間減少.
想成為程式設計師, 最基本的是邏輯能力, 做個小測驗就知道具不具備這樣的能力
a. 1, 2, 2, 4, 8, ?, 256, 8192
30秒內答出 ?
b. 1, 128, 729, 1024, 625, ?, 49, 8
1分鐘內答出 ?
c. 2, 5, 9, 15, ?, 43, 77, 143
2分鐘內答出 ?
a 限時內答不出來, 不用考慮當程式設計師
b 限時內答不出來, 走這條路會比較辛苦
c 限時內可以答的出來, 你有條件成為優秀的程式設計師
有了基本的邏輯能力, 再來是細心與耐心, 缺了這二項無法處理 debug 的工作, 至於藝術成分, 如果你只是拿人家開好的規格 coding 出來, 根本派不上用場, 除非自己接案子, 或著是公司願意讓員工自由發揮創意, 可惜這種公司不多.
什麼語言或證照不是最重要的, 語言是工具, 證照表示你對該工具的熟悉度, 事實上, 作品遠比學歷, 證照更有說服力, 在不知道你的能力前, 學歷, 證照才會做為能力的唯一度量, 想當程式設計師, 就不要把自己侷限在某種程式語言, 一開始可以選定任何一種語言去學習, 任何語言除了關鍵字用法不同外, 基本語法都是相同的, 學了一種語言, 如果你還會覺得學其他語言有一種從頭再來的感覺, 這表示對原本的語言只是似懂非懂, 在程式設計討論區嘗試幫別人解答, 可以讓自己瞭解自己真的懂多少. 熟悉程式基本邏輯架構, 再來就是看工作需要用什麼語言, 再去熟悉這個語言的函式庫或者是 framework, 及一些特殊的技術就可以了, 這部份是屬於運用層級, 精通基本邏輯才能運用自如, 即使工作需要不得不換程式語言也難不倒你, 否則永遠只是看範例依樣畫葫蘆
這一條路是一條不歸路
當你一頭栽進去,那你最好別想出來
否則你永遠也只是一個小嘍囉..
想清楚再行動
至於需要什麼樣的能力會能做好這個職務
1、要有必死的決心..
2、要有基礎的語言能力..
其中決心很重要..