導航:首頁 > 程序命令 > se100程序員第一課

se100程序員第一課

發布時間:2025-01-29 15:07:43

1. 音泰思(成都)福利、待遇、發展如何

  1. 業務范圍:音泰思成立於2003年,從事對日外包起家。
    到目前為止,業務除對日外包以外,還有日企訂單和國內客戶軟體訂制。

  2. 組織機構:
    現在的音泰思分為四個部門,業務1部~3部從事日本業務。業務4部即以前的
    金融事業部和國內部以及日企部組成,主要從事的是深圳證券業務、國內一些
    客戶的軟體需要(市場部接單)以及日本在華企業(主要是豐田的幾家國內合資企業)
    具體來說
    1-3部:日本NRI的業務,還有新日鐵NSSOL,最近好像接了個JSSOL的項目叫ATOM。
    范圍主要是基本設計以後各階段的工作。
    4部:廣汽豐田、四川豐田、長春豐田的業務,深國投、還有上海或者深圳分公司
    接的零星訂單。

  3. 經營層:
    董事長: 譚玉峰 空中飛人,難見其面。
    總經理: 錢勝 ,以前四凱的。
    總經理助理:肖昱,為人耿直,有點吊。
    品質總監:彭立微,口香糖隨時嚼著,號稱「代碼量」超大,沒有親見。
    人力資源:陽宇,也四凱的,以前做項目經理和部長,據說搞COBOL技術不錯。
    市場部:牛振宇,豐田業務商務主要是他的。
    系統工程部:孟廣雲,管網路安全,硬體這些。
    品質管理部:彭國民,ppqa,管質量。
    技術總監:李紅兵,技術挺牛x的,但存在本身就是一個悲劇,
    因為公司項目從不重視技術含量。

  4. 業務部長及PM層(僅聽說或者接觸到的):
    張昂:此人技術平平。假打至極,相當會裝,日語將就。
    李紅超:以前金融事業部的,公司呆了多年。
    杜娟:日語不錯,技術一般。
    朱微:同上。
    方國棟:小夥子年紀輕輕,做事倒還認真,但不會做人處事,
    其所帶項目還沒有任何人未與其吵架,最不和諧的PM。
    余秀蘭:無技術,擅長催著你做事,逼著你不斷向前趕進度。
    糜良平:日本部的,為人剛愎自用。據說此人超級重視跟他的關系,
    據說你跟他關系好,一至兩年你可以跳到高級SE,且出差去日本掙錢。
    顏沛與柏興媛:還不錯,倆口子。還算比較會做人處事,據說項目帶得還是挺好的。
    何加力:管總務的,總體來說,工作大家還是比較認可的。
    胡舫:人事部美女部長,但陽宇管人事後,就退居了,貌似只執行未決策了?
    雷常春:技術達人,以前中迅的,要學技術的,就跟他了,日語也還好。
    貌似還有其他的,不過庸碌之輩,不值一提。

  5. 工資待遇:
    2009年以前,公司是實行的還算是固定工資制,進公司時會核定給你一個工資標准,
    然後加些補助,加些加班費,再減除你的個稅和五險一金,每個月不會怎麼變化。每年
    有晉升機會,按部門人數多少和表現給一定比例,比如一個部門兩到三個,人少就只有一個。
    一年兩次晉升。2008年以前除晉升外,每年每個人都會得到幾百塊的加薪,300~500不等。
    表現穩定,比如你進公司是3000的話,進來三四千,五六千還是可以保證的。
    但請記住這些制度的年份——2009年以前。
    2009年開始,每年的晉升壓縮得相當厲害,不是每個人都能得到工資上的增長了。
    2010年春節過後,陽宇上台實行了新的工資體制。當然,事先還了個末位淘汰制。將一批
    表現不積極被人評價不坐佳的人,發給「遣散費」從幾千到幾萬不等,讓其主動離職。結果
    現在工資體制,總的來說,工資=基本工資 + 績效工資。其中績效佔20%左右,是浮動的。
    也即,你如果4000元的話,你的績效約是800元,也即你可能拿的工資是3200~4000.
    基本工資是固定的,是入職時公司給你定級別,有大級和小級,小級共9級:
    PG(D級):即程序員級,分為三個大級,3 x 9個小級。 如果你是應屆生,你的級別是D1.1的話,
    即最低的話,應該是兩千左右,以後每個小級漲個兩百。當漲到D1.9時,就變為D2.1級,
    然後就每年等待繼續晉升的機會。當你走完了程序員的級別,跳到他們的SE的級別,
    也就四五千吧,但有3 x 9=27次小的晉升才行,當然你可以努力工作,天天加班,
    創造一年升個大級的奇跡,呵呵。
    SE(E級):即軟體工程師級,也一樣,有E1.1~E3.9的大小級別,夠你向上攀爬了。
    一般來說E1.1也就是4000起,加上績效也近五千,
    一般社招進來的大概是這個級別。
    應屆生除非相當強,一般會從上面的PG層做起,然後等待升級
    M級:PM層的,初級的也就六七千吧,高級的要好些。
    獎金:以前是1.5個月的樣子,年終發;現在新的制度實施後,還不知多少。半年核算一次,年終發。
    當然辭職走的話,滿了半年的,還是會一起算給你的啦。
    但未滿半年,想都別想了。
    個稅:按國家規定,你應得減去保險之類的金額套國家的個稅繳納標准即是。
    五險一金:這個是爭議最突出的。
    公司沒有按你實際的工資來繳納保險和公積金,
    而是學四凱,鑽法律的空子,他們把1700稱為固定工資,
    統一按1700這個標准給員工交保險和住房公積金。
    所以你想按這個標准養老,估計等退休後只能喝西北風了哈。。。
    據說這個標准今年上調了1次,因為1700已經低於成都市的平均工資標准了。
    想想這個公司每年對外宣稱是納稅大戶,
    真是個鮮明的對比和諷刺!!!
    其他:過日語二級有補助,二級500,一級1000,但你若是做國內項目就沒這個了,因為他們認為你「工作不需要日語」。
    加班:根據級別不同有級差。
    你若是PG程序員,單價10元/時;初級SE是14.5元/起。
    因為加班的低廉特性以及成都程序員開發人員的低價,所以這個公司養成了加班的傳統。
    而且會根據你加班多少加班態度與否評判你工作能力和工作態度喔,
    所以加班,請不要有情緒,
    否則你就別想升級了,哪怕是1個小級,甚至是會降你級的喔,新制度有此規定的~
    出差:國內部還算有,日本部除了極少人可能有去日本的機會,根本不大可能有你出差的份兒。
    成都公乾的沒有出差的說法,只有幾十塊錢的補助,其中包括你的吃飯錢。
    一類地區,程序員也只有幾十元,SE也不會超過100,所幸的是,你吃飯還算夠的,因為住的話還是可以報銷的。
    日本出差,分兩話種,三個月以內稱為派遣,三個月以上稱為長駐。長駐的話PG 18萬日語/月,SE 的話20多萬/月吧。
    你去了之後,這邊公司不會再給你買保險了,你得自己回來交。
    派遣的話,工資加補助。

  6. 總之一句話,PG(程序員)2000+起至4000多吧。應屆生若不是碩士之類的,應該是2000元多最底層起。社招的也不會太高,畢竟這個公司不重視程序員的,即使你技術再好,最多也就三四千吧。。。當然偶爾也有幾個高級程序員,屬於那種埋頭苦幹+任勞任怨+起早貪黑型,如果你是,五六千也是可能的,但這種人我曉得就1個。 SE(這個公司的SE級別),技術可以不好,但日語不能不行。如果你日語平平,會認為你不能把握業務,
    也就四五千罷。
    另外最近聽說音泰思在遂寧搞了個啥子代碼工廠,招一些中專大專生專門生產代碼,看來真是要把這個績效整到底了,還真被有些領導人屢試不爽,奉之為圭臬。可惜人員溜走了大半,好的人才都去了IBM、華為、金蝶、中軟、海輝之類的。。。
    最後再說一點,就是進這個公司,若沒有日語基礎或者日語本身不太好的同學,你需要參加公司的培訓,專門整了一個「英才學校」來培養你,從軟體開發的模式到日語,學校是公司辦的,老師是公司里邊的員工了。說這個的目的,請注意一個重要的東西,就是要在培訓完了之後你入職的時候簽個啥子合同。內容嘛最重要的一條,大家記清楚,就是你得為公司服務滿三年,也就三年了,若不滿三年提出辭職,你得交¥10000元的違約金,你沒看錯,是一萬元。
    也即,你幹了1年,10000/3 *2=6667的違約金。
    還有記得提醒你,新的工資實施以後,獎金分半年獎和年終獎兩次計算,但只有年終才會1次性發。同時只有服務滿半年才有的。若是幹完1-5月份,6月份辭職,不計算這半年的獎金的。辭職的兄弟姐妹一定謹記。

2. 應該怎樣學習java順序是什麼

不知道Java 學習順序的話,我提供你一條學習線路圖!

按照視頻學習的過程中,學習方法也是很重要的!一定要記得勤記筆記,整理程思維導圖,方便後續復習方便。

第一部分:JavaSE:Java語言最基本的一套庫

學習JavaEE或JavaME之前,JavaSE是必學的。

* Java開發環境搭建

* Java基礎語法

* 面向對象

* 數組

* 異常

* 集合

* 線程

* IO流

* 反射機制

* 註解Annotation

* 網路編程

第二部分:資料庫 【MySQL + JDBC】

* 只要學習編程,資料庫是一定要學習的,是一門公共的學科。

* java、C、python、C#等程序員都需要學習資料庫。

* 資料庫產品很多: MySQL、Oracle、SqlServer、DB2......

* 我們動力節點資料庫課程包括:MySQL + Oracle

* Oracle:銀行、政府使用oracle的較多。

* MySQL:互聯網公司、一般企業使用MySQL較多。

* Oracle我們是提供視頻的。課堂上不講。

* 我們課堂上講MySQL。

* Java語言鏈接資料庫:JDBC

第三部分:WEB前端

* 系統結構:B/S【Browser/Server】 C/S【Client/Server】

* WEB是網站的意思。WEB前端是:網站當中的頁面。

* WEB前端程序是運行在瀏覽器當中的。

* HTML5 + CSS3 + JavaScript(JS)

* WEB前端也有很多框架:

- jQuery

- Bootstrap

- Vue

- NodeJS

- AugularJS

- RectJS

- LayUI

- EasyUI

.....

第四部分:JavaWEB

* Servlet

* JSP

* AJAX(是JavaScript的一部分語法,專門做頁面局部刷新)

第五部分:JavaWEB項目

* 做一個B/S結構的項目,將WEB前端和JavaWEB內容做一個整合練習。

* 其實到這里為止,所有的系統都可以做了。但是用的技術很Low。沒有用框架。

3. 做一個java高級程序員甚至架構師 應該掌握哪些技術

1、語法:

Java程序員必須比較熟悉語法,在寫代碼的時候IDE的編輯器對某一行報錯應該能夠根據報錯信息知道是什麼樣的語法錯誤並且知道任何修正。

2、命令

必須熟悉JDK帶的一些常用命令及其常用選項,命令至少需要熟悉:

appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialver,

如果這些命令你沒有全部使用過,那麼你對java 實際上還很不了解。

3、工具:

必須至少熟練使用一種IDE的開發工具,

例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,

包括進行工程管理、常用選項的設置、插件的安裝配置以及進行調試。

4、API:

Java的核心API是非常龐大的,但是有一些內容筆者認為是Java程序員必須熟悉的,否則不可能熟練的運用Java,

包括:

java.lang包下的80%以上的類的功能的靈活運用。

java.util包下的80%以上的類的靈活運用,特別是集合類體系、規則表達式、zip、以及時間、隨機數、屬性、資源和Timer.

java.io包下的60%以上的類的使用,理解IO體系的基於管道模型的設計思路以及常用IO類的特性和使用場合。

java.math包下的100%的內容。

java.net包下的60%以上的內容,對各個類的功能比較熟悉。

java.text包下的60%以上的內容,特別是各種格式化類。

熟練運用JDBC. 8)、java.security包下40%以上的內容,如果對於安全沒有接觸的話根本就不可能掌握java.

AWT的基本內容,包括各種組件事件、監聽器、布局管理器、常用組件、列印。

Swing的基本內容,和AWT的要求類似。

XML處理,熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理。

5、測試:

必須熟悉使用junit編寫測試用例完成代碼的自動測試。

6、管理:

Java程序員必須熟悉使用ant完成工程管理的常用任務,

例如工程編譯、生成javadoc、生成jar、版本控制、自動測試。

7、排錯:

應該可以根據異常信息比較快速的定位問題的原因和大致位置。

8、思想:

必須掌握OOP的主要要求,這樣使用Java開發的系統才能是真正的Java系統。

9、規范:

編寫的代碼必須符合流行的編碼規范,

例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個單詞一般是動詞,包名全部小寫等,這樣程序的可讀性才比較好。

10、博學:

Java程序員除了精通Java意外,還要掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate
等流行技術,掌握軟體架構設計思想、搜索引擎優化、緩存系統設計、網站負載均衡、系統性能調優等。

想要學好Java技術,成為一名優秀的程序員,鄭州的童鞋,可以選擇尚學堂


4. JAVA程序員需要掌握什麼知識

給你個參考吧。
作為一個合格的Java軟體工程師必須具備的條件?

這個問題是我一直想知道的。但是它又分為很多個方面...
比如,是掌握具體的技術,
還是,擁有很強的自學能力?

現在的軟體方面跟新和升級特別快,
無論是什麼知識,當你真正掌握它的時候,也許就已經被淘汰了。
所以這就要求我們不停的去學習...
所以自學能力很重要.
但是我覺得自控能力更重要...(悲哀...今天看了一天動畫...)
我自認為是沒有什麼自控能力的人...

好了,再來說說技術方面。
到底現在該掌握些什麼具體的知識呢?
這里,我真羨慕.net程序員...
從頭到尾就一個.net framework(.net框架),
這樣就可以很集中精力去深入學習它,而且不用擔心會被淘汰...
而Java這邊,洽洽相反框架滿天飛,而且各有所長...
這就難免讓人需要經歷選擇性的痛苦...(雖然原理都差不多)
而且還要根據公司的不同而使用不同的組合...
這就產生了n種集成方案...(崩潰啊...)
所以要全部學會幾乎不可能啊...
雖然是這樣,但是有點挑戰性才有意思嘛...呵呵...

那麼一個合格的java軟體工程師究竟需要掌握哪些具體的知識呢?
下面就我個人的角度來總結一下,如有不足,也請高手指出。
(ps:本人只列出普遍常用的知識)

首先當然是Java語言本身了。Java語言的創始人曾說過"Java=C++--"。
什麼意思?就是Java語言是在C++的基礎上減去一些不必要的東西,使其更為實用,更具有生產力。
Java語言的語法很簡單並不像C++那樣復雜.(本人曾經接觸過C++...傷心的經歷...)
很多較為復雜的數據結構Java都能簡單實現,而C++較為麻煩。
其中很大的原因是因為Java是單根結構.
而且Java的垃圾回收機制也有很大的功勞.(.net的垃圾回收機制也是Java的靈感)
但是如果想深入底層了解Java還是需要費很大的功夫的...
比如,你要學會javap命令去反編譯java文件然後再去看懂那些反編譯後的結果...
這樣你才能了解Java語言的原理。
很多情況下不同的代碼,但是最後產生的位元組碼是相同的。
也有些情況,雖然代碼只相差一點但是效率是天壤之別。
(例如JDK5新添加的StringBuilder和StringBuffer的區別)
這些在都可以反映在位元組碼里。
關於Java語言的問題不是本文的重點,我就不多說了。
總之學好Java這門語言是基礎中的基礎。

其次,說到Java語言就不能不說面向對象(OO)。
Java語言的產生也有很大的一部分是為了生成一個具有生產力的OO語言。
為什麼這樣說?
在早些年代OO的思想雖然被提出,但是那些純粹的OO語言卻沒有絲毫的生產力。
(如出名的:smalltalk它是100%的OO)
而Java在保持高度的OO的前提下更注重生產力。
(ps:Java是98%的OO,其中8種基本數據類型,static關鍵字,運算符等,這些都不OO)
所以隨著軟體工程的龐大OO的思想很重要。

好了,到這里如果以上你有所了解,並掌握的一般。那麼就可以繼續往下學習:
如果你想掌握Java語言中更精髓的東西,那麼我建議你可以做一些小的桌面應用程序。
其中,你會學習到另一些知識:
並發,IO,GUI,AWT,Event,Listener,Socket,Reflect等java更深層的東西。
(當然,有些只需了解,因為有些東西將來在做B/S結構的系統上是用不到的...
如果將來你想從事嵌入式開發,這些你就要多一點了解了。
很可惜,我還沒有想過去做那個...
還記得當我第一次了解AWT里的Event和Listener的實現方式後,
我覺得JDK的設計人員真是厲害,設計的是那麼的巧妙,第一次感覺代碼是那麼優美,
裡面用到了各種設計模式,真是讓人驚訝。
遭了,又在自我陶醉了...)

回到正題,關於Java語言的基礎,我就先講到這。
當我們掌握了Java之後呢?
真正的Java開發現在才是開始:
這時我們必須要接觸另外一樣東西,
沒錯,那就是資料庫!
資料庫的重要性就不用我在這里強調了吧?
無論你學習什麼技術,資料庫都是必備品。
作為Java程序員,我們不是DBA,我們沒有必要掌握太多的資料庫的管理知識。
我們只要知道如何連接資料庫進行訪問和CRUD操作,並對一些地方提高效率就可以了。
如創建索引和適當的使用存儲過程即可。

首先,學習什麼樣的資料庫呢?
沒辦法,多了解一點吧...畢竟每個公司用的都不一樣...
目前的4大主流資料庫是必須要學習的:
DB2(IBM號稱世界上用的最廣泛的資料庫,不過近些年已被MySQL慢慢侵蝕掉了.但是很多的大公司在用,畢竟是IBM啊。)
SQLServer(當年憑借SQLServer2000獲得很大成功,由於和Microsoft的產品兼容很好,所以很受歡迎。)
MySQL(真正的輕量級啊...而且是低端的主流開源資料庫,使用量已經超越DB2。)
Oracle("甲骨文","神諭","聖賢","哲人"...光是對Oracle這個單詞的翻譯就可以看出它多麼擁有實力。不過大的有點誇張...)

好了,如果你已經會簡單的使用上面的資料庫了,那麼就繼續往下吧:
既然要訪問資料庫,那就離不開JDBC!
JDBC相信大家都知道,它只是一組介面,然後由不同的資料庫廠家去實現,
這樣用JDBC訪問資料庫的時候方法其實都是一樣的,這里我就不多說了。
另外JDBC是將來ORM的底層實現,學習好了它,對ORM框架的實現就更為清楚原理。
下面重點要說說SQL語句。
SQL有2套標准(82和99),我不太確定...記得不太清楚了...
現在的資料庫基本這2種都支持。
但是問題來了,不同的資料庫,又對其改變了一點...
這是最令人頭痛的...
也就是說,4種資料庫,你就要記住4種SQL的區別是什麼,雖然大體差不多,但是還是要區分開來的。
而且不同的資料庫,對SQL語句又有不同的優化。
也就是同樣的SQL語句在不同的資料庫上執行的效率不同。
所以SQL語句也是一門必修之路啊...
而且不要看似簡單,其實要想寫出一條高效率的SQL語句很難啊...
尤其是在復雜的多表聯合查詢中,這種效率問題一定要考慮。
另外,最煩人的莫過於資料庫程序設計。
每種資料庫有自己的語法。如SQLServer里的T-SQL,Oracle里的PLSQL等...
使用這些語言編寫觸發器,存儲過程等...自我感覺是最頭疼的...而且用的不多...
了解一下就好...

好了,當學習完資料庫.我們就可學習web開發了.
所謂的web開發,就是基於瀏覽器/伺服器(B/S)的開發。
那麼既然是在瀏覽器上跑的程序那麼就離不開HTML、CSS、JavaScript、DOM等網頁技術。
所以下一步就是學習HTML,HTML應該是最簡單的標記語言.很容易就能學會。
根據web2.0的標准,XHTML將是規范。
所謂的XHTML其實和HTML4.0的規范差不多,就是標簽的要求更加嚴厲了。
學習HTML的同時還要一起學習CSS,這個東西說簡單,也簡單,說難也難。就看你個人了。
但是畢竟我們不是美工,只要了解就好了。(有時我就在界面上消耗了很多時間...郁悶...)
JavaScript我個人建議還是要稍微花點功夫研究一下的...
畢竟後面涉及到Ajax和用戶體驗等方面需要用到它...
它是一門客戶端腳本語言,即:瀏覽器解釋執行。
是一種弱類型語言,但是研究起來還是很深奧的...
至於DOM本人還沒有花時間研究過,不敢輕易下結論.

當完基本的網頁技術後,就可以進入正題,Java在internet上的應用就從這里開始:
前面學習了網頁技術後,我們就可以做出簡單的靜態網站。(即:沒有與資料庫交互.)
靜態網站由後綴名為.html或.htm結尾。
但是靜態網站是毫無用處的,所以我們要開發動態網站。
最古老的技術就是CGI(通用網關介面).
它根據瀏覽器端的http請求激活響應進程,每一個請求對應一個進程。(注意不是線程,是進程!)
當同時有很多請求時,程序擠占系統資源,造成效率低下。
目前流行的動態網頁技術有:ASP、JSP、php、ASP.NET等...
這里我就不一一介紹他們了。關於他們的對比,網上比比皆是.
而今天的主角就是JSP!

JSP是什麼?說白了就是在HTML里嵌入伺服器端可執行的Java代碼。
這里的Java代碼和前面所說的Java代碼是一樣的。
這里要注意的是jsp最終會轉換成servlet。
所以學好Jsp就要先學習servlet。
與applet對應,servlet顧名思義就是伺服器端腳本。
這里是學習的重點。
其他的也沒什麼好講的。

這里要掌握幾個概念:servlet容器,IDE,taglib,DAO,MVC等...
servlet容器,就是解釋執行servlet代碼的地方。
IDE,前面我都沒有提過,也就是因為前面的學習都很簡單,並不需要IDE的支持。
而接下來的開發會比較復雜,文件數量的增多和管理會很麻煩,而且很多的API不可能都背下來。
所以這里就是使用IDE的時候了...至於用什麼IDE本人覺得無所謂...
(我用的是最普遍的Eclipse,當然你也可以用NetBeans6.0以上版本.我覺得也很不錯。)
taglib,這里用的比較少,以後學習框架用的比較多.
DAO,很重要。它的實現方式多種多樣,值得研究。
MVC,很重要。但是重在理解,理解為什麼要用MVC。
最後關於Http協議,Servlet容器里的線程池的實現等...
這些如果你有能力和時間就去看看...沒有什麼壞處...

學到這里,可能中間你會用到另一門技術XML!
作為java程序員來說,我覺的只要了解XML原理就可以了。
不可能還讓你去寫scherma或DTD的...
所以我們只要學習讀寫XML就可以了...(JDOM或DOM4J)

下面在來簡單的說說ajax...
當你程序要求你在不刷新頁面的情況下讀取數據並顯示,這是就是ajax的勇武之地.
如果你之前的javascript沒有學的特別的牢固,也沒什麼關系,用框架吧。
所謂的ajax框架就是一個javascript的庫。它簡化並對javascript封裝。
常見的ajax庫有很多,這可以根據情況自己選擇學習。
(dojo、prototype、jquery、dwr、ext等...)

等學習到了這里,你已經可以獨立的開發一個簡單的網站了。
但是,這里有很多的問題:
1.代碼量大
2.開發時間長
3.系統擴展性差
4.雖然用MVC分層,但是JSP+Servlet+JDBC這種開發方式難以維護。(尤其是JSP里有大量代碼,像ASP那樣)
5.理論上不OO
6.效率低
7.安全性低
等等...
短短一時間我就能想到這么多的不足,證明這離企業級開發還有很大的差距.

那麼正真的企業級應用是什麼呢?
JavaEE的本質就是為了企業級開發...
可惜,至今還未能領悟JavaEE的核心思想...
但從技術角度,JavaEE擁有哪些技術呢?
貌似太多太多...EJB是JavaEE的核心思想...感覺有點類似.Net框架...即:一個框架包含所有功能.
可惜一直沒時間學習過EJB...
所以我下面要講的是如何針對上面的不足加以改進?
1.代碼量大就造成"開發周期的延長"。而且自己寫的代碼有時會有漏洞,或效率上的問題。(如果你不是專家的話)
所以要解決這個問題就要引入"框架".
如果引入了框架,那麼有些問題就可以迎刃而解。
1.代碼量的減少。
2.開發周期的縮短。
3.效率提高一點。
4.安全性提搞了一點。
畢竟人家是頂尖的專業人士,寫出來的代碼肯定比自己寫的健壯又高效。對嗎?而且又可以減少代碼量。

框架分很多種,就像上面的ajax框架一樣,它也是一種框架。
下面就列出一些流行的框架:
MVC框架:Struts1.x,Struts2.x,JSF,webwork等...其中最令我期待的是struts2.
ORM框架:Hibernate3,Ibatis,jpa等...其中最令我期待的是JPA.
AOP框架:Spring2.5 貌似現在只流行這個...AspectJ都沒人提...
至於EJB里的,我不太了解...
但是至少上面的是主流.如果遇到非主流...也就算我倒霉...再學唄...
至於系統擴展性和維護性差是系統架構的設計問題.
這個問題不是我在這里一句兩句就能表達清楚的。
(前些日子搞了個泛型DAO模式,都研究了很久)
UML和design pattern是需要經驗的...

在學習這些框架的過程中會有很多意想不到的事情發生...
再深入學習就是webservice和分布式了...
感覺我還沒有觸及到那個層次...
還差的遠呢...不過慢慢來吧...

今天說了那麼多就是想知道做為一個java軟體工程師.到底需要哪些技術?
我很需要自我反思...
可能我今天說的都只是皮毛,也有很多欠考慮的地方...希望朋友指出...
也可以給我意見...
也許我看問題不全面,或是有偏見,也歡迎指出。

5. 激勵代碼是什麼

請問激勵值是什麼意思
AQL(可接受質量水平)是調整型抽樣體系的基礎,是供貨方與需求方共同協定的可以接收的連續

提交的檢驗批的過程平均的上限值。過程平均是一系列連續提交的檢驗批的平均質量,以「批次

不合格品率」或者「每百單位缺陷率」表示。AQL與采樣大小(所謂采樣大小,是否可以理解為

「樣本大小」即sample size?)的關系,在於一個檢驗水平(I、II、III三個一般檢查水平,以

及S-1、S-2、S-3、S-4四個特殊檢查水平)和寬嚴程度(severities)之轉換。

舉個例子,一個產品批量N=4000,協定的AQL=1.5%,選擇檢查水平為II,則調整型一次抽檢方

案確定的步驟為:

1)根據GB2828-81表,查得樣陵察本含量代碼為L;

2)確定「正常抽檢方案」:L與AQL=1.5%所對應的合格判定數為7,不合格判定數為8,樣本含

量為n=200。其含義為:4000個產品中抽取200個樣品送檢,這200個中如果不合格數小於等於尺鍵茄7,

則整批產品合格;大於等於8,則整批不合格;

3)同樣的方法,確定「加嚴」、「放寬」、「特寬」的抽檢方案;

4)將四個抽檢方案合並一處,運用動態轉換規則(sap系統中有,術語dynamic modification

rule),就構成了「調整型一次抽檢方案」;

5)以上的例子遵循GB2828標准,對應於ISO2859(計數);計量的就不是很清楚了,好像是國標

GB8054對應ISO3951。SAP系統4.5B版本中有ISO版本的Sample scheme.

6) 您可以看看SAP標准系統4.5B中的一個dynamic modification rule"s01",我認為它就比較明

確。
有沒有verilog大神幫我寫一下激勵測試代碼 5分
代碼如果是你自己寫的,按照你這個描述寫stimulus,你自己肯定寫得出來。

另外你描述不太清楚。建議問問同學去。
股票期權每一品種代碼和名稱是怎樣設置的
合約交易代碼包含合約標的、合約類型、到期月份、行權價格等要素。例如「510050C1503M02300」,「510050」代表合約標的的證券代碼,「C」代表認購期權,「1503」代表合約的到期時間為2015年3月,「M」代表合約未發生過除權除息的調整,「02300」代表合約的行權價格為2.30元,即這一交易代碼代表的是上證50ETF在2015年3月到期、行權價格為2.30元的認購期權合約。

合約簡稱與合約交易代碼相對應,是對期權合約要素的簡要說明。例如「50ETF購3月2300」,「50ETF」代表合約標的的證券簡稱,「購」代表認購期權,「3月」代表合約的到期時間為2015年3月份,「2300」代表合約的行權價格為2.30元,即這一合約簡稱代表的是上證50ETF在2015年3月到期、行權價格為2.30元的認購期權合約。
什麼是「程序員鼓勵師」,他們的職責是什麼?
程序員鼓勵師,顧名思義,就是專門為程序員鼓勵加油的職位。2015年愚人節,網路上開始出現這個名詞時,被疑為愚人節的玩笑,其實,據媒體報道,在廣州,程序員鼓勵師確實是存在的,這個職位更像是程序員身邊的和事佬和勤雜工,但也確實具備傳說中的高顏值。

一、「程序員鼓勵師」職責

1、和事佬

程序員鼓勵師程序員、技術男都比較直,他們不善於部門之間的溝通。一個辦公室里有70多位程序員,有時組與組之間會出現問題,有時兩個程序員會為了同一個程序如何編寫產生不同的意見。

這時程序員鼓勵師就得立即趕過去打圓場,做好溝通平復大家的心情,讓他們不至於因矛盾影響正常工作。鼓勵師這個中間人更像是一個「和事佬」。

2、勤雜工

程序員鼓勵師的另一項任務就是每天幫程序員訂午餐、晚餐。亮燃當不需要跟進項目閑下來時,也會跑到程序員的辦公室,陪程序員聊天,幫程序員切水果准備下午茶,甚至會自己在家烤蛋糕帶回來請他們吃。

二、「程序員鼓勵師」特點

1、程序員鼓勵師職位誘惑:逗獅子、哄碼農、溜馬畜。

2、職位描述:鼓勵程序員、攻城獅長期幹活(例如春節前50天無休)的時候,鼓勵其像獅子一樣勇猛、狼性不減、高質量得完成版本開發。

3、崗位要求:要求長相甜美彷彿章澤天,微笑常掛酷似高圓圓。

4、特別要求:善於傾聽(聽不聽的懂沒關系)。如果真是這樣,那程序員們內心肯定會瘋狂得呼喚bug((漏洞))的,但事實是,真有搞不定的bug的時候程序猿哥哥可是對身邊的人男女不分的。

5、工資標准:各公司要求不同,工資標准也就不同,月工資從6千到3萬不等。

參考:ke.haosou/doc/8392353-8711160
ModelSim模擬激勵文件怎麼寫? 15分
很簡單啊,也是verilog文件,但是可以是不可綜合的(類似C程序),你需要在什麼時間點給你的設計輸入什麼信號,就怎麼編寫,例如0時刻開始給a埠高電平,然後100ns之後,給該埠電平拉低,就是

initial

begin

a = 1;

# 100 a = 0;

end

這只是一個簡單的例子,你可以參考參考!!!具體例子網上很多!
程序員鼓勵師到底是什麼職位
二、程序員鼓勵師職位要求是什麼?要顏值高!

字面理解程序員鼓勵師這個職位,難道是運用心理學知識的神秘職位?「程序員鼓勵師」看到下面的職位說明,我真的是醉了,還真是開眼界了!

職位誘惑:逗獅子、哄碼農、溜馬畜

職位描述:

鼓勵程序員、攻城獅長期幹活(例如春節前50天無休)的時候,鼓勵其像獅子一樣勇猛、狼性不減、高質量得完成版本開發。當然崗位要求也是很高的。

職位要求:

是長相甜美放佛章澤天,微笑常掛酷似高圓圓。

在程序猿遇到BUG內心焦躁的時候,坐在旁邊給他加油鼓勵的妹子。要善於傾聽,還要受得住工程師們死宅無法交流的性格。

善於傾聽(聽不聽的懂沒關系)

根據上述職位要求,我想像了該職位的員工畫面:

但是!如果真是這樣,那程序員們內心肯定會瘋狂得呼喚bug的,但是據我深入了解到,真有搞不定的bug的時候程序猿哥哥可是對身邊的人男女不分的。

最後提示以上幾家公司的程序猿哥哥們別高興太早,注意別上了愚人節的當!

三、程序員鼓勵師到底做什麼?阿里「中槍」致歉

隨著這一高冷的職位迅速蔓延,4月29日,阿里巴巴官方招聘網站上線了一個全新職位——程序員鼓勵師,這項工作最重要的要求就是:顏值對程序員有足夠震撼力!

請看下面的職位介紹:

圖為阿里巴巴來往事業部程序員鼓勵師招聘信息

怎樣的顏值才能有震撼力?別急,阿里巴巴招聘啟事的職位要求中有詳細介紹:

你可以是如蒼老師般德藝雙馨,胸懷天下,進可欺身壓海棠,退可提臂迎蛟龍;

你可以是如宋慧喬般大家閨秀,天生麗質,沉魚落雁閉月羞花,素顏傳說更讓無數程序員追捧不已;

你也可以是個有著外星人顏值,作風天馬行空,言語中自成一派威嚴,激勵團隊有如駕馭獨孤九劍般的老頭。

而這名程序員鼓勵師的工作就是:有效鼓勵程序員團隊,拉近程序員間心靈距離,激發團隊又猛又持久地工作。

這條招募信息一經發出,就在在網路上引起了眾多網友關注,頗具爭議的招聘文案帶來諸多爭議。因涉嫌性別歧視,阿里巴巴及時刪除了這條招聘啟事,不過仍有眼尖的讀者抓住截圖。因為招聘信息中提及「德藝雙馨的蒼老師」,被網友質疑該招聘存在借勢炒作嫌疑。
程序員鼓勵師是什麼樣的職業
今年的互聯網界比較逗,各招聘網站相繼出現程序員鼓勵師, *** 貢獻師等等讓你腦洞大開的職位。這些職位最初發現是在一家專門垂直於互聯網職位招聘的約聘網個性職位一欄發現的,如下圖:這些職位是不是有很多看著你呢菊花一緊埃約聘網這樣的個性
編程看不懂代碼,迷茫。
其實看不懂才是正常的,看懂才是不正常的。即使已經學習編程多年,即使做軟體開發多年。

總結一下你問題的核心——源代碼。

很多人在說多練習、多學習基本上都與源代碼有關。

但是,這對你軟體開發能力沒有太實質性的提高。

首先我們要清楚,編程或者編程語言的作用時什麼?它不是為了編程而編程。我們為了實現某種軟體功能,需要通過編程來實現。而軟體是為了解決實際人無法解決或花費很大成本的工作,由軟體可以很容易解決或成本比較低。

而編程和編程語言只是實現這個軟體的一種工具、方法。

為什麼說「看不懂才是正常的」?

現在隨便一款具有實際功能的軟體,就需要幾百、幾千甚至幾萬個源代碼文件,而每個源代碼又有幾百、幾千甚至幾萬行源代碼。計算機源代碼不是小說,從頭看到尾就行了,源代碼內部會形成復雜的關系,函數之間互相調用、函數使用公共變數、類之間的繼承等等。在這么復雜的系統里,能把源代碼看懂是非常困難的。

同時通過閱讀源代碼來理解這個軟體的完整功能,這種方法效率低、收效低。

源代碼是通過某種編程語言書寫,而源代碼中必然包含與這種編程語言相關的語言特徵,而這些特徵往往與這款軟體的功能沒有實際上的關系。也就說,源代碼中包含了大量對我們理解軟體功能沒有用,甚至反作用的信息。就好像我們要在一萬本書里找一本我們需要的書中的一頁。想想效率多麼低。

軟體設計資源也是分層次,它是在不同的工作階段產生,例如前期有軟體需求信息,之後有軟體設計信息,而源代碼幾乎是最某端的產品。

而有時很多人要了解的是軟體設計信息,但是我們卻要通過閱讀源代碼來了解軟體設計信息,而在這個過程中閱讀者必須將源代碼中很多多餘的信息給去掉,則能總結成軟體設計信息。想了解軟體需求信息也是同理。

總之很多時候我們在一個層次上去了解另外一個層次上的信息,這難度是非常難的。看源代碼只應該解決與這個源代碼相關的細節問題。

宏觀問題由宏觀方面解決,微觀問題由微觀方面解決。而源代碼是微觀內容,而軟體設計信息、設計意圖等屬於宏觀內容。

至於你看不懂源代碼沒有關系。

並且寫源代碼也不是問題,寫源代碼不是為了寫而寫。只要清楚你寫什麼,寫本身就不是難度。而軟體開發中需要寫什麼呢?就軟體開發前期階段的分析和設計。而分析和設計的結果就是軟體的解決方案,而這種解決方案就是寫源代碼的依據。

《UML2.0實戰教程(Trufun)》

《面向對象分析與設計(UML.2.0版)》

《UML與軟體建模》

不知道你有沒有看過UML語言(統一建模語言),它是現在面向對象設計理論方法最常見的語言。雖然它叫語言,但是它不是編程語言,它與軟體分析和設計有關的語言,是用於描述軟體解決方案的語言。

《UML2.0實戰教程(Trufun)》中就簡單的介紹了使耽UML進行面向對象設計的方法。而它所形成的軟體解決方案,就可以通過某種方法轉換成編程語言。《UML與軟體建模》第十二章中有介紹。
modelsim se 10.1a 怎麼編寫激勵
編寫激勵實際上可以說是編寫你所測試模塊的輸入部分,用來觀測模塊輸出。下面是我寫過的一個乘法器模塊的激勵,initial-end內編寫的是復位信號和時鍾信號,always內編寫就是乘數與被乘數的輸入,整個模式類似於我們編寫verilog程序。你在寫自己的激勵時也是根據測試模塊的功能來的,具體得看你的模塊,如果有需要留個郵箱我給你發個激勵編寫的歷程。希望對你有幫助。

`timescale 1 ps/ 1 ps

mole pipeline_booth_multiplier_t();

reg [7:0] A;

reg [7:0] B;

reg CLK;

reg RSTn;

wire [15:0] Proct;

initial

begin

RSTn = 1'b0; #10 RSTn = 1'b1;

CLK = 1'b1; forever # 10 CLK = ~CLK;

end

pipeline_booth_multiplier i1 (

.A(A),

.B(B),

.CLK(CLK),

.Proct(Proct),

.RSTn(RSTn)

);

reg [3:0]i;

always @ ( posedge CLK or negedge RSTn )

if( !RSTn )

begin

i <= 4'd0;

A <= 8'd0;

B <= 8'd0;

end

else

case( i )

0:

begin A <= 8'd127; B <= 8'd127; i <= i + 1'b1; end

1:

begin A <= -8'd127; B <= 8'd127; i <= i + 1'b1; end

2:

begin A <= 8'd20; B <= 8'd12; i <= i + 1'b1; end

3:

begin A <= -8'd5; B <= 8'd42; i <= i + 1'b1; end

4:

begin A <= 8'd54; B <= 8'd36; i <= i + 1'b1; end

5:

begin A <= -8'd31; B <= -8'd12; i <= i + 1'b1; end

6:

begin A <= -8'd127; B <= -8'd127; i <= i + 1'b1; end

7:

begin A <= 8'd0; B <= 8'd0; i <= 4'd7; end

endcase

......>>
文本挖掘如何向人展示成果?直接給人代碼?
先看看這個吧!

如何挖掘人的潛力,最大限度的發揮其積極性與主觀能動性,這是每個管理者苦苦思索與追求的。在實行這一目標時,人們談的最多的話題,就是激勵手段。在實施激勵的過程中,人們採取較為普遍的方式與手段是根據績效,給員工以相應的獎金、高工資、晉升、培訓深造、福利等,以此來喚起人們的工作熱情和創新精神。的確,高工資、高獎金、晉升機會、培訓、優厚的福利,對於有足夠經濟實力、並且能有效操作這一機制的機構與企業來說,是一副有效激發員工奮發向上的興奮劑。但如果在企業發展的初期、或一些不具備經濟實力的單位,又如何進行激勵呢?還有在執行高工資、高獎金、晉升、培訓、福利機制過程中,因操作不當,導致分配不均、相互攀比,所引起的消極怠工等副作用時,又如何評價這些手段和處理這些關系呢?高工資、高獎金、晉升機會、培訓、優厚的福利是激勵的唯一手段嗎?是否還有別的激勵途徑與手段更完美呢?有,那就是包容與信任!其實,最簡單、最持久、最「廉價」、最深刻的激勵就來自於包容與信任。

激勵的目的是追求利潤的最大化和建立一個具有凝聚力的團隊吸引並留下優秀的人才。但作為包容與信任這么一個並不深刻的激勵手段,為什麼往往被人們所忽視呢?這種現象很大程度上是人們對人性的曲解,美其名曰人是貪婪的、自私的。因此,更多的人往往不願往更深處去開采、去挖掘。只有靠物質與利益的誘惑來獲取彼此利益的平衡與共享。其實,高工資、高獎金、晉升機會、培訓、優厚的福利等手法只是滿足人性最初期,最原始的本性。能喚起人最光輝、最有價值、最寶貴的忠誠與創新還是包容與信任,這是不能被冷落更不能放棄的最好的綠色激勵。

人的激勵機制粗淺的可分為三個層次:物資激勵、榮譽激勵、個人價值激勵。

物資激勵,也就是較為直觀的工資、獎金、福利,它講究的是價值的對等。低級動物都是如此,馬戲團的老虎成功表演一個節目,就當場能得到指揮者一塊鮮肉作美食,其他動物只能看著咽口水。馬戲演員靠這種小施捨來取得動物的配合,也就是激勵。還有小鳥(或小雞)擇字。當小鳥把「算命先生」根據擇字人的外貌判斷,選擇好的相應字版反扣在一疊牌中准確的啄出來時,同樣有一粒米的獎賞,不然,這些動物就不幹或乾的不痛快。這個道理非常簡單。(姑且不講,人這個復雜的東西,並沒有一般動物那麼容易賜候,而因此激勵不擔會所帶來的副作用)。

榮譽的激勵包括授予稱號、發證書、獎狀等。這當然是激發人鼓舞人的重要組成部分。但這畢竟是一種被動的你先付出,然後才能承認,而且比例受到限制,太多太濫不行,亂點鴛鴦譜更不行。客觀的講,榜樣的力量並非是「無窮」的。至於有多少人的付出是因為沖著稱號、發證書、獎狀的誘惑而進行的,暫不加評論。因此,榮譽的激勵最理想的是用在宏觀輿論的導向與宣傳上,最見效的還是孩提時代的諸如戴上一朵大紅花、發一張獎狀較為管用,而在小團體組織或企業就大打折扣了。

個人價值的激勵則是人的最高追求,也是最成熟的境界。這種激勵就是信任。信任,通俗的講,就是是否把人當人看。包容即是體諒、理解和喚醒人內心良知的工具及過程。宋代民族英雄岳飛對多次與己為敵並設法殺害自己的王佐的包容,最後喚起王佐的良知,以致王佐砍斷臂膀、施苦肉計、深入虎穴這個流傳千古的美談,就是最好的例證。

人,最重要的不是他是什麼,而是你把他當作什麼。你給他信任多少,他就會給你回報多少。關鍵是你對他的導向。你的溝通、你的行為、你的認識、你的習慣而形成你固有的用人文化。一個對他人總不放心的人,最終是孤獨、孤立而失望的。...>>

6. 軟體工程師職稱評定的級別及標準是什麼

一、見習程序員(AP:assistantprogrammer)

  1. 計算機相關專業畢業;英語通過國家四級。

  2. 具有較強的學習能力,可以編寫代碼,達到公司的工作要求。

二、程序員(P:programmer)

基本要求:

  1. 本科學歷,半年以上工作經驗;英語通過國家四級。

  2. 達到工作承擔要求;具有一定的溝通能力和工作責任心。

技術能力要求:

  1. 負責編寫代碼,掌握一種主流語言/開發工具,一種主流操作系統,一種主流資料庫。

  2. 了解和掌握開發作業(PD設計、編碼和測試等)的規范和技巧。

  3. 所編寫的代碼質量較好。

  4. 能夠按照要求編寫文檔,文檔結構條理清晰,內容詳實准確。

  5. 具有獨立理解所擔當模塊的業務理解能力和問題闡述能力。

  6. 能閱讀**文技術文檔。

三、高級程序員(SP:seniorprogrammer)

基本要求:

  1. 獲得程序員資格1年以上;或滿足程序員級別標准,2年以上相關行業工作經驗。

  2. 完成年度工作量指標;具有較強的溝通能力和責任心。

  3. 所承擔的項目滿意度達到滿意以上。

技術能力要求:

  1. 精通一種主流語言及對應的開發工具;精通數據結構。

  2. 具有較好的業務理解能力和技術調查能力。

  3. 編寫高質量代碼並具有代碼審查能力。

  4. 具有詳細設計能力。

  5. 熟悉系統測試工具,對系統問題具有改善的能力。

  6. 能夠帶領2個以上員工開展工作,成功領導過3個以上不少於5人月的項目/模塊的團隊項目。

  7. **語達到*級水平或者具有同等水平,能夠閱讀*文資料,按照要求編寫*語技術文檔。

  8. 了解質量管理體系和項目管理知識。

四、軟體工程師(SE:softwareengineer)

基本要求:

  1. 獲得高級程序員資格2年以上;或滿足高級程序員級別標准,4年以上相關行業工作經驗。

  2. 完成年度工作量指標;具有較強的客戶溝通能力。

  3. 擔當過一個20人月以上的項目或累計超過60人月項目的技術負責工作。

  4. 所負責的項目客戶滿意度達到滿意以上。

技術能力要求:

  1. 精通並熟練運用2種以上的開發工具,至少一種資料庫知識,至少一種操作系統知識。

  2. 能夠很快完成新項目的技術調查工作,能夠完成復雜演算法的設計,能夠設計可重用的和柔韌的軟體結構。

  3. 具有系統設計能力及系統提案能力。

  4. 對系統或項目的技術框架有深入的認識和較豐富的經驗。

  5. 具有某一領域的行業知識。

  6. 具有項目領導能力。

  7. *語達到*級水平或者具有同等水平,能夠閱讀、編寫*語技術文檔,具有簡單的口語溝通能力。

  8. 掌握質量管理體系和項目管理知識。

五、資深軟體工程師(SSE:seniorsoftwareengineer)

基本要求:

  1. 獲得軟體工程師資格2年以上;或滿足軟體工程師級別標准,6年以上相關行業工作經驗。

  2. 完成年度工作量指標;具有較強的客戶溝通能力。

  3. 擔當過一個50人月以上的項目或累計超過100人月項目的技術負責工作。

  4. 帶領的項目客戶滿意度滿意以上。

  5. 完成年度培訓工作。

技術能力要求:

  1. 精通並熟練運用2種以上的開發工具,至少一種資料庫知識,至少一種操作系統知識。

  2. 具有整體系統設計能力及系統提案能力。

  3. 具有較強的技術籌劃能力、技術指導能力和處理疑難問題的能力。

  4. 深入了解某一領域的行業知識。

  5. 具有大型項目領導能力。

  6. *語達到*級並相當於*級水平,熟練會話和編寫*語技術文檔。

  7. 熟練掌握質量管理體系和項目管理知識,並能夠推進軟體開發過程改進。

六、主任軟體工程師(CSE:chiefsoftwareengineer)

基本要求:

  1. 獲得資深軟體工程師資格2年以上;或滿足資深軟體工程師級別標准,8年以上相關行業工作經驗。

  2. 5年項目負責人以上經驗,累計超過120人月的技術負責人工作。

  3. 帶領的項目客戶滿意度滿意以上。

  4. 完成年度培訓工作。

  5. 具有很強的溝通能力,問題判斷與解決能力,創新能力。

技術能力要求:

  1. 精通至少一種主流編程語言。掌握至少一種資料庫或至少一種中間件。熟練掌握至少一種操作系統。

  2. 熟練掌握軟體需求分析/大型項目的策劃。

  3. 熟練掌握軟體的系統設計。

  4. 熟悉軟體的高級項目管理和質量控制,具有分析和規避重大質量問題的能力。

  5. 精通至少一種部門項目相關的業務知識。

  6. *語達到*級水平或相當於*級的水平,熟練會話和編寫*語技術文檔。

職稱管理工作和相關標准將隨著公司的發展而不斷調整完善。

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

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

閱讀全文

與se100程序員第一課相關的資料

熱點內容
空氣能壓縮機價格 瀏覽:532
php不能上傳大文件 瀏覽:240
消毒水清潔解壓 瀏覽:1000
cpdf閱讀 瀏覽:467
android方案公司 瀏覽:182
linux編寫makefile 瀏覽:488
考研程序員有什麼好處 瀏覽:225
畢向東android 瀏覽:259
27安全演算法 瀏覽:352
豐田空調壓縮機型號 瀏覽:835
程序員那麼可愛25集文字預告 瀏覽:556
linux讀寫文件命令 瀏覽:695
完美的傷害演算法 瀏覽:574
usch演算法 瀏覽:606
如何給excel某列表格加密 瀏覽:161
s7編譯 瀏覽:556
單片機介面電路 瀏覽:161
為什麼雲伺服器都在用 瀏覽:748
phpifelseifelse 瀏覽:249
車場伺服器磁碟滿了怎麼辦 瀏覽:231