前輩給我們留下最寶貴的經驗

2021-08-21 11:05:02 字數 1623 閱讀 8693

看了一些學長的總結,發現一些其實我們忽略的東西。有些時候我們會往往忽視在競賽過程中我們真正遇到的問題,會不敢面對那些我們不得不正視的東西,會不由自主忽略那些真正值得我們追求的、嚮往的。

其實競賽並沒有使我們高人一等,也並沒有使我們從文科生直接轉為理科生。它裡面蘊含的哲理值得去學習與體會。不只是演算法,競賽的精神和理念也是我們應該去理解的。

廣東中山紀念中學姜碧野學長

我隨便看了下大家的總結…感覺資訊量不大,總結的都不是重點…..核心問題在於大家可能沒有意識到資訊學競賽跟其他競賽、高考的本質區別……

所以大家總結的常見句式是:「題目好水的,就是那個xx沒想到、***沒注意、犯了個小錯誤」….或者就是只寫寫「***題想到了***演算法,讓後上去拍,然後就沒有然後了」,「我當時有點急…所以犯了***錯誤」…

我覺得大家還認為想演算法本身是競賽的絕大部分內容,而認為後面的code實現是技術活,允許「偶爾」存在各種各樣奇怪的小錯誤小誤差…….這種想法是很錯誤。因為電腦科學相比於數學最本質的區別就在於:數學只關心函式變換的性質,而computer science要研究變換函式具體怎麼實現、怎麼一步步計算。什麼意思呢?比如說排序,數學家只會在序列上定義乙個函式f(x)=y,比如f([2,1,3])=[1,2,3]….然後去研究排序的性質(就像我們一般講題時,紙上談兵,僅僅是講講各個演算法怎麼組合在一起而已),而cs則會具體研究這個函式每一步的計算過程是什麼,不同的計算過程各有什麼特點。這是有本質區別的。。

再回到大家寫的總結,很多時候只講了自己想演算法的經過,有了乙個模糊的「要用那個***演算法」的想法,就開始搞實現了,然後也不講自己實現時都想過些什麼問題但實際上,具體實現的時候,哪些邊界問題要考慮,哪些假設需要去驗證,各種變數在整個計算過程中是怎麼協調的,會不會什麼時候出現bug,都是要系統地去考慮的~這些思維方式是數學家以及其他學科的人完全不具有的(也是很多程式設計師不具有的),而熟練掌握這種思維方式,正是高階程式設計師和入門級程式設計師的最本質區別。

我當年高一參加gdoi2007,我當時也覺得題目不難啊,各種題都想到了演算法,但是:1. 寫得很慢,每試都寫不完4題,2. 最後的其實大難題只知道演算法,但想清楚實現的細節,以及最終實現可能還需要1~1.5h的時間。其實在noip, gdoi裡面,因為題目不是非常難而且你跟你的競爭者實力不差太遠,想在「演算法」上取勝不容易。更多的是你比別人寫得快寫得準… 我後來gdoi2008的時候,就非常有條不紊,每道題都想得非常清楚,正是因為多寫一年code,各種實現的經驗又漲了很多很多…..

只討論怎麼想題,不討論怎麼想「實現」的是所有人的通病,因為那個不好用語言表達。但大家除了要總結自己為什麼沒想到某某演算法之外,一定要學會去總結,自己為什麼沒意識到那個bug的可能存在?自己為什麼寫著寫著題發現得架構錯了,得推到重來?別人寫code時候,都想了什麼問題?為什麼要想那個邊界?為什麼那個邊界會出問題?…..大家必須熟練掌握驗證自己程式準確性的常用方法,學會合理**各種可能的bug。這些其實上是很難的,在軟體工程領域有乙個專門的「形式化驗證」的方向。所以大家必須引起重視,也可以多快看那些軟體工程相關的書籍,對於程式測試、模組化程式的編寫、良好程式風格的把握等等積累經驗。

最後一句話:不要再覺得自己程式寫出些小錯誤,是些「隨機」的小誤差….不要總覺得想出了演算法就很不錯了,就跟那些做對的人一樣了。你寫不出來、寫不對,就是差距……

寫對乙個code,不難…知道這個code為什麼是對的,很難…..

阿里旺旺前輩告訴我們。。。

下午。有機會聽到04等級學長回母校給我們乙個交流。在這次會議上,我聽到了很多自己的學習經驗,談了很長時間。還有我們這些進入的學生建議社群,我覺得說了很多關於自己的東西是非常有用的,記錄日本完成。關於未來發展方向 因為都是計算機相關專業,學長講的也都是計算機相關專業未來的發展方向。主要分三個大的方向 ...

SQL 碼農 老前輩留下最好的禮物CASE

這個寫法是以前公司走掉前輩留下 在乙個客戶裡的資料包表看到的好寫法 對我來說剛剛入行不久是最好的禮物 select case when name 毛毛西 and sys id in 2,3,4 then 第一結果 when name 陳小花 then 第二結果 when name 陳玲玲 and s...

縹緲帶給我們什麼!

許多年沒有為一本 如此的牽腸掛肚,如此的廢寢忘食。剛開始看縹 緲吸引我的僅是精彩的情節安排和天馬行空般的奇思妙想,看第二遍時漸漸 懂得作者在帶給我們快樂,邀請我們一起去消遣時,也教導了我們一種面對 人生的態度。人的一生總是在一種特定的境遇中,無數不同特定境遇連續起來,便構 成了我們自己獨特的人生旅途...