如何成為一個內力深厚的程序員?正確的補充計算機基礎知識?

今天上午面試了國內某家准一線互聯網公司,接著...

本人本科微電子專業,畢業三年,畢業後半路出家,接觸了不少移動端的開發,H5, iOS, Android, Unity3D,業務能力感覺中等吧,交給我的項目基本保質保量完成。今天面完以後,可以說是比較沮喪了,各種計算機基礎知識,c/c++,內存管理,多線程,網路協議,其實在過去的三年內這些東西自學了不少了,面對絕大多數公司的這些問題的面試,自認為回答的都不錯,然而今天受到了不少的打擊,面試官直接當面說基礎知識不符合公司的要求,這讓我內心到現在不能平靜,客觀講作為一個半路出家的程序員這三年一直在努力,emmm……唉……,現在下決心從頭開始,要把內功修鍊好,希望各位大咖們,給些意見,學習順序,推薦資料,書,等等……拜謝!完成我內心埋藏的技術大咖夢~


我也不是正統的科班出身,大家都是一路摸索過來的。

我的學習方法就是看書。逛技術博客論壇是學不到知識的,因為太碎片化不系統。

給你推薦些書(選書很重要,一定不要買國產的)

《深入理解計算機系統》

《演算法導論》

《Unix環境高級編程》

這三本是基礎中的基礎,一定要看完。

完了以後可以根據方向和愛好選看計算機圖形學、資料庫、編譯原理、面向對象設計、機器學習等方面的書。


加入勃學


我看你這三年是假努力

另外看書得來的對多線程、內存管理、演算法真的有用嗎?

所以,一定要:多動手、多動手、多動腦!


一個計算機本科生來答,大三狗目前工作方向是web

實名反對某答案,演算法導論一個非專業的人,能看懂?我表示我學完離散數學,數據結構,基本演算法都不能懂,第一本書就去看演算法導論的你怕是五道口職業技術學院的吧

技術上學好一門語言是很重要的,沒有語言基礎能力在怎麼深厚都不行,可以學java.cpp等然後就可以去找到工作的方向

專業課上,絕對是數學,如果你想走的遠沒有數學絕對不行 ,

大學路線

1線代 2離散 3數據結構 4演算法 1計算機網路 4計算機組成原理 5操作系統 5編譯原理 6體系結構

以上絕對是內功,而且循序漸進,不然書都看不懂

直接看演算法導論的大神,我直接給你跪下,有這樣的智力和數字功底為啥還要轉來做程序員?


按照應屆畢業生的標準,基礎知識就是本科那幾門課程了吧。操作系統,網路,組成原理,編譯。數據結構與演算法感覺已經超過基礎的範疇了。公司大多會考一些擴展的演算法而不是基礎的。關於語言的話看你使用什麼了。c++相比其他需要要求要高一截。而且拿c++當第一語言的科班出身居多。另外一些大公司會考一些數學題,類似腦筋急轉彎那種,比如概率論,和博弈論的題。再細分的話跟崗位有關了。

不過你都畢業三年了,也應該有個一技之長吧,跟應屆生比基礎你沒優勢啊,你的優勢是工作經驗啊。我建議你選一個方向走到黑,不要學來學去的,沒那麼多精力。

你搞移動端就集中精力搞一個。前途來看的話感覺unity最有前途。說實話感覺客戶端都沒啥前途,趁早轉後端。


推薦閱讀:

SQL如何實現1-1,1,1-2-1,2-1,2-1-2-3,1-3,10-1這樣的排序?
經常有人發錯 SQL 的發音,如何華麗麗的引導糾正他們又不失優雅?
C# 初學者適合看《Ecma-334》來入門嗎?
ASP.NET ADO.NET 和C#編程語言他們之間的關係是怎樣的?

TAG:程序員 | 操作系統 | 編程 | 內存管理 | CC |