A. 程序員怎麼提升自己
第一,技術不能落伍。
技術的更新迭代非常快,所以要學習的東西很多,所以說,做程序員挺不容易的。但作為這個時代的弄潮兒,我們必須提高對自己的要求,否則很容易落伍,被拍死在沙灘上。
一線城市的程序員可能還好,因為公司的產品迭代升級很快,所以技術棧的更新換舊也快。但二三線城市的程序員可能就沒那麼幸運了,往往一個產品都做到沒客戶了,技術還是最初用的那些。
以至於有些程序員回到二三線城市後再去一線會比較難,並不是生活節奏不適應,而是技術跟不上了。
怎麼才能保證技術不落伍呢?並不是說外面流行什麼技術,就一味的跟風,而是有選擇性的,你比如說,Spring Boot 是肯定要跟的,但 Hadoop、Spark 就不一定要跟,要量力而行,看公司的業務規模是否需要。如果不需要,把更多的時間花費到 JDK 源碼、性能優化陵戚上,是更消祥佳的選擇。
第二,熱愛這個行業。
就目前來說,程序員的確是比較高薪的職業,所以很多人都在往這個行業里擠,再加上「狼性文化」、「996」盛行,搞得很內卷。
在這種情況下,在這種壓力下,你有沒有問過自己,內心是否還熱愛著這個行業?
我曾有一個讀者,她問我,「請問你能不能做 C++ 課外輔導啊,孩子上大學,軟體工程專業,之前不懂計算機,現在學習壓力很大,想放棄,認為自己不適合學這個,不開竅,我是看了你的文章開始關注你的,現在因為孩子的事沒辦法了,就想問問,能給付費輔導嗎?」
從這位母親的話中,我感受到了她對孩子滿滿的愛,也感受了學弟學妹們身上背負的壓力。程序員的確要學習很多很多知識,除了編程語言,計算機基礎知識,還尺橋陵有各種框架和工具,時間根本就不夠用。
但有一句俗話叫做「干一行愛一行」,既然入了行,就只有風雨兼程。否則,心裡不愛了,學習的熱忱和動力又從哪裡來?
當你累了的時候,適當地給自己放個假,打一場籃球、打一個小時游戲、唱一首歌,甚至談個戀愛,讓緊綳的神經放鬆下來,心裡的那股熱愛也許就悄無聲息地回來了。
第三,樂於分享自己。
分享的方式多種多樣,並不局限於寫博客,你可以在公司的團隊內部做一次培訓,甚至小到站立會的時候發表一些對技術的想法,或者大到在技術大會上做一次演講。
分享會收獲別人的認可、稱贊,崇拜的小眼神,這些點點滴滴的榮譽感會讓你鼓足勇氣,在前行的道路上充滿干勁,進而精益求精,要求自己做得更好。
B. 我大二下學期了,想做程序員的,但是我現在學完c c++ 數據結構,會的只是個輸入輸出,求教我現在該
不要著急,千里之行始於足下!夯實基礎最重要!千萬不要好高騖遠!這是血的教訓!我們班森虛槐碩士畢業的都去了網路華為360等大公司,因為當時考的都是基礎,學好數據結構很重要!!!一定要把課本上的基礎知識學好了,基礎不牢地動山搖!!切記!此友考研要早點准備,現在就要好好學習。能考上研究生的都是平時學譽鋒習扎實的人,哪些大四突發奇想考研的都是打醬油的。
C. C\C++程序員需要掌握什麼書籍
c/c++程序員需要掌握的書籍大概可以分成幾個方面:
計算機基礎類書籍,這類書籍包括計算機組成原理、計算機網路、資料庫、操作系統、數據結構與演算法。
c/c++類專業書籍,這類書籍包括基礎的C語言程序設計、C++primer。
擴展類書籍,c/c++相關擴展類,推薦的有C陷阱與缺陷、深度探索C++對象模型、effective C++。
平台擴展類書籍,這類就要看你在哪類系統下做開發,一般常用的系統平台是嵌入式、windows、Unix及ios(object C++),這類書籍就比較多了,可以按照個人需求選擇。
按照上述推薦的理由是:
學習計算機語言需要一定的基礎,這類基礎是非常重要但是很無聊的,後續在做開發的時候會覺得非常實用。
學好語言其實不是非常麻煩的部分,一般的教材類書籍即可,重要而麻煩的是在敲代碼的過程中去熟練掌握、運用和創新。
擴展類書籍3可以幫助你更深入的理解你所學到的東西,而深入理解是程序員進階的必經之路。
平台類書籍略有區別,但是標准C++是一樣的,只是針對各自平台做了相應擴展(objectc++除外)。如果需要在某個平台下做開發,或者學習再去學習使用即可。
D. 大學生大二自我總結
大學生大二自我總結範文(精選9篇)
自我總結是個人在一個時期的自我總結,它能夠給人努力工作的動力,為此我們要做好回顧,寫好自我總結。如何把自我總結做到重點突出呢?以下是我精心整理的大學生大二自我總結範文(精選9篇),歡迎大家借鑒與參考,希望對大家有所幫助。
光陰似箭,在不知不覺中大二的時光已經快要結束了。驀然回首,在過去的一個學期里,我的收獲還是很大的。通過大二這一學年的學習,在各個方面都有所提高。下面就是我的學年自我總結:
工作方面,該學年我擔任了物流協會學習部的部長,陽光互助會心理輔導團隊的隊長,以及編輯部部長,在班上我擔任文娛委員職位以及市場營銷小組的負責人,負責班上文娛活動籌備工作,為學校食堂進行過市場營銷的策劃,負責過報紙和雜志的出刊工作,不過因為缺乏經驗,所以覺得自己有些方面做得不夠好,需要進一步提高。
在學習方面,平時經常出入於圖書館,吸取精神營養,為以後工作做好准備,在這一學年裡頭,堅持平均每一周至少看三本的書的速度,在學習上,感覺收獲還是可以的,不過還得繼續努力。
生活方面,能夠處理好與同學之間的關系,而且盡力幫助他人,只要自己能做到的,我都會盡力而為。因為家庭比較貧困,生活上我非常節儉,從不亂花一分錢,利用假期的時間進行工作,不但不影響學習,還可以鍛煉自己,也為父母分擔辛苦。
總的來說,大二的學習生活,讓我成長了許多,收獲了許多,前進了許多。雖然稱不上碩余知果累累,卻也可以說是有所成績。以後的路更長,這點小小的進步是微不足道的,只有不斷地學習,不斷地進步,才能使自己的人生更有價值,更有意義,在今後的日子裡,我要更加努力,爭做一個優秀的人才。因為沒有最好,只有更好!
時光飛逝,日月如梭。轉眼間,一個學期結束了,大二也即將接祥春近了尾聲。
本學期自我表現良好,學習生活實踐各方面都有相應的提高,並且關於對自身綜合素質方面,也得到了謹毀耐更加全面、具體的認識 。
學習方面:到課率較高,功課學習,比大一有了一定的進步,學到了一定的專業知識,專業課方面也在積極主動查找相關書籍攻讀,且專業素養增強!再接再厲!
生活方面:真誠對待身邊的人,和朋友同學關系融洽。熱情、熱心的對待班上的同學,尊敬師長,有較強的班級榮譽感。繼續保持和改善不足之處。
其他方面:社會實踐方面,本學期順利退出了大學生社團聯合會編輯部工作,其間交際能力、人際關系得到一定的進展。自己從中學到了很多豐富的社會知識,更清楚的了解自己的能力,也提升了自己的能力! 以後更加要鍛煉自己,無論任何場都必須珍惜機會。
缺點。缺乏專業知識上的鍛煉和自信心不夠強是我最大的缺點。專業知識理論學習有限,專業知識面的限制。對自己的認識還需加強,相信自的能力(比如,寫作和語言的綜合運用方面能力)。
總的來說,我的這一學期主要是放在學習方面上的。但是經過長達兩年的時間,學校基本的情況, 其進步情況不是很明顯,其個中不足原因種種,總結如:學校條件有限、可供給我們學習資源上的有限, 以及個人掌握專業和其他知識資源的局限性等等。例如,多媒體教室似乎沒有我們上課的機會、圖書館對我們的不公平的開放政策、寢室面臨不斷的調動情況、種種不公平的待遇對我造成了深深的恐懼,這些方面也對我的學習和生活有著舉足輕重輕重的影響。
二年的大學校園生活是我人生的一大轉折點。二年的校園生涯和社會實踐生活我不斷的挑戰自我、充實自己,為實現人生的價值打下堅實的基礎。
學習方面:首先是我端正了學習態度。在我考進大學時,腦子里想的是好好放鬆從重壓下解放出來的自己,然而很快我就明白了,大學仍需努力認真的學習。看到周圍的同學們拚命的學習,我也打消了初衷,開始大學的學習旅程。其次是極大程度的提高了自己的自學能力。由於大學的授課已不再像高中時填鴨式那樣,而是一節課講述很多知識,只靠課堂上聽講是完全不夠的。這就要求在課下練習鞏固課堂上所學的知識,須自己鑽研並時常去圖書館查一些相關資料。日積月累,自學能力得到了提高。再有就是懂得了運用學習方法同時注重獨立思考。古話說的好,授人以魚不如授人以漁,我來這里的目的就是要學會「漁」,在學習時,以「獨立思考」作為自己的座右銘,時刻不忘警戒。隨著學習的進步,我不止是學到了公共基礎學科知識和很多專業知識,我的心智也有了一個質的飛躍,能較快速的掌握一種新的技術知識。經過一年的努力終於取得了大學的第一份獎學金。
思想政治方面:對黨我也有更深刻的認識,經過一年黨校的學習,已成為入黨積極分子,並以優異的成績取得了黨校結業證書。
工作方面:在義務助學社,經過大一一年的鍛煉,自己的表達和交流的能力有了很大的提高,大二通過自己的努力加入了社團領導團隊,兼任組織部長一職。在此期間組織了多次大型的活動,受到學生和老師的一致好評。
今後打算:來大學就上要學習的,如果沒有學到真正的知識,不僅對不起自己,更對不起在家辛辛苦苦的父母。在大學的日子已經過去了一大半了,剩下的日子一定要精打細算,好好學習!一下是對自己的要求:
第一,把學習當作大三生活的主要任務,至於其他的事情次要,甚至可以放棄。
第二,努力提高自己的學習成績,向黨組織靠攏。
第三,養成良好的學習和工作習慣,克服以前的不良習慣。
第四,努力學習英語,爭取大三過英語四級!
第五,加強專業知識的學習。
大二學習生活的結束,我的大學生活已經進行了一半,回憶過往的點點滴滴,都是人生最大的財富。想起我大一的自我總結似乎還在眼前,但時間總是很快,現在我又將我的大二自我總結做一個好好的總結了。
光陰似箭!轉瞬間我的大學生活已接近兩年時間了。我們不能奢望留住時間,但我們卻能夠在時間的流逝中留下自己的腳印。
剛升上大二時,看著大一的學弟學妹們卻生生的稚嫰的表情,自己的臉上不自主的有了微笑。似乎看到了當初的自己。而今,我已是幾千名學子的學姐了,不再對家充滿眷戀,不再排斥這所「陌生」的學校了。
大二的課程不緊不慢,但多了許多專業課的學習。大一時的懵懂都變成了今日對「信息管理」四個字的了解。親朋問及該專業學些什麼時不再感到茫然,是有了所謂的方向感吧。
盡管課業不緊張,但學習上卻不允許我有絲毫的鬆懈。全國英語四級等級考試、全國計算機二級等級考試(C語言),不僅充實了我的學習生活,也讓我的學習充滿了挑戰性。
圖書館依舊是一個很好的學習環境。這里留下了我的足跡與汗水。這里讓我知道學習是一個永恆的過程,沒有假期之說,更沒有畢業之說。學習更是一個不斷充實自己,完善自己的過程。因此它沒有終止的一刻。
電腦是一個取之不盡用之不竭的知識寶庫。它是我的學習伴侶,生活伴侶。自帶的電腦讓我更好地進行學習,也增進我對學習的興趣。學習之餘也娛樂了我的生活。網上的博客生活里,傾訴了我的悲與喜,裡面有我逐漸成長的點滴。
雖然我的大學生活自我總結相對簡單,但簡中有精。我的學習、生活永遠是正在進行時。大二的學習生活又即將劃上句號了。我們又一次迎來了驗證學習成果的期末考試,我相信自己可以取得更優異的成績來證明自己的努力。
大學二年即將過去,二年的時光收獲匪淺。在感受校園清新氣息的同時,接觸了來自不同地方的同學和老師,在每個人身上,學到了不少為人處世的道理。對於涉世不深的我來說,這些都是寶貴的經歷。從進大學校門第一天起,父母就對我說,大學是通向社會的必經之路,是為以後安身立命的重要階段。這句話我一直銘記於心。在回顧走過的這二年,發現自己在許多方面有了進步,同時許多方面也有待改進。
進入大二,課程主要是專業課了,平時照樣還是去上課,但基本上是想學的就來上課,不想學的有的就放棄了,我知道他們並不是不愛學習,只是對專業不感興趣,又不知道怎麼辦而很迷茫所以靠上網來打發時間。看見學風日下,班委也作出過努力,但大家都是成年人了,很多時候不像小孩子那樣容易管,只能勸說,但這樣收效甚微。至於考試就基本沒什麼意義了,不是對所學知識的真正考驗,很讓人痛心,所以我也不那麼看重分數,而是平時到底學了多少。平時上課我最不想看到的就是老師沒有激情,對現實感覺很無奈的樣子。但我周圍還是有很多我值得學習的榜樣,學習上他們很努力,動手能力很強,經常拿獎學金,生活中熱情洋溢,工作中綜合素質很高。
現在,大二結束了,雖說大學還有一年,但實際大四都忙著找工作考研,大學的學習階段算是結束了,回想這二年所學的彷彿學了很多,彷彿又什麼也沒學。說起編程能力有時感覺還不如外面的培訓機構培訓的程序員,雖然「外面的培訓機構能培訓出程序員但大學卻連程序員都培訓不出來」這句話有些道理,但我相信優秀的程序員大部分還是要靠大學來培養的,我不能缺乏自信,同時我要知道自己與他人的差距,承認自己的不足。
回望已逝的二年大學光陰,不禁感慨萬千,高中時我知道我還未成年,父母還會保護我,但現在我就知道我長大了,不可能再有誰在你前面為你遮擋那些風雨,自己要做自己心靈疲憊的港灣。風雨中,父母那一雙雙期望的眼神是我最大的動力!總之,大學生活可以很輕松,也可以很沉重,可以很單調,也可以很豐富,可以很舒暢,也可以很痛心……他就像一壇五味醋,我從中嘗出了酸甜苦辣咸甚至更多,並獲得了很多感悟,這些所得將作為我人生的寶貴財富,讓我以後的道路走得更加堅實有力。
大學是社會的縮影,很多事情都要靠自己的實力去爭取,去競爭,不僅要搞好自己的學習成績,更要培養自己的人際交往的能力。因此,我不斷地挑戰自我,執著探求,充實自己,努力使自己成為一個能適應社會需要的新時代大學生,並為以後的工作打下堅實的基礎。
一、學習方面:
經過兩年的學習,我更加認識到學習的重要性,在大二這一學年,無論是專業知識還是課外知識,我都孜孜不倦地學習,堅持不懈,一步一個腳印的不斷努力,最終取得了優良的學習成績,通過了國家英語四級考試,並獲得了「學習優秀三等獎」。隨著學習的進步,我不只學到了公共基礎學科知識和很多專業知識,我的心智也有了一個質的飛躍,自主學習能力得到了很大提高。
二、思想方面:
我認真學習思想道德修養與馬克思主義基本原理概論,鑒定自己的信念,堅持著自我反省且努力完善自己的人格。在校遵紀守法、愛護公共設施、樂於關心和幫助他人。在平日的學習、生活中,我積極地向黨組織靠攏,使我對黨有了更為深刻的認識,並參加了學院組織的「入黨積極分子」培訓的選舉。雖然最終沒能成功,但並沒有打消我入黨的積極性,反而使我更深刻反省和認識自己,從而更好的完善自我,爭取早日成為中國共產黨的一員。
三、工作方面:
在擔任院學生會心理部部長期間,我積極主動,工作踏實,任勞任怨,責任心強,時常關心和幫助身邊同學。注重團隊協作精神,配合其他學生幹部順利地完成各項工作。在工作中,我通過各種方式,學到了很多知識幫助同學解決生活和學習中的困難,也提高了自身各方面的能力。
四、課外生活:
在生活上,我獨立自主,養成良好的習慣,曾經遇到生活上的困難,我開始了兼職工作。它給我帶來了一些好處,比如說經濟上的獨立,給家裡減輕了一些經濟負擔,同時也提前體驗了社會生活,遇到一些學校里不可能遇到的任何事,最重要的是讓我更深刻地體驗到了生活的艱辛,讓我更加珍惜父母的勞動成果,珍惜自己學習的機會,努力奮斗,更好地完成自己的學業。
當然,學校的各種活動我都熱情地參加,比如校運動會,XX之光文藝演出,校籃球比賽等。在「XX之光話劇大賽」中,我們榮獲「三等獎」,在本學年校籃球比賽中,我們隊長以身作則,積極挑選隊員備戰,功夫不負有心人,經過我們共同的努力,我們終於改寫了我們學院在大一的籃球比賽中不景氣的歷史:雖然沒有做到出類拔萃,但也有所突破。
在入學時,我就加入青年志願者,積極參加院校組織的各項志願者活動,如手語學習、清潔校園、張貼課表等。在這些活動中,培養了我正確的工作態度和掌握處理問題的方法,提高了自己的'生活質量,使自己的人生過得更加精彩、更加完滿。
這一年的暑假,我和班上同學共同組成了社會實踐小分隊,通過對中藏葯人才需求的調查,我學到了書本中學不到的知識,它讓我了解社會,深入生活,使我更清楚自己的發展方向。這次的實踐收獲不少,學會了如何與別人更好地溝通,明白了在社會中要有自信,要克服自己膽怯的心態,在工作中不斷豐富知識,知識猶如人體血液。人缺少了血液,身體就會衰弱,人缺少了知識,頭腦就會枯竭。
大二這一學年的學習生活豐富多彩,讓我收獲很多,知識與實踐的結合,讓我認清了自己的位置,發現了自己的不足,增強了我努力學習的信心和毅力。
大學第二年已經結束,我務必總結在這一年的得與失,才能展望以後在校這幾年該怎樣發展,才能看清未來的路怎樣走。
在學習方面,首先是端正了學習態度。從最初剛剛進入大學只想放鬆在重壓解放下到此刻只想透過學習強化自我的專業知識的理念發生了徹底的變化。在學習過程中一向以「獨立思考」為座右銘,從中鍛煉到自我的耐心與解決問題的決心,讓自我的心智有了質的飛躍。自我在專業知識也有了很大程度的提高。使我體會到學習的樂趣,我與身邊的很多同學建立了良好的關系共同完成各個項目。這個學期也值得一提就是參加了全國計算機技術與軟體專業程序員考試,順利透過此次重要的考試,讓自我的專業知識給了很大自信,讓自我更大程度上相信自我的專業潛力。
此次考試前前後後,我縱覽了很多計算機的參考書,我一向相信這么一句話「機會是留給了有準備人的」所以大學四年就是我們走出社會前最大的考驗,所以我們得務必好好准備,用專業知識武裝強化自我在這人才濟濟之中脫穎而出。就知程序員考試透過那一刻開始,我就有更遠的目標與更大的決心——參加軟體設計師認證考試,這是自我更加專業化的一次考試,所以在未來大三第一個學期務必繼續奮斗努力。
在過去的一年裡我一向注重英語方面的學習,但是自我英語基礎不是很扎實。但這個不重要,四級成績也證實了我是有潛力也有信心在下一次考試必須透過,從大一到此刻參加三次英語考試,成績一向持續在400以上與合格分數線僅僅是幾分之差。我相信在這幾次失敗中我總結出自我在那個方面的缺陷,例如聽力方面分數明顯偏低,今後要強化這個模塊的訓練。
在這一年我還學習自我專業之外的技能並且獲得許可證—駕駛證利用周末或者空餘時間。在這一年一向想追求人格魅力齊全的人,所以常常閱讀一些名著來開闊自我的視野,崇拜具有思想獨立的人—韓寒。為著自我的夢想一向追逐,這是我這一年感悟最深刻的。自我的一片天空要自我一個人支撐起來,做一個有思想獨立的思考者。
參加社會實踐也是這個學年的一個可圈可點的一段時光,參加了雷州龍門二中的助教活動,我用心配合學校分配我的工作,我運用我的專業知識幫忙學校解決電腦方面的一些知識還為中學生淺談現代信息技術的發展與運用,讓他們對未來有個完美的憧憬。此次社會實踐,感覺自我被社會需要著,自我頓時自豪感和職責感油然而生。雖然在校期間也做過一些兼職,但這次完全不一樣,因為我全心投入到學校工作裡面用到自我的專業知識。
這個世界並不存在完美的人,優點缺點並存著。我期望在未來的時間里更好地利好時間,提高學習效力。這是一次總結也是一次展望。大二已經過去,收成與失落早已塵埃落定,把握最有期盼的大三才是當前最重要的。
時間過得真快,轉眼間大二上學期已經結束。回顧一下,總結一下整個學期的各方面情況,大概可以歸納以下幾個要點。
一、學習上
比起大一,在認知程度和態度上有了很大的進步。大一的時候由於是剛來到大學校園,由於整個時間由自己支配,感到無所是從,時間經常轉瞬即逝。經過大一整個學年的適應,這個學期基本上都能充分利用自己的時間。課余時間,我經常去學校的圖書館,學習一點自己感興趣的課程,以求提高自己的知識面,拓寬自己思考問題的角度。在學習上,我認為有一樣東西非常重要,那就是學習態度!俗話說的好,態度決定一切。我以前總感覺自己不比別人差,問題能自己解決就自己解決,很少向別人請教。而現在,我開始養成一種謙虛、勤問的學習態度。因為我知道學習上的東西來不了弄虛作假,是不懂就不懂,絕不能不懂裝懂!孔夫子說過「三人行,必有我師」,我想道理就在這里。在這一學年,班裡的氣氛是和諧融洽的。在學習上大家都是爭先恐後,使我感到了學習的重要性。但我們還是學的不夠,然而我卻無法系住時間老人慾行的腳步。
二、生活上
我基本上都可以和同學們友好相處,互幫互助,形成獨立自理自立的良好品德。此外我用真心去對待自己的朋友,從不虛心假意。我知道,走進社會中,只有真心的朋友才會幫助你。還有就是要始終保持干凈的作風,做到勤清潔,養成良好的衛生習慣。
三、思想問題上
我積極向黨組織靠攏,平時能夠嚴格要求自己,注重日常生活作風的養成,堅決抵制了腐朽文化和各種錯誤思想觀點對自己的侵蝕,做到了生活待遇上不攀比,要比就比貢獻、比成績。作風上艱苦奮斗,提倡艱苦樸素,勤儉節約,反對鋪張浪費,杜絕腐敗現象的滋生蔓延;紀律上遵紀守法,自覺接受監督,抵制腐朽思想的侵蝕。平時對待同學熱情誠懇,樂於幫助同學,能夠團結同學。豐碑無語,行勝於言,總結是為了更好的行動,實踐是檢驗真理的唯一標准。爭取向一名優秀的黨員靠攏。
雖然我在這個學期有了一定的進步,可是我仍然存在不少缺點,還有很多需要改進的問題。比如有些時候交作業不是很按時。時間總是寶貴的,我不想成為虛度光陰的人,不想自己在老的時候後悔自己這樣浪費時間。作為學生,學業永遠是第一位的。我將努力改正自己的缺點,使自己向更好的方向發展。
總之,大二的整個學期,是不斷學習、不斷充實的一個學期。大學生活是很寶貴的,我不願意平平淡淡地過這幾年,我要好好珍惜這難得的讀書機會,努力讀書,為自己的大學生活增添豐富美麗的色彩。
回顧昨天,我百感交集;面對今天,我信心百倍;展望明天,我任重道遠!
以上是我對大二上學期一些方面的個人總結,我將結合這個小結回顧過去,確定未來的發展目標,我對未來充滿信心。自然,這需要輔導員的精心培養和同學們的真誠幫助。
時光匆匆,步入大學已有兩年了。暮然回首,發現這兩年裡還是有很多需要自己總結。
十年磨一劍,多年寒窗苦讀就為了幾日高考。在高考一結束,就感覺身上擔子全放下了。抱著要將以前浪費的光陰彌補回來的想法,沒日沒夜的瘋狂玩耍。以致領到錄取通知書步入大學,心態還未調整回來,整日沒心思讀書。存著得過且過、坐吃等死的心思,上課也不認真聽講。直到大一將近結束,自己看到那代表自己一年學習的成績時,才幡然醒悟。現在回想起來,悔不當初啊!大學的一開始沒有好好學習,跟不上老師進度,導致現在不得不花更多時間去打基礎。 大學,不同於初中和高中。大學,什麼都得靠自己。再也沒有班主任在身後督促著學習;再也沒有任課老師主動來答疑解難。為此,自己曾迷惘過好長一段時間,感覺自己學習沒有了方向。不知要學什麼,不知哪門學科重要,不知應如何去學。現在回想起來,感到慚愧不已。過去的自己太依賴別人了,主動性太差了,總要老師在身後催著才會努力學習,老師一日不出現,就懈怠下來。
不只是在學習上,而且在與同學相處上也不是很好。自己和同學的相處交流還不夠多,關系不夠緊密。主要是自己作息的時間安排上不夠合理,導致時間使用的緊張,無意中減少了與同學交流的時間。其次,由於自己性格比較內向,
不善言談,不敢與同學交流,交流又找不到話題,又擔心找同學交流會打擾他們的休息。眼看就要分專業了,可連自己班有些同學都沒說上幾句話。總之,和同學聯系相處不是很好。
在未來兩年裡,我要吸取之前的經驗,改進自己不足之處。
在未來兩年的日子裡,我要多多與同學交流聯系,不能再像以前了。與同學相處,也可以鍛煉自己的交際能力。這在步入社會後,是尤為重要的。俗話說的好,「一個好漢三個幫」,多幾個朋友多幾條出路,總有幫的上你的時候。反正,與同學多相處聯系,有益無害。
專業分完了,自己在所在專業總排名是倒數的。雖然自己已經醒悟開始努力學習,但前期拉下的課程不是那麼好彌補的。通過上網所知,大四畢業後的去處只有三條:出國,讀研,工作。出國,家裡經濟條件有限,父母每日辛苦工作,我也不想給家裡帶來負擔,不用考慮了。工作,大四畢業就工作怕是找不到像樣的工作,也不用考慮。只剩下讀研,憑自己的成績是保研沒戲了,只有默默考研了。自己也要上大三了,也不早了,要為將來考研做准備了。
總結大一大二,自己還是有許多不足之處的;展望大三大四,自己要改正自身缺點,改善學習方法,發展自身長處。做一個合格的北郵人,相信自己,相信未來。等等老來遲暮,不悔當初!
;E. 書很多,如何讀起
(一)要不斷改進閱讀的基本條件
閱讀需要哪些條件呢?
(1)要掌握常用的字、詞、句、段、篇的基本知識
閱讀就是要通過與字、詞、句、段、篇打交道,從中獲取知識,如果不掌握這些知識,那麼,閱讀就變成看「天書」了。
中學生如能掌握5000個字,閱讀一般文章就問題不大了。有的學生之所以閱讀能力差,就是因為沒掌握足夠數量的字、詞(主要是實詞)和片語的表達概念,而概念是思維的「細胞」。句是用詞按一定的語法規律聯結而成的語言單位,一般用來表達判斷,表達相對完整的思想。對句的理解不單要求掌握詞義,還要求掌握語法。沒有語言,思維就不存在了,由此可見,閱讀的重重困難,往往是由不識字詞,看不懂句子的意思帶來的。因此認真學好語文,在閱讀中有意識地豐富自己的語言知識是十分重要的。
科學家用他們的親身體會,明確地指出了學好語文的重要性。
有一位數學家說:「很難想像一個文理不通、錯字連篇的人,能把邏輯嚴謹的數學內涵表達出來。」著名數學家蘇步青說:「我從小打好的語文基礎,對我學習其他學科提供了很大的方便。我還覺得學好語文對訓練一個人的思維很有幫助,可以使思想更有條理。這些,對我後來學好數學都有很大好處。」人們贊譽蘇步青為「數學詩人」。
(2)要掌握基本的科學知識
不掌握自然科學和社會科學的基本概念和基礎知識,就會給閱讀帶來很多不方便,甚至困難重重。有人說,到了21世紀,如果不懂生物化學,不懂生態學,可能連報紙都看不懂。現在報上經常出現「生態平衡」、「生態系統」、「遺傳工程」、「基因」等專用名詞,不少人似懂非懂,就是因為缺乏高中生物的基礎知識。可見,要想在現代化社會轎慶里提高閱讀能力,必須盡快掌握基本的科學文化知識才行。
(3)要會用工具書
在閱讀時難免有些字不認識,也有的一時想不起來,這時,如果手頭有《新華字典》、《現代漢語詞典》和《漢語成語詞典》等工具書,就可以及時地查一下,以掃除閱讀中的障礙。當然,根據閱讀的需要,准備一些相應的參考書籍,准備隨時查找也是必要的。
如果工具書齊備,查找熟練,閱讀起來就會順利得多。當然,通過查找工具書,又可以使自己的知識進一步豐富起來。
(二)要有目的,有計劃地讀書
面對浩瀚的書海,如果讀書沒有目的和計劃,將會無所答做適從。
中學生的大部分時間是在課堂上度過的,每天又要完成當天的學習任務,因此,可供閱讀的時間,尤其是課外閱讀的時間並不多,如果讀書再沒有目的和計劃,就會使寶貴的閱讀時間得不到充分地有價值地利用。
中學生的閱讀應以達到這樣的目的為出發點:
有利於基礎知識的學習,有利於發揮自己的特長,有利於彌補自己的弱點,有利於閱讀能力的提高。
安排閱讀計劃時要注意:
圍繞課本閱讀一些有關的課外書。例如,讀一些與課內學習有關的科技史,人物傳記,清帆衡這樣有助於提高課內學習的興趣,充實課內學習的內容,使思維更加活躍。
圍繞自己的愛好或特點讀一些有關的課外讀物,一個愛好理科的學生,可以定期到閱覽室讀有關的報紙雜志,一個喜歡文科的學生,可以定期去讀各種文學刊物,也可以利用假期閱讀文學名著。
至於課外書的選擇,可以請教老師,請教高年級的優秀生或同班的同學,也可以請教家長。把他們的好經驗學過來,實在是一種省時間的好辦法,選好一本書,就可以用較少的時間得到較大的收獲。
書選好了,再把讀書的時間分配好,不僅可以提高讀書的效率,也不至於沖擊課內的學習。長期堅持下去,學習中的弱點就可以得到彌補,個人的特長就可以得到發展,既促進了課內的學習,又豐富了課外的精神生活。
不少學生讀書缺乏目的和計劃,一昧地從興趣出發,常常看一些偵探小說、武俠小說,達到了愛不釋手的地步,為看這些書而開夜車,不完成作業,結果嚴重干擾和影響了課內的學習,這是一種不好的讀書傾向。
(三)要處理好博覽和精讀的關系
博覽就是廣泛地看書,目的是針對書的內容作一般了解,以發現書內精華的部分和急需的知識。廣泛閱讀可以博採眾長,正如魯迅所說:「如果只看一個人的著作,結果是不大好的,你就得不到多方面的優點。必須如蜜蜂一樣,采過許多花,才能釀出蜜來,倘若叮在一處,所得就非常有限,枯燥了。」
博覽就是觀大略,在短時間內閱讀大量書籍,為精讀創造條件。觀大略的方法是:看目錄,從目錄中發現有用的內容,再翻閱有關部分,到書店選書就是用這種辦法;看內容提示,看書的開頭幾段和結尾幾段,以掌握書的大概內容;也可以用快速閱讀法,就是用較快速度讀一遍,了解大致的內容。
在博覽的基礎上,在同類的書中選出一本最好的進行精讀。精讀之後再閱讀同類的其他書籍。精讀時,要「細嚼慢咽」,要多動腦筋,要反反復復地讀,還要認真做讀書筆記。
數學家張廣厚在談起學習一本數學小冊子時說:「這篇論文一共20多面,我反反復復地念了半年多,因為老用手摸這幾頁,白白的書邊上,留下了一條明顯的黑線。這樣反復學習,對我們研究工作有很大的促進作用,我的愛人說:『這哪叫念書啊!簡直和吃書一樣。』」
精讀過的書,要做到:一懂,就是對書的基本內容要達到理解的程度;二記,就是要記住所理解的內容;三會,就是會運用這些理解了的知識;四熟,就是能熟練地將從書本內學到的知識表達出來或運用它分析問題和解決問題。
中學是基礎教育,是打基礎的階段,因此要把精讀的目標指向教科書和主要參考書。
(四)要勤於思考
愛因斯坦說:「在所閱讀的書本中找出可以把自己引向深處的東西,把其他一切統統拋掉,就是拋掉使頭腦負擔過重和會把自己誘離要求的一切。」就是說,閱讀時要抓住書中的精髓,實現由淺入深的轉化。
英國詩人柯勒律曾把讀者分為四類:第一類好比計時的沙漏漏沙,注進去,漏出來,到頭來一點痕跡也沒有留下;第二類好像海綿,什麼都吸收,擠一擠,流出來的東西原封不動,甚至還臟了些;第三類像濾豆漿的布袋,豆漿都流了,留下的只是豆渣;第四類像開掘寶石的苦工,把礦渣甩一邊,只要純凈的寶石。這段話的意思是說,閱讀時,要取其精華,去其糟粕。
華羅庚說:「高中程度的同志可以回想一下過去學過的小學算術、初中代數在腦子里還有那麼多嗎?沒有那麼多了。因為我們理解了,會運用了,這就是說書變薄了。」這段話的意思是說,閱讀時要實現由多而雜到少而精的轉化。
綜上所述,閱讀時,要竭盡全力,力求做到「留下寶石」,「引向深處」和「把書讀薄」,為此,就要勤於思考。
具體說要做到以下幾點:
(1)力求理解
讀書應當邊讀邊想,力求理解,弄懂書中所說的中心思想和基本原理,閱讀時,應當每看一段就想一想,把道理弄懂;在全文讀完之後,再串起來看一看,想一想,找到各段之間的聯系,以便從整體上理解一篇文章,一節課文或一章內容。
(2)理清思路
著名教育家葉聖陶說過:「文章有思路,遵路識斯真。」意思是每一篇文章都體現著作者的思路,遵循這一思路閱讀,才能理解文章的實質。可見理清思路對閱讀多麼重要。
在閱讀自然科學著作時,對書上提出的原理、規律、定律、公式,不僅要理解結論,尤其要理清文章的思路,看看這些結論是怎麼推導出來的。李政道博士說:「當讀完一段之後,就應當把書合上,自己把思路走一下,如果走不出來,再去看書,想想自己為什麼走不出來,別人為什麼走通了。」閱讀時,只記現成結論,而不考慮這些結論是怎麼得出來的,那麼思維能力就很難在閱讀中提高。
(3)要能提出問題
閱讀中發現的問題一般有兩類:一類是根據自己所具備的知識,認為書中的一些見解不正確、不完整,提出異義或補充;一類是因為自己具備的知識還不夠,因而有不懂的問題。中學生隨著知識水平和能力的提高,閱讀時發現第一類問題會逐漸增多,而第二類問題會慢慢減少。
一旦發現問題,再深入閱讀有關書籍,並且深入思考,收獲會更大,還有可能發現新的知識,獲得新的見解。
(4)要獨立回憶,學會准確表達
閱讀後,要通過回憶再檢查一下閱讀的效果。對已經理解的內容要善於用簡練的語言表達出來,寫在讀書筆記上,以備日後查用。錢偉長說過:「讀一本書,只要清楚它的梗概,了解它的主要精神和主要問題,先把最重要的東西學到手,然後回顧一下,看自己解決一些什麼問題,還有哪些沒有解決?對一時無法解決的問題,最好用小本子記錄下來,以便以後解決。」
(五)要記好閱讀筆記
威廉·李卜克內西在《憶馬克思》一文中說:「只要有一點可能,他任何時候總要工作的。就是去散步,他也要帶一本筆記簿,並且時時在上面寫點什麼。」為了寫《資本論》,僅在 1850年 8月至 1853年 6月,馬克思就摘錄了70個不同作者的著作,寫了24本有關政治經濟學的筆記。在寫《資本論》的過程中,他摘錄的書有1500多本,寫的筆記至少有100多本。
馬克思在筆記的封面上寫明做筆記的時間和地點,編上筆記的序號,有的還加上標題……每本筆記都編有頁碼,為了日後查閱方便,很多筆記都做了目錄和內容提要。
黑格爾讀書學習,也有一個獨特的習慣,就是把讀過的書,按語言學、美學、幾何學、心理學等分類,把它們放到貼有標簽的文件夾里。這樣,當需要什麼材料時,隨時可以拿到。這種習慣,他堅持了一生。
魯迅寫作《中國小說史略》光摘抄的卡片就有5000張。
(1)加深理解,鞏固記憶
做筆記的過程,就是一個加深理解、加強記憶的過程。有人說:「眼看千遍,不如手抄一遍。」就是做最簡單的摘錄,也需要動動腦筋,以摘錄最精彩的地方,至於寫體會,那就更要動腦筋了。因此,有了「要做筆記」的願望,必然會促使你專心閱讀。再加上與書籍相比,筆記自然要簡明、深刻和概括得多,不僅利於理解,也利於記憶。
(2)利於積累資料,使知識「外貯」
經過長期閱讀之後,就可以通過筆記積累起符合自己需要的大量資料,彌補頭腦記憶的不足。因為用頭腦記憶,往往不夠准確和持久,難免忘記、記錯或記混。如把資料分門別類保管好,則可以長期為學習及以後所從事的工作服務,只要不丟,就沒有「忘記」的問題,只要使用之前看一看,這些「外貯」的資料又可轉為「內貯」的記憶,使知識的運用得心應手。保爾·拉法格在回憶馬克思時說:「他有這么一種習慣,隔一些時候就要重讀一次他的筆記和書中做上記號的地方,來鞏固他非常強而且精確的記憶。」
不少中學生在閱讀時,輕信自己的記憶力,懶得動筆,以致到需要運用閱讀的收獲來分析問題解決問題時,忘記得一干二凈,感到很後悔。
還有的中學生筆記記了不少,但不知道定期分類、整理,不知道妥善保存,因此當需要運用時,又因太亂而難以查找,使筆記成了「死材料」。
一般精讀的書,可用筆記本做筆記,而博覽的書,可用活頁紙做筆記,然後定期分類、整理。
如果在中學時代,就學會做讀書筆記,學會積累和整理資料,那麼,天長日久,不僅可以促進課內的學習,而且還能幫助學生學會一套閱讀的方法,提高閱讀的能力,這必將給走上工作崗位後的自學帶來極大的好處。
F. 剛開始學C語言,要看些什麼書(介紹幾本)
《程序員》推薦C++ 圖書三人談
主持人:熊節(透明),《程序員》雜志編輯,C-View成員
嘉 賓:孟岩(夢魘),聯想公司掌上設備事業部應用開發處任職,C-View成員。與侯捷先生合譯《C++ Standard Library》一書
金尹(惡魔),上海天宇公司CTO,在《程序員》連載有「自由與繁榮的國度」系列文章
透明:「學C++用哪本書入門」,這是被問得最多的一個問題。但是哪一本書是最好的入門書?似乎很難找到答案。《C++ Primer》太厚,《Effective C++》對讀者要求比較高,《Essential C++》又常常被批評為「太淺」。
其實說穿了:no silver bullet。想從一本書學會C++,那是不可能的。有朋友問我如何學C++,我會建議他先去找本數據結構書,把裡面的習題全部用C++做一遍,然後再去看《Effective C++》。myan經常說「要在學習初期養成好習慣」,我對此頗不以為然。
個人認為,《Essential C++》適合作教材,《C++ Primer》適合作參考書,《Effective C++》適合作課外讀物。
惡魔:很後悔當初買了《C++ Primer》。因為從我個人角度來看,它的功能效用基本是和《The C++ Programming Language》重合。當然對於入門來說,它還是很不錯的。但是《C++ Primer》太厚,一來導致看書極其不方便,二來系統學習需要花比較長的時間。對於目前這個越來越快餐化的時代來說,的確有很多不適合的地方,不過可以作為初學者的參考書。現在我以一塊K3 CPU的代價把它借給了別人,希望我那位同事能夠從中得到一些益處。
如果已經具備了C基礎,我建議看國內的書,例如錢能的《 C++大學教程(第二版) 》。(如果沒有C的基礎還是看譚浩強的C語言)。這本書對C講得還算比較清晰,有很多習題值得一做,特別是最後的struct和union兩個部分。其中的一些演算法比較拖沓和繁瑣(比如樹和鏈表的遍歷演算法),讀者可以嘗試修改這些例子,作為最後對C語言的一些總結測試。
夢魘:這個問題讓我想起四五年前的情形。今天對於C++有一點認識的人,多半是從那幾年就開始學C++了。那時根本沒有品牌觀念。從書店裡找一本C++書,如果看著還算明白,就買下來。我記得那時候宛延闓、張國鋒、麥中凡教授的書都受到很高的贊譽。我個人最早的一本C++書是Greg Perry的一本書,今天想起來,其實是一本打著C++旗號的C語言教程。對我作用最大的一本書是國防科技出版社出版的一本書,書名記不得了,作者叫斯蒂芬·布萊哈。
透明:還記得以前曾批評過一本C++書,是北航出的,整本書就沒有出現過class關鍵字。那本書,說穿了其實只是介紹了C語言和iostream庫的用法,根本不能算C++。而當時我常常推薦的一本書是電子科技大學張松梅老師的C++教程。那本書,直到今天來看也沒有太大的問題,唯一的缺憾就是由於年代久遠,許多東西已經過時了。而對於一本技術書籍來說,「過時」是最不可接受的。
總體來說,那時使用C++的人真是在「盲人摸象」。不過這也有好處,就是對C++的很多細節能搞清楚,以後看到經典好書時比較容易理解;當然壞處就是概念不清,甚至都不知道C++和Visual C++、Borland C++到底有什麼不一樣。
夢魘:整個90年代,其實大部分人對於C++的認識都似是而非。一開始是等同於Borland C++,後來是等同於Visual C++和MFC。所以一般來說,打著BC和VC旗號的書賣得很好,人們覺得這就是C++。而我比較幸運,布萊哈的那本書雖然從現在的眼光來看談不上高超,但基本路子是對的。可能是因為原書是給UNIX程序員的培訓教材,所以沒有讓我一開始就形成「C++ == VC++」的認識。
其實一直到1996年,我們那裡搞計算機的都是唯Borland C++馬首是瞻的,到了VC 4.0出來,一下子格局全變了。1997年VC5推出之後,書店裡MFC書鋪天蓋地,學MFC的人,頭抬得都比別人高一些。不過現在看來,那時候大部分的MFC書都是三流貨色。我曾經有一段時間認為,那一批程序員中間有不少被誤導了。根本原因就是相對的封閉。
透明:我覺得一本書的價值有兩方面:第一,教給你實用的技術;第二,促使你去思考。對於一本介紹VC(或者說MFC)使用方法的書,我根本不希望它能促使我有什麼思考,所以我就一定要求它在技術上精益求精完美無瑕。我剛開始用VC的時候,買的第一本書就是潘愛民老師翻譯的《VC技術內幕》(第四版),沒有受到那些「三流貨色」的誤導,應該說是很幸運的。
夢魘:1999年機械工業出版社開始出版「計算機科學叢書」,其中的《Thinking in C++》第一版受到了廣泛的歡迎。其實我一直不認為這本書很出色,雖然拿過一次大獎。然而我們都得承認,這本書在C++書籍領域里第一次建立了品牌觀念,很多初學者開始知道,不是隨便買哪一本都一樣的。再往後就是2000年的《 深入淺出MFC(第二版) 》第二版,以及侯先生在《程序員》上發表的那一篇《C++/OOP大系》,加上整個大環境的變化,品牌觀念深入人心,C++書籍市場終於開始逐漸與世界同步。
回想往事,我的感覺是,那個需要戰戰兢兢選擇入門書的時代已經過去,今天的C++初學者,大可以放心地買口碑好、自己讀起來思路順暢的書,入門不再是太大的問題。還有一些程序員已經學了幾年C++,但看到今天出版的一些新書,感覺比較陌生,這也不是什麼問題。侯先生經常說「凡走過必留下足跡」,所謂「走彎路」,未必不是一件好事。
至於具體的推薦表,就不好一概而論了。總之在我的印象里,《Essential C++》、《C++ Primer》、錢能教授的C++教程,都不錯。甚至有人一上來就看Bjarne Stroustrup的《The C++ Programming Language》,只要他喜歡,也沒什麼不可以。
透明:我同意你的觀點。不管怎麼說,編程是門實踐性非常強的學問。要想對C++對象模型有深入的了解,最好的辦法就是寫一串程序去看結果;要想學會OOP,也只能從項目中學。對於初學者,最好的學習方法就是不停地寫程序,寫真正有用的程序,寫到有問題的時候就去查書,於是自然就會知道哪本書好哪本書不好。不過我們的教育制度能不能讓大學里的學生們有這樣的學習機會,我表示懷疑。
以我的經驗,學C++有兩個門檻:入門和使用。完全看不懂C++,這是一個門檻,但是只要有一本合適的入門書,很快就能跨過。要想真正用上C++,卻不是件很容易的事情。尤其對於學生來說,接觸到的東西多是「玩具」,很難有實戰的機會。所以經常看見有人問「C++到底能做什麼」,這是C++學習中一個比較麻煩的問題。我們都是做了相當長時間的C++程序之後才看到一些真正經典的書,也正是因為走了相當長的彎路之後才知道這些書的經典之所在。所謂彎路,我想也是一種必須的積累。就算一開始就看《Essential C++》和《C++ Primer》,沒有兩三年的時間恐怕還是難有所得。
惡魔:有兩句十分有道理的話,一是我大學的C語言老師說的「寫程序不如說是抄程序」,另一句是一網友說的「好的設計來自借鑒,天才的設計來自剽竊」。對於我這個理性批判主義者來說,這兩句話的確不太適合。但是無論從哪個角度來講,對於初學者來說,剽竊大師的作品是通向成功的最快捷徑。
我個人認為,對於C++的初學者來說,首先要確定自己專業領域內主要使用的特性的方向。因為C++的特性如此眾多,初學者想貪多基本是不可能成功的。C++的編程範式基本可以分為ADT+PP、GP和OO三個方向。對於ADT+PP範式來說,初學者的主要問題不是學習C++,而是學習C的使用。對於這樣的初學者,國內的幾本書還是寫得比較清楚,符合中國人的習慣,比如譚浩強的《C語言教程》、錢能的《C++語言大學教程》。這兩本書我首推第一本,因為這一本我潛心研究了一年,這本書當中很多程序是可以剽竊的,而且可以對這些程序進行加工和提升。比如結構這一章中,它所給出的用struct來實現鏈表、二叉樹的演算法是相當蹩腳的。學習ADT+PP的初學者將這本書揣摩透以後可以嘗試修改這兩個程序。另外這本書的第二版稍微涉及了一些關於「類」的內容。學習ADT+PP的初學者,可以不被OO中的一些專有特性擾亂自己的思路,對於類層次扁平、無繼承、無多態的程序編寫是有很大好處的。
透明:你好象比較推崇國內教授寫的書。現在社會上有種不好的風氣:一捧就捧上天,一貶就貶下地。就好象對待譚教授的書,前幾年是奉為經典,這幾年又有很多人使勁批評。學C++更是有點「崇洋媚外」,總是覺得初學就應該看《Essential C++》。我看這種觀點也是片面的。
惡魔:當然《Essential C++》也值得看看。但是我個人覺得這本書沒有譚浩強的《C語言教程》來得好。主要原因是:第一,C++的所有特性都點到了,但是不深,看了以後會三心二意沒有方向;第二,可以抄襲借鑒的例子太少。《C語言教程》中有很多有趣的問題,比如猴子吃桃、漢諾塔等等,這些例子對於剛剛涉及C/C++語言編程的人來說是學習編程很好的例子。《Essential C++》只能是前兩本書看透以後,作為學習C++特性的一個過渡性的書籍。讓讀者真正領略到什麼是C++的編程、和C編程的不同點在哪裡。
透明:我發現一個很有趣的現象:初學者往往喜歡問「哪本書比較好」,這讓我很是不解。這有點像一個剛學打籃球的人問「王治郅和科比誰比較厲害」。當然科比更厲害一些。但如果你是想學打籃球,這兩個人都非常非常有資格教你,你跟誰學都能學得很強——關鍵不是在於你選哪個老師,而是在於你自己用多少功夫去學。
透明:回到原來話題。學會了C++的語法,能看懂C++代碼之後,必須有些書來指導進階(或者叫指點迷津)。我覺得《設計模式》很好,能夠讓讀者看到一些精妙的用法。不過正如我經常說的,模式帶來的麻煩和好處一樣多,甚至麻煩還要更多。而且,C++本身的問題使得在C++中使用GoF模式愈加麻煩。
夢魘:《Design Patterns》這本書絕對是不可以沒有的,而且中英文版都不可少。最初我看中文版,說實話看不懂,但是也不覺得人家翻譯得不好,所以就想,大概是原文就很難懂,加上自己水平有限。於是總是想著再找幾本patterns的書來看。後來找到幾本書,口碑還不錯,不過水平高下,一比就出來了,還是那本《Design Patterns》最經典,最耐看。英文版出來之後,兩個版本對照看,明白多了。現在覺得,其實就設計模式來講,把這本看明白了就很不錯了,不用再花費很多心思找其他的書。我現在的包里始終夾著這本書,隨身攜帶,有備無患。
至於說設計模式的副作用,和可能帶來的弊端,我的體會也挺多。不過是這樣,我們想一想,究竟什麼情況下設計模式可以用得很好呢?一種是有經驗豐富的人引導,比如要是Robert Martin帶隊,你在某個地方用錯了設計模式,他就會指出來,說這里不對,將來會產生什麼樣的弊端。對於他來說,豐富的實踐經驗足以支持他進行「預測型」設計。但是大部分人沒這個能力,因此我們只好走第二條路和第三條路,就是「試探型」設計和「重構型」設計。遇到一個問題,你覺得用某種模式挺合適的,就大膽地用了,成功是積累經驗,發現不好,出了問題了,只好改回來,那也是積累教訓。這叫做「試探型」。至於重構,應該算是最有組織、成功率最高的工程化方法。先把問題「quick and dirty」地解決了,所有的暗礁都暴露出來,然後再根據實際情況採用合適的模式優化設計。現在XP和UP都高度重視refactory,UP在Elaboration和Construction階段都鼓勵抽出專門的iterations進行重構。所以說如果組織快速的軟體開發,當然比較傾向於這條路——打成功率嘛。
透明:講到重構,我順便說說《Refactoring》這本書的影響。從工程本身的角度來說,你所謂的「重構型設計」是沒有什麼問題的。但中國的開發者(也包括我在內)往往比較沖動,比較容易相信銀彈的存在。曾經有那麼一段時間,我在java中嘗試過了重構的方法之後,又拿到C++中去嘗試。結果發現,在Java中速度非常快的重構過程,到C++中就被減慢了。究其原因,就是因為C++和Java的約束條件不同。拿著Java中成功的案例直接套C++,不失敗才怪。
所以,我必須說:《Refactoring》這本書很有價值。但對於C++程序員來說,它的價值是讓你思考,思考這種方法的可行性。如果一個C++程序員沒有打算遷移到Java,那麼我必須告訴他:《Refactoring》這本書不是讓你照著它用的,甚至不是讓你去相信它的。對於C++程序員,《Refactoring》全書可以放心相信的只有第13章,其他的部分,都必須非常謹慎地對待。
夢魘:我還要就「試探型」的方法多說兩句,我覺得對於個人發展來講,「試探」也是必不可少的,撞牆不可怕,高水平的人不都是撞出來的嗎?你失敗了一次,就知道這個模式有什麼潛在的問題,下次再用,就會多看幾步,像下棋似的。撞的多了,路數就出來了。
我不知道你們是否有這個感覺:用錯了模式,吃了虧,再回過頭去翻翻《Design Patterns》,看到人家早就指出來這個問題,不過就是那麼幾句話,原來看上去乾巴巴的,現在覺得句句都講到心坎上,GoF的形象馬上就高大起來,還帶著光環,感覺是既興奮又懊悔。
透明:現在回頭來看,我更欣賞myan推薦給我的《Designing Object-Oriented C++ Applications Using Booch Method》。這本書能夠幫助C++程序員理清思路培養習慣,可惜國內沒有引進。相比後來商業味濃厚的UML系列書籍,我覺得這本書對於面向對象的闡釋精闢獨到,至今未有能出其右者。
夢魘:剛才我們兩人都說到Robert Martin,他可是我的榜樣。那本1995年的《Designing Object Oriented C++ Application》,我覺得是每一個C++軟體工程師都應該反復研讀的書。可惜不僅國內沒有引進,在國外的名氣也不大。如果你覺得面向對象的那些道理你好像都明白,可就是一遇到實際問題就使不上勁,那這本書就是你的最佳導師。
提到理清思路,還有一本書不得不提,就是Andrew Koenig的《Ruminations On C++》。每個人都應該問自己,我學了這么多年的C++,究竟什麼是C++最基本的設計理念?遇到問題我第一個直覺是什麼?第一個試探型的解決方案應該具有那些特點?如果你不能給出明確的答案,就應該認真地去讀這本書,讀完了你就有了「主心骨」。
透明:插一句話,談談「推薦書」的問題。入門書基本上是放之四海而皆準的,所以推薦的意義也不大。而入門後的發展方向,每個人不同,這個時候就需要「高人」的指點。舉個例子:我學C++的時候,myan還不認識我,所以也沒有給我推薦書,我還是學過來了,所以即使你當時向我推薦了《Essential C++》或者《C++ Primer》,我也不會太感謝你;但在我認真研究OO的時候,你推薦Robert Martin那本書給我,對我幫助就特別大,而且我從別的地方也很難找到類似的推薦,所以我就很感謝你。
一個程序員,必須有framework的意識,要學會用framework,還要主動去分析framework(在這方面,《Design Patterns》能有一定的幫助)。但是,真正高質量、成氣候的framework的書恐怕也就只有針對MFC的。從這個角度來說,MFC縱有千般不是,C++程序員都非常有必要先去用它、熟悉它、研究它,甚至藉助《深入淺出MFC》這樣的書來剖析它。不然,很難有framework的意識和感覺。
當然,另一個framework也很好,那就是STL。不管用不用MFC、STL,對這兩個東西的掌握和理解都是極有幫助的。最近我又在看《深入淺出MFC》,雖然已經不用MFC編程了,但幫助是一定有的。
夢魘:MFC和STL方面,我還是比較推崇侯先生的兩本書《深入淺出MFC》和《STL源碼解析》。
《深入淺出MFC》這本書,名氣自然是大得不得了,不過也有不少人批評。其實書也沒有十全十美的,批評當然是少不了的,不過有的時候我看到有人評論這本書,把它跟Inside VC相比,真的是牛頭不對馬嘴。
你剛才其實說得很對,程序員應該有一點framework意識。而這本《深入淺出MFC》與其說是在講MFC編程,不如說通篇是在拿MFC為例分析Application Framework的架構和脈絡。所以無論你對於MFC本身是什麼態度,這本書對每一個C++程序員都有很大的益處。
透明:是的。《VC技術內幕》會告訴你「DYNAMIC_CREATE這個宏怎麼用」,《深入淺出MFC》則告訴你「DYNAMIC_CREATE這個宏是怎麼實現的」。所以,如果你只需要在VC下寫一些小應用程序,《深入淺出MFC》的價值並不太大;但是,如果你需要設計一個稍微大一點的東西(不一定是framework),MFC的設計思想就會有所幫助。
夢魘:另外,我覺得對於MFC也應該有一個公允的評價。過去是吹捧得天上有地下無,書店裡鋪天蓋地都是MFC的書,搞得大家只知有MFC,不知有C++,甚至直到現在還有人問:「我是學MFC呢,還是學C++?VC++是不是比C++更高級的語言?」MFC成了一尊神像,阻礙了人們的視線。所以得把它從神壇上拉下來。這就是過去一兩年有很多人,包括我在內批評MFC的一個目的。可是現在大家視野開闊了,.NET也出來了,MFC不再是神像了,少數人就開始以貶損MFC為樂了。我覺得這種態度是不對的。
什麼叫好的框架?我覺得在十幾年的時間能夠象MFC這樣保持穩定並且不斷進步的框架就是好的框架。可能我們在一些具體的設計問題上有不同看法,覺得「這個地方這么設計不是更漂亮嗎?」很多時候是的,但是這不重要,重要的是MFC成熟穩定、有十幾年的成功經驗,這是最了不起的東西。
另外一點,MFC中間包括著學習Win32 API編程的最佳資料。這是除了其framework方面之外的另一個亮點。我現在使用Win32 API開發,但是經常參考MFC的源代碼,收獲很大。
透明:STL方面,我對於剖析它的源代碼興趣並不大,畢竟裡面源代碼多是演算法問題。所以,《STL源碼剖析》我也只是隨便翻翻就束之高閣了。我覺得這本書用來做計算機系的數據結構和演算法教材不錯,不知道有沒有老師樂意這樣做。
對於STL,我的態度一向都是「應用至上」。不過,我一直認為SGI STL本身就是一本精彩的書,一本數據結構和演算法的經典參考書,同時也是泛型技術的參考書。想知道一個演算法是如何實現的,看看STL源代碼就行;想知道如何使用type traits,STL源代碼裡面也有例子。看別人寫的書,總覺得隔著一層紗,有點撓不到癢處的感覺。SGI STL的代碼寫得非常漂亮,一個C++程序員如果不看看這本書,實在是可惜。
夢魘:至於STL,除了《STL源碼解析》之外,我舉賢不避親,強烈推薦侯先生與我合譯的那本《The C++ Standard Library》。這本書質量之高是無需懷疑的。我現在手邊常備此書,隨時查閱,對我幫助很大。
透明:C++和Java相比,最大的優勢就是它沒有一個專門的公司來管它,最大的弱點也是它沒有一個專門的公司來管它。Java程序員在學會簡單的語法之後,立刻進入SUN提供的framework,一邊用這個現成的framework做實際開發,一邊在開發過程中繼續學習Java一些幽深的特性。而這個時候,C++程序員恐怕還在問「VC和BCB哪個好」呢。這無疑是浪費時間。
夢魘:剛才你說Java和C++的優劣,這個話題已經成了我們這個年代永不消失的聲波了。我也不想再談這個。不過有一點我得說清楚:現在我們很多用C++的人吃了不少苦頭,探過脖子去看看Java,覺得它真是太可愛了,這種印象是不準確的。另外,Java也不簡單,而且會越來越龐大復雜。在很多場合,Java還不具有競爭力。至於將來如何,我看有些Java愛好者也過分樂觀了,似乎計算機科學界幾十年解決不了的問題都可以借著Java的東風解決掉,恐怕沒那麼容易。
透明:那當然。我再次強調:No Silver Bullet。讀書很重要,但古人說「行萬里路,讀萬卷書」,還是把「行路」放在「讀書」前面。尤其對於技術書籍,如果它不能幫我解決問題、不能給我帶來非常實際的利益,那麼我是不會去讀它的。惡魔說得對,我們這個社會很快餐,我們這個行業尤其很快餐,我們也只能努力適應它。
G. 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長
前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術的發展,你才能明白明天會是什麼樣。
一定要動手,例子不管多麼簡單,建議至少自己手敲一遍看看是否理解了里頭的細枝末節。
一定要學會思考,思考為什麼要這樣,而不是那樣。還要舉一反三地思考。
註:你也許會很奇怪為什麼下面的東西很偏Unix/linux,這是因為我覺得Windows下的編程可能會在未來很沒有前途,原因如下:
現在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業在用成本低性能高的Linux和各種開源技術來構架其系統,Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認為以後的趨勢是前端是Web+移動,後端是Linux+開源。開發這邊基本上沒Windows什麼事。
啟蒙入門
1、 學習一門腳本語言,例如python/Ruby
可以讓你擺脫對底層語言的恐懼感,腳本語言可以讓你很快開發出能用得上的小程序。實踐項目:
處理文本文件,或者csv (關鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統 (sys, os, path),例如寫一個程序統計一個目錄下所有文件大小並按各種條件排序並保存結果
跟資料庫打交道 (python sqlite),寫一個小腳本統計資料庫里條目數量
學會用各種print之類簡單粗暴的方式進行調試
學會用Google (phrase, domain, use reader to follow tech blogs)
為什麼要學腳本語言,因為他們實在是太方便了,很多時候我們需要寫點小工具或是腳本來幫我們解決問題,你就會發現正規的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學會如何配置代碼補全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日誌會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學會用虛擬機里的linux, vmware player是免費的,裝個Ubuntu吧
一定要少用少用圖形界面。
學會使用man來查看幫助
文件系統結構和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …
學會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學會使用一些管理命令 ps/top/lsof/netstat/kill/tcpmp/iptables/dd…
了解/etc目錄下的各種配置文章,學會查看/var/log下的系統日誌,以及/proc下的系統運行信息
了解正則表達式,使用正則表達式來查找文件。
對於程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實Unix很簡單》)學會使用Unix/Linux你會發現圖形界面在某些時候實在是太難用了,相當地相當地降低工作效率。
4、 學習Web基礎(HTML/CSS/JS) + 伺服器端技術 (LAMP)
未來必然是Web的世界,學習WEB基礎的最佳網站是W3School。
學習HTML基本語法
學習CSS如何選中HTML元素並應用一些基本樣式(關鍵詞:box model)
學會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網頁結構,並動態修改。
學習使用Javascript操縱HTML元件。理解DOM和動態網頁(Dynamic HTML: The Definitive Reference, 3rd Edition - O'Reilly Media) 網上有免費的章節,足夠用了。或參看 DOM 。
學會用 Firefox + Firebug 或 chrome 調試Javascript代碼(設置斷點,查看變數,性能,控制台等)
在一台機器上配置Apache 或 Nginx
學習php,讓後台PHP和前台HTML進行數據交互,對伺服器相應瀏覽器請求形成初步認識。實現一個表單提交和反顯的功能。
把PHP連接本地或者遠程資料庫 MySQL(MySQL 和 SQL現學現用夠了)
跟完一個名校的網路編程課程(例如:http://www.stanford.e/~ouster/cgi-bin/cs142-fall10/index.php ) 不要覺得需要多於一學期時間,大學生是全職一學期選3-5門課,你業余時間一定可以跟上
學習一個javascript庫(例如jQuery 或 ExtJS)+ Ajax (非同步讀入一個伺服器端圖片或者資料庫內容)+JSON數據格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網用瀏覽器的時候發生的事情了(proxy, gateway, browsers)
做個小網站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網站。
進階加深
1、 C語言和操作系統調用
重新學C語言,理解指針和內存模型,用C語言實現一下各種經典的演算法和數據結構。推薦《計算機程序設計藝術》、《演算法導論》和《編程珠璣》。
學習(麻省理工免費課程)計算機科學和編程導論
學習(麻省理工免費課程)C語言內存管理
學習Unix/Linux系統調用(Unix高級環境編程),,了解系統層面的東西。
用這些系統知識操作一下文件系統,用戶(實現一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進程多進程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實現一個多進程間的信號量通信的程序。
學會使用gcc和gdb來編程和調試程序(參看我的《用gdb調試程序》)
學會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實踐。
學習Windows SDK編程(Windows 程序設計 ,MFC程序設計)
寫一個窗口,了解WinMain/WinProcere,以及Windows的消息機制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控制項,以及作圖的編程。
學習如何使用MSDN查看相關的SDK函數,各種WM_消息以及一些常式。
這本書中有很多常式,在實踐中請不要照抄,試著自己寫一個自己的常式。
不用太多於精通這些東西,因為GUI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:「 我覺得GUI確實不那麼熱門了,但充分理解GUI工作原理是很重要的。包括移動設備開發,如果沒有基礎知識仍然很吃力。或者說移動設備開發必須理解GUI工作,或者在win那邊學,或者在mac/iOS上學」。
2、學習Java
Java 的學習主要是看經典的Core Java 《Java 核心技術編程》和《Java編程思想》(有兩卷,我僅鏈了第一卷,足夠了,因為Java的圖形界面了解就可以了)
學習JDK,學會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機語言和C和Python語言在編譯和執行上的差別。從C、Java、Python思考一下「跨平台」這種技術。
學會使用IDE Eclipse,使用Eclipse 編譯,調試和開發Java程序。
建一個Tomcat的網站,嘗試一下JSP/Servlet/JDBC/MySQL的Web開發。把前面所說的那個PHP的小項目試著用JSP和Servlet實現一下。
3、Web的安全與架構
學習HTML5,網上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學習Web開發的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學習HTTP Server的rewrite機制,Nginx的反向代理機制,fast-cgi(如:PHP-FPM)
學習Web的靜態頁面緩存技術。
學習Web的非同步工作流處理,數據Cache,數據分區,負載均衡,水平擴展的構架。
實踐任務:
使用HTML5的canvas 製作一些Web動畫。
嘗試在前面開發過的那個Web應用中進行SQL注入,JS注入,以及XSS攻擊。
把前面開發過的那個Web應用改成構造在Nginx + PHP-FPM + 靜態頁面緩存的網站
4、學習關系型資料庫
你可以安裝MSSQLServer或MySQL來學習資料庫。
學習教科書里資料庫設計的那幾個範式,1NF,2NF,3NF,……
學習資料庫的存過,觸發器,視圖,建索引,游標等。
學習SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學習如何優化資料庫查詢(參看《MySQL的優化》)
實踐任務:設計一個論壇的資料庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發工具
學會使用SVN或Git來管理程序版本。
學會使用JUnit來對Java進行單元測試。
學習C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關C語言非常簡單的文章——《編程修養》,這樣的東西你可以上網查一下,一大堆)。
推薦閱讀《代碼大全》《重構》《代碼整潔之道》
高級深入
1、C++ / Java 和面向對象
我個人以為學好C++,Java也就是舉手之勞。但是C++的學習曲線相當的陡。不過,我覺得C++是最需要學好的語言了。參看兩篇趣文「C++學習信心圖」 和「21天學好C++」
學習(麻省理工免費課程)C++面向對象編程
讀我的 「如何學好C++」中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數表解析》或是《C++對象內存存局(上)(下)》,或是《C/C++返回內部靜態成員的陷阱》那就非常不錯了)
然後反思為什麼C++要干成這樣,Java則不是?你一定要學會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,介面,異常,虛函數,等等。
實踐任務:
用C++實現一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數據結構的容量,比如hash table。
用C++封裝並實現一個智能指針(一定要使用模板)。
《設計模式》必需一讀,兩遍以上,思考一下,這23個模式的應用場景。主要是兩點:1)鍾愛組合而不是繼承,2)鍾愛介面而不是實現。(也推薦《深入淺出設計模式》)
實踐任務:
使用工廠模式實現一個內存池。
使用策略模式製做一個類其可以把文本文件進行左對齊,右對齊和中對齊。
使用命令模式實現一個命令行計算器,並支持undo和redo。
使用修飾模式實現一個酒店的房間價格訂價策略——旺季,服務,VIP、旅行團、等影響價格的因素。
學習STL的用法和其設計概念 - 容器,演算法,迭代器,函數子。如果可能,請讀一下其源碼。
實踐任務:嘗試使用面向對象、STL,設計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,並可以對不同的文件有不同的操作,文本文件可以打開編輯,執行文件則執行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學習C++的一些類庫的設計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設計模式和設計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術》那就非常不錯了,ACE需要很強在的系統知識,參見後面的「加強對系統的了解」)
Java是真正的面向對象的語言,Java的設計模式多得不能再多,也是用來學習面向對象的設計模式的最佳語言了(參看Java中的設計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學習Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學習Java的設計,如IoC等。
Java的技術也是爛多,重點學習J2EE架構以及JMS, RMI, 等消息傳遞和遠程調用的技術。
學習使用Java做Web Service (官方教程在這里)
實踐任務: 嘗試在Spring或Hibernate框架下構建一個有網路的Web Service的遠程調用程序,並可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內能學好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學習經歷是:
深究C++(我深究C/C++了十來年了)
學習Java的各種設計模式。
2、加強系統了解
重要閱讀下面的幾本書:
《Unix編程藝術》了解Unix系統領域中的設計和開發哲學、思想文化體系、原則與經驗。你一定會有一種醍醐灌頂的感覺。
《Unix網路編程卷1,套接字》這是一本看完你就明白網路編程的書。重要注意TCP、UDP,以及多路復用的系統調用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協議》- 這是一本看完後你就可以當網路黑客的書。了解乙太網的的運作原理,了解TCP/IP的協議,運作原理以及如何TCP的調優。
實踐任務:
理解什麼是阻塞(同步IO),非阻塞(非同步IO),多路復用(select, poll, epoll)的IO技術。
寫一個網路聊天程序,有聊天伺服器和多個聊天客戶端(服務端用UDP對部分或所有的的聊天客戶端進Multicast或Broadcast)。
寫一個簡易的HTTP伺服器。
《Unix網路編程卷2,進程間通信》信號量,管道,共享內存,消息等各種IPC…… 這些技術好像有點老掉牙了,不過還是值得了解。
實踐任務:
主要實踐各種IPC進程序通信的方法。
嘗試寫一個管道程序,父子進程通過管道交換數據。
嘗試寫一個共享內存的程序,兩個進程通過共享內存交換一個C的結構體數組。
學習《Windows核心編程》一書。把CreateProcess,Windows線程、線程調度、線程同步(Event, 信號量,互斥量)、非同步I/O,內存管理,DLL,這幾大塊搞精通。
實踐任務:使用CreateProcess啟動一個記事本或IE,並監控該程序的運行。把前面寫過的那個簡易的HTTP服務用線程池實現一下。寫一個DLL的鉤子程序監控指定窗口的關閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進程通信,TCP/IP,套接字,C++和設計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP伺服器(帶線程池)
實踐任務:通過以上的所有知識,嘗試
寫一個服務端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁碟I/O和網路I/O可能會很有問題,想一想怎麼解決,另外,請注意網路傳輸最大單元MTU)
了解BT下載的工作原理,用多進程的方式模擬BT下載的原理。
3、系統架構
負載均衡。HASH式的,純動態式的。(可以到Google學術里搜一些關於負載均衡的文章讀讀)
多層分布式系統 – 客戶端服務結點層、計算結點層、數據cache層,數據層。J2EE是經典的多層結構。
CDN系統 – 就近訪問,內容邊緣化。
P2P式系統,研究一下BT和電驢的演算法。比如:DHT演算法。
伺服器備份,雙機備份系統(Live-Standby和Live-Live系統),兩台機器如何通過心跳監測對方?集群主結點備份。
虛擬化技術,使用這個技術,可以把操作系統當應用程序一下切換或重新配置和部署。
學習Thrift,二進制的高性能的通訊中間件,支持數據(對象)序列化和多種類型的RPC服務。
學習Hadoop。Hadoop框架中最核心的設計就是:MapRece和HDFS。MapRece的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的一句話解釋MapRece就是「任務的分解與結果的匯總」。HDFS是Hadoop分布式文件系統(Hadoop Distributed File System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL資料庫(有人說可能是一個過渡炒作的技術),不過因為超大規模以及高並發的純動態型網站日漸成為主流,而SNS類網站在數據存取過程中有著實時性等剛性需求,這使得目前NoSQL資料庫慢慢成了人們所關注的焦點,並大有成為取代關系型資料庫而成為未來主流數據存儲模式的趨勢。當前NoSQL資料庫很多,大部分都是開源的,其中比較知名的有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
H. 我是JAVA程序員,有很多邏輯老是繞不清楚,比如復雜的SQL查詢,我該怎麼提高啊
......sql查詢並不復雜。邏輯繞不清楚就先不繞
別人用一句查詢出來的結果你可以用10句來達到他的效果一樣
也就是說,不用在意別人的邏輯
咱們就按咱們自己的邏輯
每個人都有自己的一套邏輯,總去適應他人的就永遠沒有自己的風格
當然不是說別人的代碼不好
在迷茫的時候適當的借鑒也是非常好的
他山之石可以攻玉
提高就是一個不斷的積累過程
相信自己,不會就多問,不要怕丟臉,誰都是從那個時候過來的
邏輯不清楚就把邏輯拆開來看
一步步的就清楚了
I. 從事軟體開發方面的人應該看哪些課外書
◆ Visual Basic .NET 技術內幕
—— Programming Microsoft Visual Basic .NET(Core Reference)
本書內容深入全面,涵蓋的主題十分豐富,並結合大量典型的代碼示例來講解Visual Basic.NET的核心編程技術。本書共分6大部分。首先介紹了Visual Basic.NET語言的基礎知識,以及一些有關類的新特性,例如繼承、委託和事件等。然後詳細講解了Visual Basic.NET面向對象的特性,並介紹了.NET對字元串、數字、日期/時間和文件類的內在支持,以幫助您掌握這些最重要的API元素。之後,描述了新的Windows窗體、通過ADO.NET進行資料庫編程和Win32技術支持等,並講解了如何通過程序集來部署Visual Basic.NET應用程序。最後介紹了Internet應用程序的開發,包括Web窗體、ASP.NET應用程序和諸如緩存技術、配置等新特性,以及用於Web開發的基本技術。 本書在多處指出了Visual Basic.NET與Visual Basic 6之間的區別及其新特性,並介紹了在Microsoft.NET環境下導入和重用現有的V1sualBasic代碼的最佳方式。通過本書的學習,您可以全面掌握Visual Basic.NET編程技術。
◆ Microsoft Windows程序設計 - Visual Basic .NET語言描述
—— Programmin Microsoft Windows with Microsoft Visual Basic .NET
Petzold最暢銷的C#書籍——現在針對Microsoft Visual Basic.NET開發人員推出了適用本。Charles Petzold是全球最權威且知名的Windows程序設計專家,他將其最暢銷Programming Microsoft Windows with C#——書加以改寫,使之能完全適用於Visual Basic.NET的開發人員。這位暢銷書的作家示範了如何使用Visual Basic.NET將Windows Forms的功能發揮到極致(Windows Forms是新一代的Windows程序設計類庫)。您將學習如何使用Visual Basic的.NET版本替Windows應用程序建立動態的用戶界面與圖形化輸出。通過豐富的用戶端應用程序範例清楚示範了最常用的技術與不為人知的技巧,有了本書,您能真正深入到VisuaI Basic.NET的核心領域。
◆ Microsoft .NET框架猛歲襲程序設計
—— Applied Microsoft .NET Framework programming
本書是《微軟.NET程序員系列》叢書之一,主要介紹如何開發面向Microsoft .NET框架的各種應用程序。Microsoft .NET框架是微軟公司推出的新平台,包含通用語言運行時(CLR)和.NET框架類庫(FCL)。本書將深入解釋CLR的工作機制及其提供的各種構造,同時還將討論FCL中一些重要的類型。全書共分為 五個部分,包括:.NET框架基本原理、類型和通用語言運行時、類型設計、基本類型,以及類型管理。
本書適用於要了解、掌握.NET平台的讀者,尤其適合廣大編程愛好者、軟體工程師、系統架構師閱讀。
◆ 設計模式:可復用面向對象軟體的基礎
—— Design Patterns:Elements of Reusable Object-Oriented software
本書結合設計實例從面向對象的設計中精選出23個設計模式,總結了面向對象設計中最有價值的經驗,並且用簡潔可復用的形式表達出來。本書分類描述了一組設計良好、表達清楚的軟體設計模式,這些模式在實用環境下特別有用。本書適合大學計算機專業的學生、研究生及相關人員參考。
◆ 深入淺出設計模式
—— Head First Design Pattern
你不想重新發明車輪(或者更差的是,沒有充氣車胎的輪子),所以你從設計模式中尋求幫助——設計模式是過去人們面對同樣的軟體枝兄設計問題所得到的經驗。 有了設計模式,就可以利用其他人的實踐經驗的精華,因此省下的時間可以用在其他的事情上,如:更有挑戰性的事情、更復雜的事情以及更有趣的雀物事情。你想要學習:
·重要的模式
·何時使用某個模式,為何使用該模式
·如何在你自己的設計中馬上採用這些模式
·何時不該使用該模式(如何避免濫用模式)
·某個模式是依據哪些面向對象設計原理而設計出來的
更重要的是,你想在學習設計模式的過程中,不感覺到昏昏欲睡。如果你曾經讀過任何一本深入淺出(Head First)系列書籍,你就會知道能夠從本書中得到的是:透過豐富的視覺效果讓你的大腦充分地運作。本書的編寫運用許多最新的研究,包括神經生物學、認知科學以及學習理論,這使得這本書能夠將這些設計模式深深地烙印在你的腦海中,不容易被遺忘。你將會更擅長於解決軟體設計中的問題,並能夠和你的團隊成員用模式的語言來更好地溝通。
◆ 設計模式解析
—— Design Pattern Explained
本書從一個新的視角描述面向對象設計,將面向中對象編程的原則與運用設計模式力量創建健壯、可靠的軟體開發環境結合起來。書中採用實用、恰當的例子,指導讀者用模式解決普通的編程問題,並且解釋現代軟體設計模式的優越性。本書適用於學習面向中對象設計和設計模式的學生、程序員以及從事軟體開發的人士。 本書要點包括: ·對象、封裝和繼承的新觀點 ·設計模式的思想、起源及其在軟體設計學科中的應用 ·模式基礎以及使用統一建模語言(UML)進行面向對象軟體開發 ·如何實現關鍵模式——Strategy(策略)、Observer(觀察者)、Bridge(橋接)、Decorator(裝飾)等等 ·共同點/變化點分析、設計模式以及它們如何幫助理解抽象類
◆ 代碼大全第二版
—— Code Complete,Second Edition
代碼大全(第二版)是著名IT暢銷書作者Steve McConnell十一年前的經典著作的全新演繹:第二版不是第一版的簡單修訂增補,而是完全進行了重寫;增加了很多與時俱進的內容。這也是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體質量和編程思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程序示例。本書中所論述的技術不僅填補 了初級與高級編程技術之間的空白,而且也為程序員們提供了一個有關編程技巧的信息來源。本書對經驗豐富的程序員、技術帶頭人、自學的程序員及幾乎不懂太多編程技巧的學生們都是大有裨益的。可以說,無論你是什麼背景,閱讀本書都會讓你在更短的時間內、更容易地寫出更好的程序。
◆ 人月神話
—— The Mythical Man-Month:Essays on Software Engineering,Anniversary Edition
本書自第一版以來,暢銷20餘年不衰,是軟體領域絕無僅有的必讀經典。本文作者為人們管理復雜項目提供了頗具洞察力的見解,既有很多發人深省的觀點,也有大量的軟體工程實踐。本書內容來自布魯克斯在IBM公司 System/360 家族和OS/360中的項目管理經驗。在本書第一次出版20年後的今天,布魯克斯重新審視了他原先的觀點,增加了一些新的想法和建議。既方便了熟悉原有內容的人們,也方便了許多第一次閱讀它的讀者。
◆ 人件
—— Peopleware:Proctive Projects and Teams,2nd Ed
《人件》第1版於1987 年出版,專門討論了軟體開發和維護團隊的管理問題,並向人們的傳統認識提出了挑戰。作者在書中推崇人本管理思想,正確指出知識型企業的核心是人,而不是技術,呼籲給予軟體工作者充分的自由和信任。本書推出後,立即在西方引起了轟動,被譽為"幾十年來對美國軟體業影響最大的理念"。與《人月神話》一樣,《人件》現已成為軟體團隊管理的經典之作。它和《人月神話》共同被譽為軟體圖書中"兩朵最鮮艷的奇葩"。人們認為,《人月神話》關注"軟體開發"本身,《人件》則關注軟體開發中的"人",因此,在成千上萬的書架上,《人件》永遠和《人月神話》並列在一起。1999 年 2 月,《人件》第2版出版,增補了8 章新內容。這些新內容擁有更加寬廣的視角,對大中型組織中的團隊如何運作進行了深入探討。《人件》最新版的中文譯本由UMLChina組織翻譯,清華大學出版社將於2003 年5月出版。
◆ 程序員修煉之道 —— 從小工到專家
—— The Pragmatic Programmer
本書主要介紹了軟體開發的原則和方法。本書直指編程前沿,透過日益增長的現代軟體開發 規范和技術,對軟體開發的核心過程進行了審視——以滿足用戶為本,針對用戶需求來產出高效、可維護的優秀代碼。全書涵蓋內容廣博,從個人責任和職業發展,到保持代碼靈活性並使之易於改動和重用,多而不雜。本書採用了有趣的軼事、詳實的例子以及詼諧的對話等方式,描述了軟體開發方方面面的最佳實踐方案和各種缺陷。您從本書所學到的開發技巧、開發習慣以及職業態度,必將幫助您修煉成為一名真正的Pragmatic Programmer!
J. 在一線城市上班的程序員,家庭一般是什麼樣的
通常來說,家庭條件無非就是高、中、低三個檔次,恰好幾種水平的我都接觸過,跟大家聊聊(Base北京)。
家庭條件好點兒的,大多數做程序員都是對這個行業比較感興趣的,或者就是找個工作能夠糊口就行了。
這種家庭條件的程序員,一部分轉行或子承父業了,另外一小部分還在北京做程序員的,不過房子、車子都有了,拿著兩三萬的工資,生活比較愜意(鬼知道他們每年理財能掙多少)。
我屬於條件中等的,我對中等的標準是:父母身體 健康 ,養老沒有負擔,退休工資足夠生活;在北京買房的話,可以幫襯一下,全款拿不出來,幫著湊湊首付沒有啥問題。
我剛工作的時候月薪3K,那時候北京租房便宜,養活自己足夠了。08年底的時候認識了現在的老婆,10年10月買房,首付40萬是家裡出的,還借了一部分。貸款70多萬,月供4K,那時候跳槽完了稅前才8K,所以前期家裡沒少補貼。13年有了孩子,我們的工資基本月光,但是不用往家拿錢,所以壓力不是特別大(四個老人都有退休工資)。
我們這種家庭條件的程序員,基本上還在這個行業,日子過得好壞,基本上取決於買房的早晚。
有一些朋友選擇離開一線城市,去了IT行業還算發達的新一線城市或省會城市,創業或依然當程序員,日子也都過得不錯。
留在一線城市的我們,隨著父母年紀的增加,孩子上學的問題,也開始考慮是否離開北京。
家庭條件差的也遇到過,好一些的,自己過自己的日子;差一些的需要負擔父母的養老甚至弟弟妹妹的學費生活費。
這種條件的朋友只能依靠自己的努力,好在IT行業是個容易創造奇跡的行業;能力強的、運氣好的程序員,可以自力更生,在北京安家置業;混的一般的,拿著幾萬的工資,也只夠租房養家糊口的,在北京買房是遙遙無期了。
不過什麼樣的家庭條件,都不是我們能選擇的。
好好愛著父母,好好工作,我們做不了富二代,那就爭取成為富一代,生個孩子,我們就是富二代他爹。
我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。
家庭有的好,有的壞,主要是看你個人的出身,如果你是剛畢業一兩年的程序員,如果你家裡面很有錢,那你家裡就是很好的,如果你家裡面沒有錢,那你的家庭就不是怎樣好的。
如果你畢業後工作一段時間,而且你是有名牌大學的學歷並且你的技術過硬,你工作那麼三五年,小有積蓄存款,可以在二線城市給個首付開始買一個房。如果是在一線城市,再加上父母給的一些錢也可以給個首付開始買房了。
這就是程序員的工作,程序員的工資高,並且有些公司福利也是挺好的,如果家庭不怎麼好,通過程序員的努力,可以讓家裡面變得更好,這就是程序員的工作,有人說程序員工作不好,但我認為如果你能夠做的,並且能夠做的比較好的,話程序員對你來說就是一份比較好的工作吧。
如果你一個男人人努力,家裡面肯定不會差,如果一個人不努力,家庭也就是一般
大家好,我是王我。
本人在魔都這座城市已經上班一年啦,也就是說做了整整一年的程序員,這一年裡, 我從小白變成了大白。 寫代碼也慢慢變成了代碼。去年這個時候,我都回家過年了,今年,現在的我還在公交車上無聊的回答一下問題,真是寂寞如雪啊。
作為一個剛剛入行的程序員,我來講講我自己吧。
我不帥,但是我努力。 別人都說程序員的工資高,我在大學的時候也是這么認為的,可是步入了這個行業才發現並不是這個樣子。 我在答題的時候不是一次的說,我現在的月薪是7k, 唉,每天晚上回來看前端書籍,然後看一些視頻,前端和後台不一樣,前端需要去適配不同的瀏覽器和不同的設備,有時間調起來是真的麻煩
我不是城市的孩子,我是農村的。 個人而言吧,我認為如果家境非常好的話,我認為是不會去做程序員的, 畢竟程序員累呀,有錢誰干?倒不如靠關系考考公務員,多好呀為什麼要天天加班?
記得剛剛入職的時候,那是真的難過呀,簡直就是度日如年,每天都要去寫組件, 我們的項目都是vue框架, 然後我們 公司用什麼iview等第三方組件,一開始我看到我是懵逼的,每天晚上回去都要學習,真的是煩啊,一開始的時候,唉。
我在以前答題的時候,我說我一個月7k,很多人評論說少了,的確,我准備年後辭職了,參加一下春招,畢竟我還是半個大學生嘛。然後搞個11k
這本書是陪伴我開始程序員生涯的書,每天回來都翻翻,學好js,走遍天下都不怕
大家好,我是王我,中國最帥的程序員,好啦,馬上要下公交車啦。
認識一些人,不分年齡,工作情況,一般都是拼,家庭情況一般是普通農民家庭比較多。
程序員領域跟其他行業差不多,就是越高工資,壓力越大。國內干到40歲,基本是到頭了,除非你是名人,牛人,即使名人,牛人他的頭銜也變了。 可以看下國內各種大佬程序員們。基本到後期都是xxx講師,xxx執行官,xxx總監,很少會有人還繼續說自己是某某程序員。。。
程序員行業相對來說還是有門檻的,早期的國內程序員,摸到電腦都很難,最後成為了程序員,每個都是拚命努力才留下來的。隨著這些年互聯網的發展,門檻越來越低。
所以早期的程序員裡面,大部分家庭都是寒門苦讀出生。 到今天,我看到旁邊00後的程序員,家庭慢慢有些改變,很多都是興趣,覺得代碼好玩,學著學著就會了,所以說門檻低了。
我前面一個回答香港問題有說到:有個要好的兄弟,廣東雲浮人, 五一在他家玩,聊過生活壓力話題,他家,爸媽弟弟都很早就過戶到香港,老家那邊已經沒特別親的人,房子自己有完全的自主權,大陸只有他一人。
他在大陸佛山千燈湖有一套房、雲浮市中心有一套房(很早一次付清買的),雲浮村裡有一座樓。可以說並不屬於特別窮的那種。
但壓力猶在,由於父母沒在這邊,老婆全職帶孩子, 每個月車貸,房貸目前正在還,作為程序員,雖然是一小管理,但加班經常有。一刻都不敢放鬆,個別時候帶頭加班通宵。
你可以說他這家庭已經很好,一個人擁有三個地點的房子,可是他也不敢賣掉任何一個, 佛山的如果賣了,他小孩長大讀書,工作沒地方落腳。 市裡的房子,每年放假自己在住,以後自己還指望在這里養老,村裡房子賣不了幾個錢。
個人看來,30歲以上的程序員,大部分家庭都是寒窗苦讀比較多。隨著現在門檻逐漸減低,各式各樣的家庭都會有。
大多數的家庭條件都很一般。我原來的大學同學就是去上海乾程序員,現在已經移民美國了。他這個人家庭條件非常差,大學的時候基本上連伙食都不能保證,只能靠助學金艱難度日。
他的數學理工科都非常好,本來是可以保研的,但是因為有一門思想政治課給掛了,再加上家裡的條件不允許,選擇了出去工作,到一家外資軟體公司擔任程序員。工作業績還是非常好的,後來就移民美國去了。
還有一個同學應該算我師弟大學畢業後去了網路。那時候網路程序員的薪水也是非常高的。他的家庭來自於普通的象徵,只能說收入很一般吧。但是自己夠拼,這么多年,北京也有房有車了。
還有一個大學同學,碩士研究生畢業以後去了谷歌。後來自己出來創業,家庭條件是非常好的。
所以程序員的家庭條件各種各樣的都有。但客觀來說,很少見到官員家庭。一般都是985高校的畢業生。以普通家庭和老闆家庭為多。
恰好,我有個鄰居在華為(上海部)上班。對此,我給大家描述下他的家庭是什麼樣的。
就家庭收入來說,屬於中上等水平。2年前,他加入華為,工資+年底獎金+工齡補助共計70萬元左右,因為要交個稅,所以真正到手的估計在50萬左右。
著想比其他鄰居來說,要好很多。比如,有個鄰居同事同樣在上海上班,做的也是IT類,每天同樣累到懷疑人生,但年薪只有20萬左右。即使上個月開始,工資增加了2500元,但依然相去甚遠。
就消費觀念來說,屬於節儉型。他有兩個孩子,妻子是全職媽媽,所以養家的金錢重擔只能他一人挑。
妻子知道他的不容易,所以平時很少買昂貴服飾、名包等,衣服基本在幾百元到1000多不等。
平時,他們也很少去餐館吃飯。鄰居一般周末才回來,所以他樂得幫家人燒一桌的好菜。
就教育方面來看,屬於貴族型。雖然他們在生活上比較節儉,但他們在孩子教育上非常捨得。
他的女兒讀的是貴族雙語幼兒園(中班),學費6W/年,這還不包括課外報的畫畫、美術、鋼琴等培訓班。
今年,他的兒子也上了這個幼兒園的小班,學費一樣。
所以,就他們孩子讀書而言,每年花費18-20萬左右。
這種教育開支,肯定不是常人能夠承受的。
在房子、車子等大宗消費上,屬於中等水平。比如,他們開的車子就是普通的豐田系,房子也只有1套3居室。不過聽他們說,近期他們籌劃買第2套房。
這名鄰居,今年35歲,在IT行業已屬於大齡了,但家中還有兩個幾歲的孩子要養育。 所以,即使他的工資很高,壓力也非常大。
也許,不管身在高位,還是普通的工作者,擺正心態,安於自己所有的環境和狀況,才是最好的釋壓方式。
曾經北漂十幾年,還沒畢業就跑去漂了,從找到第一份工作到後來認識現在的媳婦,都是在北京度過,呆過的公司不是很多,但明顯感覺加班是越來越多,主要跟公司性質有關,還和個人承擔的東西越來越多有關,現在就經歷過幾家公司的實際生活狀態給大家分享下。
第一份工作的時候是孤身一人,大約工作了兩年的時間遇到了現在的媳婦,在剛工作階段由於基礎薄弱大部分的業余時間都是撲在彌補編程基礎上了,每天基本除了睡覺的時間都在在研究代碼或者看編程書籍中度過,算是編程生涯比較純粹階段,入行的前兩年基本上工作強度不是很大,可能還和公司的性質有關(外企)而且還是彈性工作制,因為入行時間比較短工作時間上控制的比較嚴格,基本上還屬於按照正常點上下班,有時候還會加班加點,大致上的規則是有個項目加班加點非常瘋狂,一旦項目緊急階段過去了基本上就趨於正常了,一年大概有個三四次這種緊急階段,後來認識了現在的媳婦,業余的時間也有所傾斜,按下下班的時間變多了,業余想抽調大塊的時間也變得艱難起來了,但總體而言第一家公司算是職業生涯呆過的最輕松的公司,呆的時間也是最長的,差不多有5年多的多時間,而且和這個公司的同事已經呆出了感情,不是公司經營不善說不定還會一直呆到現在,畢竟從性格上來講不太喜歡到處亂動,還是喜歡在一個比較穩定的地方安身的搞代碼技術,對於別的訴求相對比較低,由於呆的時間比較長對於裡面的業務模塊已經非常熟練了,所以加班加點也不是很多,頻繁的跳槽不見得是一件非常明智的事情,呆在一個地方熟悉環境了,反而更加容易出成績。
總體來講第一份工作前期入門階段加班加點比較多,後來因為家庭原因加上對業務模塊越來越熟悉導致,加班加點反而不是那麼多,平時按點下班的概率非常高,基本上下班後還能和媳婦一起逛逛街,算是職業生涯比較順的階段,家庭和諧指數也非常高。
第二份工作選擇了一家蒸蒸日上的中小企業,明顯的工作強度比較大,主要原因還是對新業務的一個熟悉過程,前半年基本上加班加點比較多,用了大半年的時間在工作奠定一個比較穩定的地位,畢竟進入新公司都需要一個適應階段,包括人員的磨合技術的磨合等等,企業的性質屬於項目制,每到項目緊急時刻也是忙的要命,而且技術人員普遍沒有在第一家公司強,屬於經驗豐富的老技術員帶著一幫新兵蛋子工作階段,除了趕項目還要培養新兵,所以這個階段非常累,差不多有一年的時間在趕項目和培養新人,等到新人培養出來了項目也接近穩定了,開始進入平穩期了,在剛進入公司階段由於工作強度大,媳婦還是非常不滿意,覺得工作已經把整個人的魂魄給弄走了,每天都是很晚回來,基本上兩個人說話的精力都沒了,後來忙過來一年時間把整個業務梳理清晰,才算是恢復正常的階段,本來在這家公司還是非常有希望拿到一份額外的收入,由於乾的還不錯,也拿到股份,但由於國家那年的上市的政策變化給耽誤了,前幾天還打聽到公司到現在還沒上市,所以一旦錯過再找到機會起來其實挺難的。
第三份工作算是純正的互聯網公司性質,選擇換工作還是想進入一家正牌的互聯網公司挑戰下,也是加班強度最大的一家公司,幾乎很少有按點下班的時候,就這還不到公司一半員工的平均加班水平,算是加班非常少的員工 ,在裡面耍了三年的時間,充分感受到了加班加點出版本的氣氛,這個階段也是和媳婦吵架非常多,主要還是精力都在工作上,回到家不是很晚就是精力耗盡,最後選擇了辭職直接結束了北漂的生涯,整體算下來北漂十幾年混的還挺知足,人貴在取捨,懂得什麼時候做什麼事情。
畢竟一直在外邊漂著,最後的結局還是要葉落歸根,滿足了所欲的技術慾望之後,就要考慮以後的生活該如何去做,規劃以後的生活,轉眼間離開北京已經將近四年的時間了,每次回顧起來也是帶著慢慢的感激之情,北漂的十幾年完成技術小白到一個程序員,中間也做出點小成績,正是由於十幾年的技術積累才讓自己有機會在三線小城市還能做著自己喜歡的編程技術,加班加點少了,對於生活上照顧也多了,家庭上面也順了許多,能有更多的時間陪著老婆孩子。
希望能幫到你。
我天天和程序員打交道,深圳是一線吧,我們公司是做華為外包,講真的,家境一般,基本都是寒門苦讀出身吧。
在一線城市上班的程序員多數都是農村,在城市的家庭都一般。只有少數一線城市家庭好的,處於對對編程的熱愛。
英雄不問出路,家需要自己經營!如果你做一名程序員想在一線城市安家的話!你的努力,制定計劃一步一步實現自己的目標!自己制定一個成長路線,穩定了找個合適的女孩一起奮斗,在穩定點把父母接到城裡!
從初級程序員--->高級程序員--->技術架崗位(項目管理崗位)一步步實現自己的人生目標!