前一篇:資策會學弟問答 一
信件時間2021年7月9日
問:
謝謝前輩的建議,做中學學中做可能真的是最快的,但還是免除不了查無資訊的時候,當下真的會覺得蠻挫折,並且常常發現,到頭來看發現真正寫程式的時間反而不是最多的,最多磨耗的時間,是摸索及撞牆時期,當然還是希望能儘量減少時間的浪費並提高專注力來學習及coding!
目前Mvc 、spring、hibernate都已經上完,但是這部分是要用上最後專題的技術,可是感覺這部分有點抽象難懂,只能在看著老師的範例跟著重新擬做一個新的專案練習
想請教一下前輩,在構想程式時,會用什麼工具幫助自己集中精神或是用什麼方式來具體化自己的下一步呢?有時候我腦中會有很多想法但卻不知道怎麼化為程式碼來編寫,有的同學說畫圖,有的同學寫步驟,但是我卻不是很清楚自己可以怎麼有效率的條列式自己的下一步,花了許多時間在建構腦中的想法來逐一實現
不懂的東西真的太多了,會覺得連google到的解析都不是很明白,反而會不知道自己就叫明白了沒有
感謝前輩閱讀,祝好
答:
其實寫程式花最多的時間就是摸索和撞牆,也是程式工作的日常,摸索和撞牆才能讓你成長。如果你有一天都不需要摸索撞牆,那代表你已經熟練這東西並且無法獲得成長了,就像我們不會學怎麼喝水一樣。摸索撞牆是成長的必經之路,挫折感是你成長的表現,應該正面看待,就跟擁抱例外錯誤一樣。
我當初結業時Spring、MVC都放生(都不會),Hibernate只會一點給你參考,讓你多點信心。不過日後我還是有努力補足。
您第三個問題「如何具體化下一步」在上一封的回信中其實已經回答了,但您可能沒注意到,方法很簡單,IDE打開開始寫就是「具體化的第一步」,你新增的第一個class檔或第一個html檔就是「具體化的下一步」,你輸入的第一行程式碼 public class Xxx 是你「具體化的下下一步」。忘記那些什麼步驟、流程圖、類別圖之類的東西。
您提到「我腦中會有很多想法但卻不知道怎麼化為程式碼來編寫」,那是因為你都還在想但沒有寫,解決方法就是「開始寫」,也就是上面說的方法。你可能感到疑惑,我沒想好寫什麼怎麼「開始寫」?奧秘在於,你「開始寫」才會真正面對寫程式問題,而你沒開始寫之前想的都只是業務邏輯的事而已。一旦你開始寫,你才會有疑問說,我要怎麼建立新專案?要怎麼建立類別?package怎麼放?我要怎麼命名?我要寫什麼方法?帶哪些參數?回傳哪些參數?怎麼存取資料表?配置檔怎麼設定?的問題。若沒開始寫絕對不會想到這些「程式」問題,開始寫後你的雙手會神奇地帶動你的腦袋去思考。
錯誤:想 -> 寫
正確:寫 -> 想 -> 寫 ...
有些人想了一堆,Use Case、投影片、流程圖畫得精妙,但class都沒寫過是種本末倒置,那些東西是PM要幹的事,我們是Programmer,要幹的事是「寫程式」,只是專題沒有PM我們只好兼著當,但不少人搞錯種點一直花時間在那些東西上。
要學的東西真的很多,我到現在也持續在學習,不懂的地方不用鑽牛角尖,程式會動就是好程式,就像我現在也不知道System.out.println的System.out是什麼東西,我應該也沒空去弄懂它。
祝您順利
肉豬
下一篇:資策會學弟問答 三
沒有留言:
張貼留言