[經驗分享]純文組學生該投資時間在學習寫程式上嗎?一文釐清
1Last Updated on 2023-10-05
註:本文為人文社會學科背景學生與程式相關的經驗分享,因在學時期的老師所負責的教育部「UFO 人文社會與科技前瞻人才培育」撰稿計畫所寫。
請確認以下幾點:為什麼要學?想完成什麼具體任務?之後會有應用場景嗎?有時間嗎?考慮後再開始做或不做,深思後都是好的選擇,至少不是盲目前進。
在這個不分科系、無論背景,全民都要寫程式的年代,求學期間越來越難完全不碰程式。商管學院本就有商業分析、供應鏈、財工,程式語言都能在背後發力,轉為必修並不突兀;社科院本就有統計必修,額外納入機器/統計學習,同學修得更勤;至於距離較遠的文學院甚至法學院,也有數位人文、計算語言學、法律資料分析等。
至於通識課程,更要強調計算思維,縱使不會寫程式,也得具備基礎概念,工作上裁縫和工程師溝通。二、三類的系所自不待言,空間分析、流行病學、生物統計都有R語言的身影,Python相關課程更多,只要課程名稱有「學習」,有沒有深度都同樣能吸引學生。
將視角拉回台大新聞所,我曾是所上學生,也擔任過助教。近年所上進軍數位領域,有想讓同學熟悉資料清理與操作的打底課、專注於特定領域與技術的專題課、將技術應用於社會科學議題的書報課、把程式當作研究工具的研究方法課,統整下來,每個學期2位老師約能夠開3到4堂程式語言有關的內容。
我在大學就讀管理學院便接觸程式,較新聞所同儕佔了先機,更能抽離地旁觀他人學習程式語言之痛苦。不過,從學生到助教,再到初入職場的這幾年,這一路下來,我有疑問。那些來上課的朋友同學們,如今還有繼續寫程式嗎?當初被作業荼毒留下的血淚,有成功兌換成在職場向上的門票嗎?在寶貴的學生時期,花費大量心思在離自己相對遙遠的程式語言上,是正確的投資嗎?
我想在本文討論「純文組」學生學習程式的動機、學習路程的困難、學習後的實際應用,並提供一些建議。
為何而學?
我所見的同學修課動機有兩種,一種是明確知道程式語言能夠幫助自己,像是工作上有處理資料需求,或者是想在職涯上精進;另一種則是想跟上程式與資料風潮,不一定了解用途,但不想落後於人。從頭開始學習一項新事物,過程的甘苦都相似,但有些疼痛,卻是特別清晰。
有何困難?
相對於理組學生,純文組同學在學程式上,會遇上幾個比較嚴峻的問題:「數理邏輯」不強的刻板印象、缺乏對於電腦科學的基礎理解、沒有討論程式的環境、接觸程式門路相對狹窄,這些問題都會各自負面影響學習成果,底下將會分而述之。
「數理邏輯」不強的刻板印象
只要在台灣求學,堆少能感受到不同背景學生各自背負的印象甚或汙名,例如「理工人無趣」、「文組學生未來沒前途」、「商管學院自視甚高」等。其中,因為升學時的考科差異,文組學生接觸數學與物化的時數少,又有些人直接選擇放棄,國中畢業後從此不碰數理。
久而久之,文組學生不擅數理的形象進一步惡化成只會感性思考、沒有邏輯,面對如此有色眼光,已經有負面經驗的同學在學習程式時更可能遇到困難,「數理邏輯」不強的刻板印象變成自證預言,因而妄自菲薄、自暴自棄。
缺乏對於電腦科學的基礎理解
在真正動手寫程式碼以前,必須先建置好環境,例如確認電腦系統配置是否符合需求、釐清軟體版本差異、安裝程式與相關工具、設定環境變數等;實際寫程式時又會碰到其實跟程式碼無關的問題,例如記憶體不足導致無法運行、路徑問題、編碼錯誤導致中文顯示異常、文件夾不乾淨導致安裝套件失敗、程式版本過舊造成缺失等。
平常電腦用途都是文書處理或是追劇觀影,連計算機概論都沒上過的同學,處理這些談何容易?什麼是RAM?CPU的全名為何?UTF-8和BIG5各自代表什麼?全無背景想要上手程式語言,學習曲線本身已經足夠陡峭,再加上這些與程式碼無涉卻加倍擾人的問題,會帶來很大阻力,若難以克服很容易放棄。
沒有討論程式的環境
正所謂「一齊人傅之,眾楚人咻之,」環境對於學習效果的影響不可謂不大。學習程式,尤其是初學,非常需要互相扶持的環境,大家可以回想自己的第一堂程式設計課,同學們一起追逐死線、討論改進作業的方法,共同成長的氛圍對於學習很有幫助。
只是,在我擔任助教的課程中,相對沒有出現這樣的氛圍,整個所上也是如此,當然這無法苛責任何人,因為我們不是資管所。然而,沒有建立起共學程式的文化,學習效果會打折扣。見賢思齊、見不賢而內自省,如果同儕都樂於寫程式,平常又會交流,必然對整個科系甚至學院產生正面效益。
接觸程式門路相對狹窄
若有學生在程式課堂上得到感召,想要接續學習下去,仍會遇上系統性的問題,也就是在接觸程式的門路上相對狹窄。有幾位認真的同學在所上課程結束後,詢問我有沒有能夠接續的內容,我能提供的選項有限。新聞所畢竟是新聞和傳播為主的系所,以培養記者和傳播領域研究者為目標,因為數位轉型和資料分析的興盛,程式語言和數位能力在這個脈絡下才被引入所上。
當然,不只有新聞所會開課,只是,從數量和領域上來看,文組學生學習程式在先天上有著資源不足的劣勢。把延續程式語言學習的重擔壓在所上並不公允,一味依賴學校課程而沒有自尋門路也不應該,但如果想要深化程式語言教育,有意加強的科系確實可以討論,是否有增添課程的空間,例如社科院已經有在做的建立課程模組、開設總整課程、跨系合授等。
延伸閱讀可參考天下雜誌這篇訪問(敝師也在其中):微軟、Uber都愛用 台大這個系為何是大數據人才搖籃?
實際應用?
最後,又要繞回學習動機上。因為實際應用和學習動機不夠明確緊密相連,如前段所提,學程式可能是廣義上的跟風,也可能有著明確需求,前者動機較弱先不提,那麼後者呢?有多少新聞工作會用到程式?是否要花時間投入?
就我認識前輩的經驗分享,還有自己在媒體的短暫觀察,能用上程式語言的機會真的不多。如果是工程師,自然要時刻接觸程式,但新聞所以工程師為職業的人很少,一屆至多1、2人,並且不一定在媒體工作。
記者有較多機會碰到資料,但專門製作資料新聞或是數位敘事的團隊組織甚少;個人若想以資料處理與分析作為核心能力,設法創造出和同業的差異,但至少目前記者工作還是更看重採訪,因為資料只是眾多報導角度之一,關鍵受訪者和隱密內幕更能得到關注,程式能夠撐出的空間有限。不僅如此,若引用網友言論和密錄器新聞就能得到眾多分享,又何必挖掘數據?
此外,相關領域的媒體前輩大多都不只具備資料能力,還額外掌握前端或者設計,可以獨立作業。即使在新聞所小有所成,作品離真正能夠上線的成品還有很大距離,再怎麼努力自學,仍有種不上不下的尷尬之感。當然,這只是我自己的體會,他人會有不同收穫。
建議
我想針對自己的觀察,提出幾點建議。
拒絕雞湯
第一點,無論是學校和學生都應該更誠實面對自己。時常會看到有些文章宣傳「OO系也能進外商、XX所FAANG企業也愛用,」這些科系通常是文組。看到這些文章,我開始想,這些科系是否服膺了(在課堂裡反對的)薪水至上論?否則怎麼會用這種「大廠就是讚」的邏輯自我包裝?
再嚴苛一點看數據,這些進到世俗眼光中好企業的畢業生,是多數還是少數?如果是少數,又拿「成功典範」引誘學生,會不會不太道德?我看過許多受到虛幻願景吸引,最後卻遍體鱗傷的同學。只有揭露足夠資訊,讓人認識到環境的殘酷之後,才能做出為自己負責的決定,雞湯畢竟不能喝一輩子。
加強動機
既然同學上課是為了跟上時代或者工作需求,如果課堂上能夠建立更明確的連結,例如某個章節對應到某個問題或者技能,可以讓學生更有意願坐上學習的動力火車。當然,在實務上有許多取捨,有些內容看似枯燥,其實是為了鋪墊日後的進階技能,但當下無法感受,這要仰賴教師們的專業。
就我曾經參與的新聞所課堂上,老師其實都已經很努力在執行,例如增加實戰的分析案例、找已經在業界的學生確認應用場景等。
增添管道
在學習困難中曾經提到,對文組學生來說,接觸程式的機會較少。如果能夠增加門路,讓學生時時寫、天天寫,不想寫也要寫,則一定能夠增加學習效果。開新課程只是選項之一,舉辦工作坊或競賽、創建交流機會、成立學習型組織,而且在建立社群時不能只仰仗開課教師的熱情,要設定明確經營指標,才能夠真正壯大。
確認目標
不只是學生端要確認學習動機,授課系所亦然。在文組環境內開程式課,阻力一定不小。開課單位應該想清楚,到底有沒有必要開課?能夠替學生的專長加分多少?能引入多少資源?會不會變成四不像?評估後也不一定要自己開課,可以尋求替代方案,例如跟通識中心合作、找實務教師開專題等。
結語
我相信學習是一件很自主的事情,要學好程式還是要回歸學生本身。無論是拒絕雞湯、加強動機,或者是增添管道,歸根結柢,其實都不脫揭露資訊與創建環境二者。當利弊清楚、後果明確,學生更能夠回頭思考自己的學習動機,要功利的從投資報酬率出發也好,回歸單純的學習快樂也罷,能夠自主選擇,才能為決定負責。
延伸閱讀:學寫程式要如何避免半途而廢?我的程式學習經驗與心得
2023-05-26 at 10:02 //
The point of view of your article has taught me a lot, and I already know how to improve the paper, thank you.