整理知乎下關於編程的優質回答和文章(不斷更新中)

下面是我認爲優質的知乎回答和文章的集合,還附有部分精彩原文。(最新版的文章集合我整理髮布在知乎上了:知乎上關於編程和程序員的優質回答和文章

準程序員(給高校學生)


你想告訴準程序員些什麼?  回答者:藍色

不要擔心自己沒有計算機基礎,也不要羨慕高中有計算機基礎的同學,其實你們都還是在一個水平線上。很多課程不是沒用,不要太抱怨,只是教學的方式沒有辦法引起你的興趣。對於一門課程,選一本經典的教材,認真研讀,並且善於Google,看看國外名校這門課程的教材與講義,並且做做他們的作業。數學很重要,也許你只有這一次機會有大把的時間來好好學習數學。


計算機專業大類下,還有哪些細分的專業,分別是幹什麼的?  回答者:羅文

不要擔心自己沒有計算機基礎,也不要羨慕高中有計算機基礎的同學,其實你們都還是在一個水平線上。很多課程不是沒用,不要太抱怨,只是教學的方式沒有辦法引起你的興趣。對於一門課程,選一本經典的教材,認真研讀,並且善於Google,看看國外名校這門課程的教材與講義,並且做做他們的作業。數學很重要,也許你只有這一次機會有大把的時間來好好學習數學。


這可能是我見過最好的編程指南了!  作者:編程的二胖

從大一入學被調劑到計算機專業,到喜歡上這個專業,再到畢業拿到10多個offer,最終進入理想的大廠工作。回想起來這些年確確實實踩了很多坑。我剛開始學習編程的時候也想一口喫成一個胖子,想速成,但是有時候卻是不盡人意。

回憶了下這幾年學習編程的過程,整理了一些我自己認爲很需要注意的幾個方面,分享給大家。希望能讓初學編程的你,少走一些彎路,可能文章比較長,但我真心希望初學編程的你能夠認真看完,至少,我認爲如果我剛學編程的時候看到這篇文章,對我或多或少是有一些幫助的。


如何確定自己是否適合做程序員?  回答者:毛文強

程序猿最重要的能力是什麼?

解決問題的能力!這個很多IT從業者都是贊同的,應該沒有太大異議。

那麼如何從“解決問題”的角度看自己是否適合做程序猿呢?

我認爲有兩大標準可以用來衡量——“探索精神”和“邏輯思維”


新手關於如何看編程經典書的一些疑惑?  回答者:孫天齊

很多學計算機的朋友,都有類似的困惑:我學了計算機專業,怎麼還是做不出網站、軟件、APP?很多人誤以爲是教材不接軌,因此崇拜國外教材,其實不是那麼回事。我儘量詳細地答一下,順便也講講計算機科學到底是幹什麼的。


爲什麼現在國內各大高校仍選用譚浩強的《C 程序設計》爲教材?  回答者:牛岱

爲什麼部分外行人看起來不太複雜的網站,比如Facebook,需要大量頂尖高手來開發?  回答者:子柳

【搜索商品】——這個功能,如果你有幾千條商品,完全可以用select * from tableXX where title like %XX%這樣的操作來搞定。但是——當你有10000000000(一百億)條商品的時候,任何一個數據庫都無法存放了,請問你怎麼搜索?這裏需要用到分佈式的數據存儲方案,另外這個搜索也不可能直接從數據庫裏來取數據,必然要用到搜索引擎(簡單來說搜索引擎更快)。


室友想抄我的代碼,給還是不給?  Doraemon

當然可以給,但是建議你在代碼裏做點手腳。


如何成爲一個優秀的程序員?


作爲 IT 行業的過來人,你有什麼話想對後輩說的?  回答者:二律背反

一個程序員,應該花80%的時間做代碼設計、畫UML圖、畫時序圖,20%的時間寫code和debug;菜鳥程序員的這個比例恰好是反的。一句話,不論這個需求有多緊急,你都一定要“想好再動手”;“想好”的標誌就是設計文檔寫好了;文檔一旦寫好,寫代碼就是純粹的無腦工作。

英語,很重要。能否使用英語查閱資料,是區分技術人員水平的重要指示之一。寄希望於“有人遲早會翻譯成中文”的人是愚蠢的、是會被淘汰的。

要有分享精神,不要擔心你知道的東西告訴了別人你就沒價值了


有哪些新手程序員不知道的小技巧?   回答者:漢彬

我有一個學習的小技巧,就是學習新技術的時候,多看看“官方文檔”。

多年來的學習和工作經歷,讓我比較深刻認識到一點:看“官方文檔”非常重要。

我們很多的問題和技術細節,其實,只要我們認真將官方文檔過一遍,會發覺大部分的問題和認識模糊的地方都消失了。甚至,你還能發現自己之前通過搜索獲得的到一些資料,可能是不準確或者已經過時的。官方文檔是真正的好東西,因爲編寫文檔的人羣,通常就是這些技術或者軟件的開發者,他們纔是對這些東西最瞭解的人,因此,他們寫的文檔質量是很高的,通常也是最新的。


有哪些新手程序員不知道的小技巧?   回答者:鬍子大哈

編碼的時候只思考同一個思維層次的邏輯,在這層完成之後再思考下一層。

它基於這麼一個事實:我們每個人智力是有限的,同一個時間只能思考有限內容的東西,我們都不是天才。由於這個事實的存在,所以程序 bug 就會存在(廢話)。因此,思考問題的時候(編碼)不要跨抽象層級思考,在我們有限的智力裏面現保證這個層級的邏輯正確,再思考下一個。


怎麼成爲優秀的軟件工程師,而不是優秀的碼農?   回答者:蕭井陌

優秀的程序員會告訴你打根基的重要性,會勸你在厚積薄發前要隱忍。


程序員基礎掌握得好學新東西真的就快麼?   回答者:姚冬

計算機領域有三件事最重要,存儲,計算和傳輸這三個組成了一個不可能三角,存儲大,計算快,傳輸帶寬高延遲低,是不可能同時實現的幾乎所有技術都是圍繞這三個問題來做的,都是犧牲其中一兩個來換取另外的,只是看具體場景裏哪個更重要。看到一個新技術,就要想想它要解決哪個問題,它打算犧牲哪個換哪個,想明白這個很多事情就好理解了。


每個程序員必須掌握的常用英語詞彙(建議收藏)   回答者:黑馬程序員

天天寫業務代碼,如何成爲技術大牛?   作者:李運華

要想有機會,首先你得從人羣中冒出來,要想冒出來,你就必須做到與衆不同,要做到與衆不同,你就要做得更多!


請問下小白在軟件公司,都是在自己看,偶爾同事分點任務都是簡單的增刪改查的,改改bug有前途嗎?   回答者:李默之

說了這麼多,只是想說一個道理。在任何一家公司,只要你自己肯用心,總能收穫有價值的東西。很多人都是在被動的等着別人給你資源和機會,希望能從中歷練。

你不知道的是,在你每天漫不經心的做着些邊角活的時候,你和別人的差距就已經在慢慢地拉開。


編程能力究竟是什麼? 我們該怎麼做?


什麼纔算是真正的編程能力?  回答者:h8liu

計算機科學有兩類根本問題。一類是理論:算法,數據結構,複雜度,機器學習,模式識別,等等等。一類是系統:操作系統,網絡系統,分佈式系統,存儲系統,遊戲引擎,等等等等。

理論走的是深度,是在追問在給定的計算能力約束下如何把一個問題解決得更快更好。而系統走的是廣度,是在追問對於一個現實的需求如何在衆多的技術中設計出最多快好省的技術組合。


編程新手如何提高編程能力?  回答者:姚冬

編程不是一種知識,而是一門手藝。

回憶下自己當年是怎麼學會騎自行車,學會游泳,學會打籃球的,按照那個思路去學編程,而不是用你學大學課程的思路去學編程。

記住,編程是手藝,不是知識。


編程到底難在哪裏?  回答者:DJ Hitori

這篇回答並不是講述在生活中程序員如何買蘋果,而是以買蘋果爲例說明程序員如何解決問題。程序員需要對問題進行透徹的分析,理清其涉及的所有細節,預測可能發生的所有意外與非意外的情況,列出解決方案的所有步驟,以及對解決方案進行儘量全面的測試。

而這些正是我認爲編程難的地方。任何一點遺漏都會成爲bug,輕則導致捱罵,重則導致經濟損失甚至危害安全。

注意這些難點全部和語言無關。和編程所需要的絕對嚴密的邏輯相比,語言實在是太簡單了。(某些自帶代碼混淆效果的語言除外)


編程究竟難在哪?   回答者:invalid s

編程不難。但它要你創造。

混知乎或其他網絡論壇,總有人忍不住罵“你們碼農怎麼什麼話題都想插一嘴?”

很遺憾。但程序員的工作,恰恰正是“理解各行各業的工作,然後把它教給電腦”。

沒錯。學編程,學的甚至不是計算機本身;相反,它要求你從聲學到視覺暫留、從結構力學到濾波解調……隨便哪行哪業,你都要能夠快速抓住重點、然後把它說的清清楚楚明明白白,這纔可能把它教給計算機、讓CPU代替人工作。


鹹魚翻身——編程自學指南(一)正向路線  作者:到處挖坑蔣玉成

1、永遠不要假設自己有足夠的熱情(信心保護)

2、確保你學到的東西都是性價比最高的內容(高性價比學習)

3、循序漸進地學習新知識,選擇新目標(最低耦合)


你會如何重新學習編程?   回答者:ze ran

這個無法轉載,沒有原文示例,大家自己去看吧。編程就是打怪升級啊,點亮一個個技能點,最後融會貫通。


如何系統、科學地自學編程知識?  回答者:林建入

走入編程,然後走出編程。編程是爲解決問題服務的,我們應當多思考想要解決的問題是什麼。這會在我們迷茫的編程生涯中起到指南針的作用。它會告訴我們需要學習什麼,然後由我們自己來回答如何學習。


編程的技術資料好多都是全英文的該怎麼學習?   回答者:Boyan
  1. 你不應該回去專門學英文 / 背單詞
  2. 你要能接受自己不能 100% 看懂資料
  3. 你要學會的,是閱讀;而不只是,閱讀英文
  4. 你要培養一種習慣,能用英文閱讀的習慣

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章