導航:首頁 > 程序命令 > 程序員的學習之旅

程序員的學習之旅

發布時間:2025-05-14 23:05:07

Ⅰ 軟體開發實習總結

軟體開發實習總結範文

總結所要反映的是全局工作或某項工作的全貌,所以在內容安排上要考慮到方方面面,否則就會影響工作總結的客觀性和全面性。下面是我為大家帶來的軟體開發實習總結範文,歡迎閱讀。

軟體開發實習總結 篇1

時間過得真快,轉眼間,實習生活就結束了。

四周的時間能夠和山大的同學一起工作、學習、生活我感到非常的榮幸,同時也感覺到很大的壓力,作為電子商務專業的學生從事軟體開發感覺還是有一定的困難,特別是我們還是和山大大三的學生一起,在初來時自己就有一些不自信,但隨著項目的進展,我慢慢的找到了自己的位置,找到自己的目標,雖然自己與好的同學還有差距,這也給了我很大壓力,但是我相信沒有壓力就沒有動力,所以整個實訓過程中我都在不斷地努力。

實訓期間讓我學到很多東西,不僅在理論上讓我對it領域有了全新的認識,在實踐能力上也得到了很大的提高,真正的學到了學以致用,更學到很多做人的道理,對我來說受益匪淺。特別是利用周六上午的時間山大為我們安排的講座讓我們了解it領域一些新的發展動態以及一些的技術,讓我意識到自己知識的缺少,這激勵我在以後的學習、工作、生活中要不斷了解信息技術發展動態以及信息發展中出現的新的技術。

除此之外,我還學到了如何與人相處,如何和人跟好的交流,我們組成一個團隊大家一起開發一個項目,大家的交流溝通顯得尤為重要,如何將自己的想法清楚明白的告訴隊友,如何提出自己想法的同時又不傷害其他的隊友的面子,這些在我的實訓生活中都有一些體會。可是說,第一次親身體會理論與實際相結合,讓我大開眼界。也是對以前學習的一個初審吧,相信這次實訓多我以後的學習、工作也將會有很很大的影響,在短短的二十幾天里這些寶貴的經驗將會成為我以後工作的基石。

作為大二的學生,經過兩年的在校學習,對程序設計有了一些基本的理性的認識和理解。在校期間一直忙於理論的學習,沒有機會也沒有經驗來參與我們項目的開發,所以在實習之前軟體按開發對我來說是非常抽象的,一個完整的項目要怎麼來分工以及完成該項目所需要的基本步驟也不明確,經過這次實訓讓我明白一個完整項目的完成必須團隊分工合作,並在每個階段進行必要的總結和檢查。在我們項目的開發過程中我們項目的步驟:詳細設計、詳細設計review、編碼、編碼review、單體測試。在項目開發過程中我也深刻的體會到詳細設計對一個項目開發有明確的指引作用,它可以使開發人員對這個項目所要實現的功能在總體上有具體的認識,並能減少在開發過程中出現不必要的脫節。

軟體開發實習總結 篇2

大三暑假實習,大家都期盼著它的到來,期盼在學習了三年的大學知識之後,去感受一下專業的工作生活。實習後,我覺得工作真的是一件很復雜很辛苦的事情。我們的假期在這個短暫的兩個星期內就得到了意想不到的升華,我們學到許多在課堂里無法學到的東西,在意志品質上得到了鍛煉,並且對自己未來的工作有了初步的規劃。

實習目的和意義

實習是每一個大學畢業生必須擁有的一段寶貴經歷,而這次實習的意義,對我來說已不再是完成學分、完成畢業實習的任務,而是我們真正在實踐中開始接觸社會、了解社會的一次重要機會,讓我們學習到了很多在課堂上根本接觸不到的知識,增長了見識,開闊了視野,為我以後走上工作崗位打下了堅實的基礎。

理論聯系實際越來越受到人們的普遍關注,作為天之轎子的大學生,在課堂里學習到的知識如何才可以很好的聯繫到實際生活?如何才可以將課堂里的知識帶到社會實踐當中去,更好的為社會服務?這些都受到了社會的普遍關注。為了更好的將課堂里學習到的理論知識與社會實踐相結合,利用暑期假期這段時間走出校門,參加到專業的實踐當中去,用自己在課堂里學習到的知識為地方服務,讓實踐來檢驗自己所學的理論知識。我系經過多方考察,最終選擇到海輝集團亞思晟科技公司進行暑期實習,為了更好地使學生學會將在課堂書本學習到的東西應用到社會實踐中,從而更好的服務於社會。

實習方式和內容

這次實習主要是通過參加有系裡組織的到無錫軟體園海輝集團公司上班培訓的形式來進行,跟公司的同事一同下班,切身體會上班是什麼樣的。我們的工作,首先要跟隨分配給我們的指導老師學習軟體公司的工作流程,軟體項目的開發模式以及各種工作時需要的專業知識;其次,我們要在下班後及時復習當天所學的知識,找出自己的問題,並通過詢問指導老師和同學、通過網路查找相關問題的資料,分析問題的根源;最後我們有針對性的完成當天的實習日誌。這樣完整的工作生活進行了兩周,充分體驗了工作和學習相結合的樂趣。

實習總結

在這次實習過程中,同學們表現得相當積極。積極的共享精神在我們這里得到充分的體現,同學都很樂意將各種學習資料通過網路共享,並且以此開展互動交流學習,很好地增進了同學間的團結和友誼。經常可以看到或聽到同學對學習過程中產生的各種問題的激烈探討,有時甚至需要老師出面來指點一下方可平息。這次實習更加增進了同學們的感情,也使大家更加團結互助。

在激烈的市場競爭、科技飛速發展的今天,計算機成為人們快速獲取、發布和傳遞信息的重要渠道,它在人們政治、經濟、生活等各個方面發揮著重要的作用。因此計算機在應用上的地位顯而易見,它已成為政府、企事業單位信息化建設中的重要組成部分,從而倍受人們的重視。作為一名IT從業者,所受的社會壓力將比其他行業更加沉重,要學會創新求變,以適應社會的需要。

雖然我們即將走向社會,但作為一個剛踏入社會的年輕人,幾乎沒有任何社會經驗,合適在實習期間的每一件小事中,我們能夠體會到人際關系、機會、評價、競爭、成功、失敗等各種我們在今後經常會遇到的事件,相信這些寶貴的經驗會成為我今後成功的重要基石。

經過這次實習,在就業心態上我也有很大改變,以前我總想找一份適合自己愛好,專業對口的工作,可現在我知道找工作很難,要專業對口更難,很多東西我們出到社會才接觸、才學習。所以現在我不能再像以前那樣等待更好機會的到來,要建立起先就業再擇業的就業觀。應盡快丟掉對學校的依賴心理,學會在社會上獨立,敢於參加與社會競爭,敢於承受社會壓力,使自己能夠在社會上快速成長。

軟體開發實習總結 篇3

一直想把這兩個月實習的經歷寫下來,但是最近期末考試一直沒抽出時間來,過了今晚就是2013年了,再加上最近又找了一家新的公司實習,想來還是早點寫吧,也好開始新的旅程。

前面說過,我是在一家第一方支付企業實習,是10月15號開始的,12月21號的時候因為要期末考試,所以就請了三周的假,一方面復習期末考試,一方面藉此機會找工作,因為我不想在這家公司待下去了,再怎麼說,他也不是專業做軟體的公司,而畢業的三年是對我的技術打基礎的階段,我不想就這樣浪費了。這是後話,這里先說一說這兩個月我都幹了什麼。

雖說這不是我第一次實習了,但是卻是我第一次認真的實習,剛進公司的時候,顯得比較殷勤,第一次跟部門的同事吃飯我就一一敬酒了(以茶代酒哈),見面也常微笑打招呼,所以人員還是不錯的,有什麼問題都可以幫我解決。但是我卻走了極端了,因為我信奉一句名言「機會只垂青於有準備的人」,因為剛進公司,對於公司的技術框架不熟悉,所以就沒有要求進公司項目,而是自己找了一個高工,給我講了一下公司所用到的技術,然後自己一個人默默的學了整整兩周(14個工作日,即3周,而我又是一周能實習三天,所以相當於5周,即一個多月,算時間的話,這時候已經到11月下旬了),這才要求技術主管給我任務,主管二話沒說,就讓我去做單體測試了,15個單體測試,我又是一周的時間,單體測試完成了之後對於公司系統框架已經運行流程都有了初步的認識,這還不夠,要做項目的話你必須要熟悉,那怎能辦,只能做項目了,可是公司又不能讓我去做項目,因為我一周來三天,會拖累項目進度的。好吧,主管就讓我重新做他們剛做好的一個模塊「通道參數管理模塊」,二話沒說,先模仿人家的代碼寫了一個「增刪改查」,後來又自己獨立寫了一個「增刪改查」,好傢伙,這時候我才真正把系統運行的原理了解了,不過這又過去了一周了。這時候已經到12月中旬了,剛要准備進入「退款管理模塊」的編寫,不了要期末考試了,再加上元旦假期,我索性就直接請了三周的假期。

現在看來,當初就不該「先准備好,再抓機會」,人生的很多事情都是來不及准備的,只能邊准備邊進行,等到你准備好了,黃花菜到涼了,和我同來的其他實習生,雖說人家不知道spring,mybatis等的原理,但是人家比我早進入項目好幾周,我都蒙在鼓裡,還在那裡自以為是,自認為自己比他們聰明,比他們的人緣好。不過這也從側面印證了我不該留下來,一個只能復制粘貼來編程序,只做一個系統的公司不是我想要的,,那就行動吧,好在到期末考試了,有這個借口就可以請長假了,一直到了元旦之後了,現在看來假期過後的第一天上班,就是去辭職去的,當然這是後話了。

當然,這兩個月除了技術上的教訓之後,還有一個教訓和一個收獲。教訓就是:沉溺於實習,而把校園招聘這回事給忘了,以至於等我發現的時候已經12月底了,這個時候大公司基本上都結束了,唉,小人得志,沾沾自喜。其實這個還不是自己發現的,還要感謝我那高中的同學,一日,他打來電話問我三方協議簽了沒,我說還沒有,但是人家已經簽了,而且還是央企,天呢,這時候我才反應過來,什麼是「溫水煮青蛙」,我被自己的這份實習工作給煮了,還好,自己及時清醒過來,馬上採取措施,這才有了前面說的所說的後話。收獲就是,所說我是一名實習生,但是我跟同事的關系都很好,以至於我現在都不知道假期之後該怎樣去辭職,真有點捨不得離開那些好同事,在這里先感謝一下!

現在想來,這兩個多月確實有點累了,由於學校是在郊區,一天來回上班,關路上就要花費6個小時,相當於一天上14個小時,回到學校之後還得做作業上課之類的,因此,接下來的全職實習准備要去租房了!

兩個月不長也不短,至少有三方面的收獲:第一:如何更好地實習;第二:知道了在企業級軟體開發的技術和流程;第三:簡歷上有了最靚麗的一段軟體開發實習經歷。

軟體開發實習總結 篇4

轉眼已經在xx實訓這樣的大家庭中生活快10個月時間了,之前的興奮、喜悅如今已經讓我熟悉,在這里的每一天都會讓我有成為一名真正財富擁有者的沖動。也許對別人來說,一定不能體會為什麼在這不到10個月的時間會讓一個人有翻天覆地的變化,但是變化就是這樣一點一點產生的。

在xx的實訓生活中,我深深體會到了自己在專業知識方面的欠缺和不足,也意識到了自己做為計算機軟體工程專業的`學生,要想在以後的職業中嶄露頭角,除了要有過硬的理論知識,健康的體魄外,還必須具備良好的心理素質,使自己在以後的途中無論經歷什麼樣的困難,都立於不敗之地。這正是本次實訓的根本目的。

通過實訓中心老師的課堂講解與企業化標準的培訓,使我加深了對自己專業的認識。從而確定自己以後的努力方向。要想在短暫的實訓時間內,盡可能多的學到東西,就需要我們跟老師或同學進行很好的溝通,加深彼此的了解。只有我們跟老師多溝通,讓老師更了解我們,才能跟真切的對我們進行培訓工作。由此,班級的文化共享就在生活中慢慢形成了。

紙上得來終覺淺,絕知此事要躬行!在這短短的時間里,讓我深深的感覺到自己在實際應用中所學專業知識的匱乏。讓我真真領悟到學無止境這句話的涵義。而老師在專業認識周中所講的,都是課本上沒有而對我們又非常實用的東西,這又給我們的實訓增加了濃墨淡採的光輝。我懂得了實際生活中,專業知識是怎樣應用與實踐的。在這些過程中,我不僅知道了職業生涯所需具備的專業知識,而且讓我深深體會到一個團隊中各成員合作的重要性,要善於團隊合作,善於利用別人的智慧,這才是大智慧。靠單一的力量是很難完成一個大項目的,在進行團隊合作的時候,還要耐心聽取每個成員的意見,使我們的組合達到更加完美。

這次實訓帶給我太多的感觸,它讓我知道工作上的辛苦,事業途中的艱辛。讓我知道了實際的工作並不像在學校學習那樣輕松。

人非生而知之,雖然我現在的知識結構還很差,但是我知道要學的知識,一靠努力學習,二靠潛心實踐。沒有實踐,學習就是無源之水,無本之木。這次實訓讓我在一瞬間長大:我們不可能永遠呆在象牙塔中,過著一種無憂無慮的生活,我們總是要走上社會的,而社會,就是要靠我們這些年輕的一代來推動。這就是我們不遠千里來實訓的心得和感受,而不久後的我,面臨是就業壓力,還是繼續深造,我想我都應該好好經營自己的時間,充實、完善自我,不要讓自己的人生留下任何空白!

實訓中除了學到不少專業知識,也了解一些社會的現實性,包括人際交往,溝通方式及相關禮節方面的內容,對於團隊開發來說,團結一致使我深有體會。團隊的合作注重溝通和信任,不能不屑於做小事,永遠都要保持親和誠信,把專業理論運用到具體實踐中,不僅加深我對理論的掌握和運用,還讓我擁有了一次又一次難忘的開發經理,這是也是實訓最大的收獲。

現在我對一個人最大的財富是他的人生經歷和關系網路這句話非常的有感情,因為它確實幫了我們不少。除此課本上的知識畢竟有限。通過實訓,我班同學都有這樣一個感覺,課本上的理論知識與實際工作有很大差距,只有知識是遠遠不夠的,專業技能急需提高。

從最初的笨手笨腳,到現在可以熟練的按照流程開發軟體,這都與我班每個人的努力是分不開的。十個月的實訓,教會了我們很多東西,同時也鍛煉了大家踏實、穩重的能力,每個人都很珍惜這來之不易的實訓機會。

在實際工作中經常會和不同的人打交道,然而他們的態度是不可恭維的,你會感覺到他的不耐煩以及他的高傲,所以這就需要學會溝通的方式及說話技巧,學會靈活面對。通過這十個月的實訓,我班同學都收獲頗豐,總體來說對這次實訓還是很滿意的。盡管實訓很累,每天早出晚歸。但真的很感謝學校能夠提供我們這樣好的實訓機會,以及xx給予我們的實訓平台。我們深刻的了解到,只有經歷過,才知道其中的滋味。對於我而言,喜歡體驗生活,可以說通過這次實訓,真真切切的讓我了解了什麼是軟體開發,什麼是軟體工程,讓我對於軟體最初的觀點也有了本質性的改變!程序員不僅僅是一份職業,更是一份細心+一份耐心+一份責任心=人生價值的詮釋。即將走向工作崗位的我們更要不斷加強自己的專業技能,社會不會要一個一無是處的人,所以我們要更多更快的從一個學校人向社會人轉變。為此我們將會在以後的日子裡繼續努力,不斷激勵經驗,不斷磨礪自己,早日走向工作崗位。

;

Ⅱ 要成為一名專業的程序員,從零開始需要怎麼一步步來比較好,要把最底層的先學精通嗎(個人認為)求學長

前言
你是否覺得自己從學校畢業的時候只做過小玩具一樣的程序?走入職場後哪怕沒有什麼經驗也可以把以下這些課外練習走一遍(朋友的抱怨:學校課程總是從理論出發,作業項目都看不出有什麼實際作用,不如從工作中的需求出發)
建議:
不要亂買書,不要亂追新技術新名詞,基礎的東西經過很長時間積累而且還會在未來至少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等。

Ⅲ xlei:一位百變程序員的成長之路

xlei(小雷),是一位在IT行業中很常見的名字。但是今天我想要跟大家分享的不僅僅是這個名字。我認為每一個人都是獨一無二的,因為我們每個人的成長之路都是不同的。在這篇文章里,我將為大家講述我作為一位百變程序員的成長之路。

我從小就對計算機感興趣,所以我在上大學的時候,選擇了計算機專業。但是,一開始我並不知道我的興趣點在哪裡。我開始學習編程語言,但是很快發現自己並不是真正喜歡那些語言,我更喜歡與計算機硬體溝通的那種感覺。於是我開始深入研究CPU和內存等方面的知識。

為了更好地學習,我決定做一些計算機相關的項目。我自學了很多知識,包括硬體設計以及軟體開發。這個過程非常艱辛,但是我一直保持著熱情和耐心。

我完成了很多有趣的項目,其中包括一些自己的硬體設備和一些自己開發的軟體。這些項目增強了我對計算機的理解。我學到了很多東西,但是最重要的是:我發現了自己真正的興趣點--嵌入式系統。

在我的大學學習生涯中,我參與了很多競賽和比賽。這些活動增強了我的能力和信心。我也通過這些機會接觸到了很多優秀的人才和團隊。我和他們一起學習和工作,互相幫助,一起成長。

我博士的時候,我開始全職做嵌入式系統方面的工作。這是一個非常有挑戰的職業,但是我一直專注於我的目標。我三年的博士研究生生活中,我在國外實習過,也在公司實習過。我的能力不斷增強,我的思維方式也更加開放。

我畢業之後,我獲得了一份全職嵌入式系統開發的工作。這是我追求已久的職業,我很享受這份工作,也很珍惜這份工作。

在事業的道路上,我遇到了很多艱難的挑戰。有時候我會遇到一些問題,需要去尋找更好的解決方案。但是在這個行業中,我學到的東西和我積累的經驗是最寶貴的。

我現在依然在嵌入式系統職業領域發展並成長。我也很享受這個過程。雖然,這個行業在不斷的變革,但是我相信,我可以很好的適應這個變化。

在成長道路中,我遇到了很多的挫折和困難。但是,我相信,這些挑戰並沒有打倒我,反而促使我更加堅定地走自己的路。我會一直保持我的熱情和耐心,繼續學習和成長。

人生是一個很長的旅程,我相信,在這個旅程中,每一個人都會遇到很多不同的人和事。但是,我認為,只有通過不斷地努力,不斷地學習和成長,才能實現自己的夢想。

Ⅳ 新手s應該怎麼做

新手S應該採取以下步驟來開始自己的學習和成長之旅

  1. 明確目標和需求

    • 在開始新的學習或工作之前,清晰地定義自己想要達到的目標以及學習的原因。
    • 例如,如果目標是學習編程,則需明確希望成為優秀的程序員,並識別出需要掌握的編程基礎知識和實踐技能。
  2. 尋找合適的資源和學習途徑

    • 利用網路資源,如在線教程、視頻課程等,尋找與學習目標相匹配的教學材料。
    • 參加線上或線下的課程,加入相關的學習社群或論壇,與專業人士和其他學習者交流經驗。
  3. 制定切實可行的學習計劃

    • 根據自己的實際情況和目標,設定具體的學習內容和時間安排。
    • 計劃中應包含階段性目標,以便於跟蹤進度和調整計劃。
    • 同時,為計劃留出一定的彈性空間,以應對不可預見的情況。
  4. 不斷實踐和調整

    • 通過實踐來檢驗學習效果,例如編寫代碼、調試程序等。
    • 定期評估自己的學習進度和效果,如果發現學習效果不佳或遇到困難,及時調整學習計劃和方法。
    • 保持耐心和毅力,不斷嘗試和改進,直到掌握所需技能。

遵循這些步驟,新手S可以在學習的道路上不斷進步,最終實現自己的目標。

閱讀全文

與程序員的學習之旅相關的資料

熱點內容
在電腦上怎麼找到加密狗圖標 瀏覽:435
電腦的瀏覽器怎麼打開pdf文件怎麼打開 瀏覽:142
pdf卡片庫下載 瀏覽:11
單片機中二進製表示什麼 瀏覽:725
java網路編程推薦 瀏覽:794
施耐德開關編程 瀏覽:65
組織胚胎學pdf 瀏覽:844
linux查看發包 瀏覽:496
加密貨幣交易所暴利時代 瀏覽:824
歌詞滾動效果android 瀏覽:14
程序員一天的六場戰斗 瀏覽:797
自製壓縮泵的做法 瀏覽:622
androidstring變數 瀏覽:247
數學乘法速演算法 瀏覽:986
壓縮包製作後照片順序怎麼改 瀏覽:680
fibonacci數列演算法 瀏覽:775
產品經理要和程序員吵架嗎 瀏覽:252
grub2命令行 瀏覽:618
無法獲取加密卡信息 瀏覽:775
雲伺服器網卡充值 瀏覽:509