大學四年如何成為世界級軟體工程師?
-------------------這應該是最後的補充吧------------
好了,想挖苦我的私信吧,想真正答題的答題。
謝謝挖苦我的人,我才知道原來我可以這麼禮貌的,謝謝你們讓我知道了問題的艱難,所以更要努力對吧?~: )
謝謝在鼓勵我的人們,謝謝你們~
嗯,雖然很多人都在挖苦,但好歹讓我接觸到了一些真正可以幫助我的人,你們提高了問題的關注度,讓我結識了幾個好朋友~
嗯,不用拿上面聯繫「感謝讓你身處困境的人」的梗,沒興趣。。。
貌似可以關閉問題?反正我是不會,就放著吧。。
送給自己:希望四年後畢業我回來看這個問題的時候依然向上~希望八年後二十五歲的時候回來看到這個問題的時候是滿足而不是羞愧~
送給所有人:夢想屬於所有人。沒有夢想,何必遠方。一個連想都不敢想的人,又會有多大成就呢!
-------------------原問題--------------
嗯,,,本人現在為某大學計算機類准大一新生 ( ̄▽ ̄)/
我想在四年內(可能會讀研)成為世界級的軟體工程師Orz好吧,我知道很難。。。
百度百科中對軟體工程師的描述是這樣的:軟體工程師的技術要求是比較全面的,除了最基礎的編程語言(C語言/C++/JAVA等)、資料庫技術(SQL/ORACLE/DB2等)等,還有諸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技術。此外,關於網路工程和軟體測試的其他技術也要有所涉獵。整個人瞬間就不好了。。。完全沒有方向啊 (╯°Д°)╯
最近在看MIT的EECS課程,也不知道方向對不對。。看見很多人說什麼TAOCP之類的「聖經」,卻感覺自己積澱太少了。。
我是真的真的想在四年(或許是六至七年)成為世界級的軟體工程師,但不知道如何下手,請諸位請教。
謝謝大家了。
我最最最最大的夢想就是,在20-25歲做到巔峰極致,然後離職,去自己真正想去的地方,干自己真正想乾的事,追求自己真正想追求的東西。
希望大家給我一個追求夢想的方向,我能吃苦,會儘力。
謝謝大家。
-----------補充問題-----------
我想要成為世界級軟體工程師是為了讓自己有實力不再失去一些東西,儘可能的去挽回一些東西。
我喜歡編程,喜歡的是那種創造的感覺,並不像你們說的那麼討厭,或者說不感興趣。
-----------修改問題-----------
有哪些年紀輕輕就很成功世界級的軟體工程師,他們的經歷有哪些,我們可以從中借鑒點什麼,如何也能在盡量早的在此行業中做出成績。(之前的問題問法不對,活該被罵,糾正)(要是想罵我的話私信罵吧,我可以當做沒看見,就不用回答了,要不我還得回復。)
「在25歲達到巔峰,然後離職,去干自己想乾的事。」
合著做軟體工程師根本不是你想乾的事,你憑啥做到巔峰,還是在四年內?
世界上有多少痴迷編程的人,做了幾十年,都沒有達到所謂的巔峰,你憑什麼?
想要做好一件事,至少先把態度端正了,把中二病收起來。
我知道題主想做什麼了
------ 以下轉載自網路 ------------------
有這麼一個人。出身於貧苦的農村,但是天賦異秉,談吐幽默深沉,交遊極廣,自6歲起每時刻身邊至少有3個漂亮mm在追。
16歲出國到斯坦福大學深造,第一次上課時,老師介紹當今世界的八大數學難題,並且將其寫在黑板上。因為他遲到了,以為黑板上的題是老師留的作業。於是3天後他將這些題的答案交給老師,並且說:「您怎麼出了這麼多的作業,我足足做了3天才做完。」老師目瞪口呆!當今世界的八大數學難題就這樣被解決了。
17歲回國參加世界大學生運動會獲得田徑十項全能冠軍。
20歲博士即將畢業,此時已取得n項專利。導師勸他說:"別回去了,這裡環境好。"他拒絕。導師說:"回去沒有博士學位!"他輕輕鞠躬,回宿舍收拾了行李就回國了。
20歲開始憑自己的專利開了軟體公司。3年上市,5年進入全國100強,8年收購微軟,10年躍居世界100強之首。
30歲忽然覺得沒勁,賣掉了全部股份,旅居美國,為華納兄弟唱片公司做詞曲作者。1年後正式受聘於華納唱片做製作人。極其成功,使華納佔據了世界80%的市常號稱21世紀流行音樂之父。
此時又覺得華納的壟斷行為噁心,對老闆提出異議遭否決。辭職做獨立製作人,給誰都做,就是不給華納做。1年後,華納兄弟唱片公司宣布破產。
40歲退出藝壇,舉辦全球巡迴告別音樂會,大批明星參加,大批歌迷追隨,致使世界經濟格局發生以下變化:世界首強--波音;第二:麥道........
45歲投資威尼斯隊,連續5年取得意甲冠軍,4年歐洲冠軍杯冠軍。50歲賣掉股份回杭州釣魚隱居。發現當年世界攝影大獎作品《漁翁》中照的是自己。
55歲出版一部哲學、倫理學、美學著作,因其文筆太美,獲得了當年的諾貝爾文學獎。
60歲父母因癌症雙亡。毅然深入民間搜尋驗方,2年後在杭州建了一座實驗室,3年後推出新葯,可完全殺死體內癌細胞而無副作用。其間有一次配藥失敗,發現副產品可以根治艾滋玻獲得諾貝爾醫學獎,但因評獎主席有種族歧視傾向拒領。當年瑞典皇家學會宣布不再評選諾貝爾獎,基金全部捐獻給國際反種族主義基金會。
65歲當選聯合國評選的世界十大傑出人物,受nasa邀請上太空一游。在太空忽然發覺木星上有不明陰影,回到地球編了一個彙編程序一算,發現了太陽系第十大行星。
70歲娶好萊塢第一美女為妻,71歲生下四胞胎。
80歲美國和歐盟互射核彈,第三次世界大戰爆發。他掀起反戰運動,自己游橫渡太平洋。記者招待會上有記者問:"怕不怕危險?"回答"沒什麼可怕的,就是擔心鯊魚。"全世界漁人自發動員起來,3月後世界野生鯊魚基本滅絕。
花了三個月從廈門游到智利海域,終於力竭,沉入海中。聯合國一周沒升旗以示哀悼,歐美政府停戰,台灣感於高義回歸祖國。世界聯合打撈隊在智利打撈屍體,發現屍體躺在古瑪雅文化的沉船上。裡面有數十億噸黃金,從此世界金融秩序發生革命。
2年後,天上金光迸現,此人扇著翅膀拉著一個老頭的手"撲騰撲騰"的飛到地球指著老頭對世界上的人:"我可以證明上帝存在,這老頭子就是。"
上帝拍著他的肩膀對世界上所有人說:"我數3下,你們找一個詞形容這個人,不滿意我就毀滅世界。
全世界人民異口同聲南腔北調得說了兩個字:
"牛b!!!!"
上帝哈哈大笑,用手一指,解決了世界上能源、人口、環境三大問題,並實現了全球範圍內的共產主義。其實除了學習編程以外還有一個方法,專門提供給不喜歡編程的人:趁著這四年學習做一個好的PM,快畢業的時候弄一個將來會火的網站,然後等你火了之後,向大家宣布其實你自己是一個程序員。你就成為世界級的程序員了,哪怕你的程序比一般的程序員都爛也沒關係,反正大家在乎的是錢,又不是你的編程水平(逃
根據鄙人微薄的見識,找了幾個人物。JQUERY的創造者John Resig。中學階段的它已經步入程序員行列。LINUX的奠基人Linus Benedict Torvalds。他不是進入大學才開始從0起步寫程序。著名駭客Kevin David Mitnick。他也不是進入高等教育階段才開始從0起步做駭客。這些成功例子應該會構成1個符合一萬小時定理的英雄譜。
如果你高中階段,未參加NOI、IOI,完成基礎編程的入門。也就是說你當前技術理論功底可能低於曾經參加過這類信息學競賽的同齡人。也低於那些中學階段就從事實際項目相關編程工作的同齡人。他們至少比你更有機會達成該目標。
如果每天有8個小時的高效學習時間。根據大學四年計算 365*8*4=11680。再加遇到至少1個世界級程序員的點撥。外加自身適當悟性。大學4年後還是很有希望的一件事。不過這3個條件也有點難。因為這是一個人事業成功三大條件:天分、機遇、勤奮。
做出推動技術進步並在全世界有影響力的工具。提出提升軟體工程成功率的方法學者。大概算世界級的軟體工程師。DHH參與的RAILS。基於RUBY的WEB MVC框架豐富了RUBY的應用範圍。John Resig參與的JQUERY。減少程序員工作量的JAVASCRIPT工具框架。Larry Wall的PERL。膠水性質的腳本語言之父。曾經引領久遠的CGI時代。Linus Benedict Torvalds參與的LINUX。開源操作系統內核。約翰卡馬克的卡馬克演算法和3D 遊戲編程奠基者。
編程者在自身內功深厚的前提下,處於行業前沿。清楚程序員群體的生產工具的不足。力圖創造新的可廣泛推廣的新工具新方法論提升產能。DHH、 John Resig應該屬於應用層的新工具創造者。多數人都可以通過自身努力到達這個層次。不過多數人欠缺造出新輪子的天分。重複造輪子的水準絕對有。
當一個人嘲笑現在的DHH的代碼,但這個人不可能在2005年想到用RUBY寫RAILS解決WEB開發的問題。如果不是DHH,2005年用RUBY可能做得更多的事情還是基於RPG MAKER寫腳本。DHH曾經數學得F,26歲開寫RAILS。所以天才未必是做出貢獻的關鍵因素。
如果能持續產出產能倍增器的行業先驅,就不要去追趕了,那是段譽、郭靖、虛竹、張無忌這類祖師爺給機會的人。形如XX語言之父這類:DELPHI之父,C#之父Anders Hejlsberg。JAVA HOTPOT之父、V8之父 Lars Bak。這些新語言層次工具的締造者的檔次很高。他們處於用新語言新VM解決生產力的層次。
某些是方法論總結創造者,比如martin fowler、FrederickP.Brooks.Jr。這類太虛。題主肯定認為是忽悠。無多年工作體驗,無大型項目全面角度的體驗,絕對當他們是超級大忽悠。不過他們的層次,答主想去追趕,依然很難。
如果世界級軟體工程師的層次是學術界的大神們。要去追趕行業先知這類人物確實異想天開。LISP之父的約翰·麥卡錫。最好的方式就是不要想。做做夢就夠了:推動量子計算機成熟的工具化,代替電子計算機。談笑間,圖靈灰飛煙滅。也就是說,如果以學術界的大神為世界級的標杆。 這個目標用一輩子時間做努力的資本,都可能時間不夠。因為最大可能是天分欠缺掩蓋時間問題。
不是每個努力的球員都會成為C羅和梅西。不是每個努力的歌手都會成為麥克傑克遜。不是每個努力的畫家都會成為梵高。不是每個努力的士兵都會成為拿破崙。不是每個努力的商人都會成為喬布斯。這個世界最多的狀況是才華不及抱負;終生不知優勢;天分不含勤奮。最悲劇的:萬事俱備只欠東風,沒有機會。
承認自己的位置才是走向更高目標的開始。找一個合適的目標。腳踏實地前進。一個人的成功不是他的目標多大。而是看清自己的位置。做出自己能力最大可達到的事業。
------------------------------------------------------------------------------------------------------------------------------
#region
微積分、線性代數、數據結構和演算法設計、編譯原理、操作系統、計算機網路、資料庫原理這類基礎課。需要認真學。可以根據基礎課順帶配套1個實踐。
數據結構和演算法設計——用JAVASCRIPT實現1個完整的數據結構庫和演算法庫。順帶去ACM長長見識。
編譯原理——了解TYPESCRIPT的原理。
操作系統——找一個LINUX早期版本的內核代碼看看。
計算機網路——做1個簡約的下載工具。
資料庫原理——找SQL LITE的代碼讀讀。
計算機體系結構——基於開源硬體做小工具。
TAOCP?推薦這個書的人,可能連一本書都沒讀完。
MIT的課程非常好,有時間就學那個東西。如果意識到就讀大學的計算機教育不入流時。
#endregion
-----------------------------------------------------------------------------------------------------------------------------
因為我來自不入流大學的不入流計算機教育。所以本人屬於不入流的程序員。希望不誤導你。
任重而道遠,腳踏實地。
從基礎學起,找一門感興趣的語言,從語法入手,開始練習。
學習理論知識,並開始寫小的工具,慢慢優化,並總結。推薦你建立一個自己的博客。可以參考我的博客,有你要的東西應該。
我從高三到大三,就是這麼走來的,離中級工程師還有一定距離。
博客http://taxuewwl.github.io
希望能幫到你。
腳踏實地,你會成功,加油
我最最最最大的夢想就是,在20-25歲做到巔峰極致,然後離職,去自己真正想去的地方,干自己真正想乾的事,追求自己真正想追求的東西。
20-25歲做到巔峰極致,然後激流勇退,滿滿的中二感,小說看多了吧。
有夢想是好事,然而恕我直言,你的夢想真的就是個中二的幻想。計算機這種能讓人窮盡一生去研究的東西,你想從0開始幾年內就搞到極致,智商200我都不信你能做到。
我分不清你的理想到底是成為一個世界級的工程師,還是之後的離職過自己的生活?如果是後者,那麼其實你現在就可以干自己真正想乾的事,追求自己想要的東西,又何必通過程序猿這條路呢。
1.搜索用google,別百度了
2.寫代碼,別bb了
3.和你們學校的技術大牛學習,跟著做項目寫代碼,比什麼都強。
生也有涯而知也無涯,學到極致的含義是死在求知的路上,而非真正窮盡某一學科。何況軟體開發技術日新月異,你列舉的這些技術中很多也不算前沿技術了,已經有了更新的技術和框架在逐漸取代它們。技術會不斷變革進步,軟體工程師也需要不斷學習下去。
竊以為你所謂的學到極致,無非是拿到了足夠的錢(保證高質量生活前提下的財務自由),收穫了足夠的名譽(世界級軟體工程師頭銜,做到了所謂「巔峰極致」)。追求名利本身沒什麼問題,但還用不著學到極致這麼厲害。何況如果想儘早出名賺錢的話,何必選擇軟體工程師呢?投機、創業甚至寫段子錄視頻當網紅都能一夜暴富婦孺皆知,而做技術必須得一步一個腳印。年輕的碼農賺點小錢容易,賺大錢就難了,更別提還要出名。
我沒查過年紀輕輕就在世界出名的工程師有哪些,如果有的話他們的經歷都有啥,不過我覺得這也不用查,差不多只能是以下這樣:
天賦異稟,智商超群,對計算機從小就感興趣,且因為計算機行業內的父母/親人/老師/貴人而早早接受了演算法方面的啟蒙教育;小學時每天一放學就坐在電腦前寫東西,自己寫的小遊戲在同學中間很受歡迎;中學時黑進了某政府或某大公司的網路,留下幾條惡作劇的信息引起了世人注意;大學進入某CS世界名校就讀,平時沒事兒自己寫軟體做網站維護社區什麼的,一不小心搞出了一個很受歡迎的東西於是輟學創業;經過幾年的打磨與發展,公司發展壯大,這位天才也成功在25歲之前成為了世界知名的軟體工程師。
如何能盡量早地在此行業中做出成績?要麼足夠聰明,要麼足夠勤奮且有足夠時間。題主如果追不上上面那個節奏,指望25歲前走上人生巔峰恐怕就只有多燒幾柱香了。最簡單可行的辦法就是:
假如你在深圳,去註冊一家公司,名字叫"深圳市世界級信息技術有限公司",你作為創始人兼首席軟體工程師。
這樣你就是世界級的軟體工程師了。
孩子,要想成為世界級軟體工程師,首先要拋棄百度。
1. 學會把話說清楚。
2. 學會用 Google。
從題主的描述來看,題主的野心大得有點厲害。
二十五歲前,打基礎的學習都還不一定能完成,更別談各種必須靠時間堆積出來的工作實戰經驗了。
這目標的難度就好像「大學0基礎苦練四年足球,如何進入巴薩打主力前鋒」。
輪子垠神等等入行年齡比你小得多的大牛小牛,都是憑藉熱愛和專註戰鬥多年才勉強邁入世界級C的行列,才有資格用閑下來的時間逼逼。倘若他們不繼續工作學習,水平也是會掉段的。
世界級A的樓教主剛上大學的時候比你不知高到哪裡去,也沒見過有你這麼狂妄。
你看,你入行年齡又沒他們小,又不見得有他們聰明,又不真心熱愛這一行當,不可能在25歲前成功退休的世界頂級軟體工程師。
針對你的夢想,搞清楚你說的「自己真正想干想追求的事情」是什麼,並把它作為終生職業去發展,付出長時間的努力,興許有可能會成為世界級。寫一個大賣的世界級獨立遊戲,然後你就是了
「軟體工程師」這個稱謂涵蓋的內容和領域太多,一個人用一輩子也無法窮盡,這恐怕也是你困惑的原因。所有干這行的,都是在一定程度的基礎知識上在某一個小的領域專精而已。大學四年的教育目的是讓學生打好基礎,有一個廣博的知識面,而不是在某一個領域專精,那是專科學校,師範學校和藍翔的事情。有了廣泛而堅實的基礎內功,以後就能在任何小領域裡繼續發展並專精。
那麼首先應該做的事情就是打基礎:深刻理解計算機在各抽象層是如何工作的,並且能夠融會貫通。從離散數學,到計算機體系結構里的各部件工作原理和網路基礎里的7層模型,到數據結構和演算法,到操作系統原理,到彙編,到高級語言特性,框架和庫的使用,到設計模式和體系結構模式,再到軟體工程里的生命周期和工程方法,從最底層到最頂層能夠串起來就已經是出類拔萃了, 大部分大學教授和軟體工程師一輩子都達不到這個境界,不是他們能力不足,而是受種種限制而不想。在名校里用大一和大二兩年的時間學完本科所有課程全部90分以上就差不多達到這種境界了。
大三和大四,開始重點實習,做項目(至少5個),積攢實戰經驗,這中間會學習到大量的頂層的,實用的,學校不會教的技術。由於有了堅實的基本功,學習這些技術並不難。這期間還要跟進業界動態和建設人脈網路。
畢業前夕,花1到3個月時間準備一下面試相關的知識和技巧。
這樣畢業以後,你既有堅實的基礎知識,又有豐富的實戰經驗,對各項常用技術了如指掌,對業界動態如數家珍,還有前輩為你推薦,全世界的IT公司隨便挑。這時你基本可以說自己是世界級的軟體工程師(坯子)了。除非你是天才,還需要不少狗屎運。
翻遍了這個問題下面的所有回答,基本上各位都是嘲笑、挖苦、諷刺一個剛剛高中畢業的孩子,一個有一點點夢想的孩子,一個對即將到來的象牙塔生活充滿了期望的孩子。
然而這個孩子,挨個給每個答案下面留言,並不是對各位答主的嘲笑予以反擊,而是虛心接受,認 為自己在大人的世界裡說錯了話,感到非常羞愧。
好像他就是一個做錯了事的孩子一樣。
對不起,孩子,我寫的所有的話,給不了你你想要的答案。但是我不會嘲笑你的夢想,我不會挖苦你有一個美好的想法,我不會打擊你對求知的積極性。
只是讓我心寒的是,那麼多的回答,都是在扼殺一個對未來充滿挑戰和渴望的青年對這個他眼中的美好世界所有的幻想。
比起相互攻擊和謾罵的知乎氛圍,這才是人性最大的不友善。
你要明白自己錯在哪裡,大家為什麼嘲笑你。
不說什麼動機不純用百度百科這些小問題,你到知乎這樣提問就是錯的。
這種宏大的問題是一般網友能駕馭的么?隨便幾百幾千個字指一堆方向這就是通往頂級程序員的道路么?
假設通往金字塔頂的成功之路可以複製,能回答這個問題的,他也得首先是世界級的程序員吧,知乎上有世界級的程序員么?
所以現在是什麼情況,類似於一個人跑到網上說我要拯救地球,應該怎麼做。只能嘻嘻哈哈一笑了之,沒看到輪子哥都在抖機靈么?25歲之前要達成也不是不行。
我們倒推一下,做人生第一個世界級的產品要三年左右,之前三年是以優秀的架構師的身份進行技術積累,最快需要大概六年積累行業內的資歷,再四年完成基本的CS/SE教育,以及六年的業餘程序員生涯。
綜上,你應該在離三歲生日還差二十一天的時候,開始學習C++。
首先,你需要用40年的時間全心全意的投入到一個事業里
有一句話是這麼說的:別人嘲笑的不是你的夢想,而是你的實力。
推薦閱讀: