#學習寫程式 #誰可以成為軟體工程師 #小吃貨轉職日記 #個人心歷路程
不知道是否還有人記得,很久以前我問了大家一個問題是,覺得什麼樣的人可以成為軟體工程師。
其實一直以來,我覺得只要會英文的人就可以學會寫程式,就可以成為軟體工程師。
為什麼會這麼覺得呢?
首先,就像是,你覺得誰學會使用電腦是一樣的道理。如果你在三十年前問大家這個問題,可能很多人會覺得,只有念相關科系的人可以學得會。
在我們還在DOS的時代,還在打指令的時代,那時只要會打字,就可以成為文書處理專業。沒錯,那個年代,文書處理是一個科系。
但現在,有誰會去大學念一個科系,只有學打字使用Microsoft Office系列。
當然,軟體工程師也並不是一個容易的職業,就像我之前提過的,這個職業也有很多利與弊,不是像外面形容的那樣,好像坐在電腦前面打打字就可以做的,或者像其他工作那樣,可能學了一技之長可以用很久,這個行業的一技之長,可能很快就過保鮮期了。
回到學習寫程式這件事情,在台灣聽很多人都說,「啊!寫程式就是要有天份啦!」「聰明的人啊!」也看過很多網路上的人在吵,資工vs 資管 vs 非本科系什麼之類的。
最近有朋友問我說,為什麼在台灣的時候學不會,可是來英國以後我就學會了,是因為來英國以後特別努力嗎?
其實你到現在問我學會了嗎?我也不會跟你說我什麼都會。但的確光是coding這點,我覺得在台灣學習跟來英國學習最大的差異還是在,學習的動力上面。
在台灣的時候,其實有點為了學而學,從來沒有思考過自己是否真的有興趣,有時候以為自己其實也滿有興趣的,因為那些東西以前沒有碰過,可是只要碰到一點瓶頸 ,就會開始退縮,覺得好煩喔!這些東西怎麼這麼難,只要上課聽不懂老師在說什麼,就會很不想繼續學。
在台灣除了去資工系修課以外,也有去台大資訊系統訓練班上過課,也有上過一些線上的課程。
幾乎都是同樣的感覺,甚至覺得,自己是不是年紀大了,感覺什麼都學不會,聽不懂,自己好像很笨。
來了英國以後,上課的第一天,老師說,我會用英語授課,而且不會為你們放慢速度,因為你們必須要去習慣。當時覺得自己更不可能聽懂,也不可能學會。
可是我們上課的狀況通常是,一天上課兩個小時,上完以後有兩個小時的實驗課,大家坐在電腦前,老師一個一個看你做的東西,從很小的東西開始學。
我覺得這個應該算是滿關鍵的,就是有沒有動手實作。然後不會的話老師也很耐心的教,此外老師還有另外的課後時間,只要我們有問題都可以去找他。
在實驗課的時候,中間只要卡住,老師也會盡量讓我們自己去思考,而不會直接告訴我們答案,例如會問我們,為什麼你想這麼做,這麼做的原因是什麼。
我記得很久以前在台灣的大學,問了老師一個問題,老師的答案是,你以後就會知道了。當下其實就讓人覺得有點反感,而且後續問老師很多問題,老師也是都這樣,這個以後就會學到了。
我自己算是一個滿會因為老師而喜歡一個科目或不喜歡一個科目的人。就像我小時候很討厭數學課,也是因為不喜歡數學老師。也不是真的不喜歡,就是有一種覺得,反正老師也不在乎我學不學的會,只在意那些學得好的人。
在台灣也聽過很多人說,啊要學會寫程式,數學就要先打好基礎,數學不好怎麼寫程式。可是真的成為工程師以後,在工作上根本沒用到什麼基礎數學啊!
其實在英國也遇過很多數學系畢業的,可是害怕寫程式的人也很多,他們這邊通常學校會有一兩堂課是寫程式,可能學個Python, 像我之前念書的學校,學不好的很多,一些很厲害的大學的數學系,也有人就乾脆放棄那門課,不學,因為覺得很複雜,他們寧願把時間拿去研究純數。
不過現在的電腦,都會幫你做好各種基本數學運算了,大部分現在的程式語言,你要跑什麼線性回歸什麼的都幫你做好了,也想不到什麼時候會用到三角函數之類的,除非你的工作是什麼data scientist 之類,可能要建立複雜的數學模型,或者quant 那類的,不然就算你要做Machine Learning這類的東西,也有很多已經現有的工具,軟體工程師大部分就是拿來跑一跑。
要是你真的是做機器學習相關的研究,人家也不要你軟體工程師,人家要的是資料科學家背景,人家至少要你有個PhD唸完再來,你要至少會讀paper, 寫paper做研究啊!!
如果是醫學相關的軟體,需要有專業技能,人家也要找醫學背景的來,如果是金融相關的,需要有非常多的金融專業技能,當然也是從金融背景的比較容易。
通常軟體工程師,普通的軟體工程師職缺,就是不太會需要太多納些相關的專業領域,他們也願意你進去了再學,你主要需要的是快速學習、適應環境的能力,還有溝通能力,這樣如果跟其他專業領域的科學家、研究員、分析師溝通之類的,至少你可以不會有太多的障礙。
當然,軟體工程師的工作也可以細分成很多領域,像是遊戲產業的軟體工程師,或者IoT產業的軟體工程師,甚至還有像是軟體架構師、軟體分析師、資料工程師之類的,他們可能需要使用到的技能也不一樣,但也不會沒事就需要叫你算個三角函數之類的.........通常你的背景還是在於你對於寫程式的熟悉程度,你會使用那些工具,你是否是個團隊合作的人,能否跟大家一起寫程式。
總之,回到前面說的,所以到底學習寫程式需要什麼,英文真的是很重要的一環,因為程式語言本來就是英文為主,在來就是網路上的資源,也幾乎都是英文為主。還有你寫程式的環境,也幾乎都是英文,像是你使用的工具,回報給你的錯誤訊息也常常可能是英文的。
來英國以後一直在思考的一點,在台灣討論到會不會寫程式,或者學不學的會,通常英文好的話,也可能在閱讀文件方面比較快,可以快速學到一些東西。
語言也不是全部,如果已經在工作的話,工作環境也很重要,學習環境也很重要,在學校如果遇到一個很好的老師,或者有一起學習的夥伴們,也會比自己一個人獨自專研來的快,不過每個人的學習方法不同,更重要的是找到自己喜歡的學習方法。
反正如果你想學的話,也不用管其他人講什麼,想學就學啊!當初我要學的時候,也很多人覺得我不可能學的會或者不可能成為軟體工程師之類的。
其實也不是因為我原本念歷史系的原因,主要就是,大家覺得,我是一個沒有邏輯,邏輯不好的人。還有覺得我是一個三分鐘熱度的人,以及數學指考考了不到30分。這些我也都寫在部落格裡面了,所以一直以來都有在看我文章的人,大概也都知道了。
當時,我大概聚集了所有身邊當工程師的朋友,都覺得不可能會成為工程師的因素吧!但現在我還是做為一個軟體工程師賺錢就是了。
有時候想做什麼就去做,反而是一件比較容易的事情。尤其是學習這種事情,網路上也有很多資源可以學習也不一定需要花錢。
在學校的時候,除了老師給予我一些自信以外,另外也是在英國認識了一些人,給予了一些鼓勵,有些素未謀面的人,也有些一面之緣的人,可能也是因為他們不認識原本的我,所以都覺得,沒有什麼是我不能找到工作或成為軟體工程師的原因。
現在想想,或許這就是初生之犢不畏虎的概念,當初沒有想太多就跑來英國,然後來了以後才開始覺得必須要努力一點才能找到工作,中間也遇到了很多困境,工作以後也曾經想過要放棄當軟體工程師,想要去當個什麼辦公室助理之類的。
也經歷了很多覺得很困惑的時期,雖然自己現在還是滿困惑的。但我覺得如果你真的想要學習或者轉職,只要做好功課(這點真的滿重要的,至少不要覺得只是看別人好像不錯,就決定要去做,至少要衡量一下利與弊),就可以去做吧!也不用管別人說你適不適合走這條路怎樣的。
每個人適合走的路也不太一樣,還沒走之前都看不到,就算你看身邊的人都怎樣,自己還是自己。
python線性回歸分析 在 軟體開發學習資訊分享 Facebook 的精選貼文
這個全方位的課程將指導你學習如何運用Python來分析數據、建立漂亮的視覺化報表,並使用強大的機器學習演算法!
這個全方位課程可與其他資料科學新生訓練營相比,通常花費數千美元,但現在你可以小小的成本學習所有的資訊!
從這 25 小時的課程,你會學到
✅ 使用 Python 程式設計
✅ 用 Python 與 NumPy
✅ 使用 pandas 資料框架來解決複雜的任務
✅ 使用 pandas 來處理 Excel 檔案
✅ 使用 python 實作 Web
✅ 連接 Python 到 SQL
✅ 使用 matplotlib 和 seaborn 進行資料視覺化
✅ 使用 plotly 互動視覺化
✅ 以 SciKit Learn 做機器學習,包括:
✅ 線性回歸
✅ K Nearest Neighbors
✅ K Means Clustering
✅ 決策樹
✅ Random Forests
✅ 自然語言處理
✅ 神經網絡和深度學習
✅ Support Vector Machines
https://softnshare.com/python-for-data-science-and-machine-learning-bootcamp/
python線性回歸分析 在 普通人的自由主義 Facebook 的最佳貼文
寫了一陣子的Python入門書,終於上線了。
這書是我這幾年自學Python語言,並用來教授大學生財務應用的程式語言教材。因為我沒有計算機程式背景,所以非常知道外行人初學程式語言的辛苦過程,我很確定完全沒有背景的朋友,也可以自學上手。這書適合什麼人?社會科學、管理相關科系大三、大四以上,或是研究所,相要自學Python,而且未來工作會用到數據分析,但完全沒有經驗的學生。
我要講一下我從學習到出書的過程。
現代社會都強調懂得電腦程式語言的重要性,連中小學生都在強調課程裡要加入電腦程式語言的元素,因為「軟體正在吃掉全世界」。但這種呼聲,反而給家長和學生,許多的無形壓力。要學習的話,就要投入時間和資源,學的好壞,也不是馬上看得到結果,而一旦有個程度很高的同儕在旁,那更會把壓力拉到最高點,「怎麼同學這麼厲害?」「我已經花了這麼多時間,怎麼還差這麼多?」最後不是放棄了這個「夢想」,就是對這個過程充滿反感,成功者幾稀。
我也受過這個苦。我們那個時代的理工科系大學生,PC才剛從286、386一路進到家庭、教室和公司,但已經有同學寫了程式多年。大學的好友,整天在耳邊講「劉燈、賀元、資迅人」,要我也去逛天龍書局,然後有一堆人整天在計算機終端室打MUD,我對科技沒有恐懼感,我還寫了台大化工系的第一個HTML首頁,但就因為這些超強同學的存在,「寫程式」一事,就變成令人敬畏,甚至令人望之怯步的一條路。
但電腦程式語言的學習和應用,不應該是這樣。十幾、二十歲的大學生,學什麼都可以,沒有太晚這種事,只要有心,不要管這些同儕壓力,一步一步來,把程式從無弄到可以跑,那是一個很有滿足感的過程。這是我會給二十歲的我的建言,畢竟軟體真的在吃掉全世界。
電腦程式就這樣和我,「你不認識我,我也不想理你」地經過了十幾年,後來三十多歲開始唸經濟學博士班,才又碰頭。博士班正式開學前的暑假,學校開了數學先修班,一個很厲害的老師,快速地教過博士班要用的線性代數和微積分,同時也讓我們上機用MATLAB。一用不得了,原來有目的地編寫程式,是這麼有趣的事。所以博士班的時候,同學都在學Stata,我則是想把所有的回歸分析,通通用MATLAB處理。
博士班畢業後來到敝小學校教書,一人獨攬所有財務課程,包含計量方法在內,我也讓學校買了幾套學生版的MATLAB,用來教學。但在美國會唸商管、經濟的學生,數理程度是比理工科系的稍差一點,所以教計量方法有些吃力,但也就是這樣,我得確定我的教材適合門外漢。後來發現MATLAB還是太貴,學生畢業了,可能也是一輩子都用不到,所以我想找個開放的程式語言作為代替。稍作一下研究,很快就選定Python,這語言和MATLAB的共通性不小,又容易上手,還有一大堆前人寫就的函數可以用,所以我很快就自學學會,再把MATLAB的知識、教材轉過來Python。Python因為開放,又容易學習,所以學了以後,還有許多用途,資料分析只是Python的一小部份應用,寫網頁、寫遊戲、做手機app,都是Python可以做的事。
我就這樣不小心地打開了這個奇異世界的大門。
雖然學生不是人人都能理解程式語言的美妙和功效,但每次教這課,總有一、兩個學生因為我而開始走這條路,我心裡都很開心,看著「青出於藍,而勝於藍」的學生,那是相當令人滿足的經驗。經過幾年的教學,我決定把教材編寫成書,讓更多人可以走入這門。二年斷斷續續的編寫,終於成就了這本入門書。
寫書,當然不是作功德,是要賺錢來的。所以,大德們,買一本吧,雖然是英文版,但程式碼比英文字多很多,很好懂的。亞馬遜的連結在下方。