iT邦幫忙

7

覺得能力不足時,都如何精進自己

各位前輩大家好

小弟我目前從事IT相關產業2年多的菜鳥

工作上有開發過的語言及專案類型有:Android Studio,C# WPF、.NET Core MVC & Web API 、Window Service、Java

在前陣子面試時,深感自己能力不足

很多東西雖然平常都有在使用,卻不清楚其真正用意

例如: IOC、DI的差異

̶對̶於̶C̶o̶d̶i̶n̶g̶與̶D̶e̶b̶u̶g̶能̶力̶自̶認̶不̶差̶/images/emoticon/emoticon16.gif

通常上機考都能答得出來,但筆試都寫的零零落落

最近在空閒時間有在練習自己寫一些Side Project精進自己

想請問各位前輩,都如何精進自己,或覺得我應該怎麼做

還請各位前輩指教,謝謝各位

看更多先前的討論...收起先前的討論...
踏雪尋梅 iT邦研究生 5 級 ‧ 2021-05-04 17:02:51 檢舉
討論區,卡位,我也想聽一下
tenno081 iT邦研究生 4 級 ‧ 2021-05-04 17:21:47 檢舉
好好,有碰到core 我可以問問是做什麼工作嗎~
我也是從業約2年可是始終只有mvc
不過你碰的東西還真多
ayu iT邦好手 2 級 ‧ 2021-05-04 17:24:15 檢舉
我也深感自己能力不足, 包括好好活下去的勇氣
小魚 iT邦大師 1 級 ‧ 2021-05-04 17:51:27 檢舉
你的Java是Android Studio嗎?
bluegrass iT邦高手 1 級 ‧ 2021-05-05 02:48:09 檢舉
我都先放棄, 然後不知道為什麼就變得更精進了. 你要試試看不
@tenn0081 Core的部分 我是在遊戲業(灰色地帶那種),寫API給前端工程師呼叫取用資料,還有寫後台管理網站 管理參數與資料
魚大 我的Java是現在在傳產業寫Web ERP,由公司跟鼎新買斷在自行開發維護(所以版本還在java1.X....),新廠區才有再用java8開發,另外廠區還有用行動裝置來使用,所以也有使用Android studio開發。
如果是碼農,去修之前的專案,如果以前100行才能寫完,邏輯推演減少行數
精進自己寫過的專案,不停的修整,了解新的觀念與做法,把這些新觀念新做法帶入自己的專案,或是開發新的模組,把系統功能模組化,找一些系統分析的書來K,然後實作
關於系統分析的部分,的確是我目前所欠缺的部份,我會聽取您的意見好好找書來學習的,謝謝大大
Nick iT邦新手 5 級 ‧ 2021-05-10 14:51:37 檢舉
我的建議如下:
建議你,挑一個當你主要開發的程式語言,先把一項弄好弄強再來補第二個還不遲,我曾經在面試中,有面試官這樣建議我,他還說 你會這麼多年資又不是很高,老實說 我很懷疑你的能力到哪裡,還是只有入門等級的能力,所以 挑一個當主力給你一點建議。
遇到好的面試官,之後沒有被錄取也覺得很值得,得到貴人的指點很棒,呵呵
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
Darwin Watterson
iT邦好手 1 級 ‧ 2021-05-04 17:02:36
最佳解答

試著帶筆電去demo你實際可以做出來的作品!
IT人不要空手去面試,還想要拿高薪!
畢竟再資深的IT人,應該是沒人有自信每場筆試都能順利過關。

最明顯的例子應該是這篇:
雖然我們公司 90%的工程師都用你開發的工具,但我們還是不聘用你

而且大部分的公司都會看你實際能做出什麼來評斷是否是『即戰力』/images/emoticon/emoticon10.gif

然後,在職場上,當系統或服務噴錯時,試著主動跳出來解決問題,也是精進自己技術的方式。具備面對問題的勇氣,絕對是在IT職場上精進技術的「必要條件」。

最後,不要抱持著安逸養老的心,當你有自信自己的技術到一個層級,就該試著跳槽去其他公司見識見識新的世界。一方面不會安逸自大,另一方面也能知道其他公司是如何面對相同/相似問題。(每年都能重溫新人三個月的試用期其實也不差)
/images/emoticon/emoticon08.gif

ps. 坦白說,紙筆寫code我都不敢保證我的『 { 』是否有漏,或是否有對到『 } 』/images/emoticon/emoticon06.gif

感謝前輩 這個建議 我會好好考慮的
不過我目前的Side Porject都做一些簡單的 在網路上很多資源
ex:股市爬蟲 畫K線圖、line bot機器人
像這種您覺得在面試上demo 有加分作用嗎

a9864277,近年來就是會一些容器化技術(docker、k8s)的程式設計師,薪資會比較好談!而且在CI/CD這部分的程式開發還是一片藍海。Web技術因為api文件已經很成熟了,爬蟲或者Linebot那些會導入的公司都應該做完了,加分不容易。另外,一般的金融業資訊人員,如果上面的人沒擔當,要有背鍋的覺悟。

0
koro_michael
iT邦新手 2 級 ‧ 2021-05-05 10:02:02

去寫一套IM(即時通訊)吧,裡面的技術包山包海的

手機端 電腦端 Web端

Socket TCP UDP 打洞

叢集 同步 容災管理 點對點加密...等等

我家裡剛好有認識一間做企業間即時通訊的董事長,在跟他聊過天後,有跟我說能到他們公司去看一看,看來我該好好考慮了,謝謝您的建議。

以新手(高技術)來討論,我個人也認同 IM(即時通訊) 這個site project 很全面,傳文字、圖片、影音、語音,哇~~~想想都覺得帥,也可以加入一些AI的回覆及數據分析,那就更全面了

3
japhenchen
iT邦超人 1 級 ‧ 2021-05-05 11:25:17

學校會教你拿刀,但不會把你訓練成殺人犯或是廚師或是外科醫生

你會很多程式語言/系統架設/網頁設計...技能,你現在要學的,要如何提供給你的老板、客戶、同事.....一個Total Solution,而不是聽命令寫程式當螺絲

老板要你做一個電視牆,至少85吋螢幕加觸控,你前端後端都要從零開,要能提供工地施工人員出退勤打卡,畫面能顯示目前工地的所有人員的資料及照片,給勞工局勞檢人員識別所有施作人員的依據,你有把握做的出來,就是你未來要做的事,而不是寫一輩子程式

看更多先前的回應...收起先前的回應...

聽命令寫程式當螺絲 → 對岸說的碼農

我也常常會做一些不見得有錢賺,短時間不見得找的到買家或金主的side projects來玩,委曲一點講,叫做持續練功,只是一時找不到伯樂,樂觀一點講,叫待價而沽,一定會有人懂我...

最後做50個side projects,大概只會有一兩個被人賞識,少則賣斷智產權,重則被挖去他公司上班,成了我5到20年內的主要收入來源

別說沒有,我從學校還沒畢業就一直在這樣的世界裡循環,到現在快30年都是這樣過,不見得會所有的作品都有人想要,但只要出現一個伯樂,保証吃不完兜著走......錢兜著走

請問大大,意思是要變成像PM那樣嗎?

最好是有整合所有可行的技術,做出可行的產品,雖然只是模型,但一定能運作,就不怕沒市場,不要空有技術卻沒有作品或現實成品,這會成為程設員發展的瓶頸

目前階段我也是這樣努力,所以盡量做一些Side Project,把一些生活上的東西,能想到的都先試想做成程式該如何運作,但目前幾乎都沒有架構層,把Code寫在一起,做成一個簡單的WinForm

3
雷伊
iT邦高手 1 級 ‧ 2021-05-05 12:01:26

碼的我回覆不了
維護的精進方式您可參考看看

我們可能會針對某項有錢賺的需求而去精進自己(不然你精進的目的是甚麼?)
例如最近業外客戶想要建置非微軟的郵件系統
沒碰過的工程師就會蒐集相關的建置資料(通常是Google搜尋)
等建置完成通過各項測試後就能賣錢了

您可反推自己是否有已完成的作品且是可以拿來賣錢的
只有能拿來營利的作品才會是企業想要的
嘗試自主開發一套可以賣錢的APP或是小型的電子簽核系統(因應疫情)
你會很多語言但卻沒有東西可以拿出來,如何在短時間的面試中展示給面試官看
程式設計師通常都能自己接案來做,平常上班只是領份基本盤(生活費)的薪水
不管你用的是哪一套語言,能碼出來並上線才是最重要的

以往兩年的工作經驗中,自己參與其中的案子也能拿出來在優化,尤其是已經正式上線的
我在物流公司看過太多碼了上好幾年甚麼系統都沒上線的工程師,接手的有百分之百的機率打掉重練
然後陷入一個奇妙的循環,我都離職五年多了,他們想要的系統還是沒能上線。

我的建議是:
1.現有的作品優化,這是最多前輩建議的。
2.接不同系統(市面上流行的例鼎新、正航、文中)資料庫對接的案子(API),例如專案成控系統導出的資料可以直接進財務系統,節省人工審核。
3.寫最多人使用的WordPress平台外掛程式賣錢,例如問卷(非Google表單)、產品線上訂購、客戶關係管理CRM等...
4.結交志同道合的工程師互相學習,我覺得旁觀者清。

如果兩年的時間樓主沒有讓任何一套東西正式上線讓同事或客戶使用,我建議您轉維護比較有前途。

看更多先前的回應...收起先前的回應...
Homura iT邦高手 1 級 ‧ 2021-05-05 16:19:25 檢舉

雷大幹嘛罵髒話/images/emoticon/emoticon39.gif

雷伊 iT邦高手 1 級 ‧ 2021-05-05 17:30:18 檢舉

Homura 只有你了解我,哈哈!

感謝大大提供方向,我會慢慢自己寫一個電子簽呈系統,就像您說的 程式設計師 能寫出一個系統並上線才是最重要的,另外我想請問大大,優化以前的作品這部分,我目前可能都是有碰到問題去找Google大神才能有所進步,但有些部份我"覺得"自己能做出來的時候,就不會去找有沒有其他更好的方式或套件,等我的方式太複雜或做不出來,才會去Google
例如:我剛畢業時面試(C#工程師),面試官問我一個List,你會如何刪除重複的數
我回答 foreach+contain去判斷,在產生一個新的List
面試官只默默跟我說,用List.Distinct()就能做到了
這部分不知道各位前輩是在Coding時就會去Google其他人有沒有更好的解嗎?

雷伊 iT邦高手 1 級 ‧ 2021-05-06 10:18:44 檢舉

你已經很優秀了,我最多只能寫寫BAT、PS1,內行人才會計較語言的行數,真正好的產品是BUG少且可控而不是行數少,用戶(外行)最在意的是使用者體驗,另外你還得了解企業文化,以電子簽核來說,職級、代理人之間的流程,退件是直接退到第一層重跑還是可略過中間層級?每個層級可審批的金額是多少錢以內?會不會因為金額少就略過高階主管?
有時候強的程式設計師反而不懂用戶的需求,寫出令人驚奇的系統
例如最簡單的由上至下勾選頁面:
先要選第三項跟子項後才能回第二項去選,當你一一往下勾選或填表後
匯入一筆購買憑證,它會自動恢復預設讓你之前選的重新再選一次
搜尋欄做的超像新增欄,讓人想在上面直接新增一筆資料
更甚者表單歸檔後居然沒有列印的按鈕(數位無紙化到極致?國稅局可不這麼認為)
使用者體驗遠比你用甚麼語言碼還重要
你要優化的方向就在這裡
你要精進自己的技術?其實在你碼的每行字時,你都在進步,早就超越我們這些不學無術的老人了。

1

不知道你的背景是什麼,但做為老程式設計師,而且到現在還在寫程式的設計師,我想給你十個建議:

  1. 學得廣不如學得深,樣樣通樣樣鬆,可以什麼都學一點,但不要覺得什麼都會精通,這成功的機會很小。
  2. 投資自己,而且是大量的投資自己,讓自己的能力豐富起來。我的第一個師父,在我入職的第一天,就要我把所有javaworld的文章全部看完,我沒有做到,但後來我還是有大量的閱讀,這確實對我有很大的改變。
  3. 不要吝嗇投入時間嘗試,無試是工作上的或是私底下的,就算是最簡單的存取資料庫,也試著用不同的方法來完成。
  4. 最好的精進練習,就是重構,take your time to perfect your beat,完美的程式不存在,但可以接近完美。我個人對自己的要求是一個方法長度不能超過一個螢幕,還有盡可能的沒有if,就算有也不會超過三層。這種需要大量的刻意練習。(所以我們同事很不喜歡我做code review, too picky)
  5. 找一個導師,無論是工作上或私底下的,讓他幫你看你的程式,並且改進它。
  6. 參加Open source的專案,賞析別人的程式,就像唸書的時候賞析文章一樣。
  7. 學會用5why去分析問題:永遠都沒有最好的答案,當有人拋出一個最好的答案時,你的反應應該是「真的嗎?為什麼?」list.Distinct做得到,那有什麼限制?它背後是怎麼做的?簡單的答案限制了想像力,這也是現在新進工程師的缺點。
  8. 比起技術能力,軟實力才是最重要的,工具、程式、框架...這些東西都可以很快的學習,但很多關鍵的軟實力:Problem solving, teamwork, critical thinking, communication...是沒辦法在短時間之內就累積的,這也是為什麼老外的面試並不會想知道你的專案做些什麼,他們更關心你怎麼處理問題,面對挑戰,團隊合作...
  9. 沒事就看一下104,linkedin或任何的求職網站,了解一下一流的公司要求什麼,沒事就編輯一下自己的履歷,如果有邀約,不妨試看看。
  10. 不要跟別人比較,你要超越的對象是自己,看一下戴資穎的這段影片:
    Yes
0
matthung
iT邦新手 5 級 ‧ 2021-05-13 18:22:30
  1. 看官方文件,看API
  2. 看原始碼
  3. 寫部落格
  4. 寫side project
  5. 研究工作中別人寫的code
  6. 參加技術會
  7. 多和同儕討論
  8. 找個願意分享的師父

我要發表回答

立即登入回答