A. 想要成為一名程序員的話,都必須要掌握哪些技能
編碼是軟體開發人員的必備方面。在每個團隊中,每個開發人員必須被同一技術面試過程僱用。因此,我們可以推斷編程器或更少才能具有類似的編程技巧。在這種情況下,一個人如何成為一個好程序員?如果他們做與同齡人的努力做了什麼,他們可以做些什麼?如果你正在考慮這個問題,證明你已經超過了他人的團隊,你知道你想在專業領域擁有長期的發展,並編程效率不好。成為一個優秀的軟體開發人員必須擁有的技能。您可以編寫一個干凈整潔的代碼來確定您是否是優秀軟體開發人員的標准之一。通過查看代碼結構,人們可以輕松判斷您是一個能力的程序員。
只要有足夠的時間,大多數開發人員都可以完成交付,但不幸的是,在軟體行業中,時間是最有價值的東西,如果你公司在一個激烈的市場環境中,如果公司不能先進入市場或者與競爭對手同時進入市場,它將失去市場份額,這是至關重要的。因此,軟體開發人員需要有效地管理他們的時間。為此,您需要知道如何准確評估您的時間效率。當你第一次時,你會在評估中犯錯誤,但它是正常的,每個人都會產生類似的錯誤,但聰明的開發人員應該能夠來自他們。課程是學習和改進的。軟體開發專業是激烈的競爭。開發人員的熟練程度可能有所不同,但每個軟體開發人員都知道如何以一種或多種編程語言編寫代碼。在軟體行業中,依靠編碼技能來實現指數增長是不夠的。不要讓你的職業生長在幾年內。在您職業生涯的每個階段,實現您想要的目標,實現上面提到的七種技能,成為一個優秀的軟體開發人員。
B. 要做程序員需要學會什麼
首先要學習什麼?
我覺得可以先選一門簡單的語言進行學習,這樣可以先對編程有一個初步的認識,我學習的第一門語言是c,學得不精,簡直就是入門中的入門。我覺得c、java、Python都是不錯的入門語言,書籍可以直接網路 ----入門書籍。
然後這樣一邊認識編程,一邊去了解自己想開發的東西需要什麼技術,比如開發安卓要用java,網站要http://asp.net或php。詳細的了解之後需要的就是不斷地去補充這些自己不懂的東西。我覺得沒有必要在第一門語言選什麼上糾結太久,就我個人而言,才學編程對時候連什麼是面向對象編程都不知道,根本無法知道自己真正需要的技術是什麼,又怎麼選呢?
我認為最重要的就是盡快選一個語言開始學習吧!
給自學成才的新手程序員的六個建議
1、讓編程成為一個習慣
想要培養一項技能的最好的辦法,就是將他融入到我們的生活並成為我們的愛好。其實說白了,就是讓這個愛好成為一個習慣,一天不去做這件事情,都會覺得少了什麼。在不知不覺中,這個習慣會像滾雪球一樣積累起來。
對我來說,養成這種習慣首先就是要對「拖延症」說不。比如,你想鍛煉下自己的寫作能力時,但是沒有好看的本子,沒有好的靈感,沒有安靜的環境....總之就是找各種理由一拖再拖,最後就不了了之了。但仔細想想等你有了好看的本子,舒適的環境....就能寫出好的文章嗎?不!我很明確的告訴各位,文章的功底是隨著你不斷的積累而成的。所以,當我們決定去做某件事情,請立刻!馬上!現在就要開始行動!
6.保持耐心
對於人生來說,其中任何目標的實現都離不開耐心。編程學習就如其它任何學習任務一樣,都需要反復努力並投入大量時間。
在這個過程中,您一定會經歷高潮與低谷——別被這些曲線影響了心情。接受已經發生的一切,並盡可能避免其中不好的部分。就像打高爾夫球一樣,我們的手感總在不斷浮動,但只要堅持到底,您最終總能成為一個大神呢~
C. 腳本的知識
一、啥叫腳本呢?
其實就是一段代碼,作用就是:這些代碼通過你的瀏覽器來鼓搗一下你的機器。這樣,你就能通過點一下滑鼠就可以發點歡迎詞、發點情話啥地了。
二、怎麼在聊天室放腳本呢?
<script src=您的腳本存放地址></script>
把這段代碼放你右下角鏈接里就可以了。
三、你瀏覽器咋會知道你放腳本了呢?
因為每段腳本務都放在<script>和</script>之間了。一見到<script>字樣,瀏覽器就會當成腳本來分析了。純屬瀏覽器的條件反射之一。
四、我從寒江腳本里學到啥了?
1、定義一個變數:
var a=1 的意思就是:定義一個變數a,並給a賦值為1
2、為啥要定義變數呢?
這話說的,幹活不用人哪行啊?其實定義變數就是事先找幾個人來,留著以後派給任務。
3、定義一個數組變數
var a_name_filter = new Array(。。。);
其實數組變數也是相當於找人,只不過這個人可以干好幾樣活而已(屬於能人類型的)。
4、定義功能函數
function a(){}
這相當於各項任務。事先定義的變數一般會在這里體現出來。當你在腳本里寫上a()之後,瀏覽器就會條件反射了(執行a功能函數中的語句)。
五、腳本的說明文字
啥東西都得有個說明書不是,腳本也得有呀,而且這個說明書最好要寫在代碼里(要不過後自己都看不明白了,多丟人啊。)
那麼怎麼寫說明呢?
1、某行代碼的說明可以放在此行代碼的最後面,在行尾打上//然後再寫入文字說明就可以了。
例如:
var room_name="悠悠檸檬情"; //聊天室名字
2、如果文字太多,一行寫不下那咋辦啊?
在此特殊說明一下,其實盡管代碼一般都是英文字元,但說明文字絕對可以兼容現代漢語以及文言文的,(←廢話)
如果是多行說明文字,可以這樣寫
//---------------------------------------------
//孤鶴腳本0.9999版just for my Love
//
//失去,也是一種篤定。
//
//就算擁有的時光,是那麽短暫;
//
//能夠無怨無悔地為一個人付出,就是幸福。
//---------------------------------------------
看著感覺還不錯吧?(^!-)
當然,還有更方便的寫法,就是在說明文字的第一行寫上/*,再在最後一行寫上*/。例子如下:
/*
孤鶴腳本0.9999版 just for my Love
小薇啊,你可知道我多愛你,
我要帶你飛到天上去
看那星星多麼美麗
摘下一顆,輕輕送給你。。。
*/
本人強烈建議,不要在腳本里寫歌詞,因為有可能導致看腳本人的情感波動。:-)
六、數據類型
數據類型包括:字元串、數值、布爾三種類型。
javascript帶有數據類型強制轉換功能,這對編寫者(尤其是對喝完酒寫代碼的人)來講是一個大大的好事。要不你還得記好多的數據轉換函數。
七、JScript的運算符
關於運算符的講解,將會涉及很多很多的知識,請小學沒有畢業的同志自學完成小學課程之後再看。
計算 符號 位運算 符號
-------------------------------------
負值 - 邏輯非 !
遞增 ++ 小於 <
遞減 -- 大於 >
乘法 * 小於等於 <=
除法 / 大於等於 >=
加法 + 等於 ==
加法 + 不等於 !=
減法 - 邏輯與 &&
等於 =
例一:
x=1+2
=======
答案:x被賦值為3
例二:
if (mylove=="小薇") {
document.write("回答正確,您屬於多愁善感型的")
} else {
document.write("回答錯誤!您屬於沒事找抽型的")
} ======
運行結果:
如果變數mylove的值為「小薇」,那麼,程序會執行document.write("回答正確,您屬於多愁善感型的")
否則,則執行document.write("回答錯誤!您屬於沒事找抽型的")
我學到的腳本知識(二)
今夜,讓我靜靜地想你(詩配JS語句篇)
今夜,我悵坐一隅靜靜地想你,
想知道你在做什麼,想知道你有沒有在想我;
一、if...else 語句[根據表達式的值,有條件地執行一組語句。]
我想你,你想我嗎?如果我不想你,那麼你還想我嗎?
用語句控制如下:
if 我想你 {你想我嗎?} else{那麼你還想我嗎?}
通常都先定義一個變數來做為判斷條件。
a='我想你';
if (a=='我想你') { b='你想我嗎?'} else { b='那麼你還想我嗎?' }
二、do...while 語句[第一次執行一個語句塊,然後重復循環的執行該語句塊,直到條件表達式等於 false。]
折九百九十九隻紙鶴我就會去睡的,
用語句控制如下:
i=1;
do
(折一隻紙鶴;)
i=i++;
while(i<999)
三、switch 語句[當指定的表達式的值與某個標簽匹配時,即執行相應的一個或多個語句。]
我想你,
(假設前面已經為a賦值)
switch(a){
case 想為你點亮一盞桔色的燈,:
靜靜守候著你疲憊的歸來;
case 想為你遞上一杯溫熱的香茗,:
緩緩驅散你臉上的倦容;
case 想用我溫柔纖細的手指,:
輕輕撫平你眼角的皺紋;
case 想用我輕柔溫情的呢喃,:
撫慰你驛動不安的心靈。;
}
然後靜靜地看著你……
我祈求,祈求這一刻的寧靜、永恆。
四、for 語句[只要指定條件為 true 都執行語句塊。]
(第二條語句也可以用FOR語句來表達)
用語句控制如下:
for (i = 1; i < 999; i++) {
(折一隻紙鶴;)
}
五、while 語句[執行一個語句,直到指定的條件為 false。]
(第二條語句也可以用while語句來表達)
折九百九十九隻紙鶴我就會去睡的,
用語句控制如下:
var i=1;
while (i < 999) {
(折一隻紙鶴;)
i++;
}
我學到的腳本知識(三)
前二篇,已經把腳本的基本知識粗略地介紹了一下,基礎知識也介紹得差不多了,再有一些不太常用的只能在實戰中總結了。
以下結合寒江322腳本解釋一下。
粗看了一下寒江322腳本,大概共分四個部分
第一部分:變數定義部分,前516行。
第二部分:加入新的界面元素
第三部分:重新設置原有界面元素的樣式
第四部分:系統初始化
=====第一部分====
這部分內容於「我所學到的腳本知識(一)」中有介紹。
其實就是定義了一些變數(包括數組變數),這些定義好的變數會在下面的幾個部分中使用。
例一:
var room_name="心夢如語";// 房間名稱
定義了一個變數:room_name,並賦值為:心夢如語
注意寫法:
var 變數名 = 變數值 ;
定義一個變數,前面一定要有var,每句結束時要有";"符號。
後面的「// 房間名稱」部分為說明文字,在腳本執行時將被自動忽略。
例二:
// 按鈕背景圖片 寬度,文件名
var a_btn_pic = new Array
( 17, "btn17.gif",
18, "btn18.gif",
19, "btn19.gif",
35, "btn35.gif",
46, "btn46.gif",
70, "btn70.gif"
);
定義一個變數數組,每個值中間以「,」分隔。
其實也可以寫成如下形式:
var a_btn_pic = new Array(17,"btn17.gif",18,"btn18.gif",19,"btn19.gif",35,"tn35.gif",46,"btn46.gif",70,"btn70.gif");
這樣寫的話,腳本的體積會減小,但腳本的可讀性會差一些。
例三:
//——圖片——
var a_picture = new Array
( "你好", "pic/p001.gif",
"鼓掌", "pic/p002.gif",
。。
。 )
與
//——背景色——
var a_bkcolor = new Array
( "FFFFFF",
"fdd242",
"f8fead",
"a0e4a0",
。。
。 )
只是寫法的格式不同,其實都是定義變數數組。
好了,到現在為止,你已經完全理解了寒江322腳本的前516行的內容了(322腳本共1956行)。恭喜恭喜
我學到的腳本知識(四)
前三篇已經把腳本的基本知識粗略地介紹了一下,基礎知識也介紹得差不多了,再有一些不太常用的只能在實戰中總結了。
以下結合寒江322腳本解釋一下。
以下內容由發布之日起執行,如有與國家法律法規相抵觸,請按寒江322腳本之標准執行。
粗看了一下寒江322腳本,大概共分四個部分
第一部分:變數定義部分,前516行。
第二部分:加入新的界面元素
第三部分:重新設置原有界面元素的樣式
第四部分:系統初始化
=====第一部分====
這部分內容於「我所學到的腳本知識(一)」中有介紹。
其實就是定義了一些變數(包括數組變數),這些定義好的變數會在下面的幾個部分中使用。
例一:
var room_name="心夢如語";// 房間名稱
定義了一個變數:room_name,並賦值為:心夢如語
注意寫法:
var 變數名 = 變數值 ;
定義一個變數,前面一定要有var,每句結束時要有";"符號。
後面的「// 房間名稱」部分為說明文字,在腳本執行時將被自動忽略。
例二:
// 按鈕背景圖片 寬度,文件名
var a_btn_pic = new Array
( 17, "btn17.gif",
18, "btn18.gif",
19, "btn19.gif",
35, "btn35.gif",
46, "btn46.gif",
70, "btn70.gif"
);
定義一個變數數組,每個值中間以「,」分隔。
其實也可以寫成如下形式:
var a_btn_pic = new Array(17,"btn17.gif",18,"btn18.gif",19,"btn19.gif",35,"tn35.gif",46,"btn46.gif",70,"btn70.gif");
這樣寫的話,腳本的體積會減小,但腳本的可讀性會差一些。
例三:
//——圖片——
var a_picture = new Array
( "你好", "pic/p001.gif",
"鼓掌", "pic/p002.gif",
。。
。 )
與
//——背景色——
var a_bkcolor = new Array
( "FFFFFF",
"fdd242",
"f8fead",
"a0e4a0",
。。
。 )
只是寫法的格式不同,其實都是定義變數數組。
好了,到現在為止,你已經完全理解了寒江322腳本的前516行的內容了(322腳本共1956行)。恭喜恭喜
下面我寫一點題外的話。腳本做為一種解釋性的語言,與真正的程序還是有一定的差距的,從我的感覺來看,寫腳本是一種應用,而寫程序是一種開發。沒有腳本可以寫成一個系統,而程序可以,另外,寫程序有很多的藝術性在裡面。就象畫一幅山水畫一樣,創作的是一種意境,而不是一顆樹的外形。寫這些話的目的是想表達我的一個想法:腳本既然只是一種應用,那麼就把它共享吧,不要讓它帶有更多的商業目的。
我所學到的腳本知識(五)附:出擊代碼
從第517行開始,會涉及到JS語句了。其實語句也沒有什麼,萬事開頭難,已經學會500多行了,還難個啥呀。
(部分同志可能還對第(三)篇的內容還暈乎著呢。今天開始就會讓你一點點清醒了。)
先打個比方:
1、把寒江腳本看做一座樓(注意:是樓,不是平房,有住「別野」的一邊涼快去)
2、這座樓分四層(就是我前所說的,332腳本的四個部分。)
3、每層樓會有多個房間(就是各個功能函數)
4、每個房間又會有具體的工作和職責(就是各子功能函數)
5、每個房間里的人,暫且看做各個變數吧。
下面以一段332腳本的函數來說明一下
function add_new_element()//加入新的界面元素
{ 。
。
。
write_button("","歡迎",409,60,35,20,"","快速歡迎","autosend(a_welcome)");
。
。
。
}
這段代碼的add_new_element 是一個功能函數(也就是自己定製的一個任務,目的就是在聊天室的輸入區加入新的界面元素。)
從「{」開始,到「}」結束
在「{」與「}」之間的內容是add_new_element 功能函數的各項具體工作。例如:write_button(...)、write_bkcolor_select(...)、
write_select(...)等等。
而write_button(...)這些又是一些功能函數,這一函數的具體功能是在腳本第1010-1014行的
function write_button(name,value,left,top,width,height,color,title,action) 中。
而1010-1014行的
function write_button(name,value,left,top,width,height,color,title,action)//加入執行一個函數的按鈕
{ write_button_style(name,left,top,width,height,color,title,"");
document.write(' onclick="' + action + '">'+ value +'</button>');
}
這段代碼又包含了write_button_style(...)功能函數。
這樣一層套一層的,有時容易給人套迷糊,但其實這就象是一個大工作,裡面又分很多小的工作,每一個小的工作裡面又會分為幾個小
的工作一樣。
你晚上回家做飯的時候,不能光做飯不做菜吧?所以做飯其實是做飯和做菜兩樣工作。做菜也不能就一個菜吧?(那也喝不進去小酒啊
),標准再低,也得弄個四菜一湯啥的呀,這每道菜就又是一項工作了。[依吾政府提醒廣大社員:喝多酒有害身體健康!]
那麼為什麼有些功能函數後面的括弧里要加那麼多字母、數字呢?這些字母和數字就是第一篇我們提到的變數,它的作用就好像某一項
任務在分配之前先指定幾個人去做一樣。
象 write_button_style(name,left,top,width,height,color,title,"");
的意思就是:write_button_style這個任務指派name,left,top,width,height,color,title,""這幾個人去做,最後一個""的意思是空缺
,因為每個功能函數是事先定義好的,本來需要五個變數的,你非得派四個變數去,那對不起,你得寫一個""來表示缺一個變數,(到
時候算獎金也得多給一份不是。)
至於具體的瀏覽器怎麼去找那段代碼,怎麼去執行,你就不用操心了,瀏覽器會象領導查檢勞動紀律一樣,從頭走到尾。(領導的事最
好別管,把自己的工作干好就成,出了事讓領導去兜著。)
以上這段如果看明白了,那332腳本裡面的功能函數你就都可以理出一個大體的思路了。至於細節問題如「typeof(parent.r.listhtml)
」「document.inputform.USER...」這些都先不用管。
D. 學習程序設計需要掌握哪些知識
首先要學好英語和數學 其次程序語言要掌握 軟體應用 1:團隊精神和協作能力 ,和基本的操作 常識,缺乏這種素質的人就完全不合格了 。 2.要有做文檔的習慣,缺乏文檔,一個軟 件系統就缺乏生命力,在未來的查錯,升 級以及模塊的復用時就都會遇 到極大的 麻煩。 3:規范化,標准化的代碼編寫習慣 。 4.代碼具有良好的可讀性,是程序員基本 的素質需求。 5.程序員需要理解一個模塊的需求,把性 能指標全部歸結到硬體,操作系統和開發 環境上。 6.復用性,模塊化思維能力 ,避免大部 分重復性工作無謂的浪費了時間和精力。 7. 測試習慣 ,作為一些商業化正規化的 開發而言,專職的測試工程師是不可少的 8..程序員是人才很容易被淘汰,很容易 落伍的職業,必須不斷跟進新的技術,學 習新的技能。 計算機語言的種類非常的多,總的來說可 以分成機器語言,匯編語言,高級語言三 大類。
電腦每做的一次動作,一個步驟,都是按 照以經用計算機語言編好的程序來執行的 ,程序是計算機要執行的指令的集合,而 程序全部都是用我們所掌握的語言來編寫 的。所以人們要控制計算機一定要通過計 算機語言向計算機發出命令。
計算機所能識別的語言只有機器語言,即 由0和1構成的代碼。但通常人們編程時 ,不採用機器語言,因為它非常難於記憶 和識別。
目前通用的編程語言有兩種形式:匯編語 言和高級語言。
匯編語言的實質和機器語言是相同的,都 是直接對硬體操作,只不過指令採用了英 文縮寫的標識符,更容易識別和記憶。它 同樣需要編程者將每一步具體的操作用命 令的形式寫出來。匯編程序通常由三部分 組成:指令、偽指令和宏指令。匯編程序 的每一句指令只能對應實際操作過程中的 一個很細微的動作,例如移動、自增,因 此匯編源程序一般比較冗長、復雜、容易 出錯,而且使用匯編語言編程需要有更多 的計算機專業知識,但匯編語言的優點也 是顯而易見的,用匯編語言所能完成的操 作不是一般高級語言所能實現的,而且源 程序經匯編生成的可執行文件不僅比較小 ,而且執行速度很快。
高級語言是目前絕大多數編程者的選擇。 和匯編語言相比,它不但將許多相關的機 器指令合成為單條指令,並且去掉了與具 體操作有關但與完成工作無關的細節,例 如使用堆棧、寄存器等,這樣就大大簡化 了程序中的指令。同時,由於省略了很多 細節,編程者也就不需要有太多的專業知 識。
高級語言主要是相對於匯編語言而言,它 並不是特指某一種具體的語言,而是包括 了很多編程語言,如目前流行的VB、VC 、FoxPro、Delphi等,這些語言的語法 、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機 識別,必須經過轉換才能被執行,按轉換 方式可將它們分為兩類:
解釋類:執行方式類似於我們日常生活中 的「同聲翻譯」,應用程序源代碼一邊由相 應語言的解釋器「翻譯」成目標代碼(機器 語言),一邊執行,因此效率比較低,而 且不能生成可獨立執行的可執行文件,應 用程序不能脫離其解釋器,但這種方式比 較靈活,可以動態地調整、修改應用程序 。
編譯類:編譯是指在應用源程序執行之前 ,就將程序源代碼「翻譯」成目標代碼(機 器語言),因此其目標程序可以脫離其語 言環境獨立執行,使用比較方便、效率較 高。但應用程序一旦需要修改,必須先修 改源代碼,再重新編譯生成新的目標文件 (* .OBJ)才能執行,只有目標文件而沒 有源代碼,修改很不方便。現在大多數的 編程語言都是編譯型的,例如Visual C+ +、Visual Foxpro、Delphi等
E. 想學寫腳本, 開始我要學什麼呢
學寫腳本開始要學基礎的編程和計算機原理。
F. 編程要學習哪些知識
1、首先要明確自己的學習目的,為什麼要學習編程。如果是要考級,那麼建議學VB,因為它語句比較簡單,易上手;如果是真的要掌握一項技術搞研發之用,那麼建議學習C++或Java,因為它們語句功能很強大,雖然難度大一點但很實用;
2、選擇自己要學習語言種類,如VB,C++,Java等
3、最好找一個輔導班配合書本同步學習,因為程序的問題如果自己只是看書的話很難理解,有前輩指點會有事半功倍的效果;
4、語句和循環是最基本的結構,所以無論學習任何語言都要把它們掌握好,這是在學習過程中一定要注意的;
5、一定要多上機操作。程序是抽象的,有時看程序看的懂,但自己去編卻不一定能編的出來;而有時候雖然程序沒看懂,但如果經常著手去編,就會非常熟悉該程序用的時候應該怎麼去處理,時間久了自然就理解了;
6、有了一點的操作基礎以後,就要去背一些簡單的語句體了,這些小的語句在你以後編的大程序里是基礎的基礎
7、最後就是獨立編程了,看到一個編程要求之後,首先要在腦中有一個大體的輪廓,獨立構思,不要看參考揭示,只有這樣才可以達到真正的訓練目的,才可以一步步地把思路培養出來
總之呢,學習編程一定要樹立信心,首先從思想上就不要去害怕它,只有以此為前提,才可以學的更好。
G. 用java寫,游戲腳本,需要學習哪方面
學習JSP、Servlet、JDBC、JavaBean(Application)四部分技術。
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
20世紀90年代,硬體領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、麵包烤箱、行動電話等)的智能化程度。
Sun公司為了搶占市場先機,在1991年成立了一個稱為Green的項目小組,帕特里克、詹姆斯·高斯林、麥克·舍林丹和其他幾個工程師一起組成的工作小組在加利福尼亞州門洛帕克市沙丘路的一個小工作室裡面研究開發新技術,專攻計算機在家電產品上的嵌入式應用。
H. 電腦程序員要學什麼知識
程序員的崗位需求很多,例如大型網路公司、軟體開發公司等等都需要程序員。
程序員需要學習:
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很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。
但所以在剛入門的時候,建議先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。
I. 編腳本 需要那些知識
如果是編寫網站的話,腳本一般有:
javascript、vbscript、HTML語言等
這些編程語言都非常簡單,如果有C語言基礎,那麼學起來就更好了。
J. 關於腳本的知識 詳細點
游戲業中的腳本
腳本不是游戲業的新技術,但腳本為業外的人所知悉,卻應歸功於《魔獸世界》(以下簡稱Wow)在世界范圍的流行。通過Wow偉大的自定義界面系統,Lua這一腳本語言一舉成名天下知。
雖然Lua的出名有點橫空出世的感覺,但游戲業內早就使用腳本來開發游戲了。即便是在國內,我們所熟悉的網游大多數是用腳本開發的。此前已有人士透露,網游的長青樹《夢幻西遊》和《大話西遊2》就大量應用了腳本技術;特別是《大話西遊2》,比Wow早幾年做了基於Lua腳本的游戲開發。可以說,國內與國外在腳本技術上並不存在差距,大家都是站在同一起跑線上的,這為國內游戲行業趕超國際水平提供了強大的保障。
回顧過去,我們發現單機版游戲時代很少聽到腳本這個詞。那麼,為什麼在網游時代腳本成了業界寵兒?原因是多方面的。比如在單機時代,無論游戲機還是PC的性能都非常低下,需要具有更高執行效率的編譯型語言來「壓榨」機器性能。但硬體性能的提升並不是腳本流行開來的決定性因素,真正的原因是市場的需要。
網游時代的市場需求快速變化、競爭激烈,如果延用單機時代一年半載才出一個新版本的開發方式,那必然會被市場淘汰。正是這種快速變幻的市場需要和低效的開發工具之間的矛盾,引發了開發工具的革命——腳本語言風生水起。腳本的興起因為游戲業中傳統的編譯型語言(asm/C/C++)的性能優勢在硬體性能大幅攀升的今天已經不復存在。在網游時代,游戲業中的主要矛盾已經由性能低下的硬體與游戲執行效率之間的矛盾轉變為快速變化的市場需要與低效的開發工具之間的矛盾,腳本在網游時代的輝煌是歷史的必然。
除了市場和硬體因素外,還有一點不能忽略。那就是C/C++進行游戲開發的高成本性和高項目風險。隨著java/.net逐年流行,大學生中學習C/C++編程語言的人越來越少。物以希為貴,人亦如是。C/C++程序員新鮮血液補給少,而網游開始流行,巨大的網游市場需求造成大量的人才空缺,這時也就帶來了C/C++的高成本。即便是資本雄厚的公司,可以僱傭大量C/C++程序員開發游戲,也不能無視C/C++高級特性和高度的靈活性帶來的高項目風險。C/C++是易學難精的編程語言,應用在大型項目的時候極容易因為程序員的水平參差不齊而引起溝通不暢,還有濫用的高級特性也容易引入大量的bug。游戲公司希望找到一個方案以解決高成本、高風險的問題——這個方案就是在游戲中使用腳本。
腳本的現狀
腳本解決了C/C++無法解決的開發效率難題,而且降低了成本和風險。腳本在游戲業中就此蓬勃地發展了起來,現在腳本技術已經成為游戲業中不可或缺的一環。橫看當前腳本技術,一片大好形勢就如同八九點鍾的太陽。不僅語言百家爭鳴,而且書籍也層出不窮;不僅在游戲業開花結果,在web等其它應用也大放異彩。
首先,我們來看看現在比較流行的腳本: Python、Lua、ruby和Erlang。Python和Lua是網路游戲開發的中堅力量;ruby憑借ruby on rails的web開發框架的強勁力量,不可小瞧它在游戲業的前途;erlang在高並發性上的原生優勢吸引了無數追求高性能的網游伺服器的開發人員的目光。
然後讓我們來看看書籍和資料方面。大家都知道,文檔對語言的普及起到正向催化劑的作用,甚至可以看作是語言的有機組成部分,必不可少。Python經過基金會的多年經營和在NASA、Google得到重用的原因,書籍方面比較豐富;ruby隨著RoR的流行水漲船高,這兩年行情看好,書籍也出版得越來越多了;反觀Lua,雖然流行度一直走高,但出來的書卻沒有幾本,跟他苦澀的介面設計和缺乏針對大型應用的原生支持不無關系;Erlang是典型的少眾語言,但隨著多核時代的來臨和高並發網路應用的需求,有著光明的發展前景,現在《Programming Erlang》等書已經在策劃出版了。
最後把焦點重新聚集到游戲開發行業中來,可以發現腳本言語已經在游戲業中開發結果,碩果累累。除了前文提到的《魔獸世界》和網易經典「西遊系列」都使用了腳本外,現在大多數流行程序都使用腳本,如騰訊的《QQgame》和搜狐的《天龍八部》等。現在的游戲引擎也都提供了腳本介面,無論是商業的Unreal引擎還是開源的OGRE,無一例外。
腳本的優勢
腳本在游戲業中找到自己的一席之地,是因為網游市場需要一個快速開發方案來避免C/C++開發帶來的項目高成本和高風險。那麼,具體而言腳本相對於C/C++這類編譯型語言有什麼優勢呢?
一、易於學習、代碼可維護性強。通常腳本的語法都非常簡單,也沒有太多高階的特性,學習的門檻較C/C++低得多。如Python號稱只需要花一個下午即可學會。這使得游戲開發公司可以招聘完全沒有腳本編程經驗的新手,通過低成本的培訓,迅速走上工作崗位。除易於學習外,腳本代碼也有更好的可維護性(盡管寫出沒有人看得懂的Lua代碼也非難事)。因為腳本不會有很多高階特性(如C++里的模板元編程就是高階特性),所以腳本程序員有更多精力關注架構、模式、重用和測試,從而提高了代碼的質量;相應地,沒有那麼多讓人困惑的高階特性,也使得代碼「簡潔」不少。
二、降低開發成本。如第一點所言,腳本易於學習,使得游戲開發公司可以大量應用新手,是降低成本的有效手段。那麼如何來保證新手寫的代碼的質量呢?這需要我們辯證地看問題。從經驗上看新手寫的程序無論用什麼言語,bug肯定不少。但一個C新手編寫的代碼和Python新手編寫的相同功能的代碼相比,C版本應該會有更多的bug。由於C程序需要編譯,而腳本程序(大部分)都可以直接解釋執行,所以在排除bug方面腳本也有先天的優勢,這使得腳本在低成本的同時能夠更好地保證代碼質量。
三、形成人才壁壘。軟體開發行業是一個動盪的行業,無數的程序員都在跳槽和謀劃跳槽的狀態中過日子。使用腳本開發,形成人才壁壘是游戲業減少人才流動的有效手段。因為腳本現在除了在游戲業中大紅大紫外,並沒有在其它行業形成殺手級應用(雖然在web開發方面也有燎原之勢,但終究不似在游戲業中的地位高尚)。這就讓游戲程序員很少會考慮非游戲業的職位,而其它行業的程序員卻可能會因為腳本的易學習性轉投游戲業。腳本除了能有效形成行業間的人才壁壘外,也能有效地形成企業間的人才壁壘。因為現有的腳本種類繁多,不同公司往往有不同的選擇,甚至有些公司使用自己開發的腳本語言。程序員從公司A跳槽到公司B可能就要學習使用另一種腳本,這提高了跳槽的成本,從而使人才流動減少。
腳本的發展趨勢
依照目前的趨勢來看,腳本語言也一定會更加普及開來,而且會滲透到其它行業中去。隨著網游從業人員的增長,腳本程序員也一直相應地增長著,而且Web2.0熱潮引起的網路需求,也促生了一批批新的腳本程序員。網游市場就像一個正在滾動的雪球,帶動著腳本的普及。
隨著腳本在游戲業中越來越流行,市場就會需要更高的生產效率。腳本雖然一定程度上緩解了市場與生產工具之間的矛盾,但仍然不夠徹底。由於市場競爭趨於激烈,而網游在很多功能實現都相差無幾:如網路、資料庫、圖形甚至部分邏輯。這必然會催生網游生產組裝化——大量的中間件相互組合形成新的網游。從現在來看,Bigworld、PhysX和Unreal等都是比較流行的網游中間件。腳本語言是粘合各個中間件的良好膠水語言,所以隨著網游生產組裝化,腳本有良好的發展空間。
那麼,當腳本發展到如日中天的時候,會取代C/C++這些編譯型語言嗎?我認為不會。腳本語言和編譯型語言在生產效率和執行效率上各擅勝場,網路游戲既需要能快速應變的腳本,也需要能快速執行以提供更絢麗游戲效果的編譯型語言,在未來,它們之間會保持長久的和諧互補關系,相輔相成。
結語
綜上所述,網游時代是上帝賜予腳本語言的絕好時機,腳本語言很快將迎來自己光芒四射的世代。腳本語言擁有編譯型語言無可比擬的生產效率優勢,它們將並肩奮戰在游戲最前線