Ⅰ 求程序員年終總結範文!!!!!
年初公司給大家更換了新的電腦,為了節省大家的時間,由我製作了母版機器然後可以GHOST等等方法為大家快速安裝,這樣可以節省大家很多時間。由於是聯想的品牌機,他裡面的系統以及分區等等做過一些處理,傳統的GHOST方法可能不能直接應用,最終找了一種PE光碟可以虛擬的進入系統,然後可以GHOST安裝恢復。問題得到解決。製作母版機器的過程中也是一個嘗試總結的過程,花了不少時間,但這是很值得的,我多花幾分鍾這樣可以節省大家幾十分鍾甚至數小時,這樣的勞動為什麼不是開心的呢。其中製作教程的過程比較費時間,對於每一個步驟,每一個截圖都有記錄。最終大家在拿到新的機器的時候,按照我寫的教程,都能夠非常順利的完成,且節約了大量的時間。【考勤硬體】 考勤機器的硬體需要延長連線,按照說明可能需要一個介面,購買來之後本想按照說明可以順利完成,遺憾的是說明過於簡單,還是我太笨?至於方法可能一句話帶過,詳細的管腳沒有記述,最終還是聯系了相關的技術人員問題解決。我看了下,其實也就接了3根線,假如你不知道,折騰許久也是徒勞,走了彎路。【伺服器整理】今年我接手了伺服器的管理工作,可以說這個事情是個繁雜的,且是個需要持久的每日維護的一份工作。伺服器越來越多,各台伺服器的功能需要獨立開來。歷史的遺留問題可能一台伺服器又做這個又做那個,讓使用者有的時候有點摸不清頭腦,特別是在需要找某個軟體的時候比較費時,關於文件軟體的存放上,原本的想法是需要來好好管理下的,本應做出一個清單來讓使用者很方便很清楚的看到需要的軟體的存放在什麼位置,這點欠缺還是急需改進的。這里提到一個殺毒的問題。在接手的時候,這些伺服器以前就聽說比較慢啊,死機啊什麼的等等抱怨。首先我從硬體入手,比如大家常用的多人需要調試的伺服器,給他加上內存。機箱內部灰塵等等清理,夏天需要散熱。再次是軟體清理,過程中發現了嚴重了問題,由於部分伺服器安裝的都是瑞星,金山等殺毒軟體,且有的病毒庫都是很老的沒有更新了,有的機器甚至沒有殺毒軟體。不是我不相信瑞星,金山等的殺毒,現實的情況是一些毒這些國產的殺毒軟體都沒有能檢測出來。所以我給伺服器都安裝了我比較信賴卡巴斯基,最終殺出了N個病毒,成千上萬確實,這是一個比較恐怖的事情。甚者,有的毒無法清除,且感染了許多文件,最後找了些工具加上自己寫些腳本把這些毒清除了。可見伺服器疏於管理,不好好照顧問題還是很多,如此會給大家的生產開發效率上明顯打折。伺服器的維護任重道遠。【VSS設計安裝 VSS設計講座】老的VSS伺服器機器性能老化,使用人多,文件比較亂,加上公司的人員調整重新分配,VSS更顯得亂了。去日本的同事回來介紹經驗說日本的VSS管理很好,至少讓人打開VSS很清爽,需要找什麼資料都很容易方便,各種文檔資料都分門別類。所以決定我們安裝一台新的VSS伺服器,對目錄層次等等都重新進行規劃調整。經過幾次會議後,決定實施。對於目錄的大結構大家集思廣益,模仿學習日本的VSS的優點。對於內部細節的目錄我對以往的VSS結構進行抽取分析加工,最終定為目前的情況。也將在使用過程中繼續的完善。大家使用後的回饋感覺比以前的VSS清楚多了,速度也快了很多。使用之前給我為大家安排了一次講座,主要是關於新的VSS的說明,結構目錄等等,存放以及注意點。在准備的過程中我自己也學到了很多,可能說到VSS,大家覺得都很簡單,也就那幾個操作,但是你詳詳細細了解他的絕大多數功能嘛?對於伺服器的安裝,需要注意帳號的移植,數據的備份這些都是相當重要的。我們開發測試辦公等等一系列的工作出來的產品最終都是在VSS上的各種文檔,關於備份我想了個機制,就是寫了個批處理的命令,定時任務,這樣他可以每天都將數據備份到他機上,每周也將備份一次。這樣做到天備份和周備份這樣的保險措施。在講座過程中有個不好的現象,可能是大家覺得簡單是沒有認真聽,還是沒有聽到,對於需要設置VSS的臨時目錄到自己的本機上而不是伺服器上這個問題時(這樣可以減輕伺服器的壓力),在會上已經給大家講述了,但是會後還是有同事沒有設置。我覺得在講座這個問題上先不說你辜負不辜負別人的勞動成果上,至少您應該虛心一點,你知道了這些個全部你便不屑去聽,我想還是虛心一點總有你不知道的地方,總有別人對這個問題的不同的看法。【信息安全】 參加了幾次信息安全員的培訓課程,公司現在正在准備取得這個認證。我感覺這個東西還是很需要的,且真真實實是我們在工作的過程中要注意的,不能為拿到某些資質認證而去做這件事,拿到之後現實又是一番不按規矩辦事的方式,這就沒有起到效果。信息安全很重要,我覺得應該是讓大家都能有這樣一個意識,然後配合上管理制度等等來把公司管理好。【機器維護,網線製作】今年又來新的員工,這些布線,做線的任務都我包辦拉。還有機器的維護,假如不忙的話這些時間我都代辦拉。還有公司的網路,有段時間總是掉線等等,感覺還是以往疏於維護吧,很有必要的多多關心關注他。【網路環境】另個小部門剛剛組建,對於網路維護一塊請我去幫了忙,也算是又實踐一回,由於這個部門的人員不多,起初想照搬我們這里的網路方式,在結果分析之後,我覺得沒有必要。現行的我們的網路環境由於人員多,管理起來比較復雜,照搬到他們只有幾個人的地方不太實用。在安裝了郵件以及域伺服器之後,我對他們使用的路由直接進行配置限定等操作,完成那裡的網路管理,對上網的限制可以通過簡單的代理來解決。【燒烤軟體】公司組織去燒烤了,大家的攝影作品想弄個投票系統,時間緊我也算七拼八湊搞一個,至於效果怎麼樣也不得而知拉。我覺得這樣的東西可能大家平時閑的時候可以自己開發幾個自己玩玩,真正需要用的時候改進下就可以服務於大家,那樣很好。【新人培訓】今年公司的又招了新人,我參加了部分的培訓,可以算有點辛苦,但是更希望的是不要讓辛苦白費,期間我覺得可能培訓的時間不太合適,正好准備開始講了,這些都是他們需要在以後工作中要注意的。但是新人正趕上自己學校的畢業設計等等不能好好的聽講,或是常常請假,這樣培訓就不能很順利的開展,我也不得不來一個人重復一邊講座。當然培訓不能指望把所有的東西都教給他們,只是個引子教給入門的方法。我想對於新人這幾天的培訓還是很重要的。希望能夠時間上能夠協調下。【新的環境配置】 業務增加的需要,又得增加伺服器,於是從老的替換下來的開發機器挑選了幾台做伺服器用,對於這些伺服器的用途,安裝調試備份我都參與其中,這也需要調動大家的力量,在此感謝下***,***。我們討論研究實施最終能把增加的伺服器負責好。還是希望這幾台機器的性能能夠好點,畢竟用最慢最老的機器來做伺服器總歸不太好。【202布線】 年底我們搬家到了樓上,早先的一些個布線等事情,我跟王老師一起探討設計了一翻。我對公司現有的伺服器交換機進行統計,協調,最終在沒有增加硬體成本的基礎上,把網路線電話線一塊順利部署完畢。這次的布線,也是很有條理的,工人對每個線都貼上了標記,這樣便於以後查找錯誤的線路。事畢我對整個布線,座位,布置圖進行了VISIO繪制存檔。 總的來說今年首先在本組內能做好自己的本職工作,技術得到了鞏固提高,看待問題更加全面,但是有的情況下不能犯經驗主義。在支援別的組內能給大家建議意見看法。在伺服器管理等領域能發揮所長,盡職盡責,我對自己今年還算滿意。團隊合作,交流協調 一切事務都離不開團隊,個人無法稱英雄。在平時的工作中極其要求好好地交流,這對加強彼此的了解,對問題的共識,解決問題的方法上可以很好的統一起來。這一年一直在給予強化組里,leader**一貫是個優秀,負責,認真的好leader。對於一些問題她總是不厭其煩的要把問題弄清楚不能模模糊糊就放過去,至少要得到日方的說法或者確認。在這過程中也不是說我們都是風平浪靜的,我們之間也有爭論,有的時候為了程序,為了彼此的看法有點鬧小情緒。但是我們都能靜下心來,把問題客觀平靜的去分析到底該如何解決而不必夾雜個人的情感進去,如此一年我算工作的很開心,很慶幸有這樣的leader,有這樣人性化管理的**老師領導。工作態度在這一年有一個感受,就是不能總帶著老眼光去看待員工,可能某個人剛進公司他懂的不多,這問那問,並且常常分析問題解決問題總是出錯,但至少經過了這些年的成長自己水平也不斷提高,所以不能總帶有鄙夷的眼光去看待他們,我也從來沒有過這樣的想法。也許你目前是比別人多知道一點,但是還是應該虛心一點,就技術問題去分享給大家,而不要知道皮毛就來鄙視別人。給我的最大的感觸就是一定要好好的去聆聽,每個人對待問題的看法,不管他的看法對還是不對,合理與否,或者考慮的角度是否確切,都要好好地聆聽,至少至少要等他說完,如果你帶有鄙夷的色彩可能你都不願意後者不屑聽完他說的話,但是靜下心來你或許也能發現他看問題的某些角度是你沒有考慮過的,他想的某些方面也許確實是要注意到的。靜心!聆聽!日語能力 今年又參加日語考試拉。感覺還是有點遺憾,可能個人原因作祟比較懶惰,也許是有點懼怕,公司也給大家創造了良好的環境,小寶也給大家精心准備了資料。各個leader也平時常常督促大家好好准備。會話課程我覺得的開展的很好,我真想說要是更早點開展就好了。真正考試的時候可能發覺考試並沒有想像的那麼難的高不可攀,只要平時好好准備了都應該有收獲。明年繼續加油吧,功在平時,繼續努力。新的一年工作展望 新的一年繼續努力,繼續提升自己的實力。日語技術都要雙重進步。對公司的意見和建議 這一年,在大家的要求下公司對公積金進行了調整。是該感謝呢還是又沉浸在遺憾之中。要是對於依靠公積金來買房的話,依然是杯水車薪。當然光靠公積金這也是不現實的。 在公司也有2年多了,應該說是有感情了。平時自己的付出可能都不去怎麼計較。但是我們這個年齡段面臨結婚買房等等人事大事,所以也不得不逼著我們「俗」一吧,不得不把自己的目標「赤果果」地轉向金錢,干什麼都需要錢大量的錢。也許大家在感受領工資的喜悅的時候,還很想自己冠以白領身份的時候,我們夠格嘛?「白領」-恐怕意義就是領了工資等於白領。物價飛漲,工資增速趕不上CPI。先不談咱們還屬於科技人員,常常感嘆自己有時還不如民工。公司當然不能轉嫁這些社會問題,公司不是政府。所以依然希望公司是個救世主,至少應該管理照顧好我們這幫平時為公司賣力的奉獻青春的人兒。 我常常的方式並不喜歡主動去「赤果果」地談應該拿多少薪水的問題,我總希望大家努力的工作,不帶目的性地去默默奉獻,好歹年終能夠得到公司的承認認可。默默奉獻的人公司里有很多很多,什麼時候能夠讓大家回家過年都能滿載風光呢?我期待。 也許公司有公司的戰略角度,但是在猶豫在戰略的時候你是否忽略了人的情感,人的需要呢,每一個員工組成了公司的主體,一切不是以人為本嘛?等你拿的出方案實施的時候,人已期待的心灰意冷不抱希望,甚至黯然離去。這是他的損失還是公司的損失,也許這不是人為有意的卻讓公司成了跳板,我想至少決策制度上是否也存在問題呢? 說難聽的在你幹了類似多份人的工作,難的煩的事情都一股腦兒丟給你。結果拿到的薪水僅僅是象徵性的多了那麼一丁點,你對誰去抱怨呢,對程序對事情?逼急了誰願做誰做去。試想如果有一定明顯的激勵措施,我想以上的這種情形當事者的心態完全可以180度吧。也許我是在這里紙上談兵,異想天開。我僅僅希望公司能夠重視大家的待遇問題,也許你覺得給的夠多了,就不能更多嘛!大家工作的熱情,動力都等著激發。
Ⅱ 程序員需要學些什麼
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
會編程、會計算機語言就能加入互聯網發展大潮中,享受數字經濟發展的紅利,一時間社會上的程序員培訓機構都變得格外火爆。
但是現在,專家的數據分析結果告訴你:若想跟上數字經濟發展的步伐,光會編程可不行,這個行業現在緊缺高端的、綜合型人才。
11月22日下午,清華大學經管學院互聯網發展與治理研究中心與領英聯合發布《中國經濟的數字化轉型:人才與就業》,揭示我國數字人才現狀與趨勢。
報告顯示我國數字經濟發展面臨人才短缺的挑戰,但這種短缺主要體現在擁有中高級專業技能數字人才的比例不高,擁有人工智慧、智能製造等前沿技術的人才更是少之又少。
與美國、英國、加拿大等國家相比,中國的數字人才儲備尚有很大差距。
此外,報告根據對人才需求的數據分析,結果顯示我國數字人才的技能需求不再強調單一編程技能,更加看重技術、管理和領導力等綜合技能。
2015年,我國從事信息傳輸、軟體和信息技術服務相關工作的人數約350萬,但其中中高端人才,特別是前沿技術的數字人才並不多。根據領英中國智庫的研究,在人工智慧領域,美國的從業者數量在85萬人以上,印度15萬,英國14萬,中國只有5萬多人。
報告負責人、清華大學經濟管理學院副院長陳煜波教授表示,我國目前在大數據與人工智慧領域人才缺口明顯。
他解釋說,目前中國85%以上的數字人才分布在產品研發類,而深度分析、先進製造、數字營銷等職能的人才加起來只有不到5%,存在較大缺口,新興技術人才和創新型人才培養方面存在滯後和不足。
這份研究報告的基礎數據來自領英在中國的3600萬個人用戶,這些用戶畢業於1.5萬多所國內外院校,分布在36.4萬家企業,擁有超過2.3萬項技能。
陳煜波研究團隊從中篩選了72萬數字人才,多維度提取用戶畫像並跟蹤其職業軌跡,以此預測不同地區的人才流向、僱傭率、受僱主歡迎的技能等人才趨勢層面的信息。
陳煜波說,根據數據分析結果,整體來看,雖然編程技能和數據分析技能需求占據主導,然而隨著數字產業走向成熟,企業除了強調編程技能,也逐步更加看重人才的技術、管理和領導力等綜合技能。
近年間,項目管理、產品運營等「技術+管理」類技能的需求呈現出明顯的上升趨勢,懂技術、懂管理的人才被認為是「一將難求」。
領英中國代理總裁曾志恆也提醒,如果你有興趣向數字職能轉型,不能僅僅專注於自己的技術能力,溝通和領導力等軟性技能將成為你脫穎而出的關鍵。
陳煜波希望這些研究結果能為教育行業和政府部門提供借鑒。他說,教育行業可根據職位的供需趨勢更好地規劃人才培養的方向,政府也可更好地了解人才流動方向、技術缺口等,以此制定有針對性的引才策略。
程序員崗位職責:
1、對項目經理負責,負責軟體項目的詳細設計、編碼和內部測試的組織實施,對小型軟體項目兼任系統分析工作,完成分配項目的實施和技術支持工作。
2、協助項目經理和相關人員同客戶進行溝通,保持良好的客戶關系。
3、參與需求調研、項目可行性分析、技術可行性分析和需求分析。
4、熟悉並熟練掌握交付軟體部開發的軟體項目的相關軟體技術。
5、負責向項目經理及時反饋軟體開發中的情況,並根據實際情況提出改進建議。
6、參與軟體開發和維護過程中重大技術問題的解決,參與軟體首次安裝調試、數據割接、用戶培訓和項目推廣。
7、負責相關技術文檔的擬訂。
8、負責對業務領域內的技術發展動態進行分析研究。
相關書籍:
很多程序員響應,他們在推薦時也寫下自己的評語。 以前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本之外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
1、《代碼大全》 史蒂夫·邁克康奈爾
2、《程序員修煉之道》
3、《計算機程序的構造和解釋》
4、《演算法導論》
5、《重構:改善既有代碼的設計》
6、《設計模式》
7、《人月神話》
8、《計算機程序設計藝術》
9、《編譯原理》(龍書)
10、《活著》
Ⅲ 電腦程序員要學什麼知識
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
1、掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
2、理解計算機的組成以及各主要部件的性能指標;
3、掌握操作系統、程序設計語言的基礎知識;
4、熟練掌握計算機常用辦公軟體的基本操作方法;
5、熟練掌握基本數據結構和常用演算法;
6、熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
7、熟悉資料庫、網路和多媒體的基礎知識;
8、掌握軟體工程的基礎知識,了解軟體過程基本知識、軟體開發項目管理的常識;
9、了解常用信息技術標准、安全性,以及有關法律、法規的基本知識;
10、了解信息化、計算機應用的基礎知識;
11、正確閱讀和理解計算機領域的簡單英文資料。
程序員必備技能:
1、熟練開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C++編寫。
而JAVA的跨平台和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。
其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程序員對象模型的概念。
另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
2、熟知資料庫
作為程序員,他們自然有自己的理由:很多應用程序都是以資料庫的數據為中心,而資料庫的產品也有不少,其中關系型資料庫仍是主流形式,所以程序員至少熟練掌握一兩種資料庫,對關系型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。
雖然很多資料庫產品提供了可視化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQL,Postgres等。
3、了解操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。
要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。
Linux作為開發源碼的操作系統,是一個很好的學習平台,Linux幾乎具備了所有現代操作系統的特徵。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。懂得網路協議TCP/IP。
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體運行的模式。
從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網路協議支持,深入掌握TCP/IP協議是非常必要的。
至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
4、明白DCOM/CORBA/XML/WEBServices存在的意義
隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分布計算的中間平台,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。
XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的「世界語」,是分布式計算的基石之一。
5、不要將軟體工程與CMM分開
大型軟體系統的開發中,工程化的開發控製取代個人英雄主義,成為軟體系統成功的保證,一個編程高手並不一定是一個優秀的程序員。
一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟體工程思想有機結合,編程只是軟體生命周期中的其中一環,優秀的程序員應該掌握軟體開發各個階段的基本技能。
如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。
6、需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求。
要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
7、模塊化思維能力
作為一個優秀的程序員,他的思想不能局限在當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。
這樣做可以使代碼能重復利用,減少重復的勞動,也能使系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
就業方向:
1、網路開發
現在網路已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網路開發方面。
2、企業軟體開發
JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發。
3、系統軟體
C語言、C++、Object-C這些軟體更多是用在系統軟體開發,嵌入式開發的方面。
當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
Ⅳ 程序員怎麼寫每日總結
比如今天安排了什麼計劃,計劃實現到了哪裡,中間有什麼問題出現,問題解決沒有(解決了參考了什麼資料;;沒解決打算參考什麼資料解決),通過問題有沒有學到什麼新的知識或者通過問題覺得自己還有什麼不足。。。其實按理說不應該是程序員寫每日總結,如果你有習慣寫總結的話最好寫寫每日總結而不是只按照程序員的身份,而是按照自身的情況。程序員只是一個職業,並不代表你一生都要做這個職業,更多的是在每日總結中發現自己的不足而去學習更多的知識
Ⅳ C程序員怎麼學習
一、知識點學習
①字元串
1、strlen()函數的返回值是什麼類型的?
2、字元串strlen() 的值,是否和他占據的內存空間相同?
3、你是否知道strcpy 函數存在的潛在風險?如何避免?
4、如果一個字元串沒有字元串結束符,而調用str 開頭的庫函數,會發生什麼?
5、Strcpy(),strcat(),strcmp(),strncpy(),strncat(),strncmp()內部到底是如何運行的?這些函數到底對源字元串和目標字元串做了些什麼?你是否觀察過它們運行時兩個字元串內存的變化?
6、上面這些函數使用時,各有哪些需要注意的地方?
7、你會幾種字元串查找操作?
8、c語言中有字元串這個數據類型嗎?
9、對字元串進行操作的時候,是否為字元串結尾符預留存儲位置?不然的話容易造成非常訪問內存。
二、數組
1、你肯定知道,定義「int a[10]; 」, a[10] 這個元素是無效的。
2、你知道幾種數組初始化的方法?
3、數組和指針有千絲萬縷的聯系而又不同,你是否對他們在不同情況下的使用進行過詳細的總結?
4、「int calendar[10][20]; 」,這是一個什麼樣的數組?它擁有 10 數組類型的元素,還是 20 個?
5、「int a[10]; 」,數組名 a 在本質上是一個什麼?你是否列印過 a 的值?
6、你知道幾種獲取數組某元素的方法?
7、指針和數組相同嗎?什麼時候相同?什麼時候不同?
8、用指針和下標訪問數組元素,那種方式更快?
三、結構體
1、你知道什麼是位域結構體嗎?如何定義它?如何使用它?
2、你知道位元組對齊對結構體佔用內存空間大小的影響嗎?如何計算結構體佔用內存的大小?
四、宏
1、你知道宏的本質是什麼嗎?函數?語句?類型定義?或者其他?
2、你知道語言設計者為什麼設計宏嗎?這些原因目前是否仍然成立?
3、你會設計帶有參數的宏嗎?
4、你知道使用宏的參數的的時候的注意事項嗎?
5、你會設計帶有可變參數的宏嗎?
6、你知道使用宏有什麼劣勢嗎?
7、你有沒有更好的替代方案?
五、枚舉
1、是否可以指定枚舉中各項的值?
2、如果不指定值,枚舉的第一個值是多少?
3、枚舉的值是否可以是負數?
4、定義枚舉的時候,你是否專門定義了枚舉的最小值和最大值?
六、switch
1、switch©中的 c 的數據類型有哪些?
2、你是否在所有的switch 中都加了 default 語句?
3、是否在所有的case 中都加了 break 語句(一般情況的做法)?如果你不加 break ,將會發生什麼?
七、static
1、static的三個主要作用是什麼?
2、static的修飾的局部變數是保存在什麼地方的?全局變數哪 ?
3、static修飾的全局變數和函數,在其他的文件中是否可以訪問?如何訪問?
4、你知道static 是 c 語言中實現封裝和隱藏的利器嗎?你是否經常使用?
5、定義在不同源文件中的static 全局變數,編譯器是否允許他們的變數名稱相同?他們在內存中的地址是否相同?函數那?
八、const
1、你是否經常使用const 來表明不能夠被更改的變數?
2、你是否經常使用const 常量來代替宏?
3、下面四種情況,你知道是各表示什麼意思嗎?
int i_value= 10;
const int* pvalue = & i_value
int const *pvalue = & i_value
int* const pvalue=& i_value
const int* const pvalue =& i_value
4、你知道const 常量如何初始化嗎?
九、sizeof
1、對於字元數組,strlen 和 sizeof 的值是否相同?
2、S izeof本質上是函數還是宏?
3、S izeof的返回值是什麼類型?
十、指針
1、「int *p; 」 &p , p , *p 他們的值分別表示什麼含義?
2、你定義的指針初始化了沒?
3、你理解指針的指針的概念嗎?你會使用嗎?
4、「int *pi_value; pi_value = 0x100000; 」 pi_value + 1 的值是是多少?
5、你會定義函數指針嗎?
6、你會使用函數指針調用函數嗎?
7、關於指針和數組,請參見知識點數組。
十一、動態分配內存
1、動態分配的內存是保存在什麼地方的?
2、什麼情況下使用動態分配內存?
3、動態申請內存一定要釋放,否則會內存泄露。你是否使用過內存檢測工具?
十二、函數
1、如何查看函數在內存中的地址?
2、如何給一個函數指針賦值?
3、你是否會定義可變入參函數
4、你是否可以區分函數的形參與實參?
5、如何定義函數名,以准確的表達函數的用途?
6、你是否使用const 來修飾函數入參和返回值,以表的特定的含義?
7、遞歸如何使用?
十三、變數
1、全局變數,局部變數,常量分別保存在內存中的什麼地方?
2、不同類型的變數,你是否知道其作用域?
3、全局變數和局部變數是否可以重名?你是否在這樣做?
4、局部變數在函數退出後是否有效,為什麼?
5、全局變數為什麼不允許定義在頭文件中?有何危害?
十四、連接(Linux)
1、鏈接位於編譯過程的那個階段?
2、動態鏈接庫和靜態鏈接庫使用時有何區別?
3、如何 對 動態鏈接庫 進行 動態載入 (不用重啟程序而載入鏈接庫)?
4、動態鏈接有何優點?
5、動態鏈接庫中是否定義了非static 的全局變數?你是否知道這是一個非常危險的動作?
6、動態庫中的全局變數(非static )和函數(非 static )是否可以和上層全局變數和函數重名?重名後會發生什麼事情?
十五、運行時的數據結構(Linux)
1、你知道什麼是段的概念嗎?
2、可執行程序可以分為幾個段?每個段保存的是什麼內容?
3、如何查看可執行程序各個段的大小?
4、當函數被調用時發生了什麼?
5、你有沒有試過程序的棧空間最大有多大?程序超過此大小會發生什麼?
6、你使用的系統的棧是向下生長的,還是向上生長的?
十六、Include
1、如何避免對同一頭文件的多次include ?
十七、聲明
1、什麼是 聲明 ,什麼是定義?
2、你是否會運用c 語言聲明的優先順序規則?
十八、關於 復雜度 :
1、軟體的首要技術使命 是 管理復雜度。
2、優秀程序員的 一個特質 是將復雜的事情簡單化,而非將簡單的問題復雜化。所以,他們一般會選擇簡單的解決方案。
3、極盡機巧,復雜的解決方案,除了將新手搞得暈頭轉向之外,別無他用。
4、閱讀優秀程序員的代碼,是一種享受,你很少遇到思維的阻力,你可以盡情的享受簡單之美。
Ⅵ 游戲程序員需要學什麼
首先讓我們來談談什麼是程序員,以及程序員需要做哪些事情?
選擇做程序員,是源於真正意義上的興趣和喜歡,在做程序員的這幾年,我的生活也在一步步的提升,但同樣,不可否認在我個人眼裡,程序員的工作就像選擇其他種類的工作一樣,只是一份職業,一種在社會上存身立足的手段。
在校時,以及工作後都曾這么的想過:做一個IT從業人員,做一個程序員,做上個一二年,然後向提升下,做一個項目經理什麼的。或許,可以開一家自己的小軟體公司,或許做一名軟體顧問,再或許開一個網站,開發一個自己的小軟體。或者,真的不行的,利用做程序員這幾年的積蓄做一些小買賣 轉行另謀生計。總之,感覺做程序開發將是人生的一個過渡,可若真的按這種思路過渡,就將是用我人生的青春年華大好時光的五六年,或者更多時間。
下面一些事情是做程序員必須思考的:
(一) 你適合當程序員嗎,你知道編程序是怎麼回事嗎?
1、 程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老闆發薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)
2、你是學文的還是學理的,編程序也許需要浪漫,但更需要邏輯和嚴謹。(說坦白點就是,在你沒有找到樂趣以前,它很枯燥)
3、你有對新技術追求的熱情嗎?你有刨根問底的探索精神嗎?(熱情絕對是最重要的!你仔細思考一下自己的性格適合當程序員嗎?)
4、當程序員決不是什麼好差事,時刻需要學習,需要思考。(直到你成為那個可以引導別人去學習和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)
5、程序員的未來很迷茫。(但我認為關鍵看你自己!我希望你是一個有追求的人,不僅僅是混碗飯吃。因為真正的樂趣在於創造;如果你能改變軟體業的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie和 Bjarne Stroustrup,我會說你沒有追求。
6、當程序員還是很有樂趣的。(當你學到新知識時,當你有新的思想見解時,當你有新的產品問世時,和知己探討你的成果時…我問你,覺得這些是樂趣嗎?)
7、當程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)
8、你捨得花錢買書嗎?(讀好書絕對是學習編程的最佳捷徑。你一定會說,現在電腦書籍真他媽的貴,沒法子,誰讓知識和技術在人家的腦袋,在人家的書里呢;等你寫書時可以把價格定低一點,記著還有好多沒錢但想買書的兄弟很困難呀。要捨得買書,買好書,不好的的書不如不讀,其害大於其益,關於買什麼書,你可以問高手或看候捷的書評;准備一個小本子記錄你想買的書的名字,逛書店時看看,如果好就買下,記住要讀,別光買不看。)
9、我告訴你,程序就是:任何有目的的、預想好的動作序列,它是一種軟體。
10、編程序就是編寫程序。
11、你想好了嗎?(如果你想好了還是決定要當程序員,可以繼續往下讀;否則,你可以繼續尋找別的出路了。)
(二) 作為一個合格程序員每天該做的事是什麼
1、總結自己一天任務的完成情況
最好的方式是寫工作日誌,把自己今天完成了什麼事情,遇見了什麼問題都記錄下來,日後翻看好處多多;
2、考慮自己明天應該做的主要工作
把明天要做的事情列出來,並按照優先順序排列,第二天應該把自己效率最高的時間分配給最重要的工作;
3、考慮自己一天工作中失誤的地方,並想出避免下一次再犯的方法
出錯不要緊,最重要的是不要重復犯相同的錯誤,那是愚蠢;
4、考慮自己一天工作完成的質量和效率能否還能提高
一天只提高1%,365天你的效率就能提高多少倍你知道嗎?(1+0.01)*365 = 37 倍;
5、看一個有用的新聞網站或讀一張有用的報紙,了解業界動態
閉門造車是不行的,了解一下別人都在做什麼,對自己能帶來很多啟示;
6、記住一位同事的名字及其特點
你認識公司的所有同事嗎?你了解他們嗎?
7、清理自己的代碼
今天完成的代碼,把中間的調試信息,測試代碼清理掉,按照編碼風格整理好,注釋都寫好了嗎?
8、清理自己的桌面
當日事當日畢,保持清潔干凈的桌面才能讓你工作時不分心,程序員特別要把電腦的桌面清理干凈;
Ⅶ java程序員怎麼總結自己花的技術
接下來就沒有固定模式了,你的第一家企業對你的影響會很大,我見識過爛企業是如何毀新人的,用著設計惡劣的架構,老掉牙的技術,不斷地耽誤新人的成長,有的員工在這種企業一呆數年,思維已經完全被錯誤觀點定型,深陷於公司業務和老系統中疲於奔命,看似能解決問題,卻無法給公司帶來真正的進步,就像一個用了數年砍刀的人,就算再熟練,刀法再好,也打不過用槍的。如果離開了這個公司,恐怕很難在這個行業再立足。記得有個說法很好,一個人用10年的時間重復做頭一兩年做的事,你的真實工作經驗其實還是一兩年。爛公司的老員工就是如此。在這頭一年裡,定個標准吧,你應該能做到的有:
1、把一些常用的瑣碎技術學會了,比如xml的作用和實際運用,如何操作文件,如何運用日誌,如何簡化封裝常用的工具類,比如日期操作、編碼處理、分頁模塊等等,這些小東西會佔用你大量的時間去處理摸索。
2、把資料庫用好。資料庫不是會增刪改查就可以了的,你要關注事務設置是否合理,是否有可能產生臟數據,是否要動用樂觀鎖悲觀鎖等等,重要數據出了錯,無論是技術上還是業務上都是很麻煩的事。
3、懂得什麼是集群,什麼是分布式,懂得怎麼向別的系統發請求,交換數據,webservice。
4、如果你也寫頁面,你要會用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無刷新的頁面操作以及AJAX請求。
第一年能達到這個程度,你絕對已經在平均水準之上了。在我達到這個水平時,我有種似乎一切網站開發都不在話下的感覺,當然後來我很快就發現了我還差得太遠太遠....這個階段想面個高薪的工作還是很難的,只能說達到溫飽線了,不用為柴米油鹽發愁。
下一個階段,你應該考慮你的代碼質量了。
1、多線程和非同步、並發的概念會忽然變得很重要,因為在一個對性能有要求的系統里,是不會允許你把各種瑣事都排著隊一件件去辦的,你不能老寫些a方法調b方法再調c方法再調d方法然後返回的代碼。你開始想起有隊列這種東西,有runable這種東西,你開始覺得自己的代碼高端起來了,和當年的增刪改查程序員有天壤之別。但同時麻煩也來了,你開始遇到線程安全問題,尤其是當你的程序跑在一個多機環境而不是單機環境里的時候,你會對這些很頭痛。對於這些問題,Jms技術是個很有代表性的東西,當然並不像ssh那麼常用。
2、你會發現資料庫性能實在不行,出於不甘現狀,或者趕時髦,你該去了解nosql了,memcached redis mongodb,眼花繚亂,沒關系,試著用用,能很好地緩解mysql之類關系資料庫的壓力。
3、出於公司某些業務需要,你可能會鑽研一個特定技術領域,比如全文搜索技術,lucene\solr,比如工作流jbpm,比如許可權系統,單點登陸之類的,又或者某些特定業務領域的演算法研究,這些是你的加分項。
4、你開始發現你的代碼很亂,久了以後自己都看不懂,重復的,難以重用的代碼堆積如山,不想維護,BUG百出。於是你要開始重視設計模式,合理地改造下自己的代碼習慣,不再被僵化的SSH,MVC三層架構束縛住。
5、Google和各種資料是你進步的動力,極少再遇到必須請教別人才能解決的問題,如果你這個階段還老是問別人,你的技術生涯也就快到頭了。
這個階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領水平,至少接近了。
Ⅷ 零基礎小白如何成為程序員需要學習哪些內容
自學編程沒那麼難。只要是理工科學生,邏輯思維好的朋友,都可以開始編程。這里有六種方法可以和你的朋友分享自學編程。這些方法足以幫助您入門和進階:0.書籍+視頻可能是學習編程最好的方式,對於初學者來說,可以通過視頻+書籍來學習。這兩種方式形成互補關系。編程教學視頻可以幫助你快速掌握編程,但通常比較生動,簡單,不系統。書是系統的,透徹的,枯燥的,所以最好的方法就是把書和視頻結合起來。
5.反復練習。編程是一門手藝,需要反復練習。沒有書和視頻能獨立實現嗎?學習的最終狀態無非就是:我沒有他,但是我的手很熟悉。近年來,IT行業變化很快。我們可以大致感受到我們使用的手機和互聯網產品的變化。我們從原來的非智能手機遷移到iPhone和安卓手機。我們從去網吧買電腦變成了6G內存2GHz的智能手機(已經超過了2010年的電腦配置)。
我們從大型PC游戲轉到了手機游戲。我們的每部手機都有將近100個應用。我們用過很多微信官方賬號,微店,mini 程序和mini游戲。我們從5元3000萬變成了隨時隨地刷小視頻,直播。我們很少用現金,因為我們不得不拿錢包取錢,有時我們想拿出10元錢,但我們真的沒有……豐富的互聯網產品(應用程序、H5、小程序、游戲等)背後。),IT其實是由日新月異的IT技術支撐的。
所以作為程序,你必須不斷學習,學習公司需要的任何技術。工作幾年,堅持學習也不算太累。畢竟經歷了幾年,很多東西都很熟悉。零基礎如何自學編程?成為/kloc-0成員需要具備哪些技能?這些年來,我開發了各種東西,做了各種編程工作。伺服器後端程序已經開發出來,需要幾種編程語言:JAVA、PHP、Node.js、Python、SQL等。已經開發了PC網頁和H5,需要Javascript,CSS3,HTML5等。開發了一個App,你需要用JAVA,SQL,HTML5。
我們開發了微信small 程序,需要CSS,Javascript,HTML等等。開發過計算機軟體,需要用到C#、Javascript、C++等。為什麼要學那麼多技術?因為不同的編程語言有不同的長處。比如玩游戲,Unity很成熟很快,很多知名游戲都是用它開發的,所以開發游戲的時候幾乎很多公司都在用它,程序會員一定要學。移動APP的開發主要使用JAVA、Swift、OC等編程語言,開發App必須學習這些編程語言。零基礎如何自學編程?成為/kloc-0成員需要具備哪些技能?
沒有接觸過技術開發的人還是不知道為什麼需要這么多編程語言。這么說吧:翻譯跟英國人說話要說英語,跟西班牙人說話要說西班牙語,跟我們說話要說中文。IT技術的編程語言和我們說的語言類似,不同的領域需要不同的語言。說了這么多,大家都知道程序員工在工作中需要的技能,以及會發展什麼。
我再簡單總結一下::程序工作人員必須掌握自己崗位的編程語言。比如做安卓APP,一定要掌握JAVA。一般掌握編程語言是不夠的。為了提高開發速度,還必須了解各種框架和庫。程序員工將發展什麼?會開發APP,網站,電腦軟體,微信程序等等。不過應該說,行業是有特長的,並不是所有的程序工作人員都能開發應用、網站、小程序…有些人只能懂一門技術,但可以是專家,比如資料庫專家。而且這些年我也只是個打雜的,但是各種發展都會...更多的雜工,僅此而已。
Ⅸ 程序員總結:小白如何去學習web前端
小白學習web前端一般是兩種方式:一是自學,而是培訓
自學需要很強的自製力並且要堅持學,時間消耗比較久。有基礎的自學,想在IT行業找個不錯的工作也要一年半載,你是小白時間肯定更久了。並且,自學web前端的基礎入門階段可能還行,後面的高級階段框架估計就難了。最主要的是,自學遇到技術難題,沒法解決,容易打擊學習的積極性,效果不好。
培訓時間短,一般四五個月就可以學好。有一群人跟你一起學,還可以互相討論共同進步。並且,遇到技術難題能隨時解決,學習效果要比自學好。培訓最好選擇面授的,學的更全面一些,學習效果也更好一些。
不管選擇哪種方式學前端,最主要的還是靠自己,你付出的努力越多,收獲的肯定也更多。