零基礎如何成為程式設計高手?謎熊2014-12-28 23:46:20

推薦給你一本書,我就是被這本書引誘進程式設計這個深坑的:

零基礎如何成為程式設計高手?

零基礎如何成為程式設計高手?

最重要的是,

它讀起來是一本易讀的小說,而不是一本難懂的教材。

而用起來卻是一本實用的教材,而不是一本空洞的小說。

零基礎如何成為程式設計高手?布客飛龍2015-01-03 14:40:12

不要看國內的教材(教育人士出的書)。國內從業人士出的書和網上的教程都可以看。

零基礎如何成為程式設計高手?Jason He2015-01-04 22:04:08

我大學學的是機械。

自學計算機主要是照著MIT,CMU,Princeton,Stardford這些名校網站上的課程,挑符合自己口味的來學。

這裡推薦幾門基礎課:

1。 MIT6。01 Spring 2011, 導論性質的課程。適合大一學生。用的程式語言是 Python。老師課講得很好。目標是掌握良好的系統思維方法,所謂的PCAP(Primitive, Combination, Abstraction, Pattern)

2。 Coursera 上面的 Programming Language 這門課,來自華盛頓大學。系統地學習程式語言和相關理論。課程上用了ML, Racket和Ruby。相關的閱讀,可以看Dan Friedman的little 小人書系列,essential of programming language之類。之後便可自稱polyglot了。目標是理解程式語言的本質,將來學習新的語法就輕鬆多了。再NB一些,可以自己創造新的語法了。

3。 Coursera 上的Algorithm 這個系列的課,來自Princeton。我覺得是教的最好的演算法課,比MIT的6。006 好多了,MIT的老師喜歡在大黑板上狂寫,雖然很有激情,但對於演算法教學來說,有點low了。初級演算法課程還是用動畫和圖表來得直觀一些。

4。 MIT6。828 作業系統。課程講的XV6,一個很簡單的作業系統,類unix。實驗用JOS,也是一個很簡單的作業系統,但是設計思想和XV6 不一樣。在自己實現這個作業系統的過程中,可以學到很多東西。

5。 Coursera上面的Computer Architecture,同樣來自Princeton。講的是處理器的架構和設計。

對於一個初學者來說,把以上的基礎課程刷下來,就上升一個level了。

很多應用的東西,比如Web開發,資料庫什麼的,就找具體的專案來練手了。

路漫漫其修遠兮~~

零基礎如何成為程式設計高手?在好2015-11-28 16:44:08

推薦一位IT精英的部落格,部落格地址:

zhuweisky - 部落格園

不為繁華易匠心

做技術是需要匠心的。什麼是匠心?我們原本是有匠心的,我們如今還有匠心嗎?我們為什麼沒有匠心了?為什麼我們要重拾匠心?如何重拾匠心?

一. 做技術是需要匠心的

中國古時的玉匠,切磋琢磨,用繩與砂漿,費數十載心力,終將渾然璞玉製成傳世珍品,千年遺音在,猶見當年寂寞心。

日本傳統的刀匠,將千錘百煉之鋼反覆鍛鑿、淬火、打造、磨製,每一處技至精微,每一處心入幽明——刀中有魂!

歐洲中世紀的石匠,在哥特式教堂的飛簷上雕刻出了靈獸狀噴水嘴,雖不為世人所見,仍一絲不苟——每一鑿中都有天堂!

米蓋朗基羅花四年雕刻出了震驚世人的《大衛》,曹雪芹批閱十載創作出了藝術巔峰的《紅樓》——任何偉大的作品背後都有一顆匠心。

二. 什麼是匠心?

匠心是對於作品而言的。

匠心是傾注於作品之中的精神、情感、乃至魂魄。

匠心發自於愛,是對作品視如己出的拳拳之心,是恆久忍耐又有恩慈。

匠心是出於這份愛的對於完美的追求,是追求中不避艱苦,是追求中自得其樂。

匠心是涵泳在作品之中的自我實現,是我與作品的相互完成,彼此造就。

在匠心看來,作品是我的至親之物,棲居著我的精神,安放著我的靈魂。

匠心即是愛心 + 恆心 + 一片苦心 + 七竅玲瓏心 + 出離心 + 寂寞心 + 金剛心 + 歡喜心 + 其人雖已歿,千載有餘情。

三.我們原本是有匠心的

我們原本是有匠心的。

當年Ken Thompson 和 Dennis M。Ritchie 一起在貝爾實驗室裡苦心孤詣。

如今,沒有人不知道Unix意味著什麼,C意味著什麼。

他們的匠心也彰顯在Unix和C中令無數人為之驚歎、感懷。

四.我們如今還有匠心嗎?

如今,我們再也難得見到“作品”問世。

甚至於“產品”也是少見。見得最多的則是“商品”。

對於我們而言,做什麼東西並不重要,重要的是做這個掙不掙錢。於是我們衝著掙錢做了各種專案,C/S、B/S、前端、後端、資料庫、Java、。Net、安卓——彷彿無所不知,無所不曉,十年之後回首,覺得自己已然是全才。

我們從事了大量的勞動,寫了幾十萬行程式碼。我們的工資越來越高,併為此沾沾自喜。

可是,這樣的成就,無非是一個熟練工人的成就。

我們何曾擁有匠心?

零基礎如何成為程式設計高手?

零基礎如何成為程式設計高手?

五.我們為什麼沒有匠心了?

隨著大生產時代的到來,那種田園詩般的男耕女織、帶月荷鋤歸的工作方式,早已一去不復返。社會分工越來越細碎化,我們面對的是一個又一個的區域性。在這之中需要的是規格化、標準化、量化和同質化。換言之,你所做的工作必須是合乎統一規範的,具有統一規格的單元,如此才能拼接到整體的工作中。因此,任何的創造性,任何私人性質的感情和精神的注入,歸根到底,只是錯誤的根源。 ——我們於何處安放匠心?

如今,商品成為了一切物所具有的普遍的形式。沒有什麼不是商品。商品是以交換為目的的。我們生產任何勞務、產品、或服務,都是為了交換,為了換取一般等價物,即貨幣,即金錢。因此,錢成為了衡量一切的準繩。如今不乏偉大的商品誕生,可是偉大的作品卻乏善可陳。商品需要的是批次生產,需要對消費者投其所好,當然商品也需要創意,可是那不是匠心!在一個由商品拜物教統治的時代,我們於何處安放匠心?

世界如此繁華,匠心未免太奢侈了!我們在喧譁與騷動中度日,有太多的追求,太多的比較,太多的你追我趕,太多的惶惶終日。每天有看不完的新聞,刷不完的微博,做不完的手頭工作。我們為無盡的事情發愁,疲於奔命。匠心未免太奢侈了!早在我們出生的那一刻,我們就開始照著大家來活,大家都在讀書,大家都在考學,大家都在找工作,大家都在結婚,大家都在買房,大家都在炒股,當我們跟著大家忙忙碌碌的時候,匠心自始就已沉淪!

六.為什麼我們要重拾匠心?

假使我們沒有匠心,我們將不會在工作中獲得真正的快樂。因為我們不能自覺自由地工作,我們的工作是boss定義的,而不是自己定義的。如此一來,我們就與我們的勞動之間切斷了血肉聯絡。我們的勞動成為了壓迫我們、奴役我們的異己力量。我們淪為被迫勞動。我們真正的生活在下班之後開始。我們不停地抱怨:要不是為了幾個臭錢,我才不要幹這些。如何才能迴歸到那種田園詩般的勞作之中——我們必須重拾匠心!

唯有在擁有匠心之後,我們才能走向真正的自我實現。馬斯洛將人的最高層次的需求定義為自我實現。一個自我實現的人,一個將自己的才能發揮到最大限度的人,才是那個獲得最大心理滿足的人。現實生活中唯有少數精英才能夠成為自我實現人。但是這並不妨礙我們追求自我實現。一個有著庸碌之心的人,是不可能走向自我實現的。唯有重拾匠心,我們才能佔有工作的全部意義,才能不避艱苦、精益求精,與自己的作品相互完成,彼此造就。

七.如何重拾匠心?

對於如何重拾匠心的問題,恐怕要留給每一個人來思考。而且是一個需要始終思考的問題。

在這裡我並不想給出答案。

只希望能在這篇文章中能夠看見你,看見我,看見大家。

能見眾生便是如來,不易匠心方得始終。

參考閱讀:

程式設計師的出路之一

——————————————————————————————————

零基礎如何成為程式設計高手?網易雲課堂2017-07-07 16:22:30

非計算機專業如何轉行到程式開發?

非計算機專業怎樣學習程式設計開發?

沒有專案經驗如何準備面試?

在我們的使用者中,很大一部分都是非計算機專業的。這其中包括在校大學生,也還有一些剛剛初入職場的社會人士。總體來看,大家對於跨專業學習IT領域的技能存在很多疑慮和疑問。

這裡梳理了

網易資深開發工程師彭陽

一些針對初學者(尤其是非科班出身的同學)的建議,希望能對大家有用。

1. 培養自己的好奇心

興趣是最好的老師。大家都知道,堅持不懈地學習任何東西都需要興趣去支撐;如果沒有興趣,則很難長久。

對於想跨專業轉行的同學,可以先問問自己是不是真的對這個行業感興趣,如果答案是肯定的,那這種嘗試是沒有問題的。畢竟這個行業正在以前所未有的速度飛速發展,並且至少在未來二十年是值得期許的。

其實對於大多數人來說,找到真正自己感興趣的東西去做確實很難,這種事情可遇不可求。

在沒有太好的目標選擇的情況下,如果有決心進入這個行業也未嘗不可。

但還是需要強調:在進入這個行業之後,大家需要保持一顆好奇心。因為只有這種好奇心才會驅使你堅持不斷的去學習,去進步。

2。

快速學習,多閱讀,多實踐

IT行業與其它行業相比,它的技術變更更加快速,可能每天都會有新的技術出現,你每天也都會接受到新的名詞、新的技術、新的架構體系。

身處在這個變化如此之快的行業,快速學習的能力變得非常重要。

比如一個新技術出來,你的老闆可能需要你用一個月的時間用這個新技術完成一個專案,一般這種情況下,你最多隻有一週時間完成對這個技術基本入門,後面就是一邊用一邊學。

說到學習能力,需要特別強調一點的是

英文的閱讀能力

。其實作為程式猿,英語能力是不可或缺的。畢竟計算機這整套體系都是老外創造出來的,所以我們在學習新技術的時候面對的大部分都是英文文件。這個時候,就特別需要我們有一個良好的英語閱讀的能力,這樣我們才能更好的快速掌握相關的技術資訊。

學習新技能的時候,

除了閱讀文件,另外我們需要做的就是多動手實踐,多寫程式碼。

很多學員在交流的時候都會反應一個問題,就是說跟著老師的影片會寫程式碼,但是自己寫就寫不出來。其實寫程式碼也是一個熟能生巧的事情,程式碼敲的多了自然而然的就會寫了,如果寫不出來說明程式碼還寫得不夠多。反覆練習,積累達到一定的量就會有一些寫程式碼的靈感,進而就會產生一種質變。總而言之就是,紙上得來終覺淺,絕知此事要躬行。

3。

注重基礎,抓住核心

前面提到IT領域技術更新很快,我們需要有一個快速學習的能力。對於一個初學者來說,面對紛繁複雜的各種技術,很多人都會一時手足無措,不知道從哪裡下手,很多跨專業的同學都會遇到這個問題。這邊需要說的是:

雖然這個領域技術繁多,新的技術也都層出不窮,但是有一句古話,萬變不離其宗,這句話就是強調我們需要去抓住所謂的那個宗,也就是我們所指的技術的基礎與核心。

作為非計算機專業的同學,不建議大家一開始就去學習Java或者C語言,還有所謂的各種框架。很多非計算機專業的同學可能會透過自學或者社會上的一些所謂的快速培訓機構學習程式設計,在短暫的學習後就能夠自己做出一兩個簡單的專案,甚至能夠勝任普通工作中的一般任務。

但是由於沒有對計算機專業知識進行系統性的學習,對計算機基礎知識缺乏瞭解,所以在遇到一些涉及到計算機底層的一些東西的時候就會不知所措。

比如計算機網路通訊、資料庫的設計規範、資料結構的最佳化、多程序多執行緒程式設計等等,這些都是非計算機專業的同學欠缺的知識。就好像蓋房子,在沒有打牢固地基的情況下就開始添磚加瓦,最後轟然倒塌是必然的。

作為跨專業的同學,建議大家先學習一些計算機相關的知識,這裡推薦一些書單。如果大家能把這幾本書都能夠完整的自學一遍,我想也就可以算是計算機入門了。

《計算機體系機構》

瞭解最基礎的計算機硬體知識

《計算機作業系統》

瞭解整個作業系統的實現和程式設計環境

《編譯原理》《計算機網路》

瞭解程式語言的原理和網路原理

《資料結構與演算法》

瞭解程式設計中常用的資料結構與經典演算法

這裡打個比喻,如果大家先將計算機專業的知識體系建立起來了,就好像先練就了一身九陽神功,後面再學任務其它武功就是易如反掌,這樣才有可能做到我之前提到的快速學習。

4。

勤寫技術部落格,與牛人多交流

寫技術部落格是一種可以快速提高的方法,我們可以分享自己總結的一些經驗,也可以分享自己的體會。

一樣東西在你大腦裡,並不代表你已經掌握了,如果你能說給別人聽,或者用文字表達出來,那才算真正掌握了。

大家在剛剛寫技術部落格的時候不要擔心自己分享的東西太low,只要你認為是有價值,都可以寫出來,這不僅可以給別人提供知識,同時也能夠整理自己的思路,有時候還可以得到網上朋友的意見和反饋,跟大家一起交流。

在IT這個領域,你會發現周圍有很多技術牛人,他們都身懷絕殺武功,通常他們都很低調,低調到你都很難發現。如果你發現周圍或者網上有這樣的同事或者朋友,就可以多跟他做一些技術交流和討論,在這個交流和討論的過程中你會學習到他思考問題的思路和方法,同時也會加深對知識的理解,這樣也是一種快速提高很好的方法。

以上。