新聞中心
作為一個40歲的普通人,我一直覺得計算機(jī)技能對于一個人的未來至關(guān)重要。但是,時間一天天過去,我始終沒有能夠通過自學(xué)或參加培訓(xùn)班等方式獲得有效的計算機(jī)技能。直到最近,我決定嘗試Linux的學(xué)習(xí)。

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出黃山免費(fèi)做網(wǎng)站回饋大家。
雖然曾經(jīng)接觸過一些計算機(jī)知識,但我對Linux并不了解。我開始通過一些基礎(chǔ)教程和視頻學(xué)習(xí)Linux的基本原理和命令操作。在開始時,我遇到了很多困難,我需要花費(fèi)很多時間來理解和回憶這些知識。但是我意識到,要掌握一門新技術(shù)是需要花費(fèi)時間的,而且需要保持耐心和不斷努力。
經(jīng)過長時間的學(xué)習(xí),我開始感到自己的Linux技能有所增長,并感到越來越自信。我學(xué)習(xí)了如何在Linux系統(tǒng)上使用包管理器、如何添加/刪除軟件包、如何使用終端命令來實(shí)現(xiàn)文件系統(tǒng)管理,以及了解了Linux的一些基本思維模式和技能技巧。這些基礎(chǔ)技能為我后面的Linux學(xué)習(xí)打下了堅實(shí)的基礎(chǔ),并讓我更加深入的了解了計算機(jī)的結(jié)構(gòu)和各種操作系統(tǒng)的基本工作原理。
在學(xué)習(xí)了Linux的基礎(chǔ)之后,我開始學(xué)習(xí)一些高級特性和系統(tǒng)管理技巧,例如如何管理Linux的網(wǎng)絡(luò)、如何配置和管理系統(tǒng)服務(wù)及進(jìn)程、如何設(shè)置和管理用戶和權(quán)限等。這些知識完全超出了我以前所接觸到的計算機(jī)知識范圍,但我一直堅持著學(xué)習(xí),不斷嘗試和實(shí)踐。在這個過程中,我還從一些資深的Linux用戶中獲得了很多教育和幫助。
隨著時間的推移,我的Linux技能得到了極大的提高。我使用Linux操作系統(tǒng)進(jìn)行日常工作和生活,它的穩(wěn)定性和安全性深深地吸引了我。我甚至成為了一名Linux技術(shù)專家,為一些人提供了Linux系統(tǒng)的技術(shù)支持和日常管理。
通過這個過程,我學(xué)會了如何抱著一顆不斷探索和學(xué)習(xí)的心態(tài)去面對新技術(shù)的挑戰(zhàn)。無論你的年齡和知識水平如何,只要你愿意,你就可以掌握這些技能,并且會有越來越多的人需要用到這些技能。
我要呼吁更多的人嘗試Linux的學(xué)習(xí)。Linux有著廣泛的作用和應(yīng)用,無論你是從事IT行業(yè)還是其他領(lǐng)域,都能讓你受益匪淺。即使您沒有計算機(jī)背景經(jīng)驗(yàn),也可以像我一樣,從零開始。學(xué)習(xí)Linux不僅可以讓你具備強(qiáng)大的計算機(jī)技能,更可以豐富你的職業(yè)生涯和人生經(jīng)驗(yàn)。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220嵌入式軟件開發(fā),30歲后還能干嗎?
這個完全在自己了,很多人都認(rèn)為35以后不適敬孫含合做開發(fā),我認(rèn)為,在這之前,如果你有軟件開發(fā)的豐富經(jīng)驗(yàn),足夠的積累亮笑,完全還是可以做開發(fā)的。但是如果每個項目還是需要大量的去凱毀學(xué)習(xí)而應(yīng)用,就確實(shí)有點(diǎn)精力不足了,只是個人見解,謝謝。
30歲能做開發(fā),能做管理,能做老板。職業(yè)規(guī)劃看個人吧。嵌入式30歲還算是新手,做此局我們公司一般都是30-40的人了。
學(xué)習(xí)嵌入式,該學(xué)習(xí)什么基本的知識呢?
首先C語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發(fā)的人員,對C語言的掌握這個是必需的,特別是對于以后致力于嵌入式軟件開發(fā)的人,現(xiàn)在絕大部分都是用C語言,你說不掌握它可以嗎?至于如何學(xué)習(xí)C語言,我想這些基礎(chǔ)的知識每個人都有自己的方法,關(guān)鍵要去學(xué)習(xí),看書也好,網(wǎng)上找些視頻看也好。很多人會問,C語言要學(xué)到怎么樣,我覺得這沒有標(biāo)準(zhǔn)的答案。我想至少你在明白了一些基礎(chǔ)的概念后,就該寫代碼了,動手才是最重要的,當(dāng)你動手了,遇到問題了,再反過來學(xué)習(xí),反過來查查課本,那時的收獲就不是你死看書能得到的。
其次,應(yīng)該對操作系統(tǒng)有所了解,這對你對硬件和軟件的理解,絕對有很大的幫助。應(yīng)該把系統(tǒng)的管理理解一下,比純讓如進(jìn)程、線程,系統(tǒng)如何來分配資源的,系統(tǒng)如何來管理硬件的,當(dāng)然,不是看書就能把這些理解透,如果不是一時能理解,沒關(guān)系,多看看,結(jié)合以后的項目經(jīng)驗(yàn),會有更好的理解的。
還有應(yīng)該學(xué)習(xí)嵌入式系統(tǒng),如linux或者wince下的編程,這些對以后做應(yīng)用的編程很有幫助,當(dāng)然,如果做手機(jī)的話,那可以學(xué)習(xí)MTK、塞班、Android等操作系統(tǒng),Android是以后發(fā)展的趨勢,現(xiàn)在很熱門,Android也是基于linux系統(tǒng)封裝的,所以建議先學(xué)習(xí)下linux。
還有,應(yīng)該學(xué)習(xí)下單片機(jī)或者ARM或者M(jìn)IPS,很多人說我沒有單片機(jī)的經(jīng)驗(yàn),直接學(xué)ARM可以嗎?我覺得那完全沒有問題的,當(dāng)然如果你學(xué)習(xí)過單片機(jī),那更好不過了,以后學(xué)習(xí)ARM就更簡單了。
最后如果你把以上的知識都有所了解后,就該去閱讀閱讀一些優(yōu)秀的代碼,比如結(jié)合arm芯片手冊學(xué)習(xí)去學(xué)習(xí)下UBOOT的源代碼,了解下最小的系統(tǒng)開發(fā),那對你整個嵌入式開發(fā)的非常有幫助的,可以的話,還可以學(xué)習(xí)下linux的源代碼,當(dāng)然如果你直接閱讀2.6的代碼,我想你會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程師。
至于上面說的知識如何學(xué)習(xí)呢?每個人都應(yīng)該去找自己更好的方法,所謂的更好的方法就是最適合自己的方法。很多人看不進(jìn)書,那就扒襪去看看視頻吧。視頻也應(yīng)該要選擇,不是隨便看看,應(yīng)該要有所選擇,有所挑選。我也是這樣一路走過來的,不過我這人比較懶,我看不進(jìn)書,一看書我就想睡覺,所以這幾年我都是看視頻過來的,現(xiàn)在也算學(xué)有所成,但也不敢說是高手吧。
我在網(wǎng)上看到,有人把自己學(xué)習(xí)嵌入式的視頻總結(jié)出來,嵌入式系列實(shí)踐和視頻教程,大家可以看看網(wǎng)址
我仔細(xì)看了覺得很不錯,我本來也想整理下,可是奈何我自己的電腦硬盤空間才40G,沒有辦法,時間也是不夠,心有余而力不足,我不是在幫他做廣告,雖然要花錢,我覺得算不錯,至少自己不用去整理和花大量的時間去找資源,當(dāng)然如果網(wǎng)上有的下,你網(wǎng)速和硬盤都夠的話,我建議大家自己網(wǎng)上下也好。想想我自己該開始學(xué)的時候,那時視頻資源少之又少,我買書和買視頻至少花了幾千塊,但是我覺得那很值,至少我現(xiàn)在賺回來了很多知識。
最后,希望這篇文章對熱愛嵌入式,想致力于嵌入式開發(fā)的朋友有所幫助。送給大家一句簡單而又樸素的話,堅持就是勝利,貴在堅持,也可以看看如何堅持嵌入式學(xué)習(xí)
首先你了解什么叫好肢虛嵌入式嗎?首先要做的事就是了解該行業(yè),你要學(xué)
編程語言
,如C和VC,學(xué)一定的硬件電路理論。
該行業(yè)的前景還是不錯的,應(yīng)用領(lǐng)域非常之廣泛,“只要你能想到就能做到”這是我門院長在給我們做學(xué)術(shù)報告時所講到的話。
不過
IT行業(yè)
發(fā)展迅速,你了解好該行業(yè),選準(zhǔn)一個方向去突破吧,只要你有心,就一定能成。
我是從
機(jī)械專業(yè)
跨到電子行業(yè)饑祥,因?yàn)槲艺J(rèn)為它能給我?guī)砝妫ㄥX),友燃他能給我?guī)韮r值,因?yàn)楦驴欤魬?zhàn)就大,而且,還有很多很多的問題需要我們國人去研究,嵌入式目前的課題是SOC設(shè)計和綜合測試問題,尤其是測試,技術(shù)上,國人還在努力突破中,而測試問題也是我們?yōu)槭裁床荒艽笈可a(chǎn)自己芯片的主要原因。
首先嵌入式開發(fā)是越老越值錢,你可以做一輩子,只要你想做,像日本很多從事嵌入式開發(fā)的工作人員都是50多歲核型的老頭。在國內(nèi)慶灶來說,因?yàn)槭茏u(yù)氏扮一個大環(huán)境的影響。隨著你年齡的增大,來自生活和感情各方面的壓力也會越來越大,這樣的話如果有更好的選擇的話,那你肯定會考慮的嘛,所以你可以朝著管理階層發(fā)展一下哈!
可以試試 當(dāng)老板?。?/p>
飛旭科技
我想學(xué)編程,應(yīng)該學(xué)哪一類,求助
原文地址:
博文如下:
前言
你是否覺得自己從學(xué)校畢業(yè)的時候只做過小玩具一樣的程序?走入職場后哪怕沒有什么經(jīng)驗(yàn)也可以把以下這些課外練習(xí)走一遍(朋友的抱怨:學(xué)校課程總是從理論出發(fā),作業(yè)項目都看不出有什么實(shí)際作用,不前斗如從工作中的需求出發(fā))
建議:
不要亂買書,不要亂追新技術(shù)新名詞,基礎(chǔ)的東西經(jīng)過很長時間積累而且還會在未來至少10年通用。
回顧一下歷史,看看歷史上時間線上技術(shù)的發(fā)展,你才能明白明天會是什么樣。
一定要動手,例子不管多么簡單,建議至少自己手敲一遍看看是否理解了里頭的細(xì)枝末節(jié)。
一定要學(xué)會思考,思考為什么要這樣,而不是那樣。還要舉一反三地思考。
注:你也許會很奇怪為什么下面的東西很偏Unix/Linux,這是因?yàn)槲矣X得Windows下的編程可能會在未來很沒有前途,原因如下:
現(xiàn)在的用戶界面幾乎被兩個東西主宰了,1)Web,2)移動設(shè)備iOS或Android。Windows的圖形界面不吃香了。
越來越多的企業(yè)在用成本低性能高的Linux和各種開源技術(shù)來構(gòu)架其系統(tǒng),Windows的成本太高了。
微軟的東西變得太快了,很不持久,他們完全是在玩弄程序員。詳情參見《Windows編程革命史》
所以,我個人認(rèn)為以后的趨勢是前端是Web+移動,后端是Linux+開源。開發(fā)這邊基本上沒Windows什么事。
啟蒙入門
1、 學(xué)習(xí)一門腳本語言,例如Python/Ruby
可以讓你擺脫對底層語言的腔磨恐懼感,腳本語言可以讓你很快開發(fā)出能用得上的小程序。實(shí)踐項目:
處理文本文件,或者csv (關(guān)鍵詞 python csv, python open, python sys) 讀一個本地文件,逐行處理(例如 word count,或者處理log)
遍歷本地文件系統(tǒng) (sys, os, path),例如寫一個程序統(tǒng)計一個目錄下所有文件大小并按各種條件排序并保存結(jié)果
跟數(shù)據(jù)庫打交道 (python sqlite),寫一個小腳本統(tǒng)計數(shù)據(jù)庫里條目數(shù)量
學(xué)會用各種print之類簡單粗暴的方式進(jìn)行調(diào)試
學(xué)會用Google (phrase, domain, use reader to follow tech blogs)
為什么要學(xué)腳本語言,因?yàn)樗麄儗?shí)在是太方便了,很多時候我們需要寫點(diǎn)小工具或是腳本來幫我們解決問題,你就會發(fā)現(xiàn)正規(guī)的編程語言太難用了。
2、 用熟一種程序員的編輯器(不是IDE) 和一些基本工具
Vim / Emacs / Notepad++,學(xué)會如何配置代碼補(bǔ)全,外觀,外部命令等。
Source Insight (或 ctag)
使用這些東西不是為了Cool,而是這些編輯器在查看、修改代碼/配置文章/日志會更快更有效率。
3、 熟悉Unix/Linux Shell和常見的命令行
如果你用windows,至少學(xué)會用虛擬機(jī)里的linux, vmware player是免費(fèi)的,裝個Ubuntu吧
一定要少用少用圖形界面。
學(xué)會使用man來查看幫助
文件系統(tǒng)結(jié)構(gòu)和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …伍悔斗
學(xué)會使用一些文本操作命令 sed/awk/grep/tail/less/more …
學(xué)會使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…
了解/etc目錄下的各種配置文章,學(xué)會查看/var/log下的系統(tǒng)日志,以及/proc下的系統(tǒng)運(yùn)行信息
了解正則表達(dá)式,使用正則表達(dá)式來查找文件。
對于程序員來說Unix/Linux比Windows簡單多了。(參看我四年前CSDN的博文《其實(shí)Unix很簡單》)學(xué)會使用Unix/Linux你會發(fā)現(xiàn)圖形界面在某些時候?qū)嵲谑翘y用了,相當(dāng)?shù)叵喈?dāng)?shù)亟档凸ぷ餍省?/p>
4、 學(xué)習(xí)Web基礎(chǔ)(HTML/CSS/) + 服務(wù)器端技術(shù) (LAMP)
未來必然是Web的世界,學(xué)習(xí)WEB基礎(chǔ)的更佳網(wǎng)站是W3School。
學(xué)習(xí)HTML基本語法
學(xué)習(xí)CSS如何選中HTML元素并應(yīng)用一些基本樣式(關(guān)鍵詞:box model)
學(xué)會用 Firefox + Firebug 或 chrome 查看你覺得很炫的網(wǎng)頁結(jié)構(gòu),并動態(tài)修改。
學(xué)習(xí)使用Javascript操縱HTML元件。理解DOM和動態(tài)網(wǎng)頁(Dynamic HTML: The Definitive Reference, 3rd Edition – O’Reilly Media) 網(wǎng)上有免費(fèi)的章節(jié),足夠用了?;騾⒖?nbsp;DOM 。
學(xué)會用 Firefox + Firebug 或 chrome 調(diào)試Javascript代碼(設(shè)置斷點(diǎn),查看變量,性能,控制臺等)
在一臺機(jī)器上配置Apache 或 Nginx
學(xué)習(xí)PHP,讓后臺PHP和前臺HTML進(jìn)行數(shù)據(jù)交互,對服務(wù)器相應(yīng)瀏覽器請求形成初步認(rèn)識。實(shí)現(xiàn)一個表單提交和反顯的功能。
把PHP連接本地或者遠(yuǎn)程數(shù)據(jù)庫 MySQL(MySQL 和 SQL現(xiàn)學(xué)現(xiàn)用夠了)
跟完一個名校的網(wǎng)絡(luò)編程課程(例如:
) 不要覺得需要多于一學(xué)期時間,大學(xué)生是全職一學(xué)期選3-5門課,你業(yè)余時間一定可以跟上
學(xué)習(xí)一個javascript庫(例如jQuery 或 Ext)+ Ajax (異步讀入一個服務(wù)器端圖片或者數(shù)據(jù)庫內(nèi)容)+ON數(shù)據(jù)格式。
HTTP: The Definitive Guide 讀完前4章你就明白你每天上網(wǎng)用瀏覽器的時候發(fā)生的事情了(proxy, gateway, browsers)
做個小網(wǎng)站(例如:一個小的留言板,支持用戶登錄,Cookie/Session,增、刪、改、查,上傳圖片附件,分頁顯示)
買個域名,租個空間,做個自己的網(wǎng)站。
進(jìn)階加深
1、 C語言和操作系統(tǒng)調(diào)用
重新學(xué)C語言,理解指針和內(nèi)存模型,用C語言實(shí)現(xiàn)一下各種經(jīng)典的算法和數(shù)據(jù)結(jié)構(gòu)。推薦《計算機(jī)程序設(shè)計藝術(shù)》、《算法導(dǎo)論》和《編程珠璣》。
學(xué)習(xí)(麻省理工免費(fèi)課程)計算機(jī)科學(xué)和編程導(dǎo)論
學(xué)習(xí)(麻省理工免費(fèi)課程)C語言內(nèi)存管理
學(xué)習(xí)Unix/Linux系統(tǒng)調(diào)用(Unix高級環(huán)境編程),,了解系統(tǒng)層面的東西。
用這些系統(tǒng)知識操作一下文件系統(tǒng),用戶(實(shí)現(xiàn)一個可以拷貝目錄樹的小程序)
用fork/wait/waitpid寫一個多進(jìn)程的程序,用pthread寫一個多線程帶同步或互斥的程序。多進(jìn)程多進(jìn)程購票的程序。
用signal/kill/raise/alarm/pause/sigprocmask實(shí)現(xiàn)一個多進(jìn)程間的信號量通信的程序。
學(xué)會使用gcc和gdb來編程和調(diào)試程序(參看我的《用gdb調(diào)試程序》)
學(xué)會使用makefile來編譯程序。(參看我的《跟我一起寫makefile》)
IPC和Socket的東西可以放到高級中來實(shí)踐。
學(xué)習(xí)Windows SDK編程(Windows 程序設(shè)計 ,MFC程序設(shè)計)
寫一個窗口,了解WinMain/WinProcedure,以及Windows的消息機(jī)制。
寫一些程序來操作Windows SDK中的資源文件或是各種圖形控件,以及作圖的編程。
學(xué)習(xí)如何使用MSDN查看相關(guān)的SDK函數(shù),各種WM_消息以及一些例程。
這本書中有很多例程,在實(shí)踐中請不要照抄,試著自己寫一個自己的例程。
不用太多于精通這些東西,因?yàn)镚UI正在被Web取代,主要是了解一下Windows 圖形界面的編程。@virushuo 說:“ 我覺得GUI確實(shí)不那么熱門了,但充分理解GUI工作原理是很重要的。包括移動設(shè)備開發(fā),如果沒有基礎(chǔ)知識仍然很吃力。或者說移動設(shè)備開發(fā)必須理解GUI工作,或者在win那邊學(xué),或者在mac/iOS上學(xué)”。
2、學(xué)習(xí)Java
Java 的學(xué)習(xí)主要是看經(jīng)典的Core Java 《Java 核心技術(shù)編程》和《Java編程思想》(有兩卷,我僅鏈了之一卷,足夠了,因?yàn)镴ava的圖形界面了解就可以了)
學(xué)習(xí)JDK,學(xué)會查閱Java API Doc Java Platform SE 6
了解一下Java這種虛擬機(jī)語言和C和Python語言在編譯和執(zhí)行上的差別。從C、Java、Python思考一下“跨平臺”這種技術(shù)。
學(xué)會使用IDE Eclipse,使用Eclipse 編譯,調(diào)試和開發(fā)Java程序。
建一個Tomcat的網(wǎng)站,嘗試一下P/Servlet/JDBC/MySQL的Web開發(fā)。把前面所說的那個PHP的小項目試著用P和Servlet實(shí)現(xiàn)一下。
3、Web的安全與架構(gòu)
學(xué)習(xí)HTML5,網(wǎng)上有很多很多教程,以前酷殼也介紹過很多,我在這里就不羅列了。
學(xué)習(xí)Web開發(fā)的安全問題(參考新浪微博被攻擊的這個事,以及Ruby的這篇文章)
學(xué)習(xí)HTTP Server的rewrite機(jī)制,Nginx的反向代理機(jī)制,fast-cgi(如:PHP-FPM)
學(xué)習(xí)Web的靜態(tài)頁面緩存技術(shù)。
學(xué)習(xí)Web的異步工作流處理,數(shù)據(jù)Cache,數(shù)據(jù)分區(qū),負(fù)載均衡,水平擴(kuò)展的構(gòu)架。
實(shí)踐任務(wù):
使用HTML5的canvas 制作一些Web動畫。
嘗試在前面開發(fā)過的那個Web應(yīng)用中進(jìn)行SQL注入,注入,以及XSS攻擊。
把前面開發(fā)過的那個Web應(yīng)用改成構(gòu)造在Nginx + PHP-FPM + 靜態(tài)頁面緩存的網(wǎng)站
4、學(xué)習(xí)關(guān)系型數(shù)據(jù)庫
你可以安裝MSSQLServer或MySQL來學(xué)習(xí)數(shù)據(jù)庫。
學(xué)習(xí)教科書里數(shù)據(jù)庫設(shè)計的那幾個范式,1NF,2NF,3NF,……
學(xué)習(xí)數(shù)據(jù)庫的存過,觸發(fā)器,視圖,建索引,游標(biāo)等。
學(xué)習(xí)SQL語句,明白表連接的各種概念(參看《SQL Join的圖示》)
學(xué)習(xí)如何優(yōu)化數(shù)據(jù)庫查詢(參看《MySQL的優(yōu)化》)
實(shí)踐任務(wù):設(shè)計一個論壇的數(shù)據(jù)庫,至少滿足3NF,使用SQL語句查詢本周,本月的最新文章,評論最多的文章,最活躍用戶。
5、一些開發(fā)工具
學(xué)會使用SVN或Git來管理程序版本。
學(xué)會使用JUnit來對Java進(jìn)行單元測試。
學(xué)習(xí)C語言和Java語言的coding standard 或 coding guideline。(我N年前寫過一篇關(guān)C語言非常簡單的文章——《編程修養(yǎng)》,這樣的東西你可以上網(wǎng)查一下,一大堆)。
推薦閱讀《代碼大全》《重構(gòu)》《代碼整潔之道》
高級深入
1、C++ / Java 和面向?qū)ο?/p>
我個人以為學(xué)好C++,Java也就是舉手之勞。但是C++的學(xué)習(xí)曲線相當(dāng)?shù)亩?。不過,我覺得C++是最需要學(xué)好的語言了。參看兩篇趣文“C++學(xué)習(xí)信心圖” 和“21天學(xué)好C++”
學(xué)習(xí)(麻省理工免費(fèi)課程)C++面向?qū)ο缶幊?/p>
讀我的 “如何學(xué)好C++”中所推薦的那些書至少兩遍以上(如果你對C++的理解能夠深入到像我所寫的《C++虛函數(shù)表解析》或是《C++對象內(nèi)存存局(上)(下)》,或是《C/C++返回內(nèi)部靜態(tài)成員的陷阱》那就非常不錯了)
然后反思為什么C++要干成這樣,Java則不是?你一定要學(xué)會對比C++和Java的不同。比如,Java中的初始化,垃圾回收,接口,異常,虛函數(shù),等等。
實(shí)踐任務(wù):
用C++實(shí)現(xiàn)一個BigInt,支持128位的整形的加減乘除的操作。
用C++封裝一個數(shù)據(jù)結(jié)構(gòu)的容量,比如hash table。
用C++封裝并實(shí)現(xiàn)一個智能指針(一定要使用模板)。
《設(shè)計模式》必需一讀,兩遍以上,思考一下,這23個模式的應(yīng)用場景。主要是兩點(diǎn):1)鐘愛組合而不是繼承,2)鐘愛接口而不是實(shí)現(xiàn)。(也推薦《深入淺出設(shè)計模式》)
實(shí)踐任務(wù):
使用工廠模式實(shí)現(xiàn)一個內(nèi)存池。
使用策略模式制做一個類其可以把文本文件進(jìn)行左對齊,右對齊和中對齊。
使用命令模式實(shí)現(xiàn)一個命令行計算器,并支持undo和redo。
使用修飾模式實(shí)現(xiàn)一個酒店的房間價格訂價策略——旺季,服務(wù),VIP、旅行團(tuán)、等影響價格的因素。
學(xué)習(xí)STL的用法和其設(shè)計概念 – 容器,算法,迭代器,函數(shù)子。如果可能,請讀一下其源碼。
實(shí)踐任務(wù):嘗試使用面向?qū)ο?、STL,設(shè)計模式、和WindowsSDK圖形編程的各種技能
做一個貪吃蛇或是俄羅斯方塊的游戲。支持不同的級別和難度。
做一個文件瀏覽器,可以瀏覽目錄下的文件,并可以對不同的文件有不同的操作,文本文件可以打開編輯,執(zhí)行文件則執(zhí)行之,mp3或avi文件可以播放,圖片文件可以展示圖片。
學(xué)習(xí)C++的一些類庫的設(shè)計,如: MFC(看看候捷老師的《深入淺出MFC》) ,Boost, ACE, CPPUnit,STL (STL可能會太難了,但是如果你能了解其中的設(shè)計模式和設(shè)計那就太好了,如果你能深入到我寫的《STL string類的寫時拷貝技術(shù)》那就非常不錯了,ACE需要很強(qiáng)在的系統(tǒng)知識,參見后面的“加強(qiáng)對系統(tǒng)的了解”)
Java是真正的面向?qū)ο蟮恼Z言,Java的設(shè)計模式多得不能再多,也是用來學(xué)習(xí)面向?qū)ο蟮脑O(shè)計模式的更佳語言了(參看Java中的設(shè)計模式)。
推薦閱讀《Effective Java》 and 《Java解惑》
學(xué)習(xí)Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是學(xué)習(xí)Java的設(shè)計,如IoC等。
Java的技術(shù)也是爛多,重點(diǎn)學(xué)習(xí)J2EE架構(gòu)以及JMS, RMI, 等消息傳遞和遠(yuǎn)程調(diào)用的技術(shù)。
學(xué)習(xí)使用Java做Web Service (官方教程在這里)
實(shí)踐任務(wù): 嘗試在Spring或Hibernate框架下構(gòu)建一個有網(wǎng)絡(luò)的Web Service的遠(yuǎn)程調(diào)用程序,并可以在兩個Service中通過JMS傳遞消息。
C++和Java都不是能在短時間內(nèi)能學(xué)好的,C++玩是的深,Java玩的是廣,我建議兩者選一個。我個人的學(xué)習(xí)經(jīng)歷是:
深究C++(我深究C/C++了十來年了)
學(xué)習(xí)Java的各種設(shè)計模式。
2、加強(qiáng)系統(tǒng)了解
重要閱讀下面的幾本書:
《Unix編程藝術(shù)》了解Unix系統(tǒng)領(lǐng)域中的設(shè)計和開發(fā)哲學(xué)、思想文化體系、原則與經(jīng)驗(yàn)。你一定會有一種醍醐灌頂?shù)母杏X。
《Unix網(wǎng)絡(luò)編程卷1,套接字》這是一本看完你就明白網(wǎng)絡(luò)編程的書。重要注意TCP、UDP,以及多路復(fù)用的系統(tǒng)調(diào)用select/poll/epoll的差別。
《TCP/IP詳解 卷1:協(xié)議》- 這是一本看完后你就可以當(dāng)網(wǎng)絡(luò)黑客的書。了解以太網(wǎng)的的運(yùn)作原理,了解TCP/IP的協(xié)議,運(yùn)作原理以及如何TCP的調(diào)優(yōu)。
實(shí)踐任務(wù):
理解什么是阻塞(同步IO),非阻塞(異步IO),多路復(fù)用(select, poll, epoll)的IO技術(shù)。
寫一個網(wǎng)絡(luò)聊天程序,有聊天服務(wù)器和多個聊天客戶端(服務(wù)端用UDP對部分或所有的的聊天客戶端進(jìn)Multicast或Broadcast)。
寫一個簡易的HTTP服務(wù)器。
《Unix網(wǎng)絡(luò)編程卷2,進(jìn)程間通信》信號量,管道,共享內(nèi)存,消息等各種IPC…… 這些技術(shù)好像有點(diǎn)老掉牙了,不過還是值得了解。
實(shí)踐任務(wù):
主要實(shí)踐各種IPC進(jìn)程序通信的方法。
嘗試寫一個管道程序,父子進(jìn)程通過管道交換數(shù)據(jù)。
嘗試寫一個共享內(nèi)存的程序,兩個進(jìn)程通過共享內(nèi)存交換一個C的結(jié)構(gòu)體數(shù)組。
學(xué)習(xí)《Windows核心編程》一書。把CreateProcess,Windows線程、線程調(diào)度、線程同步(Event, 信號量,互斥量)、異步I/O,內(nèi)存管理,DLL,這幾大塊搞精通。
實(shí)踐任務(wù):使用CreateProcess啟動一個記事本或IE,并監(jiān)控該程序的運(yùn)行。把前面寫過的那個簡易的HTTP服務(wù)用線程池實(shí)現(xiàn)一下。寫一個DLL的鉤子程序監(jiān)控指定窗口的關(guān)閉事件,或是記錄某個窗口的按鍵。
有了多線程、多進(jìn)程通信,TCP/IP,套接字,C++和設(shè)計模式的基本,你可以研究一下ACE了。使用ACE重寫上述的聊天程序和HTTP服務(wù)器(帶線程池)
實(shí)踐任務(wù):通過以上的所有知識,嘗試
寫一個服務(wù)端給客戶端傳大文件,要求把100M的帶寬用到80%以上。(注意,磁盤I/O和網(wǎng)絡(luò)I/O可能會很有問題,想一想怎么解決,另外,請注意網(wǎng)絡(luò)傳輸更大單元MTU)
了解下載的工作原理,用多進(jìn)程的方式模擬下載的原理。
3、系統(tǒng)架構(gòu)
負(fù)載均衡。HASH式的,純動態(tài)式的。(可以到Google學(xué)術(shù)里搜一些關(guān)于負(fù)載均衡的文章讀讀)
多層分布式系統(tǒng) – 客戶端服務(wù)結(jié)點(diǎn)層、計算結(jié)點(diǎn)層、數(shù)據(jù)cache層,數(shù)據(jù)層。J2EE是經(jīng)典的多層結(jié)構(gòu)。
CDN系統(tǒng) – 就近訪問,內(nèi)容邊緣化。
P2P式系統(tǒng),研究一下和電驢的算法。比如:DHT算法。
服務(wù)器備份,雙機(jī)備份系統(tǒng)(Live-Standby和Live-Live系統(tǒng)),兩臺機(jī)器如何通過心跳監(jiān)測對方?集群主結(jié)點(diǎn)備份。
虛擬化技術(shù),使用這個技術(shù),可以把操作系統(tǒng)當(dāng)應(yīng)用程序一下切換或重新配置和部署。
學(xué)習(xí)Thrift,二進(jìn)制的高性能的通訊中間件,支持?jǐn)?shù)據(jù)(對象)序列化和多種類型的RPC服務(wù)。
學(xué)習(xí)Hadoop。
Hadoop框架中最核心的設(shè)計就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的,簡單的
一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File
System)的縮寫,為分布式計算存儲提供了底層支持。
了解NoSQL數(shù)據(jù)庫(有人說可能是一個過渡炒作的技術(shù)),
不過因?yàn)槌笠?guī)模以及高并發(fā)的純動態(tài)型網(wǎng)站日漸成為主流,而SNS類網(wǎng)站在數(shù)據(jù)存取過程中有著實(shí)時性等剛性需求,這使得目前NoSQL數(shù)據(jù)庫慢慢成了人們
所關(guān)注的焦點(diǎn),并大有成為取代關(guān)系型數(shù)據(jù)庫而成為未來主流數(shù)據(jù)存儲模式的趨勢。當(dāng)前NoSQL數(shù)據(jù)庫很多,大部分都是開源的,其中比較知名的
有:MemcacheDB、Redis、Tokyo Cabinet(升級版為Kyoto
Cabinet)、Flare、MongoDB、CouchDB、Cassandra、Voldemort等。
寫了那么多,回顧一下,覺得自己相當(dāng)?shù)挠谐删透小OM蠹也灰獓樦?,我自己這十來年也在不斷地學(xué)習(xí),今天我也在學(xué)習(xí)中,人生本來就是一個不斷學(xué)習(xí)和練級的過程。不過,一定有漏的,也有不對的,還希望大家補(bǔ)充和更正。(我會根據(jù)大家的反饋隨時更新此文)歡迎大家通過我的微博(@左耳朵耗子)和twitter(@haoel)和我交流。
—– 更新 2023/07/19 —–
1)有朋友奇怪為什么我在這篇文章開頭說了web+移動,卻沒有在后面提到iOS/Android的前端開發(fā)。因?yàn)槲倚睦镉幸环N感覺,移動設(shè)備上的UI最終也會被Javascript取代。大家可以用iPhone或Android看看google+,你就會明白了。
2)
有朋友說我這里的東西太多了,不能為了學(xué)習(xí)而學(xué)習(xí),我非常同意。我在文章的前面也說了要思考。另外,千萬不要以為我說的這些東西是一些新的技術(shù),這份攻略
里95%以上的全是基礎(chǔ)。而且都是久經(jīng)考驗(yàn)的基礎(chǔ)技術(shù)。即是可以讓你一通百通的技術(shù),也是可以讓你找到一份不錯工作的技術(shù)。
3)有朋友說學(xué)
這些東西學(xué)完都40了,還不如想想怎么去掙錢。我想告訴大家,一是我今年還沒有40歲,二是學(xué)無止境啊,三是我不覺得掙錢有多難,難的是怎么讓你值那么多
錢?無論是打工還是創(chuàng)業(yè),是什么東西讓你自己的價值,讓你公司的價值更值錢?別的地方我不敢說,對于互聯(lián)網(wǎng)或IT公司來說,技術(shù)實(shí)力絕對是其中之一。
4)有朋友說技術(shù)都是工具,不應(yīng)該如此癡迷這句話沒有錯,有時候我們需要更多的是抬起頭來看看技術(shù)以外的事情,或者是說我們在作技術(shù)的時候不去思考為什么會有這個技術(shù),為什么不是別的,問題不在于技術(shù),問題在于我們死讀書,讀死書,成了技術(shù)的書呆子。
5) 對于NoSQL,最近比較火,但我對其有點(diǎn)保守,所以,我只是說了解就可以。對于Hadoop,我覺得其在分布式系統(tǒng)上有巨大的潛力,所以需要學(xué)習(xí)。 對于關(guān)系型數(shù)據(jù)庫,的確是很重要的東西,這點(diǎn)是我的疏忽,在原文里補(bǔ)充。
先學(xué)c和c++
40歲學(xué)linux的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于40歲學(xué)linux,從零開始!40歲邁入Linux學(xué)習(xí)世界,嵌入式軟件開發(fā),30歲后還能干嗎?,我想學(xué)編程,應(yīng)該學(xué)哪一類,求助的信息別忘了在本站進(jìn)行查找喔。
創(chuàng)新互聯(lián)【028-86922220】值得信賴的成都網(wǎng)站建設(shè)公司。多年持續(xù)為眾多企業(yè)提供成都網(wǎng)站建設(shè),成都品牌建站設(shè)計,成都高端網(wǎng)站制作開發(fā),SEO優(yōu)化排名推廣服務(wù),全網(wǎng)營銷讓企業(yè)網(wǎng)站產(chǎn)生價值。
名稱欄目:從零開始!40歲邁入Linux學(xué)習(xí)世界(40歲學(xué)linux)
文章鏈接:http://www.dlmjj.cn/article/ccigoco.html


咨詢
建站咨詢
