打算用一年時間在家自學知乎大大推薦的CS大部頭,家人覺得不靠譜,自己心裡也沒底,該怎麼辦?
2015-1-30 18:41-------------------更新--------------------
十分感謝各位,昨天晚上提的問題,現在能有這麼多人回答真的好感動。。。各位的答案我都有仔細閱讀過,一天時間裡頓時清醒了很多,可能是之前對自己的定位有點模糊,還沒有認清現狀,這讓我突然想起之前在知乎看到的一個笑話:飛機上鸚鵡說,這航班服務太差了,老子不坐了,說完就打開飛機門跳出去了。豬也站起來說,你說得太對了,我也不坐了,也跟著跳出去了。半空中鸚鵡對豬說,你不會飛跟我出來幹嘛?一時間感覺我真的好像那隻豬啊。。。真是太不理智,今天我已決定,準備繼續在這讀完,先能保證自己找到工作,再好好系統的學習那些底層的知識,很多人打臉打的很對,像我這種有時候太偏於理想化的人就該被打臉清醒一下。
-------------------------------原文-------------------------------還是先介紹一下我的背景吧。我不是高中畢業,初中畢業後直接讀了中專,大專沒有讀完退學就進了某IT培訓機構學編程,所以學歷僅有中專,家裡因為買了一套房付了首付欠了很多外債,我出去工作後就是房奴了。目前在培訓機構學IT學了一個學期,第二學期不想學了,因為受到知乎上很多程序員的價值觀的沖洗,越發覺得培訓機構不靠譜。於是在第一學期後期下決心想在家把蕭大大推薦的大部頭看完,然後把網易雲課堂的課程上完。再去學各種工具。(順序沒錯吧?)但是。。。今天培訓機構的老師找我談話,說他也是從大學出來的,學的這些東西以後工作上基本用不到blabla,對以後找工作沒幫助云云,說他學的高等數學現在用不到,懂底層的原理對以後工作沒幫助云云,他還說我的想法很幼稚。但是我知道,依據知乎里的各種厲害程序員的就要說,那是因為你的工作用不到,所做的工作觸及不到那些知識,這就是碼農跟程序員的區別。當然我知道知乎里的程序員跟我這裡的培訓班老師不在一個頻道上的,自己想了想,覺得也許某種程度對於我這種背景的人來說,是不是就該選擇目前看來對自己最有利的,在這裡培訓完,然後受這裡工作的推薦,進入一家中小型企業,積累工作經驗,再跳槽?看起來好像是不錯,而且很穩的道路。所以我不知道該怎麼權衡這其中的利弊。或許是不是可以這樣說:蕭井陌之所以能用兩年時間學完那些課程,除了他很拼之外,還有他是在大學裡,不用受到各種干擾(這是他高考努力奮鬥的結果我當然沒什麼好說的)。但對於一些沒有很多編程基礎,沒有高中知識的基礎,英語很渣這樣背景的人來說,在家悶頭苦學真的是最好的選擇嗎?
剛開始有這自學的想法的時候我還是很自信的,但聽了培訓班老師的話,結合了自己的背景之後,我真的沒有底。
推薦題主先過了面試,解決工作問題以後,學習網易的雲課程。不推薦自學大部頭經典。
首先解決工作問題最重要,就算不搬出去住,題主家人也可以少叨兩句,有個清靜的沒人天天煩你的環境對學習是至關重要的。另外學習是一件很孤獨的事,需要一個安全感的來源,而有工作、有收入來源,對獲得安全感有很多助益。
然後才是解決怎樣學習的問題。如果英語水平有限,讀英文原著/學國外公開課吃力的話,退而求其次,網易公開課/學堂在線之類的國內公開課質量尚可,值得學習。自己讀大部頭經典,沒有教師解惑,沒有作業壓力,沒有同學討論的話,學習效率很低而且非常容易三天打魚兩天晒網。提點可能不太中聽的意見,題主勿怪。
單純從學習路線規劃的角度,你的想法不能說錯。作為程序員,先把基礎打紮實了,技術上將來才有上升的潛力,象你提到的那個培訓教師那樣認為基礎理論不重要的,屬於眼界和水平太低。這點相信題主有所認識,我就不多說了。但是 —— 你確定你真能按你的想法走么?
自學大部頭經典是一件非常辛苦的事情。厚厚的一本內容頗有深度的書,不是那麼容易啃的,書後的練習不是那麼容易做的,還不用說你身邊完全沒有老師可以請教,沒有同學可以討論。更糟糕的是,基礎理論有個特點:在你的工作達到一定的深度和高度之前,它的作用並不明顯。這兩方面綜合起來,使得在家自學經典這事變成了一件難度很高、很痛苦、而且很長時間內看不到收益的事情。這類事情,即使大家都知道長遠來看益處很大,但能堅持下來的人寥寥無幾。而真能堅持下來的人,不外乎兩種可能:- 編程是真愛,只要是和計算機科學相關的,不管學什麼都樂趣無窮 —— 恕我直言,從題主發言來看不象是這樣的人,題目文字里從頭到尾沒看到任何怎麼喜歡、為什麼喜歡計算機科學的描述,只看到學寫程序是為了找一份更好的工作。
- 高度自律,毅力超人,認定的事情一定能堅持做完 —— 恕我直言,這樣的人在目前國內的應試教育體系里一般都能輕鬆冒頭。題主家裡既然能買房,經濟上應該不是那麼困難,那麼止步於中專的學歷,在這方面也很難給人以信心。
綜上,我個人的觀點是退班自學這條路恐怕不適合題主,請慎重考慮。
……
……
……………………………………………………
………………………………………………但是!他媽的年輕人就應該去燃燒去爆發!想要一輩子穩妥地當個 loser 還是找個機會咬牙拚命惡上?摸摸你自己的心!
人心不足蛇吞象,沒聽說過么。你先把開發搞定了,找個工作,讓自己餓不死,然後才是別的。高大上的東西是不愁吃不愁穿的人研究著玩的,你瞎摻和什麼。
真心給題煮一點建議,先去工作,在工作中學習提高。
知乎是用來開拓眼界的,你培訓班老師的眼界可能不高,但是就算是培訓班教的那點東西你確定你能用好嗎?給你一個功能你能分分鐘實現出來嗎?你的水平有比培訓班老師厲害嗎??
如果答案是否定的,那還是踏踏實實學吧,不要有看不起培訓班的心態,然後找份工作慢慢提高自己,要學好底層沒有錯,但是沒有規定一定要先學底層,所謂條條大路通羅馬。
順便提一句,千萬不要有玩了知乎就覺得自己比別人高端的錯覺。(逃
祝好。你不一定要搞那麼久啊,我回答過一個文科生學編程的問題,幾個月就能找工作了。
你找到工作後,再慢慢提高不遲。
內容是python+flask的,你自己找找看
至於那個培訓班老師,我本來罵了他,但是被他的同行舉報現在被迫刪掉了知乎大神雲集,不知道是不是有資格在這裡說說自己的看法。簡單談談吧,題主如果覺得有幫助最好,覺得沒有幫助就忽略好了。先介紹一下自己的情況:我現在就讀於復旦大學計算機系,之前志願去了其他專業,但到了大學愈發覺得實際興趣還是計算機,於是自學了一些知識(間接導致當時專業的專業課沒有怎麼學好)。後來下定決心才轉專業來計算機系,可以說最終選擇學計算機之前也有很多波折,開始正式學習計算機的專業課之後也有了一些感想,在這裡正好說說。在大學而言計算機最重要的可能是數據結構以及後繼課程——演算法分析了,通過這兩門課程可以奠定最基本的計算機科學方面的思想。按某些計算機從業人士的話說,這些已經是沒用的內容了,因為有大量的現成框架,通過其API很簡單地就可以構建、使用很多高效的數據結構和相關方法,甚至可以在更抽象的層面考慮問題,而不用考慮數據結構和演算法這種【低級】事物。我不主張將碼農和所謂【好的程序員】分而言之,但如果非要說的話,一個只會用現成框架進行拼湊,而對程序架構、內部運作等沒有理解、思考的碼農,不就相當於流水線上只知操作,不知原理的普通工人么。回到正題,學完數據結構後,會發現數據結構背後的數學底蘊實際是很深的,比如圖、樹等不僅僅是計算機概念,更是定義完備的數學概念,有很多定理、命題與之相關,比如運輸流問題、解決編碼問題的霍夫曼演算法、求最短路用的Dijkstra或A*演算法,它們為什麼是對的,為什麼效率高,這些很【沒用】,但也很【有用】。離散數學考慮的正是這些問題,離散的思維方式確實不同於高等數學等【連續】空間里的數學。但高等數學、離散數學、概率論等課程本質上一致,無論是表示方法、嚴謹性,還是背後的哲理。以上所述的是數據結構與演算法及其前導性的課程,下面談談後繼的。資料庫、計算機網路、分散式、人工智慧等等,這些都是【有用】的了吧。但是題主如果真的去學這些的話,會發現科班裡學這些的時候也帶著很多【無用之物】。
時間所限,不多寫了,以一點建議收住吧:演算法是要好好學的,這對於日後的發展應該無論如何都是重要的,另外多學一些工具自然也是好的,但不要覺得只有這些才有用。
願共同進步。我們專升本,學校在實習期前給我們安排了培訓機構的培訓……為期一個半月。
一周五天每天八節課。朝九晚五的……
最後,我一行代碼沒寫。實訓彙報弄了個優秀項目團隊獎。一共近30組吧,評3組。當然我也不是啥都沒幹……我們組有程序上比較牛的,我通了兩天宵做PPT(keynote)。最後我的keynote也是我們組的加分項。
上面的這段經歷只是為了告訴你,培訓機構的培訓和「話」意義太低。如果很多人吐槽大學教育脫離實際領域,那麼培訓機構只是比大學教育離實際近了那麼一丟丟……還是更近大學教育那樣脫離實際的。還有個缺點:盲目自大!
所以你培訓機構老師的話沒有任何參考價值……
但對於題主本身……
作為一個險些輟學打遊戲、高中練體育、本科沒考上、大學「被」創業的人還是覺得應該給你提個醒……
如果什麼都是別人說你認為是這樣的話……那很危險。哪怕是知乎上的大牛,哪怕他們是對的!
很危險!
我覺得,儘快找到能糊口的工作,從長計議較好。如果要孤注一擲學習的話,還是去正規的教育吧。
沒錯!大學。
眼界和朋友圈有時候也很重要。技術也很重要。
真的,不開玩笑。你聽你們老師的出來就是當碼農,對,最low的那種你在家學好了出來就算一開始也是從碼農開始,發展空間也大的多
本科生不敢妄論工作,單說學習...CS學科學習...是個真正的大坑...幾年時間是要得的...演算法,解決問題的能力什麼的,有些真的是天賦...
似乎現在面試也主要看這個吧...(至少實習生)
學個架構的話當碼農其實培訓班也不錯,但是不要視野被限制死了...注意自我發展...真的,我想想就覺得很難,祝你能成功吧...@馬天翼說得我略有不同意。程序員分很多種,有些用得東西多,有些用得東西少,有些東西比較好上手比如python,有些東西看到你想死你還不知道有什麼用,不是只有碼農和高端程序員之分的。做前端的未必需要把操作系統編譯原理搞得那麼透徹,也沒有誰非逼著你成為一個什麼都會什麼活都能幹的工程師,雖然這樣的工程師確實比較吃香。科班計算機系出身的學生大多也就是能做到工作中有什麼東西需要用了可以在短時間內快速上手的地步,我們整晚整晚的熬夜其實也就是為了以後什麼類型的程序員都能做。題主要是能看準一個方向掌握一項技能,先把自己養活再慢慢補充技能也不是不行。
就題主的情況來看,先把自己的碼農技能點點起來找個工作,實際工作起來學得最快。這種東西,如果沒有實際操作個一年半載,沒點自己的理解,光看書去學那些大部頭太困難了,何況題主沒上過高中呢。
至於培訓班靠不靠譜,我覺得對你可能用處有限,因為難的你學不動,簡單的又用處不大,若是以入門為目的來學可能還有點用,要是想要學完之後在這方面就能直接工作,那還是趁早打消這個念頭。參考的是這個答案http://www.zhihu.com/question/23989078/answer/26409557這個小伙三觀很正。就你說得情況來說,先選保證就業才是第一件大事,至於發展那是以後的事情。
你不希望沒等看完演算法導論和龍書就把自己餓死吧我是學地理的,現在做程序員,大學和研究生接觸了一些編程,但基本沒接觸理論。
我在學習過程中發現很多人剛入門的時候就拿資深程序員的標準要求自己。想做個很牛的程序員很好,但是要一步步牛起來,而不是一下子就很牛。
另外,不要迷信那些牛人推薦的東西,有時候那不是你的方向,有時候你還不到那個級別,還有時候他們是大忽悠。
活到老,學到老!說的極端點啊,99.99%的高中生學編程的都不會有什麼結果。
中國的教育是渣,但也沒到一無是處的程度,在個人十五年的工作經歷中,只見到一個四川的哥們是高中起點還能夠做出來的(做出來的意思是其能力得到同事的認可),這哥們也是先把大學的基礎課學了一遍,實際上人家的基礎不比科班的差。
趕緊培訓,趕緊找工作,邊干邊看書,互相印證,對你而言是最靠譜的,
我覺著書本才是第一手資料,看視頻沒有看書好。
很多時候應該根據你自己的實際情況而定,並不是大神們推薦的東西就一定適合你的。很多東西是正確的,可能放在你身上不一定好了。你想提高,可以在工作中慢慢的積累學習,那些你認為不錯的。個人覺得,你先對編程有個大概的認識,靠編程工作,然後再決定是否學數學和底層之類的,工作中慢慢積累。 大神們站的角度比較高,所以得出那些結論也是正確。符合不符合你自己的實際情況(興趣、自學、自製、天賦等等),然後做出符合自己的情況的決定可能更重要一些。