攀岩和編程有什麼共通點嗎?
注意到攀岩圈有不少程序員,我知道的就有三個,包括著名的雲風。
曾經攀岩,曾經學編程,現在都傷心的生疏了,給另一個觀點吧~
(不是高手,信息供參考,大牛們太過低調)某答案說女性少,不太對。很多女性的,目測一半沒問題。而且初期女性攀爬更好,柔韌性好,而且女性天生臂力不夠,本能會從技巧開始。而很多男性初期很容易用暴力爬法,導致技巧提高比較慢。
1)只要堅持,從零開始很容易。
我從零開始攀岩,差不多3個月到510b,野外可以爬511(讓我小小想當年一次吧~現在肌肉退化了~),野攀比室內容易,野攀有無數種爬法,女性身高不再是問題,室內某些線,太矮臂展不夠,有時候只能跳抓。編程從零開始也不難,Python等等,網路很多教程。能堅持3個月,都能有小成。2)有朋友圈,學習更快。
編程,我最初是跟組織混,GDG(Google dev Group)很多大牛,現場分享各種乾貨,Python有學習群,很多人熱心幫助。遇到問題,馬上有反饋建議。攀岩如果有朋友,能快速糾正,能一起去野攀(陽朔是中國攀岩聖地,很多線路而且風景極美,郭亮也不錯,還有岩友去泰國、西班牙、美國等地攀岩,一群朋友,連旅行帶爬,很愉快)嗯嗯,另外友情提醒,不要輕視看起來柔弱的女性,好幾個能爬514,但看起來文靜普通。3)即使你遺忘技巧了,但若曾經學過,終身受益。
即使我已經忘記Python各個包引入之類,但跟人溝通會很方便。尤其對方告訴我結果時候。我會問問他怎麼計算的。雖然自己不能寫,但可以用自然語言講其他可行方式。
因為產品是你設計的,你更明了幾種不同的可行方式。有次迷路,我向上爬行找到新出口。而那個對攀岩的人來說,非常非常容易,不到70度的山,簡直沒難度。後面其他人就爬得非常狼狽,互相攙扶拉手,用了特別久。當時想了一下,如果意外遇水之類,難度低的石頭,垂直向上爬一點問題都沒有。普通人大概會被水困住。現實中很多岩壁很好爬。手點腳點很大,而且90°以內居多。4)能拆穿外行裝B犯像你這種有人文關懷和生活體驗的老驢,是瞧不起神馬岩壁速降的。有天下午在酒吧里險些因此吵起來,你二話不說,掏出手機撥了個電話,就把那兄弟拉到了市區某高樓。外牆清潔隊長一時半會兒沒認出你來,你已經繫上安全繩爬出去了……那兄弟後來看到了你的高空作業證,從此改玩山地車了——花總《裝B指南》
唔,花總其他部分寫的很贊啦,就這裡,看到就搖搖頭,他應該找個玩戶外的審稿嘛。
Free solo都不是裝逼境界。裝逼應該這樣裝,看到你在陽朔開線,或者看到他輕鬆爬514B之類。&>_&<可是普通人不懂,會覺得爬的很高,或者無保護攀登才是最牛叉的。金茂大廈其實很好爬的,這事我會亂說么~雖然已經徹底忘記Python寫法,看對方用win,裝了某60,還吹噓自己是高手,大概會默默搖頭。
不用同步軟體,不了解開源,不寫文檔,變數名字亂糟糟的人,都會被默默列為非高手。
5)高手都低調樂於分享,並且有自己圈子,圈內有正面行為規則。
攀岩跟編程一樣,高手、風俗、行為習慣,大都由國外影響和發源。我所了解的計算機安全高手,低調耐心對人親切友好。網站有github,Stackoverflow,德問等等。攀岩高手,之前攀岩圈不少業餘爬到513,專業到514的(我師父是攀岩國家隊的嘛),也低調友好,耐心幫助新人,尤其耐心傳播關於安全的各種知識。岩蜥 論壇不錯。國內外旅行對攀岩者都很友好。指導地圖、路線圖,交通圖等等,各種標註。就像計算機的開源,攀岩也有基金和贊助,用來修復那些腐蝕掛片,保護攀岩者安全。開線,標註路徑,或者呼籲大家保護環境,甚至曝光因為攀岩順便偷采水晶的惡劣行為。整個圈子很自律的。而且圈子算小,很多人互相認識。做壞事道德風險很高。去野攀會把所有垃圾帶走,互相保護,發現生鏽螺栓,落石區域,都會在論壇告知信息,避免傷害。跟程序圈一樣,公開bug,分享好的模塊,譴責某些行為。
6)忘我體驗。
寫代碼寫下去,看著代碼運行忘記時間,真的很開心。攀爬自己喜歡的線路,一直爬一直爬,爬到力竭,真的很開心。都是忘我境界。7)副作用:會跟普通人興趣點不太一樣…關於編程的網路冷笑話(貌似程序員很專註自黑):人生贏家和Loser的區別就是,當他們很興奮地說一件事情的時候,前者幾乎都是你能聽懂的,比如結婚了,買房了,泡到姑娘了。後者說的大多是你聽不懂的事兒,比如什麼Python出新版本了,代碼出Bug了,Apache又有漏洞了,Deep Learning可以做並行了。
攀岩,有段時間思維會有點不太正常,路線判斷會往上看。
有次一起去戶外爬山(上海攀岩人一直蠻多),然後跟領隊一邊走一邊聊,領隊說:「從前啊,爬山還挺好的,不管走快走慢,大家都在一條線上。後來攀岩的人多了,唉……」我很傻的說:「攀岩人多怎了?不是挺好么?」一邊說一邊往我認為正常的路上走(一個目測5.8而且不到3米的岩壁)。領隊大喊:「回來!那不是路!!」
然後哭喪臉補充:「攀岩人多了之後,你要喊大家走正常的路,雖然那個5.8難度,也不許爬上去!」愛好攀岩,看到石頭、岩壁會超興奮。普通人大概說,光禿禿石頭╮(╯▽╰)╭長期攀爬,手指和腳趾都會變形,手腳經常破皮或刮傷,還非常樂此不疲。8)初級依賴裝備,高手不役於物
初級很多零碎要學習的:嗯,編程初級需要一堆裝備,各種環境引入各種包,各種頭疼。攀岩初級,學打結,安全帶、主鎖、快掛正確用法等等,各種頭疼(記得師父那時候還要寫文字作業,我每次都寫得亂七八糟)高手不役於物:高手可以用txt或者瀏覽器寫代碼。攀岩高手可能穿了拖鞋無粉袋直接過線。一根繩子就能安全速降下來。
最後,血淚教訓,請不要半途而廢。一旦終止或者放棄,重回有點困難。我沒有堅持下去,最後忘記了Python寫法,還是不懂編程。攀岩很久不爬,指力全無,曾經能上的線路,全部掉下來,心裡無限悲傷。當你停止,不管是攀岩,還是編程,你慢慢遠離那個朋友圈,不再是圈內人。友情遠去會很悲傷。嗯嗯,放圖片。2個都是我師父。2個都是攀岩國家隊。感謝 @Lawrence Li 邀請。
直到 2013 年 1 月 1 日,我是攀岩兩年多的入門菜鳥。對我來說攀岩的最大樂趣在於攀爬時必須將身心全部投入其中,即使在身體到達極限的情況下也要做出快速準確的判斷,才有可能突破自己的極限。另外攀岩時在一塊艱難的岩壁上鎖住身體,或者過了一個屋檐,那種跟物理定律對抗的感覺是非常奇妙和獨特的。
這種挑戰極限以及身心完全投入的感覺,對我來說算是攀岩和編程的共通點;但這不是攀岩和編程獨有的,在其他活動中也能體驗到的,比如滑雪、長跑等運動,甚至任何一項活動,只要你真正投入其中,都能有所感受。
攀岩和寫程序一樣,你總是想有沒有更優雅的「解決方法」:岩壁在那,你總是可以嘗試不同的路線和方法。
攀岩和編程都是一項「精密」的活動,比如在一些關鍵的岩點,動作稍有偏差可能就過不去了。
但總的來說,攀岩和編程的感受很不一樣:寫程序可以帶來控制操縱計算機的快感;攀岩基本是利用物理定律跟物理定律對抗,在岩壁上感覺挺渺小的。對同一個線路或同一個計算問題,通常都存在多種解決方案
好的攀登和好的程序,一眼就能看出是優雅的,甚至不需要用技術指標去衡量技巧比力量要優雅,巧妙的演算法比利用高計算能力要優雅高效的訓練的方法都差不多:對同一問題進行重複求解和不斷精化
都存在某些解決問題的模式:對於不同的岩壁、岩點都有一些模式化的技術動作,對於不同的計算問題也能總結出對應的模式
攀岩有分解完成,編程有單步調試
攀岩有人工岩壁訓練,編程有模擬環境和單元測試攀岩一定要有搭檔,編程也可以找個結對,不過,當你快要絕望的時候,搭檔都幫不上忙...今天看見quora上有類似問題Why are tech people interested in rock climbing?
有個答案感覺寫的很好,作者是Alison Dannis,回答如下:As a tech person, I feel qualified to answer this question.
We like to problem solve. Anywhere, and everywhere.
We feel smarter and better about ourselves when we solve problems. And problems that have subtleties to their answers are extra intriguing (how we can write one line of code that does the same work as 20 lines of code written differently, or how we can tilt our hips slightly enabling us to stretch our arm just a tiny bit further to rest upon a small previously unreachable crimp).
Additional reasons that techies are attracted to climbing:- Climbing is quite often more mental than physical.
- Sitting in front of your computer all day is challenging. Movement is necessary to keep creative and excited about more sitting.
- The Gear. Shiny, shiny gear, with all sorts of specs to sort through (I quit my corporate tech job to start a geeky rock climbing gear comparison website called WeighMyRack.com. I have a lot of folks email me saying "this is so much better than my excel spreadsheet!!").
- We can calculate the risk, and choose a comfortable path.
- We like doing things other people say are impossible.
- Similarly, we like doing things we previously thought were impossible (we like to outsmart ourselves).
- Problems that have "unlimited" answers are cool (of course, we do want to find/implement the best possible answer).
- Climbing can be with partners (roped climbing) or solo (bouldering) so it appeals to all spectrums of introversion/extroversion.
- Were used to starting problems with a goal in mind but no known path.
And finally, not limited to techs at all, but many climbers will find: Exploring the unknown and pushing your mental and physical limits is an incredible motivation to climb.
Written 10 Oct.Upvote1自己學數學,對編程的一些思想有寬泛的了解;
自己攀岩剛起步,對岩館裡的岩壁有過最直接的體驗;
「以上是背景資料」
以我有限的理解,它們的共通點是:
KISS keep it simple and stupid
一次只做一件事
具體到攀岩的話,這條線路要麼攀,要麼放棄。
具體怎麼攀,該找教練。
單步沒問題,連起來就掛了
都是上手慢,進階慢,退步快。
最常用的動作都是「摳」。
女的少?
都是用腦子控制手。
題主,你如果先注意到兩個圈子都有不少產品經理,就明白了
共同點就是我玩的都不溜
就我對上海岩友的了解,經常攀岩的人群中,男性至少有1/4的工作與IT相關。
攀岩五個月,代碼寫了五年(非科班出生的非碼農)。
感覺兩者也沒啥關聯,單純是兩個興趣。細細想一下,可能還是有幾點共通的。
第一點二者都是以解決問題為導向,且都有一些「定勢」。比如一個boulder問題,一般存在一個常規解法,編程里的一些問題也有「常規」解法(演算法)。但是大家會根據各自能力和喜好,開發屬於自己的解法。
第二點,入門簡單,精通很難。寫一個helloWorls 絕對不是難事,同樣的,要順著牆上的洞爬上去,其實也不難。但是從菜鳥變成高手,過程要付出多少辛酸...誰用誰知道...
第三點,debug的過程也挺像的。比如我最近在嘗試的一個v2 problem,過不去的地方總要反覆嘗試,變換左右手或者腳的位置,這個過程還挺有幾分程序里debug的味道。
第四點 成就感。代碼跑起來和攻克一條岩道之後都忍不住來一句「卧槽...」
目前就想到這麼多.用有限的資源完成想完成的事
不斷優化萬法皆通。古人還說治大國如烹小鮮,你想找總能找出共通點的。
推薦閱讀:
※大力出奇蹟——Python暴力猜解Web應用
※C++學習第一課,之「Hello world」
※比特幣入門教程
※操作系統如何介入到我的程序的?