『壹』 程序員的基礎知識要哪些
程序員這個范圍很大,可以這樣細分一下:
基本要求:
和Web相關的:
HTML、CSS、JavaScript(熟悉這些)
和桌面程序相關:
了解熟練 WPF、QT等界面設計類庫
系統API,WindowApi等
『貳』 程序員分幾種,做程序員應具備什麼樣的基礎知識
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限並不非常清楚,特別是在中國。
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力
團隊精神和協作能力是作為一個程序員應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
2:文檔習慣
文檔是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為代碼程序員,必須將30%的工作時間寫用於技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣
知名軟體公司的代碼的變數命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不同技術人員之間的協作。 一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力
程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟體的功能需求,還應注意軟體的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力
作為一個優秀的程序員,他的思想不能在局限當前的工作任務裡面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣
測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力
程序員是很容易被淘汰的職業,所以要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善於學習的程序員會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程序員升級為軟體設計師、系統分析員。
作為高級程序員,除了應該具備上述全部素質之外,還需要具備以下素質:
1、 需求分析能力
2、 整體框架能力
3、 流程處理能力
4、 模塊分解能力
5、 整體項目評估能力
6、 團隊組織管理能力
1,激情。
我曾經遇到許多「職業程序員」,他們從事IT是因為覺得這是一種職業,他們只在工作時間編程,除非送去培訓否則他們不會學習新東西,這不是好的程序員。我認為一個好的程序員總是對編程充滿激情,而且好的開發者會做一些編程工作即使這沒有報酬。激情是一個優秀程序員的重要指標。
2,自學好學
編程領域始終發展變化著,不出一年有些新技術就變成了老技術,這並不是說好的程序員要對所有新技術跟進,但有些卻對學習任何新技術都沒有興趣。他們通常在學校學習了編程,然後工作後單位安排學什麼就學什麼。如果在招聘中你聽到「讓我培訓一個星期我就會勝任這個工作」那不要僱傭他。實際上,真正優秀的程序員始終談論著你所不知道的新技術,向人們解釋為什麼你必須用這個技術,哪怕沒有聽眾聽得明白,哪怕他自己也不明白。
3,聰明
聰明包括很多因素,情緒和社會交際只是其中之一。好的程序員絕不木訥,他們是最聰明的人,他們中的許多善於交際,健談、興趣廣泛。
4,隱性的經驗
—好的程序員通。常有自己的私人的一些研究、愛好、項目,而這些是他們不寫在簡歷上 (通常覺得不值得寫),但表現出來卻可能恰恰是他的潛能、深度和後勁所在。
5,技術多樣性
由於好的程序員喜歡學習和涉獵新技術,所以一般來說超過22歲的都熟知很多新技術,而且對多種技術的長短有 「強烈」的個人意見/見解,喜好嘗試新鮮技術。
6,資格證書
資格證書並不是識別真正程序員的方法,MCSE、SCJP、說明不了什麼,它們只是讓別人認識和獲取的,頂多代表這個人在某個技術有一定的知識。
原文作者在文末寫道:以上所說的標准並不是絕對的,因為有些優秀的程序員確實不符合上述,而有些bad程序員卻符合了。但相信這些對大多數真正的程序員都適用。
總結而言,優秀的程序員通常有一下特點:
n 對技術充滿激情;
n 將編程作為一種愛好
n 如果你允許會滔滔不絕地跟你談論技術
n 有過個人的開發經歷(與4意思相同)
n 堅持認為某種技術最好
n 如果讓他用他認為不好的技術他會非常別扭
n 聰明、健談、興趣廣泛
n 在大學和工作前就開始接觸程序
『叄』 我是一個只懂一些電腦最基本操作的人學生,請問若我想學習電腦應從何做起
那看你想學什麼了 學基本操作的話 那就學些辦公軟體把 word excle什麼的應該對你就夠用了
要是想學編程的話 看看我下面的介紹
設備:電腦
你既然喜歡編程,就應該認認真真的學習一門語言,學習微軟的就先從VB開始,VB是比較好的入門語言,可視化的,比較簡單,是非常好的入門語言。書籍最少應該准備兩本,不可能一本書籍會包含VB的所有內容,在看書的時候,可以交叉的看,一本書籍中沒有講到的內容可以在另一本中看到,這樣對學習是很有好處的,也能保證所學知識的完整性。學編程是一個很漫長的過程,不要著急,要理論與實踐想結合,常式書籍也是很重要的,看源代碼對學習也是很有幫助的,等你學完這門VB語言之後,學習別的語言是非常簡單,可以嘗試C語言,按照C——C++——VC的順序學習,有助於知識的連貫性,我也希望你能學好的。
或者學習Delphi,入門較為簡單類似於VB,但比VB強大,即可作為入門又能做強、做大
怎樣學編程
1.明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。
2.打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
(1)數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
(2)邏輯思維能力的培養學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。
(3)選擇一種合適的入門語言 面對各種各樣的語言,應按什麼樣的順序學呢?程序設計工具不外乎如下幾類: 1)本地開發應用軟體開發的工具有:Visual Basic 、Delphi 、VC++ ( C++ Builder ) 等;資料庫開發工具有:Visual Foxpro 、Oracle Developer 、Power Builder 等。 2)跨平台開發開發工具如 Java 等。 3)網路開發對客戶端開發工具如:Java Script 等;對伺服器開發工具如:PHP 、ASP 、JSP 、ISAPI 、NSAPI 、CGI 等。以上不同的環境下幾種開發工具中 VB 法簡單並容易理解,界面設計是可設化的,易學、易用。選 VB 作為入門的方向對出學者是較為適合的。
3. 注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針對這些語法、結構的應用例子,做到舉一反三,觸類旁通。
4.掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。例如學習 VC 就要學習 Windows 的內在機理、什麼是線程......;學習 COM 就要知道 VTALBE 、類廠、介面、idl......,關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。
5.多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。
6.養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。
7.上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。例如網站「編程課堂」(http://best.yeah.net/)主要以 VB 和 Delph;教學和交流為主,提供大量實用技巧;網站「現在時編程學園」(http://pshool.yeah.net/)是專門介紹C、VC、VB、Delphi 等的綜合編程網站;網站「 VB 編程樂園 」(http://www.vbeden.com/)提供內容豐富而且實用的編程技術文章、精選控制項、源代碼下載、計算機考試、相關軟體以及編程書籍推薦等等。
8.加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。
『肆』 計算機基礎知識對程序員來說有多重要
非常重要,必須認真學習。
學習基礎知識從來都是枯燥的,而且很多時候會給我們一個錯覺,就是基礎知識沒有用。這主要是因為,我們未來工作以後,更多的是面向應用,更直接的就是面向工具的使用,基礎知識基本是不可能直接拿出來用的,所以,大家就會覺得我只要懂應用方面的知識就好了,基礎知識根本不需要去學。
就拿程序員來舉例:
很多的程序員培訓機構,他們並不會教任何的基礎知識,直接就是教編程語言,然後設計一些案例做練習,3個月-6個月基本就結束。這樣教出來的程序員能夠寫代碼嗎?當然是能的,不然這些培訓機構早垮了。而很多大學本科4年讀完的應屆生,說不定寫代碼都沒有這些培訓幾個月的學生強,大學4年對於程序員來說難道就是白費嗎?
並不是的。
基礎知識決定的是你未來的高度,可能你作為一個初級、中級程序員,你不一定會用到數據結構、演算法、編譯原理。但初中級的程序員就是你未來幾十年的全部嗎?
如果是的,在你30多歲的時候,應該就會面對裁員了並且很難找到下一份工作。
程序員是一個干到老學到老的工作,每天都需要去學習一點新的知識,技術也是在不斷的演進,需要去了解未來的技術發展方向,這樣才能夠一直產生價值。而基礎知識是什麼呢,就是當你對技術了解越深入時,越需要用到的東西。
例如:你要做大數據的工作時,你需要數據建模,需要在海量的數據中抽取自己需要的數據,還需要不影響系統的性能,運算速度更快。那麼你就必須要了解演算法,了解時間復雜度。如果你曾經大學時好好的學習了這些知識,並且時不時會溫習一下,那麼你更高更快的勝任這份工作。
但是,對於一個只是了解應用知識的程序員來說,他需要想辦法學習你用4年時間堆積起來的知識,而且還不一定有可靠的老師能夠教他。
再舉個例子,現在華為需要一些技術人才,來做他方舟編譯器的迭代,待遇非常可觀。
而這時,對於懂數據結構、懂演算法、懂編譯原理的人來說,查的無非就是一些應用實踐的知識,這些知識只要有基礎、有環境,1-2周就可以上手。
但是對於只懂應用知識的人,他可能就是看都看不懂,華為也就不可能去招聘這樣的人。
所以,程序員也是有高低之分的,有的年薪百萬,有的年薪可能就十來萬。誰不想拿百萬年薪呢?可能他們也覺得某些知識沒有用,所以沒有去認真的學吧。
『伍』 作為一個程序員,學習理論知識重要嗎
當然重要了。實踐來自於理論,理論不通怎麼寫得好代碼。
『陸』 電腦程序員要學什麼知識
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
『柒』 只懂點java基本知識能找什麼工作要與之相
在目前的形式看來,找相關java開發的工作基本上是不可能了,因為你這樣的資本是在太多了,找一個讀過書的,學上幾個月也就有了java基礎了,所以沒有什麼競爭優勢!
如果真的很想干這一行,不要限於懂一些基礎知識
『捌』 一個優秀的程序員應該學完哪些計算機理論的知識
1、循環隊列:將隊列存儲空間的最後一個位置繞到第一個位置,形成邏輯上的環狀空間。
2、入隊運算:在循環隊列的隊尾加入一個新元素。上溢:當循環隊列非空,且隊尾指針等於隊頭指針時,說明循環隊列已滿,不能進行入隊運算。
3、退隊運算:在循環隊列的隊頭位置退出一個元素並賦給指定的變數。首先將隊頭指針進一,然後將排頭指針指向的元素賦給指定的變數。下溢:當循環隊列為空時,不能進行退隊運算。
『玖』 作為java程序員,怎麼看待原理性知識
掌握原理性知識還是很重要的.
一: 可以快速切換到其他編程語言, 很多成熟的程序員 , 都具備快速學習其他語言的能力, 因為語法雖然不同,API不同, 但是原理是不變的, 演算法是相通的..
二: 懂原理, 才能真正的對代碼進行優化, 提升程序的性能和效率.
三: 幫助我們在職場快速成長
詳細的解釋如下:
一通百通:
比如常用的演算法理論: 排序, 圖論,二叉樹,紅黑樹...等,都比較重要,掌握其邏輯後 , 既可以用Java實現, 也可以用Python, C#,C++....等實現.
性能優化:
比如ArrayList 底層是什麼?線程是否安全? 需不需要設置初始容量? 怎麼進行自動擴容的 ? 什麼時候推薦使用ArrayList? 一邊循環迭代,一邊進行增刪會出現異常嗎?如果只掌握了ArrayList的方法, 而不了解其原理, 那麼很可能在錯誤的場景下使用使用它.
了解JVM的原理 ,可以幫助我們對java虛擬機進行調優.
完全掌握:
會使用框架, 並不算完整掌握. 了解框架原理, 可以幫助我們方便對框架進行一些改進, 甚至可以按照自己的需求實現一個框架. (有些公司的框架 是自己寫的 ) ,你如果不了解一些框架原理, 只是熟悉API的話, 那尷尬了,學的SSH,SSM 什麼的用不上....
『拾』 只精通一門C語言的人,算不算程序員
如果一個精通C語言的人都不能被稱之為程序員,那麼稱職的程序員真就不多了,不是所有的程序員都是對某種編程語言都是精通的,能精通編程語言的人在編碼界也是稀有動物般的存在。要精通一種編程語言,除了非常雄厚的編程基礎之外,還需要現場實際解決問題的能力,一個問題普通的程序員也能解決,高手一樣能夠解決,但實際產生的效果是不一樣的,高手解決問題想到的是框架方面東西,一旦解決可能類似的一個體系的問題都會得到解決。