有許多同學,想入門編程,又找不到,有效探索的路徑,很是苦惱,大大加深了,對入門的誤解。今天在這里,我向大家,簡單回答一下,以上的問題。
不要輕易地低估了編程(Coding),把它看作是,任何人都可以掌握的,人人都可以在電腦前敲敲鍵盤,就能讓電腦“干活”的工作。
也不要輕易地高估了Coding,把它看作是,自己一生都難以掌握的,可望而不可即的智力活動。
為了給提問的同學,答疑解惑,如果我們解答了“編程到底難在哪里”這個問題,我想,上述這個問題,你就應該有一個清晰的答案了。
我們都知道,Coding是一種將人類的邏輯和語言,寫成可以被電腦“嚴格執行”的一串串代碼,如果你愿意把Coding,比作“用人類的語言寫作”,大致也說得通。
當然,計算機執行一道道命令,比我上述極度簡化的流程,還要復雜得多。Coding到底來說,其實還是可以被人類“直接識別”(得經過一段時間訓練)的,可被人理解的命令行。
從底層來說,各種編譯器,還要把這些“代碼”,“轉換成”可被機器直接識別的“010000111110100010……”的機器碼,人類和計算機之間,至少還“差了一層(人類語言→機器語言)”。
所以現在,不少編譯器,都提供直觀化的編輯器,語法有錯誤的地方,還會給你指出來;有些編譯器,還自帶“高級Debug”功能,對現代的程序員而言,已經算是很“友好”了。
剛才我有提到個例子,對比的是Coding和寫作的難度,其實,我覺得:
從“構成”來說,即寫成一段完整的代碼,或是寫完一整篇文章,我覺得,后者更難些。
梳理思路,構建邏輯,兩者是共同的,但寫“文章”,是要給更多的人看的,想要“打動”人的情感,是一個比較困難的事(不信?你去看看知乎上文筆優秀的高贊文章)。
而“打動”機器(能跑得通,運行效率高,無Bug)的標準,相對來說就要低一些,也更好“量化”一些,相信經驗豐富的“大牛”們,寫出的每一行代碼,都是“優質”的代碼。
你讓一個作家,寫出篇篇傳世的好文,這個就很難, 你可能會問我,像@張佳瑋那樣的大神,每篇文章贊量不是很高么?那是因為,人家積累出了名氣,他的有些文章,時效性較強,文筆方面就弱一些了,這些都是我的廢話,希望能幫助你的理解。
好的,經過以上論述,我們可以得出一個大致的結論:有了隨處可獲得的免費資源(Google、GitHub)、靠譜的教授機構(比如我們的優就業,我就是這么無恥,哈哈~~)、可糾錯的編譯器、工作中時刻交流技術的同事,如果你“立志”入行,有許多科學的學習路徑,也有許多愿意幫助你的人。
路都幫你鋪好了,剩下的,還得你自己走,這條路,并不總是“簡單”的。
無論學習哪種技能,包括編程,我認為,都要經歷一段時間的“非舒適區”,舉個學英語的例子吧:
假設你的詞匯量掌握數為0,想看懂《紐約時報》,你就必須得從3000詞,“痛苦”地背起。
Coding也是一樣,對于我們中國人而言,學習母語為英語為主的國家的人,開發出的編程語言,你就必須得按照人家的“規矩”來,包括官方文檔等,持續學習,也是程序員必須掌握的技能之一。
編程門檻不低的理由之一 —— 想熟練地擼代碼、終身學習?先把英語撿起來吧!
Coding,對學習者的邏輯思維能力,宏觀性的事物判斷能力,要有更高的要求,你可能寫出來一篇,文筆優美,但邏輯不太通順的散文。但是抱歉,如果你把這種習慣,代入到Coding里電腦可能會不認你的努力。
編程門檻不低的理由之二 —— 你不是“數學家”,但在Coding的時候,需要解答很多“邏輯思維題”,說實話,挺“燒腦”的;感覺自己“腦力”不夠的,請繞道吧,小優不是嚇唬你。
Coding的目的,是要拿來用的,就是要讓它“跑”在機器上,不管你的代碼,寫得有多優秀,最終只能體現在:用戶使用體驗,覺得更流暢、更順滑了。如果你學習的是“后端”,即使你的SQL寫得很科學,網速不好,也很有可能拖了用戶體驗的后腿。
編程門檻不低的理由之三 —— 即使你盡力了,你還有可能遭受各種非議。
現代化的軟件編寫,是一項十分“龐雜”的工作,越大型的項目(保守估計,Windows系統有7000萬以上行的代碼),維護和調試起來,就越復雜。很多時候,你不只是“寫”代碼,還要把前人工作時,留下的“疏漏”,逐一排查清楚。
編程門檻不低的理由之四 —— 你不但需要“創造”,更需要“糾正”,“糾正”的過程,相當于給別人的文章“挑刺”,是相當枯燥無味的。
看到這里,如果你依舊能堅定決心,知難而進。那么,小優還是深深欽佩你的勇氣。
學習編程,最好的時間,在10歲的時候;其次,是現在。
本賬號,屬于“中公優就業”旗下的運營賬號,賬號發布的內容,均為原創。