『壹』 電腦程序員要學什麼知識
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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 實習生應具備哪些知識、能力
01、Java基礎
認真看一遍 Java核心技術卷一,會常見的集合類用法,最主要兩個 ArrayList 和 HashMap,水平到可以刷 leetcode easy 和一些集合類操作的 medium 就OK。其中更進一步可以看看 ArrayList 的源碼(這部分源碼幾乎沒有什麼難點),有助於理解介面和抽象類的使用。
另外,針對目前主要的Java面試,我覺得Java內存模型、GC、線程安全、線程池這些需要了解,不管面試會不會問,至少應該要知道Java有這些東西,可以通過看深入理解Java虛擬機和Java並發編程實戰補充這部分知識,實習工作應該不會接觸到這些,但還是那句話,這些概念要知道。
02、熟悉一個資料庫和基本SQL語句
資料庫主流就是MySQL了,熟悉MySQL的安裝、啟動、可視化工具(workbench、navicat等),知道什麼是隔離級別,SQL語句會寫基本的select,insert,update和兩張表的 inner join,外加增加欄位、修改欄位的ddl語句,理解索引原理和innodb特點。這里有條件的可以用學生價買一個雲主機,國內阿里雲騰訊雲都行,熟悉在 CentOS 或者是 Ubuntu 里命令行安裝和使用MySQL。
另外,作為拓展,可以去了解一下redis的基本使用,作為現在大熱的組件,其實卻非常容易上手,一些技術面試很喜歡問。
03、了解一個Java Web框架
推薦 Spring+SpringMVC+Mybatis(我不太推薦一上來就學 Sping Boot),先自己本地搭建一個這樣的環境。
有個很好的學習地方就是github,例如:手把手教你整合最優雅SSM框架,跟著這種教程一步一步耐心的配置一個web開發環境。對於Spring重點理解 IOC和AOP。
推薦使用 Intellij IDEA 進行編碼,學會 Git 的使用,命令包括切換分支、創建分支,add、commit、push、merge(理解什麼叫conflict和怎麼修復),不論是用命令行還是IDEA提供的圖形界面都可以,我強烈推薦後者,因為用過你就知道它有多好用。
04、了解一點前端知識
這里以我的經驗來講,你需要會簡單 html、css、js(angularjs 1.x)和 jQuery,其中前兩者你還需要知道一個 bootstrap,根據文檔能用它的組件實現你需要的效果,你學習這些東西要多久呢?可能三天吧。。。只需要知道其中最基本的寫法,能實現項目中的需求,如果之後工作遇到不會的隨時可以網路學習,所以我覺得這不算很艱巨的任務。
05、基於SSM框架實現一個項目
用爛的就是網上書店、個人博客這類,雖然老掉牙,但是對熟悉資料庫操作、訓練增刪改查的業務邏輯編寫卻屢試不爽,其中你需要注意的一些點:
代碼風格,包括駝峰命名法、資料庫欄位、類型、表名等的設置,注意麵向介面而不要面向實現編程。
MVC 究竟在干嗎,我、service里寫的代碼怎麼差不多啊,那為什麼要做兩層?controller里需要做些什麼?
再深入(對於題主需求可能可以忽略但需要了解),登錄時的密碼存儲怎麼做?明文么?session管理怎麼搞?事務配置怎麼設置?我怎麼url一變直接跳進後台了,這部分怎麼做許可權控制?前端分頁、後端分頁都是怎麼弄的等等
最後,將你的應用發布到你買的雲主機上試試,熟悉基本的 cd、tar、scp、vi、vim、tomcat配置運行等基本命令,有助於之後的實習工作
06、刷一些簡單的手寫演算法題
這些程序員面試中幾乎不可避免,高頻的題目無非就是快排、二分查找、topK、二叉樹三種遍歷、兩個棧模擬隊列等等。
07、寫在最後
做完上述我覺得應聘一個不說大公司吧,普通公司的Java實習生就已經ok了,唯一不足是鑒於你的學歷如果想進大公司只能做到比我說的要更優秀,但是技術不是過分在意出身,可以說努力就有機會。
最後,面試前還是要多看看各種面經,好好准備一下常問的題目,寫一份簡單的、清爽的簡歷。
『叄』 Java程序員需要學習哪些基礎知識
現今時代java語言應用非常廣發,職位也很多薪資就跟不用說了高薪是肯定的,但是想要成為一名合格的java工程師基礎一定要打牢,有一句話不就是說根基不穩地動山搖的嗎。如果基礎不好時做不了一名合格的java工程師的。IT培訓告訴你Java程序員需要學習哪些基礎知識?
一、面向對象的知識:JAVA是一個面向對象的開發語言,因此熟悉面向對象對學習JAVA很有必要,您要了解:什麼是對象,什麼是類;什麼是封裝,什麼是多態,什麼是繼承;什麼是抽象類,什麼是介面。了解了概念後,您還需要這些概念是如何體現的,如類和對象有什麼區別態叢?類是如何封裝的?
二、JAVA語法:如果您有C++等面向對象語言的開發經驗,您只需簡單的翻看一下介紹JAVA的相關書籍就可以了。如果您是新手,沒有關系,您下些工夫,好好研究一本JAVA初級教程之類的書就可以了。
三、java主要學什麼JSP和HTML:做JAVA程序員都少不了和JSP以及HTML打交道。因此,想成為JAVA程序員就不可避免的要熟悉JSP和HTML,您最好能知道JSP的幾個內置對象,如Session,Request,Reponse,以及常用的JSP標簽,如include,userBean等。如果您再熟悉一下JS和CSS就更好了,那會使您製作的頁面更友好。
四、WebServer:熟悉了以氏枝上三種,可以肯定的說您已經可以製作出來JSP頁面了,您也可以在您的頁面里使用自己開發的了,但您的頁面總要跑起殲閉敏來才能看到您要的效果,這就要求您必須熟悉一種WebServer,比如:TOMCAT,RESIN等。您要熟悉如何發布您的應用,如何利用WebServer的資料庫資源等。
五、開發工具:大家都知道,開發工具可以幫助您更好更快地開發,因此熟悉幾種開發工具很有必要。目前JAVA的開發工具比較流行的有JBuilder,IDEA,Eclipse,HTML的開發工具有Dreamweaver等。
六、java主要學什麼熟悉一種框架:熟悉一種框架其實是成為JAVA程序員的一種可選知識,但目前開發B/S結構的應用的開發小組,都差不多會採用一種框架來構建自己的應用系統。框架都會有許多可重用的代碼,良好的層次關系和業務控制邏輯,基於框架的開發使你可以省出很多的開發成本。目前比較流行的框架有Struts和Spring等。