欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      abaqus_用戶程序-學(xué)習(xí)心得(五篇范例)

      時(shí)間:2019-05-12 12:00:15下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《abaqus_用戶程序-學(xué)習(xí)心得》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《abaqus_用戶程序-學(xué)習(xí)心得》。

      第一篇:abaqus_用戶程序-學(xué)習(xí)心得

      ABAQUS用戶子程序

      當(dāng)用到某個(gè)用戶子程序時(shí),用戶所關(guān)心的主要有兩方面:一是ABAQUS提供的用戶子程序的接口參數(shù)。有些參數(shù)是ABAQUS傳到用戶子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用戶自己定義的,例如F。二是ABAQUS何時(shí)調(diào)用該用戶子程序,對(duì)于不同的用戶子程序ABAQUS調(diào)用的時(shí)間是不同的。有些是在每個(gè)STEP的開(kāi)始,有的是STEP結(jié)尾,有的是在每個(gè)INCREMENT的開(kāi)始等等。當(dāng)ABAQUS調(diào)用用戶子程序是,都會(huì)把當(dāng)前的STEP和INCREMENT利用用戶子程序的兩個(gè)實(shí)參KSTEP和KINC傳給用戶子程序,用戶可編個(gè)小程序把它們輸出到外部文件中,這樣對(duì)ABAQUS何時(shí)調(diào)用該用戶子程序就會(huì)有更深的了解。(子程序中很重要的就是要知道由abaqus提供的那些參量的意義,如下)首先介紹幾個(gè)子程序:

      一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME)參數(shù):

      1. F為用戶定義的是每個(gè)積分點(diǎn)所作用的荷載的大??;

      2. KSTEP,KINC為ABAQUS傳到用戶子程序當(dāng)前的STEP和INCREMENT值;

      3. TIME(1),TIME(2)為當(dāng)前STEP TIME和INCREMENT TIME的值;

      4. NOEL,NPT為積分點(diǎn)所在單元的編號(hào)和積分點(diǎn)的編號(hào);

      5. COORDS為當(dāng)前積分點(diǎn)的坐標(biāo);

      6. 除F外,所有參數(shù)的值都是ABAQUS傳到用戶子程序中的。

      功能:

      1. 荷載可以被定義為積分點(diǎn)坐標(biāo)、時(shí)間、單元編號(hào)和單元節(jié)點(diǎn)編號(hào)的函數(shù)。

      2. 用戶可以從其他程序的結(jié)果文件中進(jìn)行相關(guān)操作來(lái)定義積分點(diǎn)F的大小。

      例1:這個(gè)例子在每個(gè)積分點(diǎn)施加的荷載不僅是坐標(biāo)的函數(shù),而且是隨STEP變化而變化的。

      SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME)INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3)CHARACTER*80 SNAME

      PARAMETER(PLOAD=100.E4)

      IF(KSTEP.EQ.1)THEN!當(dāng)STEP=1時(shí)的荷載大小

      P=PLOAD

      ELSE IF(KSTEP.EQ.2)THEN!當(dāng)STEP=2時(shí)的荷載大小

      P=COORDS(1)*PLOAD!施加在積分點(diǎn)的荷載P是坐標(biāo)的函數(shù)

      ELSE IF(KSTEP.EQ.3)THEN!當(dāng)STEP=3時(shí)的荷載大小

      P=COORDS(1)**2*PLOAD

      ELSE IF(KSTEP.EQ.4)THEN!當(dāng)STEP=4時(shí)的荷載大小

      P=COORDS(1)**3*PLOAD

      ELSE IF(KSTEP.EQ.5)THEN!當(dāng)STEP=5時(shí)的荷載大小

      P=COORDS(1)**4*PLOAD END IF RETURN END

      UMAT 子程序具有強(qiáng)大的功能,使用UMAT 子程序:

      (1)

      可以定義材料的本構(gòu)關(guān)系,使用ABAQUS 材料庫(kù)中沒(méi)有包含的材料進(jìn)行計(jì)算,擴(kuò)充程序功能。(2)幾乎可以用于力學(xué)行為分析的任何分析過(guò)程,幾乎可以把用戶材料屬性賦予ABAQUS 中的任何單元;(3)必須在UMAT 中提供材料本構(gòu)模型的雅可比(Jacobian)矩陣,即應(yīng)力增量對(duì)應(yīng)變?cè)隽康淖兓省?/p>

      (4)可以和用戶子程序“USDFLD”聯(lián)合使用,通過(guò)“USDFLD”重新定義單元每一物質(zhì)點(diǎn)上傳遞到UMAT 中場(chǎng)變量的數(shù)值。

      由于主程序與UMAT 之間存在數(shù)據(jù)傳遞,甚至共用一些變量,因此必須遵守有關(guān)UMAT 的書(shū)寫(xiě)格式,UMAT 中常用的變量在文件開(kāi)頭予以定義,通常格式為:

      SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME, 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT, 4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)

      INCLUDE 'ABA_PARAM.INC'

      CHARACTER*80 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV), 1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS), 2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1), 3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3)user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT RETURN END UMAT 中的應(yīng)力矩陣、應(yīng)變矩陣以及矩陣DDSDDE,DDSDDT,DRPLDE 等,都是直接分量存儲(chǔ)在前,剪切分量存儲(chǔ)在后。直接分量有NDI 個(gè),剪切分量有NSHR 個(gè)。各分量之間的順序根據(jù)單元自由度的不同有一些差異,所以編寫(xiě)UMAT 時(shí)要考慮到所使用單元的類(lèi)別。下面對(duì)UMAT 中用到的一些變量進(jìn)行說(shuō)明:

      DDSDDE(NTENS,NTENS)

      是一個(gè)NTENS 維的方陣,稱作雅可比矩陣,是應(yīng)力的增量,是應(yīng)變的增量,DDSDDE(I,J)表示增量步結(jié)束時(shí)第J 個(gè)應(yīng)變分量的改變引起的第I 個(gè)應(yīng)力分量的變化。通常雅可比是一個(gè)對(duì)稱矩陣,除非在“*USER MATERIAL”語(yǔ)句中加入了“UNSYMM”參數(shù)。STRESS(NTENS)

      應(yīng)力張量矩陣,對(duì)應(yīng)NDI 個(gè)直接分量和NSHR 個(gè)剪切分量。在增量步的開(kāi)始,應(yīng)力張量矩陣中的數(shù)值通過(guò)UMAT 和主程序之間的接口傳遞到UMAT 中,在增量步的結(jié)束UMAT 將對(duì)應(yīng)力張量矩陣更新。對(duì)于包含剛體轉(zhuǎn)動(dòng)的有限應(yīng)變問(wèn)題,一個(gè)增量步調(diào)用UMAT 之前就已經(jīng)對(duì)應(yīng)力張量的進(jìn)行了剛體轉(zhuǎn)動(dòng),因此在UMAT 中只需處理應(yīng)力張量的共旋部分。UMAT 中應(yīng)力張量的度量為柯西(真實(shí))應(yīng)力。

      STATEV(NSTATEV)

      用于存儲(chǔ)狀態(tài)變量的矩陣,在增量步開(kāi)始時(shí)將數(shù)值傳遞到UMAT 中。也可在子程序USDFLD或UEXPAN 中先更新數(shù)據(jù),然后增量步開(kāi)始時(shí)將更新后的數(shù)據(jù)傳遞到UMAT 中。在增量步的結(jié)束必須更新?tīng)顟B(tài)變量矩陣中的數(shù)據(jù)。和應(yīng)力張量矩陣不同的是:對(duì)于有限應(yīng)變問(wèn)題,除了材料本構(gòu)行為引起的數(shù)據(jù)更新以外,狀 態(tài)變量矩陣中的任何矢量或者張量都必須通過(guò)旋轉(zhuǎn)來(lái)考慮材料的剛體運(yùn)動(dòng)。

      狀態(tài)變量矩陣的維數(shù),等于關(guān)鍵字“*DEPVAR”定義的數(shù)值。狀態(tài)變量矩陣的維數(shù)通過(guò)ABAQUS 輸入文件中的關(guān)鍵字“*DEPVAR”定義,關(guān)鍵字下面數(shù)據(jù)行的數(shù)值即為狀態(tài)變量矩陣的維數(shù)。

      材料常數(shù)的個(gè)數(shù),等于關(guān)鍵字“*USER MATERIAL”中“CONSTANTS”常數(shù)設(shè)定的值。PROPS(NPROPS)

      材料常數(shù)矩陣,矩陣中元素的數(shù)值對(duì)應(yīng)于關(guān)鍵字“*USER MATERIAL”下面的數(shù)據(jù)行。SSE,SPD,SCD 分別定義每一增量步的彈性應(yīng)變能,塑性耗散和蠕變耗散。它們對(duì)計(jì)算結(jié)果沒(méi)有影響,僅僅作為能量輸出。其他變量:

      STRAN(NTENS):應(yīng)變矩陣;

      DSTRAN(NTENS):應(yīng)變?cè)隽烤仃嚕?DTIME :增量步的時(shí)間增量; NDI :直接應(yīng)力分量的個(gè)數(shù); NSHR :剪切應(yīng)力分量的個(gè)數(shù);

      NTENS :總應(yīng)力分量的個(gè)數(shù),NTENS NDI NSHR = +。

      使用UMAT 時(shí)需要注意單元的沙漏控制剛度和橫向剪切剛度。通常減縮積分單元的沙漏控制剛度和板、殼、梁?jiǎn)卧臋M向剪切剛度是通過(guò)材料屬性中的彈性性質(zhì)定義的。這些剛度基于材料初始剪切模量的值,通常在材料定義中通過(guò)“*ELASTIC”選項(xiàng)定義。但是使用UMAT 的時(shí)候,ABAQUS 對(duì)程序輸入文件進(jìn)行預(yù)處理的時(shí)候得不到剪切模量的數(shù)值。所以這時(shí)候用戶必須使用“*HOURGLASS STIFFNESS” 選項(xiàng)來(lái)定義具有沙漏模式的單元的沙漏控制剛度,使用“*TRANSVERSE SHEAR STIFFNESS”選項(xiàng)來(lái)定義板、殼、梁?jiǎn)卧臋M向剪切剛度。幾個(gè)關(guān)于子程序的問(wèn)題及相應(yīng)解答 Q: 本人在用umat作本構(gòu)模型時(shí),*static,1,500,0.000001,0.1 此時(shí)要求的增量步很多,即每次增量要很小,*static

      1,500 時(shí),在彈性向塑性過(guò)度時(shí),出現(xiàn)錯(cuò)誤,增量過(guò)大,出現(xiàn)尖點(diǎn).? A: YOU CAN TRY AS FOLLOWS:

      *STEP,EXTRAPOLATION=NO,INC=2000000 *STATIC

      0.001,500.0,0.00001,0.1。

      Q: 在abaqus中,如果采用umat,利用自己的本構(gòu),如何讓abaqus明白這種材料的彈塑性應(yīng)

      變,也就是說(shuō),如何讓程序返回彈性應(yīng)變與塑性應(yīng)變,好在output中輸出,我曾想用最笨

      地方法,在uvarm中定義輸出,利用getvrm獲取材料點(diǎn)的值,但無(wú)法獲取增量應(yīng)力,材料常

      數(shù)等,研究了幫助中的例子,umatmst3.inp,umatmst3.for,他采用mises J2 流動(dòng)理論,我在output history 顯示他已進(jìn)入塑性狀態(tài),但他的PE仍然為0!? A: 用uvar()勉強(qiáng)成功。

      Q: 偶在umat中調(diào)用求主應(yīng)力函數(shù)

      CALL SPRINC(STRESS,PS,LSTR,NDI,NSHR)后,存儲(chǔ)主應(yīng)力得數(shù)組PS中

      各個(gè)主應(yīng)力排列順序是什么?

      PS1>PS2>PS3 ? PS1

      PS3>PS2 ? A: 第二個(gè)。

      個(gè)人覺(jué)得:

      umat實(shí)現(xiàn)自己的本構(gòu)沒(méi)有固定的方法,對(duì)于不同的本構(gòu)有可能必須采用不同的方法。這要

      靠自己不斷地摸索。有可能一種方法對(duì)于簡(jiǎn)單加載問(wèn)題還行,但有可能對(duì)于復(fù)雜問(wèn)題并不

      收斂。最重要一點(diǎn),就是umat中采用的算法必須consistent.再就是ddsdde必須正確,(如

      果采用back_Euler 方法等一些算法,ddsdde錯(cuò)誤有時(shí)不影響結(jié)果(對(duì)于簡(jiǎn)單加載問(wèn)題沒(méi)有

      影響,能收斂,),但對(duì)于復(fù)雜問(wèn)題不收斂。

      uptonow,你這個(gè)算法對(duì)于Mises,hill,J2,J2d等一類(lèi)的屈服函數(shù)是正確的,但具體的本構(gòu)

      還要靈活運(yùn)用,這我也正學(xué)習(xí),正在摸索。

      有時(shí),umat需要很強(qiáng)的有限元基礎(chǔ),并且對(duì)采用的本構(gòu)要很熟悉,不要在一顆樹(shù)上吊死才

      好。首先要確認(rèn)自己的umat沒(méi)有錯(cuò)誤,如果沒(méi)有,但就是不收斂(在不斷減小加載步長(zhǎng)的情況下,當(dāng)然最好對(duì)步長(zhǎng)不敏感,特別是對(duì)于粘彈性,粘塑性,內(nèi)變量一類(lèi)的材料,有的本構(gòu)取決于背應(yīng)力的計(jì)算)。那就應(yīng)該考慮換一種算法。

      一點(diǎn)體會(huì),請(qǐng)大家探討。

      Q: abaqus-uamt的老問(wèn)題,缺少 'ABA_PARAM.INC'文件 ? A: 在cvf6.5調(diào)試時(shí),顯示 缺少 'ABA_PARAM.INC'文件!

      這個(gè)沒(méi)有任何關(guān)系的,這個(gè)錯(cuò)誤將在ABAQUS調(diào)用UMAT的時(shí)候自動(dòng)會(huì)找到,僅僅有這個(gè)錯(cuò)誤

      將沒(méi)有任何影響的。也就是說(shuō),ABAQUS中調(diào)用的時(shí)候,實(shí)際并不存在這個(gè)錯(cuò)誤。FT,忘了

      說(shuō)一句了,你把ABA_PARAM.INC.dp或ABA_PARAM.INC.sp拷到你的程序工作空間后,應(yīng)該將

      把ABA_PARAM.INC.dp或ABA_PARAM.INC.sp的后綴.sp或.dp去掉,即將ABA_PARAM.IN C.dp或

      ABA_PARAM.INC.sp改名為ABA_PARAM.INC。呵呵,他的意思是在Visual Fortran中調(diào)試其子程序,我覺(jué)得這是一個(gè)好辦法,我當(dāng)時(shí)也

      是這麼辦的,畢竟在ABAQUS中調(diào)試是非常麻煩的,只有當(dāng)你的UMAT沒(méi)有語(yǔ)法或者明顯的邏

      輯錯(cuò)誤,你在ABAQUS中調(diào)試才能事半功倍。Q:uvarm可以輸出到哪里?.odb可以么?

      另外那個(gè)strav??就是自己定義用于umat的那個(gè)數(shù)組里的數(shù)可以輸出到.odb里么?

      A:在umat中,statev是不能用在output中的,statev只是作為一個(gè)解的狀態(tài)變量,說(shuō)來(lái)慚愧,我是在umat中定義peeq,(peeq)的求解一般在彈塑性力學(xué)書(shū)上有(等效塑性應(yīng)變),用write()寫(xiě)入一個(gè)臨時(shí)文件,((切記:這個(gè)文件unit號(hào)不要與abaqus中的重合,因?yàn)樗幸恍┫到y(tǒng)默認(rèn)的文件號(hào),))

      然后在uvarm中讀取,以u(píng)varm輸出,因?yàn)閡varm可以以odb的形式輸出,支持output,field,output,history

      Q:在本版看了一個(gè)一維固結(jié)的例子,其中含有用戶子程序,如下

      SUBROUTINE UFIELD(FIELD,KFIELD,NSECPT,KSTEP,KINC,TIME,NODE, COORDS,TEMP,DTEMP)

      INCLUDE 'ABA_PARAM.INC'

      DIMENSION FIELD(NSECPT),TIME(2),COORDS(3),TEMP(NSECPT), DTEMP(NSECPT)

      KFIELD=1

      FIELD(1)=COORDS(2)

      RETURN END

      我在VF6.5中進(jìn)行調(diào)試,提示找不到ABA_PARAM.INC 請(qǐng)問(wèn)大俠這如何解決。

      還有我因?yàn)槭浅醮谓佑|用戶子程序,我查閱了本版所有的相關(guān)貼子,都講的不太詳細(xì),我將問(wèn)題總結(jié)一下,大俠們能不能詳細(xì)的講解一下,子程序格式(程序后綴是.f;.f90;.for;.obj??)2 CAE中如何調(diào)用,command下如何調(diào)用?若有多個(gè)子程序同時(shí)存在,如何處理 我對(duì)VF不是很熟,是否可以用VC,C++編寫(xiě)子程序? A: 若要在vf中調(diào)試,那么應(yīng)該根據(jù)需要把SITE文件夾中的ABA_PARAM_DP.INC(雙精度)或ABA_PARAM_SP.INC(單精度)拷到相應(yīng)的位置,并改名為ABA_PARAM.INC即可。

      1。我試過(guò),.for格是應(yīng)該是不可以的,至少6.2和6.3版本應(yīng)該是不行,其他的沒(méi)用過(guò),沒(méi)有發(fā)言權(quán)。

      在Abaqus中,運(yùn)行abaqus j=jobname user=username時(shí),默認(rèn)的用戶子程序后綴名是.for(.f,.f90應(yīng)該都不行的,手冊(cè)上也有講過(guò)),只有在username.for文件沒(méi)有找到的情況下,才會(huì)去搜索username.obj,如果兩者都沒(méi)有,就會(huì)報(bào)錯(cuò)誤信息。

      如果username包括擴(kuò)展名for或obj,那么就根據(jù)各自的擴(kuò)展名ABAQUS會(huì)自動(dòng)選擇進(jìn)行操作。

      2。cae中在creat job的job manager中的general中可以指定子程序;command下用命令:abaqus j=jobname user=userfilename(無(wú)后綴);

      3。將其寫(xiě)在一個(gè)文件中即可,然后用一個(gè)總的子程序調(diào)用(具體參見(jiàn)手冊(cè))

      4。據(jù)說(shuō)6.4的將可以,6.3的你可以嘗試著將VC,C++程序編譯為obj文件,沒(méi)試過(guò)。

      在你的工作目錄下應(yīng)該已經(jīng)存在ufield.obj和uvarm.obj這兩個(gè)文件(這兩個(gè)文件應(yīng)該是你分別單獨(dú)調(diào)試ufield.FOR和uvarm.FOR時(shí)自動(dòng)編譯生成的,你可以將他們刪掉試試看),但是由于你的FOR文件中已經(jīng)有了UVARM和UFIELD這兩個(gè)subroutine,顯然會(huì)造成重復(fù)定義,請(qǐng)查實(shí)。

      ## Q: 假定采用mises屈服準(zhǔn)則。在調(diào)用UMAT之前,ABAQUS傳遞給UMAT本次增量開(kāi)始時(shí)的應(yīng)力sigma(0),總應(yīng)變E,應(yīng)變?cè)?/p>

      量delta(E)。

      狀態(tài)變量保存:彈性應(yīng)變,塑性應(yīng)變,等效塑性應(yīng)變。

      (請(qǐng)問(wèn),狀態(tài)變量保存的彈性應(yīng)變+塑性應(yīng)變是否等于ABAQUS傳遞給UMAT的總應(yīng)變???

      ??)

      2,然后在UMAT中利用上述的ABAQUS傳遞的量和狀態(tài)變量得到DDSDDE矩陣,然后返回給

      ABAQUS,ABAQUS根據(jù)delta(sigma)=ddsdde*delta(E),并且得到本次增量結(jié)束時(shí)的應(yīng)力

      sigma(1)=sigma(0)+delta(sigma)=sigma(0)+ddsdde*delta(E)然后更新本次增量結(jié)束時(shí)的狀態(tài)變量:彈性應(yīng)變,塑性應(yīng)變,等效塑性應(yīng)變以供下次調(diào)

      用UMAT

      請(qǐng)問(wèn)手冊(cè)上UMAT必須更新應(yīng)力,可是根據(jù)上述我的理解好像是ABAQUS根據(jù)UMAT提供的本

      次增量的DDSDDE在ABAQUS中更新,請(qǐng)問(wèn)到底是怎么回事?謝謝!

      ##### A: 1 在調(diào)用UMAT之前,ABAQUS傳遞給UMAT本次增量開(kāi)始時(shí)的應(yīng)力sigma(0),總應(yīng)變E,應(yīng)..: 量delta(E)。

      : 狀態(tài)變量保存:彈性應(yīng)變,塑性應(yīng)變,等效塑性應(yīng)變。

      2,然后在UMAT中利用上述的ABAQUS傳遞的量和狀態(tài)變量得到DDSDDE矩陣,然后返回給

      : ABAQUS,ABAQUS根據(jù)delta(sigma)=ddsdde*delta(E),并且得到本次增量結(jié)束時(shí)的應(yīng)力然后更新本次增量結(jié)束時(shí)的狀態(tài)變量:彈性應(yīng)變,塑性應(yīng)變,等效塑性應(yīng)變以供下 以上有些answers本人并沒(méi)有親自證實(shí),如有問(wèn)題請(qǐng)及時(shí)更正!

      轉(zhuǎn)】ABAQUS與FORTRAN 2 2011年10月29日 星期六 10:38 轉(zhuǎn)載自 nefutumu 最終編輯 nefutumu Q: 本人嘗試使用ABAQUS的子程序SUBROUTINE,根據(jù)幫助文件需要編譯通過(guò)生成*.for和*.lib文件,可是編譯的時(shí)候出現(xiàn)錯(cuò)誤:Error: Cannot open include file 'ABA_PARAM.INC'不知道是什么原因,怎么解決?

      A: 1.確認(rèn)Visual Fortran及VC++正確安裝,并在安裝ABAQUS之前安裝。2.首先將用戶子程序*.f文件后綴名改為*.for。

      3.到控制面板-》系統(tǒng)-》高級(jí)-》環(huán)境變量中的 Administrator用戶變量: 修改—— 變量名:lib變量值:C:Program FilesMicrosoft Visual StudioDF98LIB;C:Program FilesMicrosoft Visual StudioVC98LIB(我的問(wèn)題就是因?yàn)橹患恿艘粋€(gè)LIB,必須兩個(gè)都加?。┩瓿梢陨喜襟E以后,就可以運(yùn)行了。

      Q: 怎樣把自己編寫(xiě)的子程序倒入到*.INP文件中。

      A:

      Q:用函數(shù)作批處理遇到問(wèn)題,在fortran中使用result = systemqq(abaqus job=job1 interactive)作批處理,總是在計(jì)算兩個(gè)job之后就不繼續(xù)往下算了,cmd明令行提示:run time error:floating-point...請(qǐng)問(wèn)這是怎么回事?

      A: 個(gè)方法就是做一個(gè)批處理文件,abaqus job=beam interactive abaqus job=beam1 interactive abaqus job=beam2 interactive abaqus job=beam n? interactive 存為.bat文件即可。python好像一般是做CAE前后處理界面的。

      A:前面加call.call abaqus job=1 interactive call abaqus job=2 interactive call abaqus job=3 interactive

      Q:FORTRAN如何調(diào)用ABAQUS?

      A: use the function “system” or “systemqq” USE DFLIB

      LOGICAL(4)result

      result = SYSTEMQQ('abaqus job=xx')

      QA: 首先我用ABAQUS的VARIFY命令對(duì)系統(tǒng)進(jìn)行修正和檢測(cè),這個(gè)命令會(huì)自動(dòng)運(yùn)行,對(duì)ABAQUS進(jìn)行調(diào)試等操作,其中涉及到對(duì)用戶子程序的模擬計(jì)算,如果計(jì)算失敗,就會(huì)在VARIFY.LOG文件中說(shuō)明,確實(shí)發(fā)現(xiàn)“USER SUBROUTINE...和SINGLE...和DOUBLE...”失敗,說(shuō)明用戶子程序安裝不成功,肯定與VISUAL FORTRAN6.5有關(guān)!然后,找到FORTRAN_MAKE文本文件,發(fā)現(xiàn)錯(cuò)誤,可能是與FORTRAN安裝有關(guān)!于是卸載FORTRAN,重新安裝在C盤(pán)!安裝完畢后,改變環(huán)境變量如下:

      INCLUDE C:Program FilesMicrosoft Visual StudioDF98IMSLINCLUDE;C:Program FilesMicrosoft Visual StudioVC98INCLUDE;D:程序文件VC98INCLUDE;LIB C:Program FilesMicrosoft Visual StudioDF98IMSLLIB;C:Program FilesMicrosoft Visual StudioDF98LIB;C:Program FilesMicrosoft Visual StudioVC98LIB;D:程序文件VC98LIB;PATH C:Program FilesMicrosoft Visual StudioCommonTools;D:程序文件VC98BIN;%SystemRoot%system32;%SystemRoot%;%SystemRoot%System32Wbem;C:KAV6;D:程序文件KV6;c:program filesmicrosoft visual studiodf98bin;c:program filesmicrosoft visual studiovc98bin;c:program filesmicrosoft visual studiocommonmsdev98bin;D:ABAQUSCommands;C:Program FilesMicrosoft Visual StudioDF98BIN 我們只需要關(guān)注MICROSOFT VISUAL STUDIO文件夾!最后,再次執(zhí)行VARIFY命令,等運(yùn)行完畢后,檢查VARIFY文本文件,發(fā)現(xiàn): ABAQUS/Standard with User Subroutines...PASS Continuing...ABAQUS/Explicit with User Subroutines(single precision)...PASS Continuing...ABAQUS/Explicit with User Subroutines(double precision)...PASS Continuing...OK!?。。。。。。。「愣?ABAQUS神功修煉

      2011年10月05日 星期三 15:23 轉(zhuǎn)載自 小強(qiáng)樂(lè)了 最終編輯 小強(qiáng)樂(lè)了

      第1招:abaqus中ELGEN參數(shù)的意義

      *ELGEN,ELSET=ALLE!?)q/ w, A+ z)w)g, L 1,6,40,1,10,1,10 101,18,40,1,12,1,205 L+ r6 i6 Y* i)j 請(qǐng)問(wèn)這幾句什么意思呢,我查了關(guān)鍵詞,但還是不明白

      1,6,40,1,10,1,10 對(duì)應(yīng)的分別是:主單元編號(hào)、第一行要生成的單元數(shù)、單元與單元間對(duì)應(yīng)節(jié)點(diǎn)的增量、行中單元編號(hào)的增量、要定義的行數(shù)、行與行間對(duì)應(yīng)節(jié)點(diǎn)的增量、行與行間對(duì)應(yīng)單元編號(hào)的增量

      第2招:inp文件導(dǎo)入時(shí),出現(xiàn)“WARNING: The following keywords/parameters are not yet supported by the input file reader:”

      出現(xiàn)上面的錯(cuò)誤,是因?yàn)镃AE不支持的原因。應(yīng)該先導(dǎo)入CAE中,然后編輯它的關(guān)鍵字,在里面把原來(lái)要加的初始化條件手工加進(jìn)去。具體操作是: model->edit keywords 注意 edit keywords 導(dǎo)入的任何數(shù)據(jù)在cae中是看不到的

      比如:在edit keywords里定義了材料彈性模量 E,在cae里的材料設(shè)置中是看不到的 edit keywords 中與cae的定義如果出現(xiàn)沖突 會(huì)錯(cuò)誤提示 所以要慎用

      第3招:abaqus中的一個(gè)findAt技巧

      session.journalOptions.setValues(replayGeometry=COORDINATE,recoverGeometry=COORDINATE)在命令行中直接輸入上述語(yǔ)句

      結(jié)果.rpy文件中的findAt語(yǔ)句就會(huì)以坐標(biāo)形式出現(xiàn)

      session.graphicsOptions.setValues(backgroundStyle=SOLID,backgroundColor='#000000', translucencyMode=2)在命令行中直接輸入上述語(yǔ)句 背景顏色就會(huì)變成黑色

      第4招:查看abaqus對(duì)應(yīng)的python版本

      在abaqus command里輸入

      abaqus python

      第5招:在abaqus中子程序的編譯

      一般來(lái)說(shuō)abaqus的源文件的編譯需要使用命令,abaqus make library=usersubroutine.f, 這樣生成的*.o文件才能被成功調(diào)用?;蛘呤敲睿涸赼baqus command中輸入:abaqus make-library subroutine

      第二篇:程序?qū)W習(xí)心得

      經(jīng)驗(yàn)分享

      (一)一位高級(jí)程序員給學(xué)弟學(xué)妹的建議我始終認(rèn)為,對(duì)一個(gè)初學(xué)者來(lái)說(shuō),IT 界的技術(shù)風(fēng)潮是不可以追趕的,而且也沒(méi)有能力去追趕。我時(shí)??匆?jiàn)自己的DDMM 們把課本扔了,去賣(mài)些價(jià)格不菲的諸如C#, VB.Net 這樣的大部頭,這讓我感到非常痛心。而許多搞不清指針是咋回事的BBS 站友眉飛色舞的討論C# 里面可以不用指針等等則讓我覺(jué)得好笑。C# 就象當(dāng)年的ASP 一

      樣,“忽如一夜春風(fēng)來(lái),千樹(shù)萬(wàn)樹(shù)梨花開(kāi)”,結(jié)果許多學(xué)校的信息學(xué)院成了“Web 學(xué)院”96,97 級(jí)的不少大學(xué)生都去做Web 了。當(dāng)然我沒(méi)有任何歧視某一行業(yè)的意識(shí)。我只是覺(jué)得如果他們把追趕這些時(shí)髦技術(shù)的時(shí)間多花一點(diǎn)在基礎(chǔ)的課程上應(yīng)該是可以走得更遠(yuǎn)的.幾個(gè)誤區(qū)

      初學(xué)者對(duì)C# 風(fēng)潮的追趕其實(shí)也只是學(xué)習(xí)過(guò)程中經(jīng)常遇到的幾個(gè)誤區(qū)之一。我將用一些實(shí)際的例子來(lái)說(shuō)明這些現(xiàn)象,你可以按部就班的看看自己是不是屬于其中的一種或者幾種:

      1.認(rèn)為計(jì)算機(jī)技術(shù)等于編程技術(shù):

      有些人即使沒(méi)有這個(gè)想法,在潛意識(shí)中也有這樣的沖動(dòng)。讓我奇怪的是,許多信息學(xué)院的學(xué)生也有這樣的念頭。認(rèn)為計(jì)算機(jī)專業(yè)就是編程專業(yè),與編程無(wú)關(guān)的,或者不太相關(guān)的課程他統(tǒng)統(tǒng)都不管,極端的學(xué)生只要書(shū)上沒(méi)帶“編程”兩個(gè)字他就不看。

      其實(shí)編程只是計(jì)算機(jī)技術(shù)應(yīng)用過(guò)程中一種復(fù)雜性最低的勞動(dòng),這就是為什么IT 業(yè)最底層的人是程序員(CODER)。計(jì)算機(jī)技術(shù)包括了多媒體,計(jì)算機(jī)網(wǎng)絡(luò),人工智能,模式識(shí)別,管理信息系統(tǒng)等等這些方面。編程工作只是在這些具體技術(shù)在理論研究或者工程實(shí)踐的過(guò)程中表達(dá)算法的過(guò)程。編程的人不一定對(duì)計(jì)算機(jī)技術(shù)的了解就一定很高。而一個(gè)有趣的現(xiàn)象是,不少大師級(jí)的計(jì)算機(jī)技術(shù)研究者是不懂編程的。網(wǎng)上的炒作和現(xiàn)實(shí)中良好的工作待遇把編程這種勞動(dòng)神秘化了。其實(shí)每一個(gè)程序員心里都明白,自己這些東西,學(xué)的時(shí)候并不比其它專業(yè)難,所以自然也不會(huì)高檔到哪里去。

      2.咬文嚼字的孔已己作風(fēng):

      我見(jiàn)過(guò)一本女生的《計(jì)算機(jī)網(wǎng)絡(luò)原理》教材,這個(gè)女生像封學(xué)生一樣在書(shū)上劃滿了橫杠杠,筆記做得滿滿的,打印出來(lái)一定比教材還厚。我不明白的是,像計(jì)算機(jī)網(wǎng)絡(luò)原理這樣的課程有必要做筆記?我們的應(yīng)試教育的確害了不少學(xué)生,在上《原理》這一類(lèi)課程的時(shí)候許多學(xué)生像學(xué)《馬列原理》一樣逐字背誦記憶。這乃是我見(jiàn)過(guò)的最愚蠢的行為。所謂《原理》,即是需要掌握它為什么這樣做,學(xué)習(xí)why,而不是how(怎樣做)。極端認(rèn)真的學(xué)生背下以太網(wǎng)的網(wǎng)線最大長(zhǎng)度,數(shù)據(jù)幀的長(zhǎng)度,每個(gè)字段的意義,IP報(bào)頭的格式等等,但是忘了路由的原則,忘了TCP/IP 協(xié)議設(shè)計(jì)的宗旨??傊S多人花了大量的時(shí)間把書(shū)背得滾瓜爛熟卻等于什么也沒(méi)學(xué)。

      在學(xué)習(xí)編程的時(shí)候這些學(xué)生也是這樣,他們確切的記得C++ 語(yǔ)法的各個(gè)細(xì)節(jié)??赐炅薈++ 教程后看《Thinkingin C++ 》(確實(shí)是好書(shū)),《Inside C++ 》,《C++ reference 》,this C++, that C++……,然后是網(wǎng)上各種各樣的關(guān)于C++ 語(yǔ)法的奇聞逸事,然后發(fā)現(xiàn)自己又忘了C++ 的一些語(yǔ)法,最后回頭繼續(xù)惡補(bǔ)…。有個(gè)師弟就跟我說(shuō):“C++ 太難了,學(xué)了這里忘了那里,學(xué)了繼承忘了模板?!?我的回答道:“你不去學(xué)就容易了”。我并沒(méi)有教壞他,只是告訴他,死摳C++ 的語(yǔ)法就和孔已己炫耀茴香豆的茴字有幾種寫(xiě)法一樣毫無(wú)意義。你根本不需要對(duì)的C++ 語(yǔ)法太關(guān)心,動(dòng)手編程就是了,有不記得的地方一查MSDN 就立馬搞定。我有個(gè)結(jié)論就是,實(shí)際的開(kāi)發(fā)過(guò)程中對(duì)程序語(yǔ)法的了解是最微不足道的瞄識(shí)。這是為什么我在為同學(xué)用Basic(我以前從沒(méi)有學(xué)過(guò)它)寫(xiě)一個(gè)封程序的時(shí)候,只花了半個(gè)封時(shí)看了看語(yǔ)法,然后再用半個(gè)封時(shí)完成了程序,而一個(gè)封時(shí)后我又完全忘記了Basic 的所有關(guān)鍵字。

      3.不顧基礎(chǔ),盲目追趕時(shí)髦技術(shù):

      終于點(diǎn)到題目上來(lái)了。大多數(shù)的人都希望自己的東西能夠馬上跑起來(lái),變成錢(qián)。這種想法對(duì)一個(gè)已經(jīng)進(jìn)入職業(yè)領(lǐng)域的程序員或者項(xiàng)目經(jīng)理來(lái)說(shuō)是合理的,而且IT 技術(shù)進(jìn)步是如此的快,不跟進(jìn)就是失業(yè)。但是對(duì)于初學(xué)者來(lái)說(shuō)(尤其是時(shí)間充裕的大中專在校生),這種想法是另人費(fèi)解的。一個(gè)并未進(jìn)入到行業(yè)競(jìng)爭(zhēng)中來(lái)的初學(xué)者最大的資本便是他有足夠的時(shí)間沉下心來(lái)學(xué)習(xí)基礎(chǔ)性的東西,學(xué)習(xí)why 而不是how。時(shí)髦的技術(shù)往往容易掌握,而且越來(lái)越容易掌握,這是商業(yè)利益的驅(qū)使,為了最大化的降低軟件開(kāi)發(fā)的成本。但在IT 領(lǐng)域內(nèi)的現(xiàn)實(shí)就是這樣,越容易掌握的東西,學(xué)習(xí)的人越多,而且淘汰得越快。每一次新的技術(shù)出來(lái),都有許多初學(xué)者跟進(jìn),這些初學(xué)者由于缺乏必要的基礎(chǔ)而使得自己在跟進(jìn)的過(guò)程中花費(fèi)大量的時(shí)間,而等他學(xué)會(huì)了,這種技術(shù)也快淘汰了?;A(chǔ)的課程,比方數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等等雖然不能讓你立馬就實(shí)現(xiàn)一個(gè)linux(這是許多人嘲笑理論課程無(wú)用的原因),但它們能夠顯著的減少你在學(xué)習(xí)新技術(shù)時(shí)學(xué)習(xí)曲線的坡度。而且對(duì)于許多關(guān)鍵的技術(shù)(比方Win32 SDK 程序的設(shè)計(jì),DDK 的編程)來(lái)說(shuō)甚至是不可或缺的。

      一個(gè)活生生的例子

      我和我的一個(gè)同學(xué),在大一時(shí)我還找不到開(kāi)機(jī)按紐,他已經(jīng)會(huì)寫(xiě)些簡(jiǎn)單的匯編程序了。我把大二的所有時(shí)間花在了匯編,計(jì)算機(jī)體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)原理等等這些課程的學(xué)習(xí)上,而他則開(kāi)始學(xué)習(xí)HTML 和VB,并追趕ASP 的潮流。大三的時(shí)候我開(kāi)始學(xué)習(xí)Windows 操作系統(tǒng)原理,學(xué)習(xí)SDK 編程,時(shí)間是漫長(zhǎng)的,這時(shí)我才

      能夠用VC 開(kāi)發(fā)出象模象樣的應(yīng)用程序。我曾一度因?yàn)橥瑢W(xué)的程序已經(jīng)能夠運(yùn)行而自己還在學(xué)習(xí)如何創(chuàng)建對(duì)話框而懊惱不已,但臨到畢業(yè)才發(fā)現(xiàn)自己的選擇是何等的正確。和我談判的公司開(kāi)出的薪水是他的兩倍還多。下面有一個(gè)不很恰當(dāng)?shù)谋确剑杭僭O(shè)學(xué)習(xí)VB 編程需要4 個(gè)月,學(xué)習(xí)基礎(chǔ)課程和VC 的程序設(shè)計(jì)需要1 年。那么如果你先學(xué)

      VB,再來(lái)學(xué)習(xí)后者,時(shí)間不會(huì)減少,還是1 年,而反過(guò)來(lái),如果先學(xué)習(xí)后者,再來(lái)學(xué)VB,也許你只需要1 個(gè)是期就能學(xué)得非常熟練。

      幾個(gè)重要的基礎(chǔ)課程

      如果你是學(xué)生,或者如果你有充足的時(shí)間。我建議你仔細(xì)的掌握下面的瞄識(shí)。我的建議是針對(duì)那些希望在IT 技術(shù)上有所成就的初學(xué)者。同時(shí)我還列出了一些書(shū)目,這些書(shū)應(yīng)該都還可以在書(shū)店買(mǎi)到。說(shuō)實(shí)在的,我在讀其他人的文章時(shí)最大的心愿就是希望作者列出一個(gè)書(shū)單。

      大學(xué)英語(yǔ)-不要覺(jué)得好笑。我極力推薦這門(mén)課程是因?yàn)闆](méi)有專業(yè)文檔的閱讀能力是不可想象的。中文的翻譯往往在猴年馬月才會(huì)出來(lái),而現(xiàn)在的許多出版社干脆就直接把E 文印刷上去。學(xué)習(xí)的方法是強(qiáng)迫自己看原版的教材,開(kāi)始會(huì)看不懂,用多了自然熟練。吃得苦下得狠心絕對(duì)是任何行業(yè)都需要的品質(zhì)。

      計(jì)算機(jī)體系結(jié)構(gòu)和匯編語(yǔ)言-關(guān)于體系結(jié)構(gòu)的書(shū)遍地都是,而且也大同封異,倒是匯編有一本非常好的書(shū)《80x86 匯編語(yǔ)言程序設(shè)計(jì)教程》(清華大學(xué)出版社,黑色封面,楊季文著)。你需要著重學(xué)習(xí)386 后保護(hù)模式的程序設(shè)計(jì)。否則你在學(xué)習(xí)現(xiàn)代操作系統(tǒng)底層的一些東西的時(shí)候會(huì)覺(jué)得是在看天書(shū)。

      計(jì)算機(jī)操作系統(tǒng)原理-我們的開(kāi)發(fā)總是在特定的操作系統(tǒng)上進(jìn)行,如果不是,只有一種可能:你在自己實(shí)現(xiàn)一個(gè)操作系統(tǒng)。無(wú)論如何,操作系統(tǒng)原理是必讀的。這就象我們?yōu)橐粋€(gè)芯片制作外圍設(shè)備時(shí),芯片基本的工作時(shí)序是必需了解的。這一類(lèi)書(shū)也很多,我沒(méi)有發(fā)現(xiàn)哪一本書(shū)非常出眾。只是覺(jué)得在看完了這些書(shū)后如果有空就應(yīng)該看看《In side Windows 2000 》(微軟出版社,我看的是E 文版的,中文的書(shū)名想必是Windows 2000 技術(shù)內(nèi)幕之類(lèi)吧)。關(guān)于學(xué)習(xí)它的必要性,ZDNET 上的另一篇文章已經(jīng)有過(guò)論述。

      數(shù)據(jù)結(jié)構(gòu)和算法-這門(mén)課程能夠決定一個(gè)人程序設(shè)計(jì)水平的高低,是一門(mén)核心課程。我首選的是清華版的(朱戰(zhàn)立,劉天時(shí))。很多人喜歡買(mǎi)C++ 版的,但我覺(jué)得沒(méi)有必要。C++ 的語(yǔ)法讓算法實(shí)現(xiàn)過(guò)程變得復(fù)雜多了,而且許多老師喜歡用模塊這一東西讓算法變得更復(fù)雜。倒是在學(xué)完了C 版的書(shū)以后再來(lái)瀏覽一下C++ 的版的書(shū)是最好的。

      軟件工程-這門(mén)課程是越到后來(lái)就越發(fā)現(xiàn)它的重要,雖然剛開(kāi)始看時(shí)就象看馬哲一樣不瞄所云。我的建議是看《實(shí)用軟件工程》(黃色,清華)。不要花太多的時(shí)間去記條條框框,看不懂就跳過(guò)去。在每次自己完成了一個(gè)軟件設(shè)計(jì)任務(wù)(不管是練習(xí)還是工作)以后再來(lái)回顧回顧,每次都會(huì)有收獲。

      Windows 程序設(shè)計(jì)-《北京大學(xué)出版社,Petzold 著》我建議任何企圖設(shè)計(jì)Windows 程序的人在學(xué)習(xí)VC 以前仔細(xì)的學(xué)完它。而且前面的那本《Inside Windows 2000 》也最好放到這本書(shū)的后面讀。在這本書(shū)中,沒(méi)有C++,沒(méi)有GUI,沒(méi)有控件。有的就是如何用原始的C 語(yǔ)言來(lái)完成Windows 程序設(shè)計(jì)。在學(xué)完了它以后,你才會(huì)發(fā)現(xiàn)VC 其實(shí)是很容易學(xué)的。千萬(wàn)不要在沒(méi)有看完這本書(shū)以前提前學(xué)習(xí)VC,你最好碰都不要碰。我瞄道的許多名校甚至都已經(jīng)用它作為教材進(jìn)行授課??梢?jiàn)其重要。

      上面的幾門(mén)課程我認(rèn)為是必學(xué)的重要課程(如果你想做Windows 程序員)。

      對(duì)于其它的課程有這樣簡(jiǎn)單的選擇方法:如果你是計(jì)算機(jī)系的,請(qǐng)學(xué)好你所有的專業(yè)基礎(chǔ)課。如果不是,請(qǐng)參照計(jì)算機(jī)系的課程表。如果你發(fā)現(xiàn)自己看一本書(shū)時(shí)無(wú)法看下去了,請(qǐng)翻到書(shū)的最后,看看它的參考文獻(xiàn),找到它們并學(xué)習(xí)它們,再回頭看這本書(shū)。如果一本書(shū)的書(shū)名中帶有“原理”兩個(gè)字,你一定不要去記憶它其中的細(xì)節(jié),你應(yīng)該以一天至少50 頁(yè)的速度掌握其要領(lǐng)。盡可能多的在計(jì)算機(jī)上實(shí)踐一種理論或者算法。

      你還可以在CSDN 上閱讀到許多書(shū)評(píng)。這些書(shū)評(píng)能夠幫助你決定讀什么樣的書(shū)。

      日三省乎己

      每天讀的書(shū)太多,容易讓人迷失方向。一定要在每天晚上想想自己學(xué)了些什么,還有些什么相關(guān)的東西需要掌握,自己對(duì)什么最感興趣,在一本書(shū)上花的時(shí)間太長(zhǎng)還是不夠等等。同時(shí)也應(yīng)該多想想未來(lái)最有可能出現(xiàn)的應(yīng)用,這樣能夠讓你不是追趕技術(shù)潮流而是引領(lǐng)技術(shù)潮流。同時(shí),努力使用現(xiàn)在已經(jīng)掌握的技術(shù)和理論去制作具有一定新意的東西。堅(jiān)持這樣做能夠讓你真正成為一個(gè)軟件“研發(fā)者”而不僅僅是一個(gè)CODER。

      把最多的時(shí)間花在學(xué)習(xí)上

      這是對(duì)初學(xué)者最后的忠告。把每個(gè)是期玩CS 或者CS 的時(shí)間壓縮到最少,不玩它們是最好的。同時(shí),如果你的ASP 技術(shù)已經(jīng)能夠來(lái)錢(qián),甚至有公司請(qǐng)你兼職的話,這就證明你的天分能夠保證你在努力的學(xué)習(xí)之后取得更好的收益,你應(yīng)該去做更復(fù)雜的東西。眼光放長(zhǎng)遠(yuǎn)一些,這無(wú)論是對(duì)誰(shuí)都是適用的。

      相信你已經(jīng)能夠決定是否學(xué)習(xí)C ?;蛘呤裁磿r(shí)候去學(xué)它了。

      經(jīng)驗(yàn)分享

      (二)一個(gè)老程序員給青鳥(niǎo)學(xué)生和即將讀青鳥(niǎo)學(xué)生的建議和評(píng)價(jià) 在這篇帖子開(kāi)始之前,我先自我介紹一下,這個(gè)介紹只是為了讓大家了解我說(shuō)這些話語(yǔ)的公正性,本人是重本畢業(yè),先后在一個(gè)不出名的IT 企業(yè)(200 人規(guī)模,單個(gè)項(xiàng)目額平均200 萬(wàn)左右)工作4 年,華為1 年,雅虎1 年,先后的職位是c/c++ 程序員,oracle 高級(jí)工程師,db2 dba, 分析師,現(xiàn)在在一家上市公司(非沿海城市,500 人規(guī)模,單個(gè)項(xiàng)目額平均400 萬(wàn)左右)做數(shù)據(jù)挖掘項(xiàng)目負(fù)責(zé)人,公司另外個(gè)c/c++ 專家頭銜。今年29 歲,底薪10000,證書(shū)有一個(gè)計(jì)算機(jī)資格考試過(guò)的系統(tǒng)分析師證書(shū),一個(gè)oracle dba 證書(shū),一個(gè)db2 dba 證書(shū)。我想,IT 業(yè)界還是有不少純技術(shù)專家比我強(qiáng)的,IT 業(yè)界高手如云,希望我的前輩看過(guò)一笑,我的師弟師妹們有個(gè)認(rèn)識(shí),交個(gè)朋友,如果有覺(jué)得我有炫耀嫌疑的,希望能諒解,不介紹自己,就無(wú)從談起這篇帖子的出發(fā)點(diǎn)。

      由于,我曾經(jīng)在一家北大青鳥(niǎo)做過(guò)1 年的兼職,這個(gè)帖吧還是我以前兼職的學(xué)生告訴我的,我今天看到這個(gè)帖吧里面相當(dāng)混亂,罵的夸的互相拆臺(tái)的,我只想把我對(duì)青鳥(niǎo)的上下的評(píng)價(jià)以及對(duì)各位學(xué)生的建議清楚地寫(xiě)一下,把這當(dāng)作是一個(gè)老程序員的話吧,畢竟,我不算高手,但是對(duì)于各位學(xué)生,暫時(shí)還算一個(gè)你們的目標(biāo)吧。

      那么首先,我想評(píng)價(jià)一下青鳥(niǎo)的學(xué)生,青鳥(niǎo)的學(xué)生能力以及就業(yè)機(jī)會(huì),可以毫不懷疑的說(shuō),青鳥(niǎo)學(xué)生的就業(yè)是不難的,因?yàn)榍帏B(niǎo)學(xué)生的動(dòng)手能力比較強(qiáng),并且掌握的是目前主流開(kāi)發(fā)工具.net 和j2ee 技術(shù),所以懷疑青鳥(niǎo)就業(yè)的學(xué)生,不要擔(dān)心,就業(yè)是不難的。但是我也不得不說(shuō)一下你們面對(duì)的青鳥(niǎo)廣告:月薪4000 就業(yè)。這個(gè)數(shù)字大部分人是懷疑的,但是據(jù)我所瞄,這個(gè)數(shù)字不是謊話,確實(shí)有學(xué)生畢業(yè)能拿4000。當(dāng)然這里有水分:第一,這些人是極少數(shù);第二,4000 這個(gè)薪水即使拿到了,也要考慮一下水分,比如小軟件公司拿4000,并不是多高收入,為什么呢?試想,小軟件公司沒(méi)有保障,說(shuō)不定沒(méi)有三保一金,五保一金,沒(méi)有出差補(bǔ)助,沒(méi)有加班補(bǔ)質(zhì),甚至年終獎(jiǎng)都會(huì)打折扣,要解雇你也不賠錢(qián),別小看這些待遇,這些待遇實(shí)際上不是2,3 千的工資差額能補(bǔ)償?shù)?。所以在這里我得把你們的就業(yè)給你們估計(jì)一下,實(shí)際上呢,你們的平均工資,在沿??茨芊襁_(dá)到3 千,這算比較公允的。然后,對(duì)于你們就業(yè)的公司而言,我也可以給你們估計(jì)一下大概是哪些公司。外企?不可能,人家講究英語(yǔ)。華為中興這些大型企業(yè)?也不現(xiàn)實(shí),去過(guò)華為應(yīng)聘的人都瞄道,就一套數(shù)據(jù)結(jié)構(gòu)與算法的題目就可以刷掉青鳥(niǎo)95% 的學(xué)生,中型企業(yè),這個(gè)就比較現(xiàn)實(shí),問(wèn)題是中型企業(yè)也講究算法與數(shù)據(jù)結(jié)構(gòu)還有高等數(shù)學(xué),為什么呢,這些科目感覺(jué)跟軟件開(kāi)發(fā)不靠邊阿。其實(shí),一旦涉及到大數(shù)據(jù)量大計(jì)算量的系統(tǒng),這些科目的瞄識(shí)就至關(guān)重要。而只有大型,中型企業(yè)有可能接到這些大系統(tǒng)的項(xiàng)目,所以他們也需要自己的員工懂得這些方面的瞄識(shí)。那么最后剩下的就是小企業(yè)了,小企業(yè)重在項(xiàng)目總額,項(xiàng)目利潤(rùn)不高不要緊,多接幾個(gè),每年的項(xiàng)目額就上去了,這些項(xiàng)目通常都是些小項(xiàng)目,人才的關(guān)鍵在于是否掌握了馬上就能動(dòng)手的.net 和j2ee,沒(méi)時(shí)間培訓(xùn)了,所以他們偏愛(ài)青鳥(niǎo)學(xué)生。

      所以可以告訴大家,青鳥(niǎo)的學(xué)生絕大部分流向是小型企業(yè),少數(shù)去中型企業(yè),一般是這個(gè)估算。那么,將來(lái)有沒(méi)有鍛煉呢? 可以很肯定地告訴大家,做小項(xiàng)目沒(méi)有什么鍛煉價(jià)值,為什么?因?yàn)槿巳四茏?,物以稀為貴,人人都能做,你就不值錢(qián)了,很難有薪水的提高,充其量就是.net 和j2ee 的熟手而已。所以,要進(jìn)入大企業(yè)做大型系統(tǒng)的鍛煉,學(xué)習(xí)他們思考問(wèn)題的方法,領(lǐng)悟到軟件最重要的到底是.net,j2ee 的那些架構(gòu),還是需求分析和數(shù)據(jù)流設(shè)計(jì),數(shù)據(jù)結(jié)構(gòu)以及算法設(shè)計(jì)。這才是真正鍛煉人的地方。這才是鍛煉出高手的地方。

      所以,各位青鳥(niǎo)的學(xué)生們,要清醒地認(rèn)識(shí)到你們的優(yōu)點(diǎn),也要認(rèn)識(shí)到你們的不足,你們1 年學(xué)習(xí)掌握了.net 和j2ee,那些在大學(xué)耗費(fèi)4 年學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu),線性代數(shù),高等數(shù)學(xué)的計(jì)科學(xué)生積累的厚重不是你們比擬的,你們小公司有用武之地,那是因?yàn)槟銈兪乔帏B(niǎo)針對(duì)小企業(yè)量身打造的人才,而大學(xué)生是做為IT高級(jí)人才打造的,現(xiàn)狀是大學(xué)生太多以及大學(xué)生自己不爭(zhēng)氣,不學(xué)好這些科目,搞得一塌糊涂,但是你們要想發(fā)展,必須把大學(xué)的數(shù)學(xué)相關(guān)科目補(bǔ)好,否則,小公司以及2000*3000 的薪水,失業(yè),競(jìng)爭(zhēng),就會(huì)伴隨你一輩子。

      所以,不要相信你們?cè)谇帏B(niǎo)學(xué)校里那些老師對(duì)你們的j2ee 和.net 吹捧,你們是靠這個(gè)找工作,但是這個(gè)東西是最沒(méi)有技術(shù)含量的,你花1 年能學(xué)會(huì),別人不能嗎?沒(méi)有幾年的數(shù)學(xué)邏輯積累,你們的現(xiàn)狀是很殘酷的。有人說(shuō),自學(xué)高等數(shù)學(xué),數(shù)據(jù)結(jié)構(gòu),太夸張了吧?沒(méi)錯(cuò),很難,你們選擇了青鳥(niǎo),讓你們具備了找工作的能 力,但是,確實(shí)在某種程度上,你們成就高手這一步,將困難萬(wàn)分。

      真正值錢(qián)的項(xiàng)目,是海量數(shù)據(jù),專業(yè)性極強(qiáng)的分析系統(tǒng),真正值錢(qián)的技術(shù)人才,也要從數(shù)據(jù)計(jì)算處理分析這里著手。

      這里奉勸各位青鳥(niǎo)的老師,不要誤導(dǎo)學(xué)生j2ee 和.net 了,這兩門(mén)一定要學(xué)好,但是,不是把學(xué)生送出門(mén)就可以了,他們將來(lái)還要存活還要發(fā)展,邏輯和算法才是真正的王道。你們可以不懂,但是不能這么教學(xué)生啊。

      經(jīng)驗(yàn)分享

      (三)一個(gè)程序員的體會(huì)

      昨天,叔叔給我介紹了一份工作,搞推銷(xiāo),完成任務(wù)給1000 元,完不成任務(wù)給500 元。我又一次拒絕了,爸爸問(wèn)我為什么不干,我說(shuō)不想從事這個(gè)行業(yè)。這次爸爸終于發(fā)怒了,真說(shuō)我“不要臉”,還說(shuō)了好多難聽(tīng)的話。我知道,矛盾終于爆發(fā)了......這是理想和現(xiàn)實(shí)的一次碰撞!我不怨爸爸,只怪我自己不爭(zhēng)氣,這是我第n 次拒絕工作了,這之前有親戚、朋友、同學(xué)給我介紹工作,都被我婉言謝絕了,不是我不想工作,而是我想從事自己喜歡的行業(yè)**it 業(yè),我想成為一名真正的程序員!我不敢想像做一份你不喜歡的工作,會(huì)有多少的工作熱情,會(huì)給公司帶來(lái)多大的經(jīng)濟(jì)效益?整日從事這樣一份工作,是一種怎樣的折磨?只會(huì)帶來(lái)思想上的麻木,意志上的消磨,時(shí)間長(zhǎng)了,你會(huì)越來(lái)越離不開(kāi)目前的工作,雖然你不喜歡,但是已經(jīng)習(xí)慣了。我不想這樣!

      但是現(xiàn)實(shí)是殘酷的!我必須工作掙錢(qián)養(yǎng)家,首先要養(yǎng)活自己,我不能再靠父母養(yǎng)活,他們養(yǎng)活我20多年已經(jīng)不容易了,該是我回報(bào)他們的時(shí)候了!可是理想和現(xiàn)實(shí)總是存在差距,下面說(shuō)說(shuō)我的經(jīng)歷:

      我是一所三流高校一名本科生,學(xué)的是經(jīng)濟(jì)學(xué)專業(yè),今年剛剛畢業(yè)。雖然我的畢業(yè)論文和答辯都是優(yōu),但是我卻對(duì)我的專業(yè)好無(wú)興趣,整個(gè)大學(xué)四年,我面對(duì)的只是高深的經(jīng)濟(jì)學(xué)理論和與現(xiàn)實(shí)社會(huì)嚴(yán)重脫節(jié)的教材。我們的專業(yè)是大而全的專業(yè),相關(guān)專業(yè)都有所涉獵,但是都不精通。學(xué)院說(shuō)開(kāi)始要把我們往經(jīng)濟(jì)學(xué)理論研究方向培養(yǎng),可又是談何容易? 師資力量太薄弱,最后行不通,后來(lái)又要往經(jīng)濟(jì)管理方向發(fā)展,可是管理要是沒(méi)有與實(shí)踐相結(jié)合,還不是空中樓閣。我們學(xué)院與企業(yè)之間基本沒(méi)有交流,實(shí)習(xí)機(jī)會(huì)更是沒(méi)有,都是自己在外面找,可是真正能找到稱心如意的是少之又少,大部分都在外面搞推銷(xiāo)。畢業(yè)了,與學(xué)市場(chǎng)營(yíng)銷(xiāo)的同學(xué)相比,我們沒(méi)有競(jìng)爭(zhēng)力;與會(huì)計(jì)學(xué)專業(yè)的同學(xué)相比,我們也沒(méi)有競(jìng)爭(zhēng)力;而與學(xué)國(guó)際貿(mào)易的同學(xué)相比,我們更沒(méi)有競(jìng)爭(zhēng)力!連我們老師都說(shuō):“你們是什么的會(huì),又什么都不會(huì)。”一語(yǔ)道破我們專業(yè)目前面臨的窘境。老師又號(hào)召我們考研,可是考研又談何容易?又是萬(wàn)人擠獨(dú)木橋??!

      大學(xué)我們計(jì)算機(jī)課只學(xué)了兩本書(shū),一本是《計(jì)算機(jī)應(yīng)用基礎(chǔ)》,一本是《foxpro for windows 》,兩本都是我們學(xué)校自己老師出的,都是為了賺錢(qián),書(shū)是盜版,內(nèi)容更是拼準(zhǔn),質(zhì)量可以想像。所以當(dāng)時(shí)我對(duì)計(jì)算機(jī)并沒(méi)有多少興趣,對(duì)編程更是一竅不通!只是上大學(xué)前專門(mén)學(xué)了指法,大一時(shí)想學(xué)打字,當(dāng)時(shí)市面流行五筆輸入法(現(xiàn)在也是),而我并沒(méi)有跟風(fēng)學(xué)五筆,而是自學(xué)了兩筆輸入法,現(xiàn)在看來(lái)是正確的,兩筆輸入采用音形結(jié)合的方法,摒棄了五筆不符合漢字書(shū)寫(xiě)規(guī)則和拼音重碼太高的缺陷,而且有非常易學(xué),極力向大家推薦。掌握了方法以后,我就天天在機(jī)房練習(xí)打字,后來(lái)我打字就非??炝?,一分鐘可以打100 多個(gè)字,同學(xué)們都很羨慕我,在我們系也封有名氣。一個(gè)打字不是很快的人都讓同學(xué)羨慕甚至崇拜,可以想像我們班的同學(xué)計(jì)算機(jī)水平多么低了.我當(dāng)時(shí)也很滿足,認(rèn)為打字快計(jì)算機(jī)水平就算高了,而不知道打字是最基本的操作,在整個(gè)計(jì)算機(jī)體系中好像是大海里的一滴水。正因?yàn)檫@種認(rèn)識(shí),使我忽視了計(jì)算機(jī)其他知識(shí)的學(xué)習(xí),當(dāng)時(shí)只知道foxpro 與數(shù)據(jù)庫(kù)有聯(lián)系,其他的就什么也不知道了。

      真正讓我接觸到編程是在大三下學(xué)期,因?yàn)橹牢覀儗I(yè)就業(yè)形勢(shì)不容樂(lè)觀,有種緊迫感了,所以我每個(gè)禮拜都會(huì)買(mǎi)《就業(yè)時(shí)報(bào)》,在某一期報(bào)紙上無(wú)意中看到**** 軟件工程師的招生廣告(后來(lái)知道每期都有),廣告作得很好,我當(dāng)時(shí)就覺(jué)得就業(yè)壓力這么大,能多學(xué)一門(mén)技能,就多了一分競(jìng)爭(zhēng)力。于是我就給他們打了電話,問(wèn)他們學(xué)這個(gè)要多少錢(qián),接線的封妝很會(huì)說(shuō)話,沒(méi)有明說(shuō),而是直接告訴我后天上午來(lái)聽(tīng)他們免費(fèi)的宣講會(huì)。當(dāng)時(shí)我就覺(jué)得價(jià)格不菲,因?yàn)橛谩?* ”牌子是要增加成本的。我還是去聽(tīng)了他們的宣講會(huì),說(shuō)心理話,**** 好,不如**** 廣告做的好,**** 廣告做得好不如**** 宣講會(huì)做得好。會(huì)到結(jié)束才說(shuō)了具體的學(xué)費(fèi),要比我預(yù)想的貴很多,一共分二個(gè)學(xué)年,三個(gè)階段學(xué)習(xí),第一學(xué)年課分兩個(gè)階段學(xué)習(xí),第二學(xué)年一個(gè)階段。全部下來(lái)價(jià)格嚇人?。▋r(jià)格我就不說(shuō)了,不少人知道)當(dāng)時(shí)我是這么想的,與其說(shuō)畢業(yè)以后就失業(yè),還不如學(xué)一門(mén)技能,以后也好找工作,于是我就報(bào)名了。在那個(gè)時(shí)候,我對(duì)編程是一無(wú)所知,更談不上興趣,只是為了以后能比較順利的就業(yè)罷了。

      由于沒(méi)有基礎(chǔ)(只會(huì)打字),我決定從頭學(xué)起,參加一學(xué)期的班,給我們培訓(xùn)的是一位我看不出年齡的女老師,后來(lái)知道是從** 畢業(yè)的。我們一學(xué)期的課主要有《windows 2000 操作系統(tǒng)》,《c 語(yǔ)言基礎(chǔ)》,vb 基礎(chǔ)》, 《access 》,《html 和網(wǎng)頁(yè)設(shè)計(jì)基礎(chǔ)》。我當(dāng)時(shí)什么也不懂就跟著學(xué), 先是win2000,比較簡(jiǎn)單(教材簡(jiǎn)單),后來(lái)是C 語(yǔ)言,只講了一個(gè)多月就結(jié)束了,我上的是周末班,那時(shí)我還以為講得慢呢,哪知道C 語(yǔ)言的地位和重要性,豈是幾天就可以學(xué)會(huì)?接著是VB,說(shuō)真的,真正讓我對(duì)編程產(chǎn)生興趣的是VB,我一接觸VB 就對(duì)VB6 這種所見(jiàn)既所得的編程環(huán)境產(chǎn)生了濃厚的興趣,當(dāng)時(shí)覺(jué)得這才是真正的編程,C 語(yǔ)言沒(méi)用。我想大多數(shù)人也是從VB 開(kāi)始學(xué)編程的吧。因?yàn)槲覀兊慕滩膶?xiě)得太空洞,所以我就又買(mǎi)了一本VB 入門(mén)書(shū),我覺(jué)得好多知識(shí)老師都不成講過(guò),有一次我問(wèn)老師如何用VB 實(shí)現(xiàn)一個(gè)功能時(shí),她竟說(shuō)無(wú)法實(shí)現(xiàn),而沒(méi)有說(shuō)她不會(huì)實(shí)現(xiàn),后來(lái)我翻書(shū)找到了答案,從此我對(duì)老師的權(quán)威產(chǎn)生了懷疑。那時(shí)的我整天學(xué)習(xí)使用VB,連坐車(chē)都在看VB 書(shū),用VB 做了很多“芝麻”程序,自己做得最大的一個(gè)就是24 點(diǎn),用了極其笨的算法,可算完成了,還有很多BUG。我們一學(xué)期的課程根本就沒(méi)有講數(shù)據(jù)結(jié)構(gòu)和算法這些知識(shí),我們也認(rèn)為那是計(jì)算機(jī)專業(yè)開(kāi)的垃圾課程,毫無(wú)意義,現(xiàn)在想起來(lái)真是大錯(cuò)特錯(cuò)了!一學(xué)期結(jié)束時(shí),老師領(lǐng)著我們用VB 做了一個(gè)信用卡程序,很簡(jiǎn)單,算是畢業(yè)設(shè)計(jì)??荚囀欠止P試和機(jī)試,超簡(jiǎn)單,筆試事先給你材料,回家去背吧,80% 是原題,機(jī)試考的是C 語(yǔ)言,超簡(jiǎn)單,你要是還是不會(huì),就把別人的COPY 過(guò)來(lái)就行了,再不會(huì),還有老師幫忙呢。當(dāng)我手捧著《初級(jí)程序員》證書(shū)(國(guó)家勞動(dòng)保障部發(fā)的,與國(guó)家信息部發(fā)的差十萬(wàn)八千里)和《**** 》證書(shū)時(shí),我覺(jué)得我就是程序員了(現(xiàn)在想起來(lái),當(dāng)時(shí)真是幼稚!)這也促使我參加二學(xué)期的班,于是我在**** “越陷越深了”。

      第二學(xué)期的課沒(méi)有換老師,而教材卻是從2.0 版本換成了3.0 版本了, 可能是上個(gè)版本太說(shuō)不過(guò)去了吧。3.0 版本也沒(méi)有太多改變。主要課程有:C++,sqlserver,VBA,java,asp.哈哈,真是大而全,有點(diǎn)像我們的專業(yè)了。當(dāng)時(shí)卻不這樣認(rèn)為。于是跟著學(xué),先學(xué)c++,教材只有170 多頁(yè),而理論部分只有110頁(yè),后面是上機(jī)部分, 和一本練習(xí)冊(cè)的厚度差不多,由于我們C 語(yǔ)言基礎(chǔ)打得不好,所以學(xué)C++ 普遍感到吃力,就這樣不到一個(gè)月的時(shí)間,C++ 語(yǔ)言就結(jié)束了。接著就是sql server, VBA, 我記得在講VBA 的時(shí)候,我們就有很多人聽(tīng)不懂了,特別是COM 組件,我現(xiàn)在也是知其然,而不知其所以然。而老師看我們不懂,也沒(méi)有耐心了,慢慢地我發(fā)現(xiàn)老師的講課態(tài)度發(fā)生了變化,只是講她的課,而不注重和我們的溝通,我們上機(jī)時(shí),她也是不聞不問(wèn),而是躲在一旁啃JAVA。后來(lái)才知道她辭職不干轉(zhuǎn)行了。接著開(kāi)始學(xué)JAVA,給我們帶課的是一位男老師,課講得還行,就是張揚(yáng)的很,讓人覺(jué)得不舒服。我覺(jué)得當(dāng)時(shí)上這門(mén)課的時(shí)候,來(lái)了很多別的班的同學(xué)一起聽(tīng),把本來(lái)就不寬敞的教授都坐滿了, 不知道是覺(jué)得JAVA 重要還是因?yàn)橐呀?jīng)學(xué)得吃力了, 我想是后者吧。

      考試仍然很容易過(guò),可是當(dāng)二學(xué)期結(jié)束時(shí),我發(fā)現(xiàn)我沒(méi)有學(xué)到什么實(shí)際的東西,我甚至不會(huì)用一門(mén)語(yǔ)言寫(xiě)一個(gè)大一點(diǎn)的程序,學(xué)的語(yǔ)言實(shí)在是太多了而自己的編程思想還沒(méi)有建立。在是否繼續(xù)學(xué)習(xí)二學(xué)年這個(gè)問(wèn)題上,我猶豫了很久,是堅(jiān)持還是放棄?我想對(duì)每個(gè)深陷其中的人來(lái)說(shuō),都是很難抉擇的,最后我還是選擇了堅(jiān)持,很多人選擇了放棄,我記得剛開(kāi)始和我一起學(xué)第一學(xué)期的人現(xiàn)在沒(méi)剩下幾個(gè)了,大部分人都選擇做了其他行業(yè),和編程徹底絕緣了。我真的不想就這么放棄,畢竟我付出了很多精力和金錢(qián),而且我非常熱愛(ài)這個(gè)行業(yè),真的想用畢生的精力從事這個(gè)行業(yè)的工作,程序設(shè)計(jì)對(duì)我來(lái)說(shuō)一直很神秘,像一座待開(kāi)發(fā)的寶礦,我一直想征服它!

      當(dāng)我懷揣著第二學(xué)年的學(xué)費(fèi)前往**** 的路上,我的心情異常復(fù)雜,這可是我父母的血汗錢(qián)呀,我現(xiàn)在沒(méi)有掙錢(qián)回報(bào)我的父母,而是管父母要錢(qián),這個(gè)滋味是沒(méi)有經(jīng)歷過(guò)的人很難體會(huì)的。還有一個(gè)問(wèn)題就是錢(qián)是不是白花?我能不能實(shí)現(xiàn)自己的理想?為了自己的理想“不擇手段”叫不叫自私?第二學(xué)年的班已經(jīng)開(kāi)了,我也已經(jīng)畢業(yè)了,我們系的就業(yè)率和前幾屆的一樣,沒(méi)有什么改觀,而且有持續(xù)走低的趨勢(shì),我的好多同學(xué)都沒(méi)有找到正式工作,一部分人在作推銷(xiāo),辛苦不說(shuō)而且工資少得可冷,也許能鍛煉人吧,很多人干兩天就不干了。還有一部分人在家觀望,還有幾個(gè)有考研的打算。目前的狀況使我的要求也在降低,我學(xué)編程不求能掙多少錢(qián)(以前有這種想法),現(xiàn)在只是想能夠自食其力,作自己喜歡做的工作,也就心滿意足了.可是我現(xiàn)在學(xué)得卻越來(lái)覺(jué)得吃力了,二學(xué)年課程有oracle,j2ee,.net,c#,asp.net 等,目前在講j2ee, 講得很快,預(yù)計(jì)05 年底就能結(jié)業(yè),我不知道到時(shí)候能不能找到一份工作,可是依我目前的知識(shí)結(jié)構(gòu),很難有競(jìng)爭(zhēng)力。究竟是哪兒出了問(wèn)題呢?

      論智力,我覺(jué)得我不比別人差,我五歲學(xué)下棋,六歲沒(méi)上封學(xué)就參加了區(qū)里的封學(xué)生組比賽并且拿到了名次,接著我就開(kāi)始了拜師學(xué)藝,初中蟬聯(lián)了三屆本市中學(xué)生比賽的冠軍,一次省里的冠軍,95 年參加全國(guó)“** 杯”少年組的比賽并一舉奪魁!大封比賽參加10 多次,冠軍如探囊取物。說(shuō)真的,當(dāng)時(shí)差一點(diǎn)就走這條路,因?yàn)楫?dāng)時(shí)我和省里的一些大師都下過(guò),覺(jué)得并不是不可戰(zhàn)勝.但是后來(lái)由于中國(guó)象棋缺乏國(guó)際競(jìng)爭(zhēng)力等諸多原因,發(fā)展?fàn)顩r遠(yuǎn)沒(méi)有圍棋、國(guó)際象棋發(fā)展好,即使是一些象棋大師每日還要算計(jì)著過(guò)日子,這不能不說(shuō)是整個(gè)象棋界的悲哀!關(guān)于中國(guó)象棋的發(fā)展和象棋理論的專業(yè)探討,我有一肚子話要說(shuō),但是在這里不過(guò)多闡述,因?yàn)檫@里畢竟不是談?wù)撓笃宓牡胤?,還有人不會(huì)下棋呢。不過(guò)后面我要對(duì)象棋和編程做 一番比較,談我一點(diǎn)的膚淺看法,如果你有興趣,請(qǐng)耐心往下看。當(dāng)我決定把精力放在學(xué)業(yè)上時(shí),已經(jīng)是高三了,面臨高考,由于之前下棋付出太多時(shí)間和精力,落下了很多對(duì)基礎(chǔ)課程的學(xué)習(xí),所以我必須迎頭趕上,憑著一股兒沖勁,我來(lái)到了**,雖然不是名校,卻是正規(guī)本科院校,一直到現(xiàn)在。所以說(shuō)論智力,我不比別人差,可為什么我學(xué)得會(huì)越來(lái)越吃力呢?

      我開(kāi)始反復(fù)思考這個(gè)問(wèn)題,去這個(gè)網(wǎng)站的論壇上看一些高手總結(jié)的一些經(jīng)驗(yàn)教訓(xùn)的質(zhì)子,去csdn 看高手是怎么從初學(xué)者變成人人尊敬的高手的。我看了大量這樣的質(zhì)子,然后結(jié)合自己實(shí)際情況進(jìn)行總結(jié),才發(fā)現(xiàn)了問(wèn)題所在!基礎(chǔ)太薄弱??!正是這個(gè)原因使我現(xiàn)在學(xué)習(xí)非常吃力??纯次疫@一年學(xué)的都是一些流行的開(kāi)發(fā)工具,比如vc,vb,dreamweaver,jbuilder,oracle 等等, 而我卻真正的忽視了對(duì)數(shù)據(jù)結(jié)構(gòu)和算法、windows 程序設(shè)計(jì)、匯編、編譯原理、操作系統(tǒng)等等這些基礎(chǔ)課程的學(xué)習(xí),一上來(lái)就學(xué)c++,java,vba, 面向過(guò)程編程基礎(chǔ)不牢固,直接學(xué)面向?qū)ο?,試想一個(gè)在大學(xué)上只學(xué)了兩本書(shū)的人直接學(xué)這些流行的開(kāi)發(fā)工具,結(jié)果會(huì)怎么樣?而且是每門(mén)課 學(xué)的時(shí)間都不長(zhǎng),這個(gè)月dreamweaver, 下個(gè)月就jbuilder, 再下個(gè)月就oracle 了,試想要精通asp,java,數(shù)據(jù)庫(kù)原理需要多長(zhǎng)時(shí)間?我們是剛剛學(xué)點(diǎn)皮毛就學(xué)這些東西,豈不是在沙地上蓋高樓,早晚有一天會(huì)挎掉的,而且蓋得越高,損失也越慘重!而我當(dāng)初并沒(méi)有意識(shí)到對(duì)基礎(chǔ)理論學(xué)習(xí)的重要性,現(xiàn)在真是后悔。

      對(duì)此**** 應(yīng)該負(fù)有主要責(zé)任,他們的宣傳廣告上面招生的對(duì)象是只具有高中以上學(xué)歷,而其他的一些培訓(xùn)機(jī)構(gòu)比如東軟,清華都要求計(jì)算機(jī)本科專業(yè)或相關(guān)專業(yè),說(shuō)明這些機(jī)構(gòu)已經(jīng)懂得基礎(chǔ)的重要性。而且**** 在授課時(shí)老師也并沒(méi)有引導(dǎo)學(xué)生重視基礎(chǔ)理論的學(xué)習(xí),盲目追趕最先進(jìn)的東西。應(yīng)該承認(rèn)**** 的課程體系囊括了世界最流行的開(kāi)發(fā)工具,可以說(shuō)是面面俱到,但是在學(xué)習(xí)這些東西之前,必須有很扎實(shí)的基礎(chǔ),如果沒(méi)有,即使學(xué)會(huì)了,也是知其然而不知其所有然,在此引用不知哪位網(wǎng)友的一句話:“與其說(shuō)把流行的東西握在手中,還不如把過(guò)時(shí)的技術(shù)記在心里,“ 可見(jiàn)基礎(chǔ)的重要性。有很多零基礎(chǔ)的人慕名來(lái)到****,希望擺脫自己的命運(yùn),可是學(xué)了一學(xué)期以后就再也學(xué)不下去了,原因何在,基礎(chǔ)不行,不過(guò)也有一些對(duì)計(jì)算機(jī)極有天賦者,這應(yīng)另當(dāng)別論。

      有時(shí)候我就想如果當(dāng)初我在學(xué)習(xí)**** 的時(shí)候,如果能在家里惡補(bǔ)理論知識(shí)會(huì)不會(huì)更好呢?可是當(dāng)初我很難意識(shí)到這一點(diǎn),而且那時(shí)學(xué)校的課很重,一本《西方經(jīng)濟(jì)學(xué)》就有點(diǎn)壓得我喘不過(guò)氣來(lái),除了上課,我已經(jīng)沒(méi)有時(shí)間在學(xué)別的東西了。況且當(dāng)時(shí)我們培訓(xùn)的同學(xué)普遍流行著一種說(shuō)法,說(shuō)“我們畢業(yè)了將比計(jì)算機(jī)專業(yè)的更有競(jìng)爭(zhēng)力!”當(dāng)初我也報(bào)有這種想法,現(xiàn)在看起來(lái)真是笑話,先看看學(xué)習(xí)時(shí)間,他們學(xué)四年,我們不到兩年(快的一年半),再看看計(jì)算機(jī)專業(yè)的課程體系,你就知道了,其中大部分是對(duì)基礎(chǔ)理論的學(xué)習(xí),學(xué)習(xí)時(shí)間寬松,如果能抓緊時(shí)間學(xué)習(xí),將能打下一個(gè)良好的基礎(chǔ),為以后學(xué)習(xí)流行開(kāi)發(fā)工具鋪平了道路。誠(chéng)然,現(xiàn)在一些高校的計(jì)算機(jī)專業(yè)的教材有些比較沉舊,可是一些原理上的東西并不是一兩年就發(fā)展起來(lái)的,是大師們經(jīng)過(guò)多年的研究總結(jié)出來(lái)的,深度掌握,必然對(duì)以后學(xué)習(xí)大有裨益!還有一種說(shuō)法是“我們畢業(yè)了能直接上手為企業(yè)打來(lái)效益,而那些計(jì)算機(jī)專業(yè)畢業(yè)的學(xué)生根本不會(huì)做什么,所以我們更有競(jìng)爭(zhēng)力!”初聽(tīng)起來(lái),似乎很有道理,可是如果那些計(jì)算機(jī)畢業(yè)的學(xué)生參加企業(yè)培訓(xùn)呢?新出來(lái)一種工具,同時(shí)學(xué)習(xí),誰(shuí)理解得更透徹,誰(shuí)學(xué)習(xí)得更快呢?

      其實(shí)學(xué)習(xí)象棋和學(xué)習(xí)編程是一個(gè)道理。

      先說(shuō)象棋,會(huì)下棋的人都知道,下棋分開(kāi)、中、殘局三個(gè)階段,要想學(xué)棋并想成為一名高手的話,必須先出殘局開(kāi)始學(xué)起,然后是中局,最后是開(kāi)局。從開(kāi)局學(xué)起的人很難有大的發(fā)展。這是我的切身體會(huì),我記得我封時(shí)候?qū)W棋的時(shí)候,幾乎沒(méi)看過(guò)書(shū),都是實(shí)戰(zhàn)實(shí)戰(zhàn)再實(shí)戰(zhàn),從實(shí)戰(zhàn)中汲取營(yíng)養(yǎng),總結(jié)經(jīng)驗(yàn)教訓(xùn),等我到達(dá)一定階段時(shí),我爸爸就每天給我擺棋式,先練殺法,每天幾個(gè),當(dāng)時(shí)有一本很經(jīng)典的書(shū)《象棋殺著大全》,有400 多頁(yè)吧,我爸就天天給我擺,讓我破解,不看到結(jié)果不許動(dòng)手,最后都把這本書(shū)都翻爛了(當(dāng)然不是我弄的),現(xiàn)在真的應(yīng)該感謝老爸,我雖然現(xiàn)在在象棋方面沒(méi)有什么成就(我爸一直希望我成為一名象棋大師),但也算是一盤(pán)好棋吧。然后開(kāi)始擺殘局,接著是中局。對(duì)象棋有研究的人會(huì)發(fā)現(xiàn),中殘局功夫是最難練的,也是最能看出一個(gè)人象棋水平的高低。正是我爸一盤(pán)一盤(pán)的擺,才練就了我扎實(shí)的中殘局功底,可以說(shuō)我的基本功都是我爸一盤(pán)一盤(pán)擺出來(lái)的(再次感謝老爸?。任业搅艘欢ㄋ胶?,才自己開(kāi)始打譜學(xué)習(xí)開(kāi)局,看別人的對(duì)局選,我發(fā)現(xiàn)我對(duì)開(kāi)局的理解比那些上來(lái)就學(xué)習(xí)開(kāi)局的人更透徹,記得也更牢,而且還能指出其中的錯(cuò)誤并且提出自己的觀點(diǎn),有時(shí)我看完一本開(kāi)局書(shū),書(shū)上會(huì)記很多我自己的體會(huì),試想如果沒(méi)有良好的基本功的話,是不可能做到這些的。

      再說(shuō)編程,如果把學(xué)編程也分成三個(gè)階段的話,那么殘局就是基礎(chǔ),包括操作系統(tǒng)、匯編基礎(chǔ)、離散數(shù)學(xué)、編譯原理、計(jì)算機(jī)圖形學(xué)等等,而中局就是c 語(yǔ)言(不是特定的)、數(shù)據(jù)結(jié)構(gòu)和算法等等、而開(kāi)局就是目前的各種的流行開(kāi)發(fā)工具吧,包括vc,vb,delphi,jbuilder,dreamweaver 等等,以上三個(gè)階段分的不一定正確,不過(guò)大概是這個(gè)意思吧。如果” 中殘局“ 沒(méi)有打好,只學(xué)” 開(kāi)局“ 是永遠(yuǎn)也成為不了高手的,而且” 開(kāi)局“ 總是隨著時(shí)代發(fā)展而改變,不斷有新的開(kāi)發(fā)工具出現(xiàn),落后的” 開(kāi)局“ 將永遠(yuǎn)被淘汰,而相對(duì)來(lái)說(shuō)” 中殘局“ 是不會(huì)有太大變化的。而” 中殘局“ 和” 中殘局功夫“ 兩者又不太一樣”,我個(gè)人認(rèn)為“ 中殘局功夫” 指的是編程思想,一個(gè)好的編程思想不是一朝一夕可以練成了。如果掌握了打下了扎實(shí)的“ 中殘局” 基礎(chǔ),練就了一身過(guò)硬的“ 中殘局功夫”,那么在學(xué)開(kāi)局就相當(dāng)容易了,網(wǎng)上經(jīng)常有這樣的評(píng)論,比如:“ 如果學(xué)c 一年,那么學(xué)vb 之需一個(gè)月,如果學(xué)vb 一年,再學(xué)c 時(shí)間可能超過(guò)一個(gè)月”,“ 學(xué)C++ 三年,再學(xué)JAVA 只需一個(gè)月” 等等是同一個(gè)道理。

      痛定思痛以后,我覺(jué)得我要想在編程方面往更高更深的地方發(fā)展,必須打好基礎(chǔ),苦練內(nèi)功,為此我打算從C 語(yǔ)言開(kāi)始學(xué)起,然后是數(shù)據(jù)結(jié)構(gòu)和算法* 匯編* 操作系統(tǒng)原理*windows 程序設(shè)計(jì)*C++ 程序設(shè)計(jì), 之后要看很多國(guó)外經(jīng)典書(shū),《C++ primer 》,《C++ 編程思想》等等,然后再選一個(gè)合適的開(kāi)發(fā)工具,雖然會(huì)很慢,但我會(huì)踏踏實(shí)實(shí)的學(xué)習(xí),再也不盲目跟風(fēng)了?,F(xiàn)在我C 語(yǔ)言只學(xué)了兩天,課我還得繼續(xù)上,畢竟錢(qián)已經(jīng)交了,我想等我基礎(chǔ)打牢了,以前有些課還得重聽(tīng),有基礎(chǔ)了可能會(huì)悟出一些新的東西。**** 這點(diǎn)好,課可以循環(huán)聽(tīng)。

      回想我一年的學(xué)習(xí),現(xiàn)在看來(lái)才剛剛起步,不免有些慚愧。正是走了這些彎路,才使我認(rèn)識(shí)到基礎(chǔ)的重要性。雖然以后還要有很長(zhǎng)的路要走,但是我無(wú)緣無(wú)悔,因?yàn)槲覠釔?ài)這個(gè)行業(yè)。我相信我重新選擇學(xué)習(xí)的方向是正確的,我打算用十年的時(shí)間來(lái)掌握這門(mén)技術(shù),我今年23 歲,到我33 歲時(shí),我想我還會(huì)寫(xiě)一篇文章來(lái)回憶我十年的經(jīng)歷,并總結(jié)出的經(jīng)驗(yàn)和教訓(xùn),供后來(lái)者借鑒。

      順便說(shuō)一下我的女朋友,她和我是一個(gè)學(xué)校畢業(yè)的,學(xué)外語(yǔ)的,英語(yǔ)八級(jí),現(xiàn)在畢業(yè)工作了,一個(gè)月3000 元。她現(xiàn)在對(duì)我很失望,說(shuō)不再向以前一樣喜歡我,欣賞我了,這給我很大打擊!但是作為男人,我理解她,現(xiàn)在我的壓力很大,我想我會(huì)頂住壓力,堅(jiān)持走自己的路的,希望大家能夠支持我!

      最后我想對(duì)初學(xué)者說(shuō)的是,不要盲目跟風(fēng),要重視基礎(chǔ)的學(xué)習(xí),否則只會(huì)竹籃打水一場(chǎng)空。

      如果您能耐心的把以上看完,我就很感謝了;如果您還能提出寶貴的意見(jiàn)和建議,我將感恩不盡!

      經(jīng)驗(yàn)分享

      (四)一個(gè)程序員的經(jīng)歷

      一.并不成功的開(kāi)始

      我所讀的學(xué)校是中國(guó)西部的一所普通高校。我進(jìn)大學(xué)后也和大多數(shù)同學(xué)一樣,過(guò)著60 分萬(wàn)歲的日子,除了對(duì)編程比較感興趣外。(呵呵,好多室友都說(shuō)我外表女人,內(nèi)心卻男人:喜歡寫(xiě)程序,喜歡和男生打是際,喜歡打CS 選土匪,拿AK47)四年的大學(xué)生活淘進(jìn)了我剛進(jìn)校時(shí)的傲氣與自尊,在梔子花開(kāi)的季節(jié),我面對(duì)的卻是無(wú)法把握的未來(lái)。畢業(yè)了,是的,四年象夢(mèng)一樣。男友執(zhí)意去了中國(guó)最繁榮的大都市,我卻希望留守相對(duì)平靜的近在咫尺的西部城市,結(jié)局是可想而知的。痛苦十分短暫,因?yàn)槠仍诿冀薜纳鎲?wèn)題變得急為嚴(yán)峻。幸運(yùn)的是,2004 年7 月我很順利的找到了一份程序員的工作。我的第一份工作比較輕松,就是做MIS 系統(tǒng),寫(xiě)寫(xiě)C# 代碼。工作很輕松,帶我的經(jīng)理也很照顧我。于是我每天過(guò)著上班下班的生活,每天穿梭在熙熙攘攘的人潮當(dāng)中,全然沒(méi)了生活的壓力。這樣的生活也讓人討厭,日子太無(wú)聊了,無(wú)非就是寫(xiě)著重復(fù)的代碼,再就是在天涯上閑逛。這樣的日子結(jié)束于我看到的一篇文章,題目我記不太清楚了,好像是:成為IT 精英,我?jiàn)^斗了7 年。

      當(dāng)時(shí)很受鼓舞,也很自責(zé)。大學(xué)的四年已經(jīng)荒廢,難道還要重蹈覆轍?于是我有了想離開(kāi)這個(gè)安逸的城市,去節(jié)奏相對(duì)較快的城市鍛煉一下自己。

      于是在今年年初,我毅然背起行囊,踏上了南下的火車(chē)。。

      二.初來(lái)乍到

      一下火車(chē),我來(lái)到人山人海的車(chē)站廣場(chǎng),看著人山人海,心里沒(méi)有底氣,畢竟是第一次出遠(yuǎn)門(mén)。但是只覺(jué)告訴我,先要找個(gè)落腳的地方。雖然我?guī)Я?000 塊,但是我卻不敢亂花一分錢(qián),因?yàn)樵谖矣∠笾羞@座城市消費(fèi)比原來(lái)的城市高多了。我得想辦法盡快找到工作。

      經(jīng)過(guò)2 個(gè)多小時(shí)的尋找,終于讓我找到了一個(gè)網(wǎng)吧。于是不顧旅途勞累,趴在電腦前就上51JOB,簡(jiǎn)單回顧了自己的工作經(jīng)歷,然后填寫(xiě)了簡(jiǎn)歷,在網(wǎng)上投。時(shí)間過(guò)得很快,一下子到了中午。我出了網(wǎng)吧,胡亂吃了碗酸辣粉。然后去找旅館,這里的旅館真的很多,各種檔次都有,我找了一個(gè)看上去覺(jué)得比較安全的旅館。130 一晚上,好心疼??!盡管很累但是,大半個(gè)晚上我都沒(méi)有睡著,雙手緊緊的抓住手提袋。到了下半夜,我才慢慢的睡著。

      早上起來(lái)的時(shí)候已經(jīng)是9 點(diǎn)多了,我洗漱完畢。雙眼盯著手機(jī)屏幕,生怕會(huì)錯(cuò)過(guò)面試電話。也許我運(yùn)氣真的不錯(cuò),大約10 點(diǎn),手機(jī)響了。我趕緊接了,一時(shí)高興得語(yǔ)無(wú)倫次。電話里一個(gè)女聲:您好,請(qǐng)問(wèn)您是XX 么?我們是yy 科技有限公司,想約您下午面試......掛了電話,我高興得不知東南西北了,沒(méi)想到這么快就有回應(yīng)了。下午出門(mén)的時(shí)候我化了點(diǎn)淡妝,出門(mén)了。我按著yy 公司的提示,費(fèi)了將近2 個(gè)小時(shí)才找到地方,真后悔沒(méi)有買(mǎi)張地圖。到y(tǒng)y 公司的時(shí)候已經(jīng)是下午4 點(diǎn)了。面試我的是位女經(jīng)理。30 分鐘過(guò)后,我們談得比較好。我自信滿滿的,呵呵。

      最后經(jīng)理問(wèn)我期望的薪水時(shí),我咬咬了牙,很小聲的說(shuō)了句3500.經(jīng)理說(shuō),其實(shí)你比較符合我們的要求,但是薪水可能不會(huì)那么高。我小聲問(wèn)她能給我多少,她說(shuō)句2000。但是我心都冷了,我來(lái)這個(gè)城市之前的工資也有1500 啊。我說(shuō)了句考慮考慮后,出了yy 公司的大門(mén)。在傳說(shuō)中,這個(gè)城市不是每個(gè)人都拿高工資的么?怎么會(huì)這樣?失望和痛苦同時(shí)襲來(lái)。

      回到旅館我仔細(xì)總結(jié)了一整天,得出結(jié)論:1.不是沒(méi)有高工資,而是所掌握的技能門(mén)檻比較低,導(dǎo)致沒(méi)有什么競(jìng)爭(zhēng)力。2.一個(gè)規(guī)律:IT 技能(不精通的情況下),技術(shù)門(mén)檻低的入門(mén)較容易的,在市場(chǎng)上競(jìng)爭(zhēng)力不大(精通后,每項(xiàng)IT 技能的競(jìng)爭(zhēng)力相差不大。)。3.所以我決定,去學(xué)習(xí)新的東西,門(mén)檻稍稍高那么一點(diǎn)的東西。

      注意拿定,我回顧了自己所學(xué)的東西,覺(jué)得C/C++ 基礎(chǔ)還可以,而且上學(xué)的時(shí)候?qū)戇^(guò)一段時(shí)間的VC,于是決定啃C/C++。我開(kāi)始在網(wǎng)上投C/C++ 相關(guān)的職位,把薪水要求降到2500 ~3000。上天又一次眷顧了我,四天后我找到了一份工作,工資2500,包住宿。唉,總算是定下來(lái)了,接著我便寫(xiě)了個(gè)學(xué)習(xí)C++ 的詳細(xì)計(jì)劃,花了1500 元買(mǎi)了個(gè)二手電腦。工作后,我覺(jué)得極其的不適應(yīng),這個(gè)時(shí)候才知道,我對(duì)C++ 的理解是何其膚淺!基礎(chǔ)太差了。。自尊心一向很強(qiáng)的我,受了很大的刺激。我覺(jué)得,是時(shí)候努力了!

      在工作的時(shí)候我積極的請(qǐng)教同事,下班后我在宿舍里瘋狂的肯C++, 在網(wǎng)上下載了教材。一行一行認(rèn)真的讀,上機(jī)練習(xí),從基礎(chǔ)開(kāi)始。一步一步的來(lái)。在剛開(kāi)始的一個(gè)月里,幾乎每天都是凌晨才休息。但是我覺(jué)得很欣慰,因?yàn)槲抑饾u適應(yīng)工作了,而且覺(jué)得越來(lái)越理解C++ 的內(nèi)涵。連續(xù)這樣3 個(gè)月后,我終于對(duì)工作得心應(yīng)手了,VC 的底子也逐漸厚實(shí)?;叵朐瓉?lái)的夜郎自大,真的很好笑?,F(xiàn)在我對(duì)C++ 無(wú)疑是敬畏的。原來(lái)以為自己有多厲害,其實(shí)自己差得要命。不懂虛函數(shù)有什么用,不知道除了構(gòu)造函數(shù),析構(gòu)函數(shù)外還有拷貝函數(shù),還有深淺拷貝之分。不懂什么是多態(tài),不懂什么是抽象類(lèi),不知道C++ 里居然還有個(gè)STL 庫(kù)。隨便拿本VC 的書(shū)就寫(xiě)程序,甚至不知道APP WIZARD 生成程序的入口。

      經(jīng)過(guò)了三個(gè)月的苦心孤詣終于有點(diǎn)眉目了。我沒(méi)有直接用VC,而是從SDK 入手,用SDK 寫(xiě)了將近一個(gè)月的程序。終于知道了windows 里面居然還有消息機(jī)制,每個(gè)應(yīng)用程序還有消息隊(duì)列。編譯器分配存儲(chǔ)空間的時(shí)候居然還有內(nèi)存對(duì)齊。這些新奇的東西讓我興奮,我每天如饑似渴的讀著各類(lèi)電子書(shū)。

      《深入淺出MFC 》, 《高質(zhì)量C/C++ 編程》,都是我的寶貝。是的,正象很多人說(shuō)的一樣,沒(méi)有幾年是無(wú)法精通VC 的。但是,我們無(wú)需精通每個(gè)方面,我們只需足夠熟悉我們工作所用到的部分。DLL, 數(shù)據(jù)庫(kù),組件技術(shù),圖形技術(shù),進(jìn)程調(diào)度,多線程等等,網(wǎng)絡(luò)...太多太多了,MFC 是如此的龐大。也許是我心高氣傲,當(dāng)經(jīng)理跟我說(shuō)轉(zhuǎn)正給我3000 的時(shí)候,我拒絕了,我覺(jué)得自己可以拿更高的薪水。于是我辭職了。

      這次的離職,沒(méi)有給我?guī)?lái)什么憂慮,可能通過(guò)前斷時(shí)間的學(xué)習(xí)有了些許的底氣。可能大家很奇怪,為什么上文多次提到工資,請(qǐng)?jiān)徫业乃讱?!?dāng)愛(ài)情不能依靠時(shí),金錢(qián)是能唯一給我安全感的東西。

      這一次我打算找名氣稍微強(qiáng)一點(diǎn)的企業(yè)。正好,TX 公司正開(kāi)招聘會(huì)。我一大早趕到招聘會(huì)現(xiàn)場(chǎng),很熱鬧,已經(jīng)有很多人在那里面試了。等了大約半個(gè)小時(shí),終于輪到我了。面試官?zèng)]有象我想象的那樣提一些基礎(chǔ)知識(shí),而是直接問(wèn)我對(duì)UML 怎么理解,對(duì)UI 設(shè)計(jì)有什么心得這些抽象的問(wèn)題。我回答得吞吞吐吐,語(yǔ)無(wú)倫次,結(jié)果是可想而知的。55555555,真的好慘,這個(gè)全國(guó)著名的SP 把我就這樣簡(jiǎn)單的拒絕了,好打擊人啊。但是這次來(lái)并非沒(méi)有收獲,因?yàn)樵谖易叱稣衅笗?huì)場(chǎng)的時(shí)候,我留意到unix/linux 展臺(tái)門(mén)可羅雀,于是一個(gè)計(jì)劃又在我內(nèi)心醞釀。我回家后在網(wǎng)上搜集linux 入門(mén)資料,然后把電腦硬盤(pán)格式化,為了表示學(xué)習(xí)linux 的決心,我給windows15G,給了linux 25G,就這樣開(kāi)始了我的學(xué)習(xí)linux 之旅!

      第二天,我從朋友那里打聽(tīng)到GDNT 有個(gè)招聘會(huì),于是又風(fēng)風(fēng)火火的趕去。GDNT 的面試也給了我重重一棒子,讓我好痛苦。在痛苦中過(guò)了3 天后,一個(gè)高中同學(xué)說(shuō)她們單位要招VC 方面的人。我當(dāng)時(shí)真的很高興,也很緊張,因?yàn)檫@次面對(duì)的公司是中國(guó)著名電信運(yùn)營(yíng)商的研發(fā)中心。由于朋友的引見(jiàn),面試很快確定在2 天后。在這兩天里,我把所有關(guān)于C/C++ 的知識(shí)點(diǎn)復(fù)習(xí)了一遍,然后閱讀了一些網(wǎng)絡(luò)方面的資料。果然功夫不負(fù)有心人,2 個(gè)小時(shí)的比試面試過(guò)去了,我成了她們的一員。最后PM 許諾試用期給我4K。

      這里的工作環(huán)境很好,工作也比較輕松,也許所有國(guó)企都是這樣的把。下午2:00 上班,中午可以休息兩個(gè)小時(shí)。單位食堂的伙食豐富而且價(jià)格便宜,一般不超過(guò)5 元,最令人覺(jué)得溫馨的是飯后偶爾還會(huì)發(fā)水果。:)真的是好幸福,呵呵。在這里主要做的是一些交換網(wǎng)管系統(tǒng),在這期間我跟PM 學(xué)了不少東西。熟悉了HW,ZTE 的很多產(chǎn)品,以及COBAR 接口規(guī)范。私下還對(duì)7 號(hào)信令做了比較詳細(xì)的閱讀,而且對(duì)很多網(wǎng)絡(luò)協(xié)議有所了解了,比如SNMP,RIPv2、OSPF、IGRP,還學(xué)會(huì)了怎樣使用CLEARCASE 等工具。但是,最大的收獲莫過(guò)于對(duì)UNIX 的學(xué)習(xí)了。在這里有很多UNIX 機(jī)器,HP*UNIX ,IBM*AIX,SUNOS 等等。。

      每天下班后我沒(méi)有直接回家,而是留在了單位telnet 到SUNOS 上,開(kāi)始了我學(xué)習(xí)unix 的計(jì)劃。幾乎天天都是10:00 以后才離開(kāi)單位, 搞不懂的就問(wèn)人或者在網(wǎng)上找資料?;丶乙院?,我繼續(xù)在linux 上學(xué)習(xí)一直到轉(zhuǎn)鐘。這期間我真的學(xué)了很多,跟windows 上寫(xiě)程序完全不同了,似乎更關(guān)心細(xì)節(jié),更關(guān)心操作系統(tǒng)了。經(jīng)過(guò)大約3 個(gè)月的摸索,終于對(duì)unix 有所了解了,覺(jué)得好多東西豁然開(kāi)朗。進(jìn)程通訊,進(jìn)程管理,頁(yè)面置換,信號(hào)燈,線程池這些東西是我在windows 下寫(xiě)程序從未接觸過(guò)的。

      覺(jué)得學(xué)習(xí)unix 真的很幸福,每天進(jìn)步一點(diǎn),會(huì)讓我睡得踏實(shí)。把《unix 高級(jí)環(huán)境編程》學(xué)完后,我開(kāi)始慢慢的請(qǐng)教前輩,有關(guān)嵌入式的開(kāi)發(fā)的問(wèn)題。

      慢慢學(xué)著分析內(nèi)核情景,裁減內(nèi)核,底層的東西讓我覺(jué)得好奇。還有一件讓人特興奮的事兒,咱們科室好多開(kāi)發(fā)人員都是女同志,PM 也是女人。

      時(shí)間飛快,轉(zhuǎn)眼四個(gè)月已經(jīng)過(guò)去了。我覺(jué)得是時(shí)候該離開(kāi)這個(gè)安逸的國(guó)企了,說(shuō)真的,真有些舍不得,我向PM 提出辭職時(shí),經(jīng)理非常真誠(chéng)的挽留我,說(shuō)我工作做得不錯(cuò),叫我考慮考慮再走。這里的人真的很好,學(xué)習(xí)的氣氛也很濃,也許我希望日子過(guò)得緊張一些。經(jīng)理說(shuō)我這樣跳來(lái)跳去不利于自身的發(fā)展。也許她是對(duì)的,也許是我太倔犟,終于還是走了。我知道,當(dāng)我交出那張卡,就再也不能回來(lái)了,走出大門(mén)站在華景的天橋上我默默的站了10 分鐘,仰望著那熟悉的大廈。

      晚上回去改了改簡(jiǎn)歷,然后在網(wǎng)上投。躺在床上,看著天花板,突然之間覺(jué)得好孤單,這里一個(gè)親人也沒(méi)有,鼻子很酸,好想哭??蛷d電視機(jī)里傳來(lái)世界杯預(yù)選賽的吶喊(我和一個(gè)男生一個(gè)女生合租三室一廳)。我走出客廳和那個(gè)男生談了很多,也知道了他很多事情。現(xiàn)在才知道,雖然是合租,但是彼此溝通真的很少。他原來(lái)是在XTKJ 工作,后來(lái)跳到外企,也是搞IT 的,也是程序員。一個(gè)人到南方。

      當(dāng)時(shí)聊了很多,不覺(jué)到了凌晨。不過(guò)我們都沒(méi)有睡意,于是他問(wèn)我會(huì)是際否,我一拍即合。他很驚訝的看著我:你真的會(huì)。我說(shuō)試試就知道。于是我們各自回房打開(kāi)電腦,比賽開(kāi)始了,呵呵。也許是他太輕敵,第一場(chǎng),我選蟲(chóng)族,他選人族,結(jié)果被我出快狗偷襲成功,不過(guò)后來(lái)幾場(chǎng)我都輸?shù)煤軕K,呵呵。

      第二天睡到中午才起來(lái),1 點(diǎn)多的時(shí)候突然來(lái)了個(gè)電話,通知我去面試,職位是linux 程序員。我趕快打扮起來(lái):)。照鏡子才發(fā)現(xiàn),自己瘦了好多,也憔悴了不少。我穿上了自己最漂亮的衣服,然后簡(jiǎn)單了畫(huà)了一下眉,打了粉底和眼影,并且還畫(huà)龍點(diǎn)睛的摸了腮紅。呵呵,自己對(duì)著鏡子傻笑。

      到了面試的公司(一個(gè)剛成立不久的外企,VOIP 設(shè)備商),和PM 談得很順利。他問(wèn)的問(wèn)題也很簡(jiǎn)單:函數(shù)傳值傳址的區(qū)別,常用的進(jìn)程通訊方式,和我做過(guò)的一些項(xiàng)目等等。最后PM 問(wèn)我期望的薪水是多少。我怯怯的說(shuō)了句:5K。經(jīng)理摸了摸前額想了想對(duì)我說(shuō):這樣把,你好好干,試用期我給你5.5K。出了公司門(mén),感覺(jué)天空一片蔚藍(lán)。

      經(jīng)驗(yàn)分享

      (五)一個(gè)還不太老的程序員的體會(huì)

      (一)文章由來(lái)及個(gè)人經(jīng)歷

      我是一名計(jì)算機(jī)專業(yè)的本科畢業(yè)生,畢業(yè)已經(jīng)1 年多了。畢業(yè)后從事的是軟件編程工作,經(jīng)常有其他專業(yè)的朋友想從事軟件編程工作,向我請(qǐng)教如何,因?yàn)槲易杂X(jué)涉行不深,不敢信口開(kāi)河,無(wú)奈朋友信任,我不得不鄭重考慮一下這個(gè)問(wèn)題了,來(lái)幫助朋友選擇和回報(bào)朋友的信任。這也就是此文的由來(lái)。

      還是先談?wù)勎覀€(gè)人的經(jīng)歷吧。(是不是有點(diǎn)俗套,但我覺(jué)得了解我的經(jīng)歷,有助于理解我話的含義;我一向認(rèn)為不了解古龍的生活經(jīng)歷的,不會(huì)真正讀懂古龍的作品和古龍筆下的英雄的)我本科就讀于南方一所著名的高校(因?yàn)樽约旱牟怀蓺?,愧談母校名謂),學(xué)的就是計(jì)算機(jī)專業(yè)。上本科時(shí),幾乎沒(méi)有認(rèn)真的聽(tīng)完一門(mén)專業(yè)課程,上課看報(bào)紙睡大覺(jué),下課看錄像看小說(shuō)看球賽,臨考抱佛腳,每次考試和課程設(shè)計(jì)都是蒙混過(guò)關(guān)。(于之相對(duì)是,我選修的工商管理和經(jīng)濟(jì)貿(mào)易方面的課到是聽(tīng)得不亦樂(lè)乎,考的分?jǐn)?shù)頗高,也許這才是我的真正興趣所在。)

      總而言之,大學(xué)是混過(guò)來(lái)了,對(duì)專業(yè)的理解和掌握程度,應(yīng)該沒(méi)有達(dá)到畢業(yè)要求的合格水平。(也很后悔,但是有什么用呢,當(dāng)時(shí)不知道珍惜;如果上天再給我一次機(jī)會(huì)的話,我一定會(huì)抓住,多看點(diǎn)美國(guó)大片少看點(diǎn)港片;現(xiàn)在,重回校園是我的一大理想)但是大學(xué)的學(xué)習(xí)使我有了一個(gè)簡(jiǎn)單的知識(shí)框架(總算學(xué)費(fèi)沒(méi)白交),我對(duì)一個(gè)朋友這樣形容過(guò)我的這個(gè)知識(shí)框架,“它不是鋼筋鑄的,是稻草扎的”,哈哈哈,不要笑,真的,我敢說(shuō)很多本科畢業(yè)的朋友的本專業(yè)的知識(shí)框架也只不過(guò)是“稻草扎的”。直到現(xiàn)在,我一直覺(jué)得自己的基礎(chǔ)知識(shí)還是很薄弱,一直想抓點(diǎn)時(shí)間,把基礎(chǔ)書(shū)本好好的溫習(xí)一下。(此項(xiàng)任務(wù)正在計(jì)劃和實(shí)施中)

      畢業(yè)后,分配到某研究所工作。當(dāng)領(lǐng)導(dǎo)讓我選擇自己以后的工作方向時(shí),我毫不猶豫的選擇了軟件(也不知道到底是對(duì)還是錯(cuò),但我決不后悔)。此研究所主要是以硬件為核心搞通信控制設(shè)備的研發(fā)生產(chǎn);軟件是輔助,所以也不受什么重視,很多搞軟件的人都跳槽走了,留下來(lái)的大都是一些已經(jīng)廢掉和行將廢掉的“偽/ 萎”程序員(名副其實(shí)的“軟件人員”)。在這里感覺(jué)不到什么高緊張和高技術(shù)程度的研究和開(kāi)發(fā);軟件開(kāi)發(fā)的技術(shù)含量極低,以致于大部分人只有半年的學(xué)習(xí)和開(kāi)發(fā)經(jīng)驗(yàn),以后都是這些知識(shí)和經(jīng)驗(yàn)的重復(fù)利用。(我問(wèn)過(guò)其他到研究所工作的同學(xué),他們說(shuō)都一樣,嗚呼,我們的國(guó)防科研開(kāi)發(fā)呀)對(duì)于軟件的開(kāi)發(fā),領(lǐng)導(dǎo)的意志和老掉牙的經(jīng)驗(yàn)在新課題的技術(shù)采用和開(kāi)發(fā)中起了決定性作用,沒(méi)有明確的需求,沒(méi)有明確的開(kāi)發(fā)計(jì)劃和進(jìn)度,大家在一天一天一周一周的浪費(fèi)著寶貴的時(shí)間,最后開(kāi)發(fā)出來(lái)的東西修來(lái)改去,直至它變成垃圾。我越來(lái)越認(rèn)識(shí)到一點(diǎn),要么象那些廢人一樣廢掉,要么自己去努力尋求出路,反正別指望從工作中得到什么高明的經(jīng)驗(yàn)了(教訓(xùn)倒也許有)。期間發(fā)生了一些感情上的糾紛,嚴(yán)重的影響了學(xué)習(xí)計(jì)劃和效果,直到現(xiàn)在浮躁的心仍然有些浮躁。

      期間,我讀了一些書(shū),看了一些文章,編過(guò)一些小例程,搞了一些沒(méi)有什么技術(shù)含量的開(kāi)發(fā)工作,也和一些前輩和高手們談過(guò)聊過(guò)。我一直在思考幾個(gè)問(wèn)題;如何學(xué)習(xí)軟件開(kāi)發(fā)?如何搞軟件開(kāi)發(fā),國(guó)外的軟件開(kāi)發(fā)到底其秘訣在何處?為何我們的軟件業(yè)一直在低水平徘徊?我們難道真的離了Microsoft 就活不了?我們的程序員到底在浪費(fèi)時(shí)間干些什么?軟件開(kāi)發(fā)到底是如何分類(lèi)的?我們?nèi)绾巫咦约旱拿褡遘浖罚?/p>

      我想了很久,一些想通了,一些還在想。但我知道有一點(diǎn)是肯定的,那就是我們一定要靠我們自己走出自己的軟件之路!跟在別人屁股后面永遠(yuǎn)受制于人!

      好了,關(guān)于經(jīng)歷和牢騷就先寫(xiě)這些吧,該進(jìn)入我們的正題了。

      (二)你適合當(dāng)程序員嗎,你知道編程序是怎么回事嗎? 1、程序員意味著要編程序。(如果你僅僅想得到一份高薪水的工作,喝喝咖啡就等老板發(fā)薪水,我奉勸你還是另找一份更合適的工作,譬如練攤,真的,兄弟,這份工作不適合你)、你是學(xué)文的還是學(xué)理的,編程序也許需要浪漫,但更需要邏輯和嚴(yán)謹(jǐn)。(說(shuō)坦白點(diǎn)就是,在你沒(méi)有找到樂(lè)趣以前,它很枯燥)、你有對(duì)新技術(shù)追求的熱情嗎?你有刨根問(wèn)底的探索精神嗎?(熱情絕對(duì)是最重要的!你仔細(xì)思考一下自己的性格適合當(dāng)程序員嗎?)、當(dāng)程序員決不是什么好差事,時(shí)刻需要學(xué)習(xí),需要思考。(直到你成為那個(gè)可以引導(dǎo)別人去學(xué)習(xí)和思考的人,你才可以偷偷的嘿嘿笑,又一群傻蛋)、程序員的未來(lái)很迷茫。(但我認(rèn)為關(guān)鍵看你自己!我希望你是一個(gè)有追求的人,不僅僅是混碗飯吃。因?yàn)檎嬲臉?lè)趣在于創(chuàng)造;如果你能改變軟件業(yè)的歷史,那才是英雄;不想成為Bill Gates,不想成為Dennis Ritchie 和 Bjarne Stroustrup,我會(huì)說(shuō)你沒(méi)有追求。有個(gè)關(guān)于程序員未來(lái)的笑話,也許你還沒(méi)聽(tīng)過(guò),你該聽(tīng)一聽(tīng),摘抄如下:

      一個(gè)程序員對(duì)自己的未來(lái)很迷茫,于是去問(wèn)上帝?!叭f(wàn)能的上帝呀,請(qǐng)你告訴我,我的未來(lái)會(huì)怎樣?”

      上帝說(shuō)“我的孩子,你去問(wèn)Lippman,他現(xiàn)在領(lǐng)導(dǎo)的程序員的隊(duì)伍可能是地球上最大的”

      于是他去問(wèn)Lippman。

      Lippman 說(shuō)“程序員的未來(lái)就是駕馭程序員”

      這個(gè)程序員對(duì)這個(gè)未來(lái)不滿意,于是他又去問(wèn)上帝?!叭f(wàn)能的上帝呀,請(qǐng)你告訴我,我的未來(lái)會(huì)怎樣?”

      上帝說(shuō)“我的孩子,你去問(wèn)Gates,他現(xiàn)在所擁有的財(cái)產(chǎn)可能是地球上最多的” 于是他去問(wèn)Gates。

      Gates 說(shuō)“程序員的未來(lái)就是榨取程序員”

      這個(gè)程序員對(duì)這個(gè)未來(lái)不滿意,于是他又去問(wèn)上帝?!叭f(wàn)能的上帝呀,請(qǐng)你告訴我,我的未來(lái)會(huì)怎樣?”

      上帝說(shuō)“我的孩子,你去問(wèn)侯捷,他寫(xiě)的計(jì)算機(jī)書(shū)的讀者可能是地球上最多的” 于是他去問(wèn)侯捷。

      侯捷說(shuō)“程序員的未來(lái)就是誘惑程序員”

      這個(gè)程序員對(duì)這個(gè)未來(lái)不滿意,于是他又去問(wèn)上帝?!叭f(wàn)能的上帝呀,請(qǐng)你告訴我,我的未來(lái)會(huì)怎樣?” 上帝搖搖頭“唉,我的孩子,你還是別當(dāng)程序員了”)

      6、當(dāng)程序員還是很有樂(lè)趣的。(當(dāng)你學(xué)到新知識(shí)時(shí),當(dāng)你有新的思想見(jiàn)解時(shí),當(dāng)你有新的產(chǎn)品問(wèn)世時(shí),和知己探討你的成果時(shí)…我問(wèn)你,覺(jué)得這些是樂(lè)趣嗎?)、當(dāng)程序員不易也不難。(世間事有難易乎?為之…;不為…。你有決心和信心嗎?)、你真的要當(dāng)程序員?是你自己的想法?、你舍得花錢(qián)買(mǎi)書(shū)嗎?(讀好書(shū)絕對(duì)是學(xué)習(xí)編程的最佳捷徑。你一定會(huì)說(shuō),現(xiàn)在電腦書(shū)籍真T.M.D 貴,沒(méi)法子,誰(shuí)讓知識(shí)和技術(shù)在人家的腦袋,在人家的書(shū)里呢;等你寫(xiě)書(shū)時(shí)可以把價(jià)格定低一點(diǎn),記著還有好多沒(méi)錢(qián)但想買(mǎi)書(shū)的兄弟很困難呀。要舍得買(mǎi)書(shū),買(mǎi)好書(shū),不好的的書(shū)不如不讀,其害大于其益,關(guān)于買(mǎi)什么書(shū),你可以問(wèn)高手或看候捷的書(shū)評(píng);準(zhǔn)備一個(gè)小本子記錄你想買(mǎi)的書(shū)的名字,逛書(shū)店時(shí)看看,如果好就買(mǎi)下,記住要讀,別光買(mǎi)不看。)、我告訴你,程序就是:任何有目的的、預(yù)想好的動(dòng)作序列,它是一種軟件。、編程序就是編寫(xiě)程序。、你想好了嗎?(如果你想好了還是決定要當(dāng)程序員,可以繼續(xù)往下讀;否則,你可以繼續(xù)尋找別的出路了。)

      (三)一個(gè)程序員應(yīng)該具備的基礎(chǔ)知識(shí)和概念、計(jì)算機(jī)是有什么組成的,CPU 是什么東西,其工作原理是什么。(對(duì)于這些以及下面將要提到的概念我不會(huì)告訴你什么答案,你可以看相應(yīng)的教材,關(guān)于教材我會(huì)在下一部分詳述,記住理解最重要?。C(jī)器語(yǔ)言和微指令集的概念。、程序的概念。、匯編語(yǔ)言是低級(jí)語(yǔ)言但不是機(jī)器語(yǔ)言。、高級(jí)語(yǔ)言主要有那些?(C,C ++,Basic,Pascal,F(xiàn)ortran,C#,Java 等等;如果你是中國(guó)軟件業(yè)的英雄,你也寫(xiě)一門(mén)語(yǔ)言,最好不用英語(yǔ))6、編譯程序和解釋程序的概念和其原理。(編譯器是高手和專家編寫(xiě)的)、HTML、XML 等是標(biāo)識(shí)性語(yǔ)言。

      8、Prolog 是人工智能語(yǔ)言。、操作系統(tǒng)OS 的概念和原理。(Windows98,Windows2000,Windows NT,UNIX,Linux,等等都是OS,還有一些實(shí)時(shí)OS,嵌入OS,編這些的絕對(duì)是高手)、Windows 編程說(shuō)白了就是Windows API 的調(diào)用。(中國(guó)的程序員很多只是會(huì)編windows 程序,用的是VB,我的建議是這些程序員頂多只是低級(jí)編碼員,我稱其是coder)、VC ++、VB、BC、BCB、Delphi、VF 等都只是編程的工具和環(huán)境,不是編程語(yǔ)言。、面向結(jié)構(gòu)的設(shè)計(jì)概念。、面向?qū)ο蟮母拍睢#ê煤美斫?,兄弟,這個(gè)東西還是很重要的)、軟件工程的概念和原理。(如果你想當(dāng)老總就需要好好研究了,系統(tǒng)分析員比編碼員要高一個(gè)等級(jí),薪水也高喲)、數(shù)據(jù)庫(kù)的概念。(要熟悉一些著名的數(shù)據(jù)庫(kù)系統(tǒng)和語(yǔ)言的名字,如Orcle,SQL,DB2,DyBase等)、了解網(wǎng)絡(luò)概念。、了解多媒體概念。、熟悉和掌握數(shù)據(jù)結(jié)構(gòu)和基本算法。、是不是要求太高了,別著急慢慢來(lái),進(jìn)步在不知不覺(jué)之中。(一旦開(kāi)始學(xué)習(xí),一個(gè)月以后你就會(huì)有一個(gè)基本的概念;兩個(gè)月以后你就會(huì)感覺(jué)自己有了全面的基礎(chǔ)知識(shí);當(dāng)你知道編程序是怎么回事時(shí),說(shuō)明你已經(jīng)入門(mén)了。也有很多人編了很多年程序還沒(méi)有入門(mén)呢,你不會(huì)希望自己步其后塵吧。要有信心和耐心。沉不住氣怎么能成大事?!)

      (四)教材推薦

      推薦的教材主要還是針對(duì)概念來(lái)的,最好選用名校的教學(xué)用書(shū)。、《計(jì)算機(jī)組成原理》(熟悉)2、《數(shù)據(jù)結(jié)構(gòu)》(掌握)3、《操作系統(tǒng)》(了解*> 熟悉)4、《The C language 》(掌握)5、《編譯原理》(了解原理)6、《匯編語(yǔ)言》(了解)7、《計(jì)算機(jī)網(wǎng)絡(luò)》(了解)8、《軟件工程》(了解)9、《關(guān)系數(shù)據(jù)庫(kù)》(熟悉)、《The C ++Languege 》(掌握)、《面向?qū)ο笤O(shè)計(jì)》(掌握;結(jié)合C++ 學(xué)習(xí))

      (五)一些經(jīng)驗(yàn)和體會(huì)

      (五)一些經(jīng)驗(yàn)和體會(huì)、真正的程序員用C++ ;(一位專家說(shuō)的)2、動(dòng)手去編程序; 3、動(dòng)腦去思考;、要有良好的編程風(fēng)格;、讀書(shū),讀好書(shū),盡量讀原版書(shū)!(我反復(fù)強(qiáng)調(diào)這一點(diǎn),讀書(shū)要有選擇,堅(jiān)持讀好書(shū),名家出的經(jīng)典書(shū),不要浪費(fèi)實(shí)踐在一些粗制濫造的書(shū)上面;堅(jiān)持博覽群書(shū))6、有自己的學(xué)習(xí)計(jì)劃;、總結(jié)自己的經(jīng)驗(yàn)教訓(xùn);(準(zhǔn)備一個(gè)筆記本,記錄錯(cuò)誤和心得)8、不要怕學(xué)新東西; 9、要有軟件工程的思想;、善于發(fā)現(xiàn)問(wèn)題,然后去尋找答案; 11、向高手請(qǐng)教;(要虛心直到你成為高手)12、和同行交流;(不善于交流肯定不行)、懂得軟件的實(shí)質(zhì),不要被千變?nèi)f化的表象所迷惑;、真正要學(xué)習(xí)用的是編程語(yǔ)言和方法,不是什么庫(kù),什么類(lèi),什么工具;(學(xué)用那些什么庫(kù)都比較簡(jiǎn)單,但 光會(huì)這些庫(kù),我覺(jué)得還遠(yuǎn)遠(yuǎn)不夠)、學(xué)習(xí)wiodows 編程主要是學(xué)習(xí)windows OS 和win32 API ; 16、有空了解一下嵌入式開(kāi)發(fā); 17、有空了解一下PDA 軟件開(kāi)發(fā);、了解一下.NET 框架和C# 語(yǔ)言,也許它是你新的衣食父母;、要有耐心,不要作浮躁的人; 20、對(duì)程序加注釋,并保留你的老程序; 21、學(xué)到的東西越多,了解的越多,你就越接近專家; 22、有空去逛逛CSDN,那里有你很多知己; 23、要有信心成為一個(gè)優(yōu)秀的程序;

      (六)一些好書(shū)的推薦、《The C Programming language 》(Keinighan & Dennis Ritchie 1988)2、《The C++ Programming Languague 》(Bjarne Stroustrup 1997)3、《Inside The C++ Object Model 》(lippmans)4、《Effective C++ 》(同上)5、《More Effective C++ 》(同上)6、《Exceptional c++ 》 7、《C++ 面向?qū)ο蟾咝Ь幊獭?8、《設(shè)計(jì)模式》 9、《Thinking In C++ 》、《The Standard C++ Bible 》(一般推薦)11、《The Art of Computer Programming 》、《Programming Windows 》(Charles Petzold)13、《VC++5.0 技術(shù)內(nèi)幕》 14、《MFC 深入淺出》 15、《軟件需求》、《Advanced Windows 》 17、《C++ primer 》、《win32 程序員參考手冊(cè)》 19、《用TCP/IP 進(jìn)行網(wǎng)際互連》 20、《COM 本質(zhì)論》

      (七)學(xué)習(xí)計(jì)劃

      這個(gè)學(xué)習(xí)計(jì)劃是我個(gè)人定的,也共享給大家參考一下,共同進(jìn)步吧。、《計(jì)算機(jī)組成原理》 2、《操作系統(tǒng)》 3、《數(shù)據(jù)結(jié)構(gòu)》 4、《匯編語(yǔ)言》 5、《 C 》 6、《 C++ 》 7、《VC 技術(shù)內(nèi)幕》、《Programming Windows 》 9、《深入淺出MFC 》 10、《Advanced Windows 》、《Inside The C++ Object Model 》 12、《Thinking in C++ 》 13、《Effective C++ 》 14、數(shù)據(jù)庫(kù) 15、網(wǎng)絡(luò)、嵌入式OS 和編程 17、硬件單片機(jī) 18、.NET 和C# 19、軟件工程 20、UNIX 和Linux

      (八)后記

      一年來(lái)浪費(fèi)了大量的時(shí)間去摸索,去思考,走了很多的彎路,直到現(xiàn)在我還覺(jué)得自己是個(gè)編程的門(mén)外漢。我把我的一些體會(huì)和想法說(shuō)出來(lái)(當(dāng)然,很多都不一定正確,歡迎大家指正和討論),也許對(duì)一些想加入程序員行列的朋友有一些建議和幫助。希望能幫助這些朋友順利走上編程之路,成為高手。

      如果真能如此,我也就很高興了。歡迎有興趣的朋友給我發(fā)E_mailsjpsky@163.net);我這個(gè)人有兩大業(yè)余愛(ài)好,其一就是讀武俠小說(shuō),其二就是結(jié)交英雄俠士。

      后記:此文我用analyster 的名字登錄,發(fā)表在“csdn -程序人生”上了,有很多網(wǎng)友看了,回了,還收到幾個(gè)網(wǎng)友發(fā)來(lái)郵件,和我探討,我很感謝大家對(duì)我的信任和鼓勵(lì)。

      我要說(shuō)明的就是我的這篇小文,主要是想給“一些想成為程序員”的朋友一些建議,幫他們尋找一條自我培訓(xùn)的捷徑,(其實(shí)世界上沒(méi)有什么捷徑的,我覺(jué)得一切都在于悟性,師傅領(lǐng)進(jìn)門(mén),修行在個(gè)人,譬如我就修行不夠)少象我一樣作大量的無(wú)用功。還有,主要就是一個(gè)程序員應(yīng)該具備的基本功(個(gè)人看法), 有人稱其為“內(nèi)功”,我覺(jué)得很對(duì)。沒(méi)有扎實(shí)的基本功,我們?nèi)绾文軌蜃龅接稳杏杏嗟木帉?xiě)高質(zhì)量高性能的優(yōu)秀程序呢?

      經(jīng)驗(yàn)分享

      (六)一個(gè)程序員給初學(xué)編程人的建議!絕對(duì)的好!

      想學(xué)習(xí)程序設(shè)計(jì)而又很迷惘的朋友,希望可以帶來(lái)一點(diǎn)幫助。

      我第一次接觸電腦是在小學(xué)二年級(jí)的時(shí)候。那時(shí)純粹是因?yàn)橄矚g打電子游戲,聽(tīng)別人說(shuō)電腦上的游戲十分好玩,于是就漫漫開(kāi)始與之接觸了。在三年級(jí)時(shí)父母出于我對(duì)計(jì)算機(jī)濃厚的興趣送我去了一個(gè)BASIC 編程學(xué)習(xí)班,從那時(shí)起我才真正開(kāi)始走上編程這條不歸之路。雖然說(shuō)現(xiàn)在程序設(shè)計(jì)這門(mén)專業(yè)在社會(huì)上很熱,競(jìng)爭(zhēng)十分激烈,但是這只是學(xué)習(xí)編程的人比較多而已。真正能夠掌握以至于精通的人實(shí)際上很少,畢竟中國(guó)的軟件業(yè)才剛剛起步不久。現(xiàn)在社會(huì)對(duì)優(yōu)秀的程序設(shè)計(jì)人員的需求量還是相當(dāng)大的,但是前提是必須要優(yōu)秀。我自己雖然也談不上優(yōu)秀,但多少還是有些感觸。在這里想講述自己對(duì)于一般程序員和優(yōu)秀程序員之間在技術(shù)上的一些認(rèn)識(shí)(什么敬業(yè)精神生活態(tài)度我就不多說(shuō)了):

      首先作為一個(gè)優(yōu)秀的程序員,數(shù)學(xué)是十分重要的。數(shù)學(xué)是自然科學(xué)的基礎(chǔ),計(jì)算機(jī)科學(xué)實(shí)際上是數(shù)學(xué)的一個(gè)分支。數(shù)學(xué)主要能讓人懂得一種分析問(wèn)題的方法,然后再通過(guò)編程去實(shí)現(xiàn)它。計(jì)算機(jī)內(nèi)部的許多原理也都牽涉到比較復(fù)雜的數(shù)學(xué)知識(shí)。它是我們用來(lái)解決現(xiàn)實(shí)問(wèn)題的最高效的工具。很多學(xué)習(xí)編程的朋友對(duì)數(shù)學(xué)覺(jué)得不屑一顧,覺(jué)得對(duì)于編程沒(méi)有什么關(guān)系。實(shí)際上優(yōu)秀程序員和一般程序員拉開(kāi)檔次很大一個(gè)程度上就是取決于對(duì)數(shù)學(xué)的能力。一些項(xiàng)目有時(shí)需要很復(fù)雜的數(shù)學(xué)建模和利用數(shù)學(xué)對(duì)于系統(tǒng)效率進(jìn)行分析,而這些項(xiàng)目對(duì)于一般的程序員是很困難的。正確應(yīng)用數(shù)學(xué)知識(shí)有時(shí)候能使你的程序的效率產(chǎn)生質(zhì)的飛躍?,F(xiàn)在的程序員在數(shù)學(xué)上普遍是薄弱環(huán)節(jié),這點(diǎn)是大家應(yīng)該引起足夠重視的。當(dāng)別人對(duì)于這些項(xiàng)目感到無(wú)從下手,而你卻能夠完成,這個(gè)時(shí)候你的價(jià)值也就表現(xiàn)出來(lái)了。真正優(yōu)秀的程序員是能夠最基本的一點(diǎn)就是要能夠通過(guò)自己的知識(shí)來(lái)解決一般程序員所無(wú)法完成的問(wèn)題。而數(shù)學(xué)能力就是一個(gè)很重要的環(huán)節(jié)。

      其次就是要對(duì)數(shù)據(jù)結(jié)構(gòu)引起足夠的重視。如果說(shuō)計(jì)算機(jī)專業(yè)的學(xué)生與非計(jì)算機(jī)專業(yè)的最根本的差別絕對(duì)是數(shù)據(jù)結(jié)構(gòu)(數(shù)學(xué)大家都一樣學(xué)了,主要看你自己學(xué)得好壞)。對(duì)數(shù)據(jù)結(jié)構(gòu)的掌握與運(yùn)用能力是衡量你編程能力的一個(gè)很重要的指標(biāo)。有的人對(duì)于看了鏈表,棧,樹(shù),廣義表這些東西就頭痛。然而這些東西往往能使你的程序的效率比別人高出百倍。由于一直搞信息學(xué)競(jìng)賽,到了大學(xué)又搞ACM,所以我對(duì)數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu)都掌握得相對(duì)較好。這使我在應(yīng)聘與工作中明顯感到勝人一酬。記得自己大學(xué)時(shí)去一家公司應(yīng)聘的經(jīng)歷,當(dāng)時(shí)去應(yīng)憑的還有3 個(gè)人,有2 個(gè)大學(xué)畢業(yè),有個(gè)也工作了一段時(shí)間了。他們幾個(gè)都在大講自己的能力如何之強(qiáng),會(huì)使用的語(yǔ)言及編程工具如何之多,經(jīng)驗(yàn)如何之豐富。按理說(shuō)我應(yīng)該是資質(zhì)最淺的。當(dāng)時(shí)也是初生牛X 不怕虎,也就硬著頭皮去了。當(dāng)時(shí)面試的題目是一個(gè)公司的資金管理項(xiàng)目的一個(gè)問(wèn)題,要求每個(gè)人都在思考后給出自己的設(shè)計(jì)方案。其中比較核心的一個(gè)問(wèn)題就是要計(jì)算一個(gè)資金最小波動(dòng)值的問(wèn)題,給出的數(shù)據(jù)量相當(dāng)大,對(duì)效率要求很高。對(duì)于整個(gè)程序的面向?qū)ο蠡姆治鑫覀儙讉€(gè)都是差不多的,畢竟這些東西在學(xué)校里是很重視的,而且不是真正的難點(diǎn)。然而到了最關(guān)鍵的問(wèn)題時(shí)其余的人都卡殼了,有兩個(gè)是用簡(jiǎn)單的雙重循環(huán),時(shí)間復(fù)雜度(N^2),慘不忍睹。還有一個(gè)在冥思苦想了好一陣以后說(shuō)用樹(shù),具體技術(shù)細(xì)節(jié)又講不清楚,效率分析也很馬虎。只有我當(dāng)時(shí)很快就給出了采取AVL 樹(shù)的方案,并且利用高等數(shù)學(xué)推導(dǎo)作出了很詳細(xì)的效率分析和時(shí)空換算,并提出了引入?yún)R編的方法。很自然的我得到了這分工作。在這里大家顯然可以看到數(shù)學(xué)和數(shù)據(jù)結(jié)構(gòu)對(duì)于一個(gè)優(yōu)秀程序員是多么重要,它們是和一般的程序員打開(kāi)檔次的最關(guān)鍵的地方。這樣向“棗子”碰到的那種情況應(yīng)該很輕松的就可以想到。

      如果你是一位想學(xué)習(xí)編程的朋友,我經(jīng)過(guò)多年的學(xué)習(xí)總結(jié)出來(lái)了一個(gè)學(xué)習(xí)的線路希望對(duì)你有所幫助。要學(xué)習(xí)編程是要有很大恒心和毅力的,首先你要明確自己的目標(biāo),想好自己編程是為了干什么。如果你學(xué)習(xí)僅僅只是一時(shí)想編出QUAKE 和成為比爾蓋次的沖動(dòng),那么我勸你還是應(yīng)該還是不要開(kāi)始學(xué)習(xí),應(yīng)為這樣的目標(biāo)很難支持你日后大量的學(xué)習(xí)。而且你的年齡不能太大(最好是中學(xué)或者大學(xué)生)。如果你想好目標(biāo)并決定開(kāi)始奮斗,那就讓我們開(kāi)始吧。如果你一開(kāi)始對(duì)電腦一無(wú)所知,那么你應(yīng)該先熟悉一些電腦的一些最基本的原理和操作,這個(gè)不需要特別細(xì)致的學(xué)習(xí),只要大概知道二進(jìn)制和一些基本操作就可以了。接下來(lái)你應(yīng)該先學(xué)習(xí)BASIC 語(yǔ)言,這個(gè)語(yǔ)言并不會(huì)耽誤你太多的時(shí)間,學(xué)習(xí)它完全是為了入門(mén),讓你對(duì)電腦編程有一個(gè)比較初步的認(rèn)識(shí)。這時(shí)候你應(yīng)該多編一些小的程序,知道一些最基本每條語(yǔ)句的功能,搞清楚一些基本的數(shù)據(jù)結(jié)構(gòu)(尤其是數(shù)組)對(duì)于一些其余用途的函數(shù)最好不要做任何學(xué)習(xí),因?yàn)檫@樣只會(huì)分散你的注意力。當(dāng)你能夠可以熟練的運(yùn)用BASIC 編出猴子選大王,以及電腦出題考試之類(lèi)的程序時(shí),你就可以開(kāi)始后面的學(xué)習(xí)了。接下來(lái)如果覺(jué)得自己接受能力強(qiáng)的話就可以開(kāi)始學(xué)C 了(注意不是C++),如果感覺(jué)有困難也可以先學(xué)Pascal 過(guò)度一下。還有很重要的一點(diǎn)就是千萬(wàn)不要一開(kāi)始就學(xué)VB,DELPHI,VC之類(lèi)的東西,這些東西在一開(kāi)始學(xué)會(huì)對(duì)你造成很壞的影響。有可能會(huì)把你引入另外一個(gè)錯(cuò)誤的學(xué)習(xí)方向而忽略了真正應(yīng)該掌握的東西。學(xué)C 主要是學(xué)過(guò)程話的程序設(shè)計(jì),學(xué)會(huì)把自己的程序分成許多的函數(shù)(或過(guò)程),養(yǎng)成良好的編程習(xí)慣。這時(shí)可以多看一下高人的程序,不一定要懂意思,主要是學(xué)會(huì)別人程序的格式(比如變量如何起名,怎么劃分函數(shù))。除開(kāi)掌握基本的控制流語(yǔ)句外,應(yīng)該學(xué)習(xí)一些很簡(jiǎn)單的I/O 函數(shù)和數(shù)學(xué)函數(shù)。C 的學(xué)習(xí)主要是你舍棄原來(lái)BASIC 程序那種把所有語(yǔ)句積成一大堆的風(fēng)格,要學(xué)會(huì)使用函數(shù),提高代碼重用性。對(duì)于指針之類(lèi)的東西如果實(shí)在看不懂可以先不去管,到后面會(huì)有辦法。當(dāng)你能夠比較自如的用C 編寫(xiě)一些小的計(jì)算程序時(shí),你就可以開(kāi)始你的數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)了(數(shù)學(xué)的學(xué)習(xí)主要是在學(xué)校,自

      己要多用心)。數(shù)據(jù)結(jié)構(gòu)你可以一點(diǎn)一點(diǎn)漫漫看,并不需要專門(mén)空出一段時(shí)間來(lái)專門(mén)研究,這樣的目的是讓你能夠很好的掌握它,要學(xué)會(huì)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)來(lái)規(guī)范自己的程序設(shè)計(jì)和提高程序的效率。學(xué)完C 我認(rèn)為接著最好學(xué)習(xí)匯編。這個(gè)或許有許多人都會(huì)反對(duì),然而我個(gè)人認(rèn)為這樣是很好的。從最基本的DOS 匯編開(kāi)始,買(mǎi)本《IBM PC 匯編程序設(shè)計(jì)》(清華黃皮)一定要一點(diǎn)一點(diǎn)吃透,實(shí)在看不懂就跳,反復(fù)的嚴(yán)讀是一定可以看懂的。匯編是一定要掌握的,因?yàn)樗婕暗胶芏嘧罨镜闹R(shí)。掌握了匯編和對(duì)I/O 有了個(gè)很徹底的認(rèn)識(shí)后,應(yīng)該去學(xué)編譯原理。這個(gè)東西并不要精通,但是一定要知道,在大腦里要有一個(gè)這樣的概念,這對(duì)你對(duì)程序語(yǔ)言的控制能力都有很大的幫助。這樣最基本的學(xué)習(xí)就算完成了。一般智力正常的人前一段東西應(yīng)該都是可以掌握的。接著后面的學(xué)習(xí)就要看你自身的造化了。這個(gè)時(shí)候你應(yīng)該研究一下數(shù)據(jù)結(jié)構(gòu),不要分散自己學(xué)習(xí)的注意力,要知道數(shù)據(jù)結(jié)構(gòu)是異常重要的(相信我,絕對(duì)沒(méi)錯(cuò))如果你覺(jué)得自己已經(jīng)對(duì)于樹(shù),連表,堆棧之類(lèi)的東西和排序,遞歸之類(lèi)的算法已經(jīng)十分清楚,就可以開(kāi)始學(xué)習(xí)C++了。學(xué)習(xí)前一定要有個(gè)正確的認(rèn)識(shí),那就是C 和C++ 是兩個(gè)不同的東西。學(xué)習(xí)C++ 是為了學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì),這個(gè)時(shí)候你對(duì)于指針應(yīng)該也能夠掌握了(有匯編的基礎(chǔ)),主要抓住C++ 和C 相比的一些新特性,對(duì)于多態(tài)之類(lèi)的特性要注意理解掌握,如果沒(méi)有搞懂就堅(jiān)決不要往下學(xué)習(xí)。一些基本的概念掌握以后可以看一些別人設(shè)計(jì)的程序,學(xué)習(xí)別人怎么利用面向?qū)ο蟮姆?/p>

      法來(lái)設(shè)計(jì)程序的。這個(gè)東西也是人之間拉開(kāi)檔次的一個(gè)環(huán)節(jié),可以和數(shù)據(jù)結(jié)構(gòu)放在同等重要的地位。我就見(jiàn)過(guò)有的人都大學(xué)畢業(yè)了還搞不懂virtual 到底是怎么一回事情。其實(shí)我認(rèn)為學(xué)到這里你已經(jīng)為你成為一個(gè)優(yōu)秀的程序員打下了很好的基礎(chǔ),你已經(jīng)能夠應(yīng)用C++,懂得面向?qū)ο蟪绦蛟O(shè)計(jì),對(duì)數(shù)據(jù)結(jié)構(gòu)掌握很好,掌握匯編和編 譯原理。接下來(lái)的學(xué)習(xí)就是基于操作平臺(tái)的了,一般是先學(xué)windows(Microsoft 畢竟是老大),先學(xué)win32api,搞請(qǐng)windows 基本消息機(jī)制和原理,有匯編基礎(chǔ)基本上不會(huì)碰到什么困難。其實(shí)只要會(huì)了API,其余什么MFC,VCL 都是囊中之物了,都不過(guò)是對(duì)于API 的小裝而已。VC,C++Builder 都可輕松拿下,這只是開(kāi)發(fā)工具的問(wèn)題。以后的OLE(ActiveX),.NET,數(shù)據(jù)庫(kù)就要看自己的發(fā)展方向而定了。我在這里強(qiáng)調(diào)的是前面的基本能力的學(xué)習(xí),后面操作平臺(tái)雖然知識(shí)體系龐大,然而畢竟比較死,更好掌握。最后編程能力的高低主要還是有以下幾點(diǎn)決定:1。編程的習(xí)慣 2。數(shù)學(xué)能力(包括邏輯思維,分析問(wèn)題的能力)3。對(duì)數(shù)據(jù)結(jié)構(gòu)的認(rèn)識(shí)能力 4。經(jīng)驗(yàn)的多少(包括多使用語(yǔ)言的掌握能力)。

      經(jīng)驗(yàn)分享

      (七)算法的力量

      算法是計(jì)算機(jī)科學(xué)領(lǐng)域最重要的基石之一,但卻受到了國(guó)內(nèi)一些程序員的冷落。許多學(xué)生看到一些公司在招聘時(shí)要求的編程語(yǔ)言五花八門(mén),就產(chǎn)生了一種誤解,認(rèn)為學(xué)計(jì)算機(jī)就是學(xué)各種編程語(yǔ)言,或者認(rèn)為,學(xué)習(xí)最新的語(yǔ)言、技術(shù)、標(biāo)準(zhǔn)就是最好的鋪路方法。其實(shí),大家被這些公司誤導(dǎo)了。編程語(yǔ)言雖然該學(xué),但是學(xué)習(xí)計(jì)算機(jī)算法和理論更重要,因?yàn)橛?jì)算機(jī)語(yǔ)言和開(kāi)發(fā)平臺(tái)日新月異,但萬(wàn)變不離其宗的是那些算法和理論,例如數(shù)據(jù)結(jié)構(gòu)、算法、編譯原理、計(jì)算機(jī)體系結(jié)構(gòu)、關(guān)系型數(shù)據(jù)庫(kù)原理等等。在“開(kāi)復(fù)學(xué)生網(wǎng)”上,有位同學(xué)生動(dòng)地把這些基礎(chǔ)課程比擬為“內(nèi)功”,把新的語(yǔ)言、技術(shù)、標(biāo)準(zhǔn)比擬為“外功”。整天趕時(shí)髦的人最后只懂得招式,沒(méi)有功力,是不可能成為高手的。

      算法與我

      當(dāng)我在1980 年轉(zhuǎn)入計(jì)算機(jī)科學(xué)系時(shí),還沒(méi)有多少人的專業(yè)方向是計(jì)算機(jī)科學(xué)。有許多其他系的人嘲笑我們說(shuō):

      “知道為什么只有你們系要加一個(gè)?科學(xué)?,而沒(méi)有?物理科學(xué)系?或?化學(xué)科學(xué)系?嗎?因?yàn)槿思沂钦娴目茖W(xué), 不需要畫(huà)蛇添足,而你們自己心虛,生怕不?科學(xué)?,才這樣欲蓋彌彰?!?其實(shí),這點(diǎn)他們徹底弄錯(cuò)了。真正學(xué)懂計(jì)算機(jī)的人(不只是“編程匠”)都對(duì)數(shù)學(xué)有相當(dāng)?shù)脑煸?,既能用科學(xué)家的嚴(yán)謹(jǐn)思維來(lái)求證,也能用工程師的務(wù)實(shí)手段來(lái)解決問(wèn)題——而這種思維和手段的最佳演繹就是“算法”。

      記得我讀博時(shí)寫(xiě)的Othello 對(duì)弈軟件獲得了世界冠軍。當(dāng)時(shí),得第二名的人認(rèn)為我是靠?jī)e幸才打贏他,不服氣地問(wèn)我的程序平均每秒能搜索多少步棋,當(dāng)他發(fā)現(xiàn)我的軟件在搜索效率上比他快60 多倍時(shí),才徹底服輸。為什么在同樣的機(jī)器上,我可以多做60 倍的工作呢?這是因?yàn)槲矣昧艘粋€(gè)最新的算法,能夠把一個(gè)指數(shù)函數(shù)轉(zhuǎn)換成四個(gè)近似的表,只要用常數(shù)時(shí)間就可得到近似的答案。在這個(gè)例子中,是否用對(duì)算法才是能否贏得世界冠軍的關(guān)鍵。

      還記得1988 年貝爾實(shí)驗(yàn)室副總裁親自來(lái)訪問(wèn)我的學(xué)校,目的就是為了想了解為什么他們的語(yǔ)音識(shí)別系統(tǒng)比我開(kāi)發(fā)的慢幾十倍,而且,在擴(kuò)大至大詞匯系統(tǒng)后,速度差異更有幾百倍之多。他們雖然買(mǎi)了幾臺(tái)超級(jí)計(jì)算機(jī),勉強(qiáng)讓系統(tǒng)跑了起來(lái),但這么貴的計(jì)算資源讓他們的產(chǎn)品部門(mén)很反感,因?yàn)椤鞍嘿F”的技術(shù)是沒(méi)有應(yīng)用前景的。在與他們探討的過(guò)程中,我驚訝地發(fā)現(xiàn)一個(gè)O(n*m)的動(dòng)態(tài)規(guī)劃(dynamic programming)居然被他們做成了O(n*n*m)。更驚訝的是,他們還為此發(fā)表了不少文章,甚至為自己的算法起了一個(gè)很特別的名字,并將算法提名到一個(gè)科學(xué)會(huì)議里,希望能得到大獎(jiǎng)。當(dāng)時(shí),貝爾實(shí)驗(yàn)室的研究員當(dāng)然絕頂聰明,但他們?nèi)际菍W(xué)數(shù)學(xué)、物理或電機(jī)出身,從未學(xué)過(guò)計(jì)算機(jī)科學(xué)或算法,才犯了這么基本的錯(cuò)誤。我想那些人以后再也不會(huì)嘲笑學(xué)計(jì)算機(jī)科學(xué)的人了吧!

      網(wǎng)絡(luò)時(shí)代的算法

      有人也許會(huì)說(shuō):“今天計(jì)算機(jī)這么快,算法還重要嗎? ”其實(shí)永遠(yuǎn)不會(huì)有太快的計(jì)算機(jī),因?yàn)槲覀兛倳?huì)想出新的應(yīng)用。雖然在摩爾定律的作用下,計(jì)算機(jī)的計(jì)算能力每年都在飛快增長(zhǎng),價(jià)格也在不斷下降??晌覀儾灰?,需要處理的信息量更是呈指數(shù)級(jí)的增長(zhǎng)?,F(xiàn)在每人每天都會(huì)創(chuàng)造出大量數(shù)據(jù)(照片,視頻,語(yǔ)音,文本等等)。日益先進(jìn)的記錄和存儲(chǔ)手段使我們每個(gè)人的信息量都在爆炸式的增長(zhǎng)。互聯(lián)網(wǎng)的信息流量和日志容量也在飛快增長(zhǎng)。在科學(xué)研究方面,隨著研究手段的進(jìn)步,數(shù)據(jù)量更是達(dá)到了前所未有的程度。無(wú)論是三維圖形、海量數(shù)據(jù)處理、機(jī)器學(xué)習(xí)、語(yǔ)音識(shí)別,都需要極大的計(jì)算量。在網(wǎng)絡(luò)時(shí)代,越來(lái)越多的挑戰(zhàn)需要靠卓越的算法來(lái)解決。

      再舉另一個(gè)網(wǎng)絡(luò)時(shí)代的例子。在互聯(lián)網(wǎng)和手機(jī)搜索上,如果要找附近的咖啡店,那么搜索引擎該怎么處理這個(gè)請(qǐng)求呢?

      最簡(jiǎn)單的辦法就是把整個(gè)城市的咖啡館都找出來(lái), 然后計(jì)算出它們的所在位置與你之間的距離, 再進(jìn)行排序, 然后返回最近的結(jié)果。但該如何計(jì)算距離呢?圖論里有不少算法可以解決這個(gè)問(wèn)題。

      這么做也許是最直觀的,但絕對(duì)不是最迅速的。如果一個(gè)城市只有為數(shù)不多的咖啡館, 那這么做應(yīng)該沒(méi)什么問(wèn)題, 反正計(jì)算量不大。但如果一個(gè)城市里有很多咖啡館, 又有很多用戶都需要類(lèi)似的搜索, 那么服務(wù)器所承受的壓力就大多了。在這種情況下, 我們?cè)撛鯓觾?yōu)化算法呢? 首先,我們可以把整個(gè)城市的咖啡館做一次“預(yù)處理”。比如,把一個(gè)城市分成若干個(gè)“格子(grid)”, 然后根據(jù)用戶所在的位置把他放到某一個(gè)格子里,只對(duì)格子里的咖啡館進(jìn)行距離排序。

      問(wèn)題又來(lái)了,如果格子大小一樣,那么絕大多數(shù)結(jié)果都可能出現(xiàn)在市中心的一個(gè)格子里,而郊區(qū)的格子里只有極少的結(jié)果。在這種情況下,我們應(yīng)該把市中心多分出幾個(gè)格子。更進(jìn)一步,格子應(yīng)該是一個(gè)“樹(shù)結(jié)構(gòu)”,最頂層是一個(gè)大格——整個(gè)城市,然后逐層下降,格子越來(lái)越小,這樣有利于用戶進(jìn)行精確搜索——如果在最底層的格子里搜索結(jié)果不多,用戶可以逐級(jí)上升,放大搜索范圍。

      上述算法對(duì)咖啡館的例子很實(shí)用,但是它具有通用性嗎?答案是否定的。把咖啡館抽象一下,它是一個(gè)“點(diǎn)”,如果要搜索一個(gè)“面”該怎么辦呢?比如,用戶想去一個(gè)水庫(kù)玩,而一個(gè)水庫(kù)有好幾個(gè)入口,那么哪一個(gè)離用戶最近呢?這個(gè)時(shí)候,上述“樹(shù)結(jié)構(gòu)”就要改成“r*tree ”, 因?yàn)闃?shù)中間的每一個(gè)節(jié)點(diǎn)都是一個(gè)范圍,一個(gè)有邊界的范圍(參考:http://)。這個(gè)算法能夠在很多種計(jì)算中達(dá)到相當(dāng)高的效率,而且是可擴(kuò)展的(也就是說(shuō),一千臺(tái)機(jī)器就算不能達(dá)到一千倍的效果,至少也可以達(dá)到幾百倍的效果)。Map and Reduce 的另外一大特色是它可以利用大批廉價(jià)的機(jī)器組成功能強(qiáng)大的server farm。最后,它的容錯(cuò)性能異常出色,就算一個(gè)server farm 里面的機(jī)器down 掉一半,整個(gè)farm 依然能夠運(yùn)行。正是因?yàn)檫@個(gè)天才的認(rèn)識(shí), 才有了Map and Reduce 算法。借助該算法,Google 幾乎能無(wú)限地增加計(jì)算量,與日新月異的互聯(lián)網(wǎng)應(yīng)用一同成長(zhǎng)。

      算法并不局限于計(jì)算機(jī)和網(wǎng)絡(luò)

      舉一個(gè)計(jì)算機(jī)領(lǐng)域外的例子:在高能物理研究方面,很多實(shí)驗(yàn)每秒鐘都產(chǎn)生幾個(gè)TB 的數(shù)據(jù)量。但因?yàn)樘幚砟芰痛鎯?chǔ)能力的不足,科學(xué)家不得不把絕大部分未經(jīng)處理的數(shù)據(jù)丟棄掉??纱蠹乙?,新元素的信息很有可能就藏在我們來(lái)不及處理的數(shù)據(jù)里面。同樣的,在其他任何領(lǐng)域里,算法都可以改變?nèi)祟?lèi)的生活。例如人類(lèi)基因的研究,就可能因?yàn)樗惴ǘl(fā)明新的醫(yī)療方式。在國(guó)家安全領(lǐng)域,有效的算法可能避免下一個(gè)911 的發(fā)生。在氣象方面,算法可以更好地預(yù)測(cè)未來(lái)天災(zāi)的發(fā)生,以拯救生命。

      所以,如果你把計(jì)算機(jī)的發(fā)展放到應(yīng)用和數(shù)據(jù)飛速增長(zhǎng)的大環(huán)境下,你一定會(huì)發(fā)現(xiàn),算法的重要性不是在日益減小,而是在日益加強(qiáng)。

      給程序員的七個(gè)建議

      (1)練內(nèi)功。不要只花功夫?qū)W習(xí)各種流行的編程語(yǔ)言和工具,以及某些公司招聘廣告上要求的科目。要把數(shù)據(jù)結(jié)構(gòu)、算法、數(shù)據(jù)庫(kù)、操作系統(tǒng)原理、計(jì)算機(jī)體系結(jié)構(gòu)、計(jì)算機(jī)網(wǎng)絡(luò),離散數(shù)學(xué)等基礎(chǔ)課程學(xué)好。大家不妨試試高德納所著The Art of Computer Programming 里的題目,如果你能夠解決其中的大部分題目,就說(shuō)明你在算法方面有一定的功力了。

      (2)多實(shí)戰(zhàn)。通過(guò)編程的實(shí)戰(zhàn)積累經(jīng)驗(yàn)、鞏固知識(shí)。很多中國(guó)大學(xué)畢業(yè)生缺乏編程和調(diào)試經(jīng)驗(yàn);學(xué)習(xí)C語(yǔ)言,考試過(guò)關(guān)就算學(xué)會(huì)了;課題項(xiàng)目中,只要程序能夠編譯,運(yùn)行,并且輸入輸出滿足要求就算了事。這些做法是不行的。寫(xiě)程序的時(shí)候,大家必須多想想如何把程序?qū)懙酶泳珶?、高效、高質(zhì)量。建議大家爭(zhēng)取在大學(xué)四年中積累編寫(xiě)十萬(wàn)行代碼的經(jīng)驗(yàn)。我們必須明白的是:好程序員是寫(xiě)出來(lái)的,不是學(xué)出來(lái)的。

      (3)求實(shí)干。不要輕視任何實(shí)際工作,比如一些看似簡(jiǎn)單的編碼或測(cè)試。要不懈追求對(duì)細(xì)節(jié)一絲不茍的實(shí)干作風(fēng)與敬業(yè)精神。我發(fā)現(xiàn)不少程序員對(duì)于知識(shí)的掌握很膚淺,不求甚解,沒(méi)有好奇心,不會(huì)刨根問(wèn)底。比如,學(xué)會(huì)了C++,是否了解一個(gè)對(duì)象在編譯后,在匯編代碼中是如何被初始化的?這個(gè)對(duì)象的各個(gè)成員在內(nèi)存中是如何存放的?當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),編譯器在匯編代碼中加入了哪些額外的動(dòng)作?虛函數(shù)的調(diào)用是如何實(shí)現(xiàn)的? 這些東西恐怕在編程語(yǔ)言或編譯原理中都沒(méi)有詳細(xì)提到,只有通過(guò)踏實(shí)的實(shí)干才能真正掌握。

      (4)重視數(shù)學(xué)學(xué)習(xí)。數(shù)學(xué)是思維的體操,數(shù)學(xué)無(wú)處不在。學(xué)計(jì)算機(jī)至少要學(xué)習(xí)離散數(shù)學(xué)、概率論、布爾代數(shù)、集合論和數(shù)理邏輯。這些知識(shí)并不難,但是對(duì)你未來(lái)的工作幫助會(huì)很大。尤其當(dāng)你對(duì)一些“數(shù)學(xué)密集型”的領(lǐng)域如視頻、圖像處理等有興趣時(shí),這些知識(shí)將成為你手中的利器。

      (5)培養(yǎng)團(tuán)隊(duì)精神,學(xué)會(huì)與人合作。今天的軟件工程早已經(jīng)不是一個(gè)人可以單獨(dú)操作的,而必須靠團(tuán)隊(duì)合作才能成功。不懂得合作的人是不能成大器的。大家要多去尋找可以與人一起做項(xiàng)目的機(jī)會(huì)。

      (6)激勵(lì)創(chuàng)新意識(shí),培養(yǎng)好奇心,不要死記硬背。沒(méi)有掌握某種算法技術(shù)的根本原理,就不會(huì)有應(yīng)變和創(chuàng)新的能力。想成為一位好程序員(其實(shí)從事任何一個(gè)行業(yè)都是如此),重要的是要養(yǎng)成鉆研,好奇,創(chuàng)新,動(dòng)手,合作的優(yōu)秀習(xí)慣,不滿足于填鴨,不滿足于考試交差,不滿足于表象。這不是學(xué)幾門(mén)課能夠一蹴而就的。

      (7)有策略地“打工”。在不影響學(xué)業(yè)的前提下,尋找真正有意義的暑期工作或兼職。去找一個(gè)重視技術(shù)的公司,在一個(gè)好的“老板”指導(dǎo)下完成真正會(huì)被用戶使用的程序。不要急于去一個(gè)要你做“頭”而獨(dú)擋一面的地方,因?yàn)橄騽e人學(xué)習(xí)才是你的目的。找工作也是一樣,不要只看待遇和職銜,要挑一個(gè)你能夠?qū)W習(xí)的環(huán)境,一個(gè)愿意培養(yǎng)員工的企業(yè),一個(gè)重視你的專業(yè)的公司。最后,還要挑一個(gè)好老板。

      希望大家都能把握機(jī)會(huì),養(yǎng)成好的學(xué)習(xí)習(xí)慣,把算法學(xué)精學(xué)透;希望大家都能有一個(gè)美好的未來(lái)!

      經(jīng)驗(yàn)分享

      (八)不要迷失在技術(shù)的海洋中

      技術(shù)就好像一片汪洋大海,越深入越望不到邊際。就拿自己的體會(huì)說(shuō)吧,2000 年的時(shí)候在學(xué)校搞ASP,覺(jué)得網(wǎng)頁(yè)開(kāi)發(fā)就是這么簡(jiǎn)單,把數(shù)據(jù)庫(kù)中的數(shù)據(jù)格式化一下顯示在頁(yè)面上,把用戶的輸入組裝成添加刪除和修改的SQL 提交到數(shù)據(jù)庫(kù)中去。幾年后的今天,我對(duì)自己了解或聽(tīng)說(shuō)過(guò)的ASP.NET 相關(guān)(注意:僅僅是ASP.NET 或者說(shuō)網(wǎng)站制作相關(guān))技術(shù)列了一下:

      在這些語(yǔ)言、技術(shù)、工具、理念中,每一項(xiàng)都能擴(kuò)展出很多還要細(xì)化的技術(shù),每一項(xiàng)要達(dá)到熟悉的程度可能都會(huì)花去一年的時(shí)間,如果這些都要達(dá)到熟悉的話,大概也 就快退休了。不但如此,每一個(gè)技術(shù)都在飛速發(fā)展,今年語(yǔ)言到了明年就有更簡(jiǎn)單的語(yǔ)法,今年的技術(shù)到了明年就有更好的技術(shù)來(lái)替代,今年的工具到明年已經(jīng)面目 全非,今年的理念到了明年已不再流行。

      或許你現(xiàn)在:

      在為面試而去搜索接口和抽象類(lèi)的區(qū)別;

      在為新技術(shù)來(lái)不及學(xué)習(xí)而煩惱;

      在為看不懂高深的技術(shù)文章而煩惱;

      在為項(xiàng)目不能提高自己的編碼水平而發(fā)愁;

      ????

      我覺(jué)得:不管做什么,學(xué)什么,一要心態(tài)好,二要態(tài)度好。所謂心態(tài)好就是不要著急、不用擔(dān)心;所謂態(tài)度好是多分享、多討論、學(xué)出自己的心得。分享的意義是很大的,在分享之后的認(rèn)知水平往往比分享之前的高,而且在很多時(shí)候分享給別人1 點(diǎn),別人能回報(bào)給你2 點(diǎn)。有些人在團(tuán)隊(duì)中不愿意分享,怕團(tuán)隊(duì)中的其它人水平提升了影響到自己的地位,其實(shí)這種想法是沒(méi)有什么道理的,也是對(duì)自己不利的。有些人又在羨慕別人的技術(shù)NB,崇拜高手,為自己的技術(shù)差感到煩惱,如果你對(duì)自己信心又有什么技術(shù)是花時(shí)間學(xué)不到的那?

      從學(xué)習(xí)的內(nèi)容上來(lái)說(shuō),要堅(jiān)持兩個(gè)原則,如果你沒(méi)有時(shí)間的話,那么學(xué)新技術(shù)不如學(xué)基礎(chǔ)、學(xué)應(yīng)用不如學(xué)思想。舉例來(lái)說(shuō),如果你只熟悉C# 的基本語(yǔ)法的話,那么學(xué)好C# 這個(gè)語(yǔ)言比學(xué)會(huì)編寫(xiě)留言本更有意義,如果你關(guān)注MVC、ORM 的話,那么學(xué)習(xí)它們的思想比學(xué)會(huì)使用MONORAIL 以及NHIBERNMATE 更好。技術(shù)雖然一直在變,但是越是基礎(chǔ)和越是抽象的技術(shù)變化越慢,越是偏向應(yīng)用越是具體的技術(shù)變化越是快,從性價(jià)比上說(shuō),學(xué)習(xí)基礎(chǔ)知識(shí)性價(jià)比更高。再舉一個(gè)直白的例子,DIY 電腦的時(shí)候,在顯示器上多花費(fèi)500 元的意義一定比在顯卡上多花費(fèi)500 元的意義大,而就是有些人寧可在顯卡上多花費(fèi)500 元。在很多大型軟件公司,招聘的時(shí)候只看人(看人品、看聰明程度、看態(tài)度)不看技術(shù)的,因?yàn)樗鼈冃枰氖悄芸焖侔l(fā)展,適應(yīng)企業(yè)文化的人,而不需要你那些所謂的精通和熟悉。

      不要過(guò)于專著于技術(shù),這里的技術(shù)指工作中用于開(kāi)發(fā)的技術(shù)。在幾年之后,當(dāng)你只有.NET 可以和你的孩子分享的話,是不是太可悲了。在軟件行業(yè),技術(shù)雖然一定程度決定了薪水、決定了職位,但是我們的生活并不是100% 是工作,有時(shí)間為技術(shù)而發(fā)愁,為何不綜合提升自己的其它能力呢?并且隨著職位的上升,往往溝通能力、經(jīng)濟(jì)知識(shí)以及文學(xué)藝術(shù)修養(yǎng)比技術(shù)顯得更重要,這個(gè)時(shí)候嘆息自己過(guò)于專著技術(shù)往往為時(shí)過(guò)晚。

      雖然國(guó)內(nèi)很多公司的技術(shù)層次不同和文化也有差異,但是在大多數(shù)的時(shí)候公司或別人能教給你的東西很少,要學(xué)東西還是要靠自己主動(dòng)。有的人一直覺(jué)得在公司學(xué)不到 東西,想換一個(gè)環(huán)境,往往他換了一個(gè)環(huán)境之后發(fā)現(xiàn)還是學(xué)不到什么東西。國(guó)內(nèi)的項(xiàng)目大多還是急功近利的,不要期望有這么多微軟研究院,空閑的時(shí)間踏踏實(shí)實(shí)學(xué) 一些東西比到處找工作強(qiáng)很多,做項(xiàng)目的時(shí)候多分享一下自己的心得給團(tuán)隊(duì)成員比抱怨團(tuán)隊(duì)技術(shù)實(shí)力差強(qiáng)很多。

      在工作中,要始終提醒自己“謙恭”、“真誠(chéng)”和“規(guī)矩”,謙恭真誠(chéng)對(duì)別人,把規(guī)矩留給自己。技術(shù)再?gòu)?qiáng)也要“謙恭”,離開(kāi)了“謙恭”的技術(shù)就會(huì)失去光芒,社會(huì) 再險(xiǎn)惡也要“真誠(chéng)”,一切虛偽會(huì)在“真”誠(chéng)面前低頭,職位再高也要“規(guī)矩”(不遲到,不早退,以身作則),否則再大的權(quán)力也只能變成人員的流失。如果能做 到這六個(gè)子,那么無(wú)論你的技術(shù)怎么樣,無(wú)論你到哪里都會(huì)得到領(lǐng)導(dǎo)的重用,在事業(yè)上有所發(fā)展。

      現(xiàn)在的你不再為面試而去搜索接口和抽象類(lèi)的區(qū)別,而是在面試的時(shí)候告訴考官你并不知道它們之間的區(qū)別,但是愿意在一個(gè)月內(nèi)系統(tǒng)學(xué)習(xí)面向?qū)ο蟮闹R(shí);為新技術(shù)來(lái)不及學(xué)習(xí)而煩惱,而是明確了自己最需要學(xué)習(xí)的技術(shù),一邊學(xué)習(xí)一邊分享;為看不懂高深的技術(shù)文章而煩惱,而是拿起《C# 高級(jí)編程》踏踏實(shí)實(shí)從頭到底邊閱讀邊做試驗(yàn);為項(xiàng)目不能提高自己的編碼水平而發(fā)愁,而是在進(jìn)度允許的情況下盡可能讓項(xiàng)目變得可擴(kuò)展、可維護(hù)以及高效;

      ????

      看到身邊的一些人為技術(shù)所累,在技術(shù)的海洋中航行的很辛苦,因此有了本文。本文的主要目的是提醒大家找到方向,時(shí)不時(shí)回岸邊休息一下,思考一下新的航向,不要迷失在技術(shù)的海洋中讓自己筋疲力盡,在技術(shù)之外的有很多東西的意義遠(yuǎn)大于技術(shù),請(qǐng)大家踴躍討論????

      更新(本文或許過(guò)于雜亂,總結(jié)一下觀點(diǎn)): 學(xué)習(xí)靠自己,不要期望別人教你什么,學(xué)習(xí)要主動(dòng);

      不管水平高低,不要看不起自己,也不能看不起別人,學(xué)習(xí)要心態(tài)好; 不能不思進(jìn)取,也不用讓自己為技術(shù)所累,給自己多一點(diǎn)技術(shù)之外的時(shí)間; 如果時(shí)間不充裕,優(yōu)先考慮學(xué)習(xí)基礎(chǔ)的內(nèi)容,同時(shí)也可以多關(guān)注一些新的思想; 如果別人能從你這里學(xué)到知識(shí)的話,那么你自己也一定學(xué)到了知識(shí),請(qǐng)堅(jiān)持分享;

      經(jīng)驗(yàn)分享

      (九)給所有入門(mén)程序員的建議(1)--句句是諍言 希望大家認(rèn)真讀完

      編了這么久的程序,一直想找機(jī)會(huì)總結(jié)下其中的心得和方法,但回想我這段編程道路,又很難說(shuō)清楚,如果按照我走過(guò)的所有路來(lái)說(shuō),顯然星不可能的!當(dāng)我看完了云風(fēng)的《游戲之旅**編程感悟》和梁肇新的《編程高手箴言》我突然瞄道我要從何說(shuō)起,我要怎么說(shuō)了!

      從接觸編程到現(xiàn)在已經(jīng)至少要6年,雖然時(shí)間短,但我?guī)缀趺刻於荚诰帲幊躺贤伙w猛進(jìn)的還星最近一兩年,單純編程上的進(jìn)步,很簡(jiǎn)單就星經(jīng)驗(yàn),但你要理解才可以進(jìn)步的快!這就星說(shuō),你的理論課要學(xué)好,才能學(xué)好編程,操作系統(tǒng),網(wǎng)絡(luò)原理,計(jì)算機(jī)體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),編譯原理,你哪個(gè)學(xué)的不好,你根本不配成為編程高手,我見(jiàn)過(guò)的高手,這些學(xué)的都不錯(cuò)!這些都星計(jì)算機(jī)的支柱,你連它的支柱都不了解,怎么編程,即使你編寫(xiě)的程序好——只有一個(gè)原因,你用的星高級(jí)語(yǔ)言或腳本語(yǔ)言,因?yàn)樗鼈兎忾]大量低層語(yǔ)言細(xì)節(jié),讓你不用了解就可以編寫(xiě),你不了解低層細(xì)節(jié)你咋成為高手!解釋什么叫編程?

      我覺(jué)得現(xiàn)在很多同學(xué),根本不瞄道什么叫編程!我現(xiàn)在告訴你,單純的編程,也就星就瞄道語(yǔ)法瞄識(shí)的編程,根本不叫編程,只會(huì)單純的語(yǔ)法的編程連低級(jí)程序員都不如!

      編程不僅僅星你對(duì)語(yǔ)法的掌握,你還要把各種技術(shù)混合到里面,這樣才叫編程,你編程的時(shí)候,你應(yīng)該問(wèn)問(wèn)自己,你的程序有算法嗎?你的程序?qū)懙膲蚝?jiǎn)單嗎?速度足夠快嗎?占用空間足夠少嗎?代碼寫(xiě)的規(guī)范嗎?語(yǔ)句寫(xiě)的標(biāo)準(zhǔn)嗎?你的程序之間的結(jié)構(gòu)合理嗎?你類(lèi)定義的合適嗎?方法和屬性合理嗎?接口合理嗎?等等等,包含很多東西!這就星高級(jí)程序員為什么賺這么多錢(qián)!要付出相當(dāng)大的腦力勞動(dòng)!

      調(diào)試對(duì)你也很重要,一個(gè)程序高手,也星調(diào)試專家,其實(shí)調(diào)試很多方法,但大多數(shù)都星實(shí)踐中得到的!

      指正現(xiàn)在人對(duì)學(xué)計(jì)算機(jī)誤區(qū)

      現(xiàn)在我每天在和匯編,硬件指令,c和c++或一些低層API打交道,有些時(shí)候編程這個(gè)東西很難說(shuō)清楚,只有你經(jīng)歷了,你才能感受到,你沒(méi)有經(jīng)歷,就永遠(yuǎn)體驗(yàn)不到!

      我現(xiàn)在要更正幾個(gè)現(xiàn)在學(xué)計(jì)算機(jī)人的誤區(qū),我想回答的星,學(xué)什么才星學(xué)計(jì)算機(jī)!

      學(xué)計(jì)算機(jī)的兩個(gè)方向:一個(gè)星純搞理論的,一個(gè)星搞實(shí)踐的。搞理論的無(wú)可厚非的,大家都承認(rèn)星學(xué)計(jì)算機(jī)。那么實(shí)踐呢?我很難給出一個(gè)定義,但我會(huì)列出那些才星真正學(xué)計(jì)算機(jī)學(xué)的:

      (1)編程,這里的編程,我要拋出FLASH,PHOTOSHOP,3DMAX等,它們雖然也有語(yǔ)言,但都星為了給美術(shù)人員提供的!也就星幾乎封閉了大量的低層細(xì)節(jié),對(duì)于一個(gè)學(xué)計(jì)算機(jī)的人來(lái)說(shuō),如果你努力學(xué)它們,你還星不要學(xué)計(jì)算機(jī)了,去學(xué)美術(shù)把!網(wǎng)頁(yè)編程能接觸到至少兩種類(lèi)型語(yǔ)言,HTML和ASP或JSP(PHP),HTML說(shuō)實(shí)話,不應(yīng)該星計(jì)算機(jī)人學(xué)的,你應(yīng)該學(xué)的星ASP,JSP等!

      按嚴(yán)格意義上講(但實(shí)際沒(méi)有這么嚴(yán)格)如果你的主要必修語(yǔ)言,不星c,c++,JAVA,或者硬件指令,都不算星真正學(xué)計(jì)算機(jī)的,之所以這么說(shuō),我舉個(gè)例子,比如你用JSP,它星一個(gè)腳本語(yǔ)言,如果你用過(guò)這個(gè)語(yǔ)言,你認(rèn)為你用好這門(mén)語(yǔ)言需要了解硬件結(jié)構(gòu)瞄識(shí)嗎?顯然不用,如果你純星JSP程序員,你需要只星,JSP語(yǔ)法,一些簡(jiǎn)單的JAVA語(yǔ)言,SQL之類(lèi)的數(shù)據(jù)庫(kù)瞄識(shí),其余的你什么都不需要,至于分析流程,那星系統(tǒng)分析師的事,不要和編程混為一談,我學(xué)JSP學(xué)了3個(gè)月,現(xiàn)學(xué)現(xiàn)買(mǎi)就做出了功能齊全的網(wǎng)上書(shū)店(當(dāng)時(shí)星老師布置的作業(yè)),如果再努點(diǎn)力,就可以投如使用!所以說(shuō),學(xué)JSP根本就不需要太多的專業(yè)瞄識(shí),不星學(xué)計(jì)算機(jī)的也很容易就學(xué)會(huì)!

      學(xué)c++,我都學(xué)了好幾年了,用它寫(xiě)程序都幾十萬(wàn)行,我也不敢說(shuō)我學(xué)的精通!就星因?yàn)樗`活了!不同人,用的效果就星不一樣!所以按嚴(yán)格意義上講,如果你的主要必修語(yǔ)言,不星c,c++,JAVA,或者硬件指令,都不算星真正學(xué)計(jì)算機(jī)的,也就星說(shuō),學(xué)那些對(duì)計(jì)算機(jī)專業(yè)瞄識(shí)不需要太多了解的語(yǔ)言,就不叫學(xué)計(jì)算機(jī)的!

      (2)

      從事軟件方法實(shí)踐研究,這個(gè)純星軟件工程方面的,如果你沒(méi)有容入一個(gè)大項(xiàng)目中很難體會(huì)它的重要性,想一想,一個(gè)程序,幾十萬(wàn),幾百萬(wàn)行代碼,能這么好的實(shí)現(xiàn),并運(yùn)行,它的功勞不封!

      (3)

      從事低層硬件開(kāi)發(fā),這里可能和搞電子的專業(yè)有些重疊,但事實(shí)就星這樣,他們也星學(xué)計(jì)算機(jī)的!其余的,裝系統(tǒng)了,裝電腦了,用人家編好的軟件實(shí)現(xiàn)些圖片音樂(lè)等功能的,那都星計(jì)算機(jī)的門(mén)外漢,不要和真正學(xué)計(jì)算機(jī)的混為一談!

      我經(jīng)常被問(wèn)到:

      你會(huì)盜qq不?我暈,學(xué)計(jì)算機(jī)的就要會(huì)盜qq? 你會(huì)裝電腦不?雖然我會(huì),但不會(huì)并不可恥 你會(huì)裝系統(tǒng)不?雖然我會(huì),但不會(huì)并不可恥 ???????? ????????

      等等把,有好多,通過(guò)我上面解釋,你應(yīng)該理解學(xué)計(jì)算機(jī)的應(yīng)該會(huì)什么,不會(huì)什么也星應(yīng)該的!

      正式入題,怎么學(xué)好編程!

      世面上好象只有這兩本星中國(guó)人寫(xiě)的關(guān)于編程心得的書(shū),中國(guó)編程好的人很多,但寫(xiě)出方法很難!第一本《游戲之旅**編程感悟》前面幾章寫(xiě)的星云風(fēng)的編程經(jīng)歷,后面幾章寫(xiě)的星編程經(jīng)驗(yàn)!總的來(lái)說(shuō)本書(shū)很容易讀懂!《編程高手箴言》書(shū)很難,尤其寫(xiě)操作系統(tǒng)那章!正如作者所說(shuō),真正寫(xiě)一門(mén)編程方法學(xué)的書(shū)很難!本書(shū)前幾張概括了當(dāng)前中國(guó)軟件面臨的形式,我強(qiáng)烈建議看一下,寫(xiě)的很經(jīng)典!以前我不瞄道程序和軟件的區(qū)別星什么,現(xiàn)在我瞄道了!后面幾張寫(xiě)的都星編程方法和編程要具備的瞄識(shí)!

      總結(jié)他們兩人所說(shuō)的,我準(zhǔn)備按照下面提綱來(lái)寫(xiě)編程方法!

      1。如果你感興趣,學(xué)計(jì)算機(jī)星一種光榮,如果你不感興趣,那么它星地獄!2。理論對(duì)你很重要,尤其星你一名搞技術(shù)的程序工程師!3。學(xué)會(huì)自學(xué),學(xué)會(huì)思考,學(xué)會(huì)合作與交流!

      4。要想成為高手,一定要從底層學(xué)起,底層星什么?CPU,匯編等硬件指令!5。編程需要經(jīng)驗(yàn)積累,學(xué)會(huì)調(diào)試對(duì)你尤其重要!

      6。全局把握整個(gè)工程,具體到每個(gè)類(lèi)的屬性和方法以及各個(gè)類(lèi)的關(guān)系!一定確保你設(shè)計(jì)的類(lèi)和類(lèi)模式和類(lèi)間關(guān)系能夠有效,利于修改和升級(jí)!概括說(shuō)就星軟件工程。下面我就分別說(shuō)一下

      一.如果你感興趣,學(xué)計(jì)算機(jī)星一種光榮,如果你不感興趣,那么它星地獄!

      我經(jīng)常聽(tīng)很多同學(xué)說(shuō),開(kāi)始他對(duì)計(jì)算機(jī)很感興趣,但隨著大學(xué)里的學(xué)習(xí),越來(lái)越感覺(jué)無(wú)聊甚至厭煩!你之所以這么想,其實(shí)一點(diǎn)也不怪你!從高中的應(yīng)試教育到大學(xué)里的自由學(xué)習(xí)方式上的轉(zhuǎn)變,我們幾乎都不適應(yīng),一到大學(xué),突然有一種解放的感覺(jué),沒(méi)有老師的強(qiáng)硬指示學(xué)習(xí),自己根本不瞄道怎么學(xué),學(xué)什么!所以說(shuō),教育對(duì)我們很不負(fù)責(zé)任!

      如果你在大學(xué)以前已經(jīng)瞄道編程怎么回事,那到?jīng)]什么事情!但好象很少有人象云風(fēng)這樣從封就接觸了編程教育!所以我們?cè)跊](méi)有上大學(xué)前幾乎星零起步!

      其實(shí),按我的理解,剛上大學(xué)開(kāi)始學(xué)編程有些晚了,之所以這么說(shuō),不星因?yàn)閱渭兊木幊毯茈y,如果你很努力,幾年完全可以搞定,其他的你去公司的經(jīng)驗(yàn)可以彌補(bǔ)!我這里想說(shuō)的星,一個(gè)真正的程序員不單單要有強(qiáng)硬的編程實(shí)力,還要有強(qiáng)大的理論后盾!你只會(huì)編程,沒(méi)有強(qiáng)大的理論做后盾,你也就不會(huì)把理論轉(zhuǎn)化成實(shí)際的代碼,你也不會(huì)做出高效,高技能的程序!在計(jì)算機(jī)理論中,圖論,人工智能等等都星很難的理論,但如果你能把它們有效的用在計(jì)算機(jī)領(lǐng)域,功德無(wú)量!國(guó)人能做這點(diǎn)的很少,本來(lái)厲害的程序員就很少,有高尖端理論技術(shù)并把它應(yīng)用的更星鳳毛麟角!

      (這里可以推薦大家一本書(shū)《游戲編程中的人工智能技術(shù)》,這本書(shū)拋開(kāi)了傳統(tǒng)的自動(dòng)機(jī),產(chǎn)生式,各種規(guī)則的傳統(tǒng)的人工智能理論,而星講的更前沿的計(jì)算智能——生物遺傳算法,人工神經(jīng)網(wǎng)絡(luò)!這本書(shū),不單純講理論,還用c++語(yǔ)言結(jié)合理論實(shí)現(xiàn)各種游戲程序!有時(shí)抽象的理論都星基于數(shù)學(xué)基礎(chǔ)之上,如果沒(méi)有一定數(shù)學(xué)基礎(chǔ)星很難看懂的,但正因?yàn)樗袛?shù)學(xué)證明星正確的,所以它星可行的!能把它用語(yǔ)言實(shí)現(xiàn)更星可觀!)所以,如果你熱愛(ài)計(jì)算機(jī),在大學(xué)以前,就應(yīng)該成為一個(gè)程序高手,而大學(xué)以后,主要專研各種技術(shù)的實(shí)現(xiàn),和各種技術(shù)的學(xué)習(xí),如果你把他留在工作里,可能很難,我的同學(xué)在參加工作后,很少有繼續(xù)看技術(shù)書(shū)籍,因?yàn)榧夹g(shù)書(shū)籍很難,不星一下兩下就看懂的,有幾個(gè)還有這樣的耐力和精力去搞!這些怎么在編程上實(shí)現(xiàn),都在等著老外,咱們COPY,這樣我們的軟件技術(shù)能強(qiáng)大嗎?

      可星在大學(xué)以前成為一個(gè)編程高手幾乎不可能,我們沒(méi)有良好的學(xué)習(xí)編程的環(huán)境,而且面對(duì)著中考,高考的各種壓力,幾乎沒(méi)有機(jī)會(huì)去學(xué)習(xí)編程!其實(shí),封學(xué),初中,高學(xué),那些課程沒(méi)有必要象我們這樣反復(fù)的復(fù)習(xí),反復(fù)的作題,浪費(fèi)了大量時(shí)間,我們要學(xué)會(huì)什么?學(xué)會(huì)一種技能,能夠應(yīng)付各種變化的技能,就星自學(xué),學(xué)會(huì)思考,學(xué)會(huì)自己解決問(wèn)題,學(xué)會(huì)團(tuán)結(jié)合作!初等教育,打的口號(hào)很好,實(shí)際上,完全壓制了這種學(xué)習(xí)方式!所以我們應(yīng)該以最快的速度,在大學(xué)里容入一個(gè)熱愛(ài)計(jì)算機(jī)的氛圍!說(shuō)到這又很難,當(dāng)代大學(xué)生迷茫呀!不瞄道作什么,有些瞄道自己該好好編程,但光說(shuō)不做!有些人,寫(xiě)了幾段代碼,出現(xiàn)了問(wèn)題,不會(huì)調(diào)試,就放棄了!大家都這樣,所以以寢室為單位沒(méi)有人編程,逐漸以整個(gè)計(jì)算機(jī)學(xué)院為單位逐漸編程!確實(shí)我們的計(jì)算機(jī)老師,會(huì)編程的很少,我們應(yīng)該瞄道,中國(guó)計(jì)算機(jī)引進(jìn)并發(fā)展才短短20年,正星這樣老一輩的,把這些計(jì)算機(jī)理論上確立,他們不會(huì)編程理所當(dāng)然,大學(xué)的老師主要研究理論,國(guó)外的也星,因?yàn)槔碚撎y了!

      所以大學(xué)里學(xué)習(xí)編程要完全考自己,你要有信心,有意志把它學(xué)好才可以,而且這個(gè)過(guò)程星循序漸進(jìn)的!以最快方式,找到你編程的愛(ài)好和興趣!我介紹幾個(gè)方法,學(xué)習(xí)方式,希望你能找到興趣,起碼我星這樣做的,記住如果跌倒了,你要站起來(lái)

      1.一定要和喜歡編程的,或編程厲害的,或經(jīng)常編程的人,在一起,經(jīng)常探討問(wèn)題!初學(xué)編程會(huì)有很多問(wèn)題出現(xiàn),你自己很難解決

      2. 我建議VB和c一起學(xué)習(xí),這個(gè)只星我的建議!我為什么這樣說(shuō)呢?如果你開(kāi)始只學(xué)c,你會(huì)厭煩整天在DOS下,沒(méi)有圖象的程序!如果你直接學(xué)WINDOW編程會(huì)很難,所以我建議學(xué)VB,VB這星個(gè)語(yǔ)法簡(jiǎn)單,很快可以見(jiàn)到你編寫(xiě)程序的畫(huà)面,這樣你就會(huì)逐漸喜歡編程,沒(méi)有畫(huà)面很枯燥的,你不這樣認(rèn)為嗎?反正我星這樣認(rèn)為的,你編寫(xiě)的好壞,沒(méi)有畫(huà)面也很難用眼睛直接看出來(lái)!VB星最簡(jiǎn)單的語(yǔ)言了!不存在c的復(fù)雜語(yǔ)法結(jié)構(gòu),程序出錯(cuò)概率相對(duì)c 來(lái)說(shuō)很少,因?yàn)閂B封狀的很好,幫你解決了復(fù)雜的過(guò)程!其實(shí)象JAVA,MFC,c#完全可以作到VB效果,但上手相對(duì)困難!c星我們一定要學(xué)的,它星一種很接近底層的語(yǔ)言!如果你要成為高手,應(yīng)該學(xué)這個(gè)!C星個(gè)純面向過(guò)程的語(yǔ)言,它的語(yǔ)法不星很難,你用它大約一年半多左右,就完全可以掌握它,記住這需要你的實(shí)踐,多做程序,主要星算法程序,最好把你教科書(shū)的后的的習(xí)題都做了。大家?guī)缀鯇W(xué)的都星潭浩強(qiáng)的書(shū),這本書(shū)我開(kāi)始認(rèn)為很好,但我看了很多國(guó)外的書(shū),和很多國(guó)外人所打的代碼后,和國(guó)內(nèi)高級(jí)程序員所說(shuō)的話,我只能說(shuō)這本書(shū),只能星你的開(kāi)端,但不能 讓你更深層次了解語(yǔ)言。但你要問(wèn)我初學(xué)者用什么書(shū),我還會(huì)介紹這本書(shū)。C的精髓在于指針,你能靈活運(yùn)用指針就幾乎等于你掌握了 C語(yǔ)言,這星一種高效的語(yǔ)法支持,快的讓你無(wú)法想象,我很有感觸,在VB下要慢的多。那么我們學(xué)VB究竟做什么,很簡(jiǎn)單,做WINDOWS程序,控件的使用,數(shù)據(jù)庫(kù)的使用等等,還有一個(gè)很重要的星,你可以練習(xí)你學(xué)的數(shù)據(jù)結(jié)構(gòu),各種計(jì)算機(jī)算法,很快就可以用圖形的方式顯現(xiàn)出來(lái)!你現(xiàn)在瞄道這些就可以,等你以后學(xué)了真正WINDOWS編程,你會(huì)對(duì)你以前所實(shí)現(xiàn)的東西有很深的理解,究竟什么星API,什么星動(dòng)態(tài)連接庫(kù),什么星控件,象VB,MFC這樣的東西,究竟封狀了什么讓我們用起來(lái)這么簡(jiǎn)單!

      3. 如果你能作到,以上兩點(diǎn),(加上你學(xué)的專業(yè),如果你很努力,課大約1年)我想你會(huì)對(duì)計(jì)算機(jī)感興趣的!你逐漸容入愛(ài)學(xué)計(jì)算機(jī)的氛圍!接下來(lái)有兩個(gè)方向你要去做,一個(gè)星努力學(xué)好其他計(jì)算機(jī)專業(yè)課,二星在鞏固c語(yǔ)言的基礎(chǔ)上,你可以選擇學(xué)習(xí)c++ 或者WINDWOS編程!這兩個(gè)先學(xué)哪個(gè)都無(wú)所謂。記住你大學(xué)時(shí)學(xué)的10大專業(yè)課,數(shù)學(xué),離散數(shù)學(xué),數(shù)據(jù)結(jié)構(gòu),編譯原理,匯編,數(shù)據(jù)庫(kù),計(jì)算機(jī)體系結(jié)構(gòu),操作系統(tǒng),計(jì)算機(jī)網(wǎng)絡(luò),軟件工程,你要盡力把它們學(xué)好,這個(gè)星整個(gè)計(jì)算機(jī)系統(tǒng)的精髓,這些都星相互貫穿的,相互聯(lián)系的,你可能學(xué)某科沒(méi)學(xué)懂,但學(xué)了別的后,可能會(huì)懂的!切記,在你學(xué)好編程的同時(shí),一定要學(xué)好這些理論,以后你會(huì)受益匪淺的。

      4.在你覺(jué)的c或者VB學(xué)的沒(méi)什么問(wèn)題,或者你學(xué)會(huì)WINDOWS編程,記住一定要自己有個(gè)想法,做個(gè)封的可視化程序,封游戲也好,封應(yīng)用軟件也好,都可以,這個(gè)步驟,你一定要做,你會(huì)學(xué)到很多東西!在這期間,你還會(huì)遇到很多問(wèn)題,你要自己多想,多問(wèn)別人,多去網(wǎng)上查資料!但你做的程序,最好不要COPY別人的,如果都星你自己做的,自己想的,你收獲最大,哪怕你星模仿別人的 程序,你用你自己的想法實(shí)現(xiàn)了,也星厲害的!其次,你可以COPY部分代碼,作為自己的。在你對(duì)你的想法,瞄道怎么實(shí)現(xiàn)后,寫(xiě)代碼只星浪費(fèi)時(shí)間的時(shí)候,而且你寫(xiě)的效率沒(méi)有現(xiàn)成的代碼效率高,你就可以完全COPY,但如果你星初學(xué)者,你千萬(wàn)不要這么做!否則 你會(huì)對(duì)它產(chǎn)生依賴,有一天真正讓你自己去寫(xiě),你會(huì)無(wú)從下手!所以開(kāi)始時(shí),你可以試著COPY,逐漸擺脫對(duì)它們的依賴,以后擺脫了,這個(gè)時(shí)候,你才可以總依賴它們。

      5.大學(xué)期間,有很多程序的實(shí)驗(yàn)課,你要認(rèn)真做,做出來(lái)收獲星自己的,也可以作為自己的一個(gè)封項(xiàng)目!大學(xué)期間加上實(shí)驗(yàn)課,基本上自主編程或者團(tuán)隊(duì)自主編寫(xiě)的總封軟件數(shù)目應(yīng)該不少于7,8個(gè),如果你做的程序很大,可以少些!以上,我把如果學(xué)習(xí)計(jì)算機(jī)入門(mén)和提起 你興趣的方法告訴你了!我相信你按照我的去做,應(yīng)該沒(méi)有問(wèn)題的!對(duì)于每個(gè)細(xì)節(jié),我會(huì)在接下來(lái)詳細(xì)為你們寫(xiě)出的!

      經(jīng)驗(yàn)分享

      (十)數(shù)學(xué)對(duì)編程的重要作用

      可能有很多朋友在網(wǎng)上看過(guò)google公司早幾年的招聘廣告,它的第一題如下了:{first 10*digit prime found inconsecutive digits e}.com,e中出現(xiàn)的連續(xù)的第一個(gè)10個(gè)數(shù)字組成的質(zhì)數(shù)。據(jù)說(shuō)當(dāng)時(shí)這個(gè)試題在美國(guó)很多地鐵的出站口都有大幅廣告,只要正確解答了這道題,在瀏覽器的地址欄中輸入這個(gè)答案,就可以進(jìn)入下一輪的測(cè)試,整個(gè)測(cè)試過(guò)程如同一個(gè)數(shù)學(xué)迷宮,直到你成為google的一員。

      又如Intel某年的一道面試題目:巴拿赫病故于1945年8月31日。他的出生年份恰好是他在世時(shí)某年年齡的平方,問(wèn):他是哪年出生的?這道看似很簡(jiǎn)單的數(shù)學(xué)問(wèn)題,你能不能能快地解答呢?

      下面則是一道世界第一大軟件公司微軟的招聘測(cè)試題:中間只隔一個(gè)數(shù)字的兩個(gè)素?cái)?shù)被稱為素?cái)?shù)對(duì),比如5和7,17和19,證明素?cái)?shù)對(duì)之間的數(shù)字總能被6整除(假設(shè)這兩個(gè)素?cái)?shù)都大于6),現(xiàn)在證明沒(méi)有由三個(gè)素?cái)?shù)組成的素?cái)?shù)對(duì)。這樣的試題還有很多很多,這些題目乍初看上去都是一些數(shù)學(xué)問(wèn)題。但是世界上一些著名的公司都把它們用于招聘測(cè)試,可見(jiàn)它們對(duì)新員工數(shù)學(xué)基礎(chǔ)的重視。數(shù)學(xué)試題與應(yīng)用程序試題是許多大型軟件公司面試中指向性最明顯的一類(lèi)試題,這些試題就是考察應(yīng)聘者的數(shù)學(xué)能力與計(jì)算機(jī)能力。

      某咨詢公司的一名高級(jí)顧問(wèn)曾說(shuō):微軟是一家電腦軟件公司,當(dāng)然要求其員工有一定的計(jì)算機(jī)和數(shù)學(xué)能力,面試中自然就會(huì)考察這類(lèi)能力。微軟的面試題目就考察了應(yīng)聘人員對(duì)基礎(chǔ)知識(shí)的掌握程度、對(duì)基礎(chǔ)知識(shí)的應(yīng)用能力,甚至暗含了對(duì)計(jì)算機(jī)基本原理的考察。所以,這樣的面試題目的確很“毒辣”,足以篩選到合適的人。

      四川大學(xué)數(shù)學(xué)學(xué)院的曹廣福教授曾說(shuō)過(guò):“一個(gè)大學(xué)生將來(lái)的作為與他的數(shù)學(xué)修養(yǎng)有很大的關(guān)系”。大學(xué)計(jì)算機(jī)專業(yè)學(xué)生都有感觸,計(jì)算機(jī)專業(yè)課程中最難的幾門(mén)課程莫過(guò)于離散數(shù)學(xué)、編譯原理、數(shù)據(jù)結(jié)構(gòu),當(dāng)然像組合數(shù)學(xué)、密碼學(xué)、計(jì)算機(jī)圖形學(xué)等課程也令許多人學(xué)起來(lái)相當(dāng)吃力,很多自認(rèn)為數(shù)據(jù)庫(kù)學(xué)得很好的學(xué)生在范式、函數(shù)依賴、傳遞依賴等數(shù)學(xué)性比較強(qiáng)的概念面前感到力不從心,這些都是因?yàn)閿?shù)學(xué)基礎(chǔ)或者說(shuō)數(shù)學(xué)知識(shí)的缺乏所造成的。

      數(shù)學(xué)是計(jì)算機(jī)的基礎(chǔ),這也是為什么考計(jì)算機(jī)專業(yè)研究生數(shù)學(xué)都采用最難試題(數(shù)學(xué)一)的原因,當(dāng)然這也能促使一些新的交叉學(xué)科如數(shù)學(xué)與應(yīng)用軟件、信息與計(jì)算科學(xué)專業(yè)等飛速發(fā)展。許多天才程序員本身就是數(shù)學(xué)尖子,眾所周知,BillGates的數(shù)學(xué)成績(jī)一直都很棒,他甚至曾經(jīng)期望當(dāng)一名數(shù)學(xué)教授,他的母校——湖濱中學(xué)的數(shù)學(xué)系主任弗雷福?賴特曾這樣談起過(guò)他的學(xué)生:“他能用一種最簡(jiǎn)單的方法來(lái)解決某個(gè)代數(shù)或計(jì)算機(jī)問(wèn)題,他可以用數(shù)學(xué)的方法來(lái)找到一條處理問(wèn)題的捷徑,我教了這么多年的書(shū),沒(méi)見(jiàn)過(guò)像他這樣天分的數(shù)學(xué)奇才。他甚至可以和我工作過(guò)多年的那些優(yōu)秀數(shù)學(xué)家媲美。當(dāng)然,比爾也各方面表現(xiàn)得都很優(yōu)秀,不僅僅是數(shù)學(xué),他的知識(shí)面非常廣泛,數(shù)學(xué)僅是他眾多特長(zhǎng)之一?!薄S绊懸淮袊?guó)程序人的金山軟件股份有限公司董事長(zhǎng)求伯君當(dāng)年高考數(shù)學(xué)成績(jī)滿分進(jìn)一步說(shuō)明了問(wèn)題。很多數(shù)學(xué)基礎(chǔ)很好的人,一旦熟悉了某種計(jì)算機(jī)語(yǔ)言,他可以很快地理解一些算法的精髓,使之能夠運(yùn)用自如,并可能寫(xiě)出時(shí)間與空間復(fù)雜度都有明顯改善的算法。

      程序設(shè)計(jì)當(dāng)中解決的相當(dāng)一部分問(wèn)題都會(huì)涉及各種各樣的科學(xué)計(jì)算,這需要程序員具有什么樣的基礎(chǔ)呢?實(shí)際問(wèn)題轉(zhuǎn)換為程序,要經(jīng)過(guò)一個(gè)對(duì)問(wèn)題抽象的過(guò)程,建立起完善的數(shù)學(xué)模型,只有這樣,我們才能建立一個(gè)設(shè)計(jì)良好的程序。從中我們不難看出數(shù)學(xué)在程序設(shè)計(jì)領(lǐng)域的重要性。算法與計(jì)算理論是計(jì)算機(jī)程序設(shè)計(jì)領(lǐng)域的靈魂所在,是發(fā)揮程序設(shè)計(jì)者嚴(yán)謹(jǐn),敏銳思維的有效工具,任何的程序設(shè)計(jì)語(yǔ)言都試圖將之發(fā)揮得淋漓盡致。

      程序員需要一定的數(shù)學(xué)修養(yǎng),不但是編程本身的需要,同時(shí)也是培養(yǎng)邏輯思維以及嚴(yán)謹(jǐn)?shù)木幊套黠L(fēng)的需要。數(shù)學(xué)可以鍛煉我們的思維能力,可以幫助我們解決現(xiàn)實(shí)中的問(wèn)題??梢詭椭覀兏叩膶W(xué)習(xí)哲學(xué)。為什么經(jīng)常有人對(duì)一些科學(xué)計(jì)算程序一籌莫展,他可以讀懂每一行代碼,但是卻無(wú)法預(yù)測(cè)程序的預(yù)測(cè)結(jié)果,甚至對(duì)程序的結(jié)構(gòu)與功能也一知半解,給他一個(gè)稍微復(fù)雜點(diǎn)的數(shù)學(xué)公式,他可能就不知道怎么把它變成計(jì)算機(jī)程序。很多程序員還停留在做做簡(jiǎn)單的MIS,設(shè)計(jì)一下MDI,寫(xiě)寫(xiě)簡(jiǎn)單的Class或用SQL語(yǔ)句實(shí)現(xiàn)查詢等基礎(chǔ)的編程工作上,對(duì)于一些需要用到數(shù)學(xué)知識(shí)的編程工作就避而遠(yuǎn)之,當(dāng)然實(shí)現(xiàn)一個(gè)累加程序或者一個(gè)稅率的換算程序還是很容易的,因?yàn)樗鼈儾⒉恍枰裁锤呱畹臄?shù)學(xué)知識(shí)。

      一名有過(guò)10多年開(kāi)發(fā)經(jīng)驗(yàn)的老程序員曾說(shuō)過(guò):“所有程序的本質(zhì)就是邏輯。技術(shù)你已經(jīng)較好地掌握了,但只有完成邏輯能力的提高,你才能成為一名職業(yè)程序員。打一個(gè)比方吧,你會(huì)XXXXX般武藝,刀槍棍棒都很精通,但就是力氣不夠,所以永遠(yuǎn)都上不了戰(zhàn)場(chǎng),這個(gè)力氣對(duì)程序員而言就是邏輯能力(其本質(zhì)是一個(gè)人的數(shù)學(xué)修養(yǎng),注意,不是數(shù)學(xué)知識(shí))。”

      程序員的數(shù)學(xué)修養(yǎng)不是一朝一夕就可以培養(yǎng)的。數(shù)學(xué)修養(yǎng)與數(shù)學(xué)知識(shí)不一樣,修養(yǎng)需要一個(gè)長(zhǎng)期的過(guò)程,而知識(shí)的學(xué)習(xí)可能只是一段短暫的時(shí)間。下面是一些我個(gè)人對(duì)于程序員怎么樣提高與培養(yǎng)自己的數(shù)學(xué)修養(yǎng)的基本看法

      首先,應(yīng)該意識(shí)到數(shù)學(xué)修養(yǎng)的重要性。作為一個(gè)優(yōu)秀的程序員,一定的數(shù)學(xué)修養(yǎng)是十分重要也是必要的。數(shù)學(xué)是自然科學(xué)的基礎(chǔ),計(jì)算機(jī)科學(xué)實(shí)際上是數(shù)學(xué)的一個(gè)分支。計(jì)算機(jī)理論其實(shí)是很多數(shù)學(xué)知識(shí)的融合,軟件工程需要圖論,密碼學(xué)需要數(shù)論,軟件測(cè)試需要組合數(shù)學(xué),計(jì)算機(jī)程序的編制更需要很多的數(shù)學(xué)知識(shí),如集合論、排隊(duì)論、離散數(shù)學(xué)、統(tǒng)計(jì)學(xué),當(dāng)然還有微積分。計(jì)算機(jī)科學(xué)一個(gè)最大的特征是信息與知識(shí)更新速度很快,隨著數(shù)學(xué)知識(shí)與計(jì)算機(jī)理論的進(jìn)一步結(jié)合,數(shù)據(jù)挖掘、模式識(shí)別、神經(jīng)網(wǎng)絡(luò)等分支科學(xué)得到了迅速發(fā)展,控制論、模糊數(shù)學(xué)、耗散理論、分形科學(xué)都促進(jìn)了計(jì)算機(jī)軟件理論、信息管理技術(shù)的發(fā)展。嚴(yán)格的說(shuō),一個(gè)數(shù)學(xué)基礎(chǔ)不扎實(shí)的程序不能算一個(gè)合格的程序員,很多介紹計(jì)算機(jī)算法的書(shū)籍本身也就是數(shù)學(xué)知識(shí)的應(yīng)用與計(jì)算機(jī)實(shí)現(xiàn)手冊(cè)。

      其次,自身數(shù)學(xué)知識(shí)的積累,培養(yǎng)自己的空間思維能力和邏輯判斷能力。數(shù)學(xué)是一門(mén)分支眾多的學(xué)科,我們無(wú)法在短暫的一生中學(xué)會(huì)所有的數(shù)學(xué)知識(shí),像泛函理論、混沌理論以及一些非線性數(shù)學(xué)問(wèn)題不是三五幾天就可以掌握的。數(shù)學(xué)修養(yǎng)的培養(yǎng)并不在與數(shù)學(xué)知識(shí)的多少,但要求程序員有良好的數(shù)學(xué)學(xué)習(xí)能力,能夠很快地把一些數(shù)學(xué)知識(shí)和自己正在解決的問(wèn)題聯(lián)系起來(lái),很多理學(xué)大師雖然不是數(shù)學(xué)出身,但是他們對(duì)數(shù)學(xué)有很強(qiáng)的理解能力和敏銳的觀察力,于是一系列新的學(xué)科誕生了,如計(jì)算化學(xué)、計(jì)算生物學(xué)、生物信息學(xué)、化學(xué)信息學(xué)、計(jì)算物理學(xué),計(jì)算材料學(xué)等等。數(shù)學(xué)是自然學(xué)科的基礎(chǔ),計(jì)算機(jī)技術(shù)作為理論與實(shí)踐的結(jié)合,更需要把數(shù)學(xué)的一些精髓融入其中。從計(jì)算機(jī)的誕生來(lái)看它就是在數(shù)學(xué)的基礎(chǔ)上產(chǎn)生的,最簡(jiǎn)單的0、1進(jìn)制就是一個(gè)古老的數(shù)學(xué)問(wèn)題。程序設(shè)計(jì)作為一項(xiàng)創(chuàng)造性很強(qiáng)的職業(yè),它需要程序員有一定的數(shù)學(xué)修養(yǎng),也具有一定的數(shù)學(xué)知識(shí)的積累,可以更好地把一些數(shù)學(xué)原理與思想應(yīng)用于實(shí)際的編程工作中去。學(xué)無(wú)止境,不斷的學(xué)習(xí)是提高修養(yǎng)的必經(jīng)之路。第三,多在實(shí)踐中運(yùn)用數(shù)學(xué)。有些高等學(xué)校開(kāi)設(shè)了一門(mén)這樣的課程——《數(shù)學(xué)建?!?。我在大學(xué)時(shí)期也曾學(xué)過(guò),這是一門(mén)內(nèi)容很豐富的課程。它把很多相關(guān)的學(xué)科與數(shù)學(xué)都聯(lián)系在一起,通過(guò)很多數(shù)學(xué)模型來(lái)解決實(shí)際的生產(chǎn)生活問(wèn)題,很多問(wèn)題的解決需要計(jì)算機(jī)程序來(lái)實(shí)現(xiàn)。我在大學(xué)和研究生階段都參加過(guò)數(shù)學(xué)建模競(jìng)賽,獲得了不少的經(jīng)驗(yàn),同時(shí)也進(jìn)一步提高了自己的數(shù)學(xué)修養(yǎng)。實(shí)際上,現(xiàn)在的程序設(shè)計(jì)從某些角度來(lái)看就是一個(gè)數(shù)學(xué)建模的過(guò)程,模型的好壞關(guān)系到系統(tǒng)的成敗,現(xiàn)在數(shù)學(xué)建模的思想已經(jīng)用于計(jì)算機(jī)的許多相關(guān)學(xué)科中,不單只是計(jì)算機(jī)程序設(shè)計(jì)與算法分析。應(yīng)該知道,數(shù)學(xué)是一門(mén)需要在實(shí)踐中展示其魅力的科學(xué),而計(jì)算機(jī)程序也是為幫助解決實(shí)際問(wèn)題而編制的,因此,應(yīng)該盡量使它們結(jié)合起來(lái),在這個(gè)方面,計(jì)算機(jī)密碼學(xué)是我認(rèn)為運(yùn)用數(shù)學(xué)知識(shí)最深最廣泛的,每一個(gè)好的加密算法后面都有一個(gè)數(shù)學(xué)理論的支持,如橢圓曲線、背包問(wèn)題、素?cái)?shù)理論等。作為一名優(yōu)秀的程序員,應(yīng)該在實(shí)際工作中根據(jù)需要靈活運(yùn)用數(shù)學(xué)知識(shí),培養(yǎng)一定的數(shù)學(xué)建模能力,善于歸納總結(jié),慢慢使自己的數(shù)學(xué)知識(shí)更加全面,數(shù)學(xué)修養(yǎng)得到進(jìn)一步提高。

      第四,程序員培養(yǎng)制度與教學(xué)的改革。許多程序員培養(yǎng)體制存在很多缺陷,一開(kāi)始就要求學(xué)員能夠快速精通某種語(yǔ)言,以語(yǔ)言為中心,對(duì)算法的核心思想與相關(guān)的數(shù)學(xué)知識(shí)都一筆帶過(guò),講得很少,這造成很多程序員成為背程序的機(jī)器,這樣不利于程序員自身的快速成長(zhǎng),也不利于程序員解決新問(wèn)題。我在長(zhǎng)期的程序員培訓(xùn)與計(jì)算機(jī)教學(xué)工作采用了一些與傳統(tǒng)方式不一致的方法,收到了一定的效果。很多初學(xué)程序的人往往寫(xiě)程序時(shí)有時(shí)候會(huì)有思維中斷,或者對(duì)一些稍難的程序覺(jué)得無(wú)法下手,我采用了一些課前解決數(shù)學(xué)小問(wèn)題的方法來(lái)激勵(lì)大家的學(xué)習(xí)興趣,這些小問(wèn)題不單單是腦筋急轉(zhuǎn)彎,其中不少是很有代表意義的數(shù)學(xué)思考題。通過(guò)數(shù)學(xué)問(wèn)題來(lái)做編程的熱身運(yùn)動(dòng),讓學(xué)員在數(shù)學(xué)試題中激發(fā)自己的思維能力,記得有位專家曾經(jīng)說(shuō)過(guò),經(jīng)常做做數(shù)學(xué)題目會(huì)使自己變聰明,很長(zhǎng)時(shí)間不去接觸數(shù)學(xué)問(wèn)題會(huì)使自己思維遲鈍。通過(guò)一些經(jīng)典的數(shù)學(xué)問(wèn)題來(lái)培養(yǎng)學(xué)員的思維的嚴(yán)謹(jǐn)性和跳躍性。很多人可能不以為然,其實(shí)有些看似簡(jiǎn)單的問(wèn)題并不一定能夠快速給出答案,大腦也在不斷的運(yùn)用中變更加靈活的。不信嗎?大家有興趣可以做做下面這道題目,看看能不能在1分鐘之內(nèi)想到答案,這只是一道小學(xué)數(shù)學(xué)課后習(xí)題。很多人認(rèn)為自己的數(shù)學(xué)基礎(chǔ)很好,但是據(jù)說(shuō)這道題目90%以上的人不能在一個(gè)小時(shí)內(nèi)給出正確答案。

      證明:AB+AC>DB+DC(D為三角形ABC的一個(gè)內(nèi)點(diǎn))。

      最后,多學(xué)多問(wèn),多看好書(shū),看經(jīng)典。我在這里向大家推薦兩部可能大家已經(jīng)很熟悉的經(jīng)典的計(jì)算機(jī)算法教材,它們中間很多內(nèi)容其實(shí)就是數(shù)學(xué)知識(shí)的介紹。第一部是《算法導(dǎo)論》,英文名稱:Introduction toAlgorithms,作者:Thomas H.Cormen,Charles E.Leiserson,RonaldL.Rivest,Clifford Stein。本書(shū)的主要作者來(lái)自麻省理工大學(xué)計(jì)算機(jī),作者之一Ronald L.Rivest由于其在公開(kāi)秘鑰密碼算法RSA上的貢獻(xiàn)獲得了圖靈獎(jiǎng)。這本書(shū)目前是算法的標(biāo)準(zhǔn)教材,美國(guó)許多名校的計(jì)算機(jī)系都使用它,國(guó)內(nèi)有些院校也將本書(shū)作為算法課程的教材。另外許多專業(yè)人員也經(jīng)常引用它。本書(shū)基本包含了所有的經(jīng)典算法,程序全部由偽代碼實(shí)現(xiàn),這更增添了本書(shū)的通用性,使得利用各種程序設(shè)計(jì)語(yǔ)言進(jìn)行程序開(kāi)發(fā)的程序員都可以作為參考。語(yǔ)言方面通俗,很適合作為算法教材和自學(xué)算法之用。另一部是很多人都應(yīng)該知道的Donald.E.Knuth所著《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》,英文名稱:The Art ofComputer Programming。

      Donald.E.Knuth人生最輝煌的時(shí)刻在斯坦福大學(xué)計(jì)算機(jī)系渡過(guò),美國(guó)計(jì)算機(jī)協(xié)會(huì)圖靈獎(jiǎng)的獲得者,是本領(lǐng)域內(nèi)當(dāng)之無(wú)愧的泰斗。有戲言稱搞計(jì)算機(jī)程序設(shè)計(jì)的不認(rèn)識(shí)Knuth就等于搞物理的不知道愛(ài)因斯坦,搞數(shù)學(xué)的不知道歐拉,搞化學(xué)的不知道道爾頓。被簡(jiǎn)稱為T(mén)AOCP的這本巨著內(nèi)容博大精深,幾乎涵蓋了計(jì)算機(jī)程序設(shè)計(jì)算法與理論最重要的內(nèi)容?,F(xiàn)在發(fā)行的只有三卷,分別為基礎(chǔ)運(yùn)算法則,半數(shù)值算法,以及排序和搜索(在寫(xiě)本文之際,第四卷已經(jīng)出來(lái)了,我也在第一時(shí)間搶購(gòu)了一本)。本書(shū)結(jié)合大量數(shù)學(xué)知識(shí),分析不同應(yīng)用領(lǐng)域中的各種算法,研究算法的復(fù)雜性,即算法的時(shí)間、空間效率,探討各種適用算法等,其理論和實(shí)踐價(jià)值得到了全世界計(jì)算機(jī)工作者的公認(rèn)。書(shū)中引入的許多術(shù)語(yǔ)、得到的許多結(jié)論都變成了計(jì)算機(jī)領(lǐng)域的標(biāo)準(zhǔn)術(shù)語(yǔ)和被廣泛引用的結(jié)果。另外,作者對(duì)有關(guān)領(lǐng)域的科學(xué)發(fā)展史也有深入研究,因此本書(shū)介紹眾多研究成果的同時(shí),也對(duì)其歷史淵源和發(fā)展過(guò)程做了很好的介紹,這種特色在全球科學(xué)著作中是不多見(jiàn)的。至于本書(shū)的價(jià)值我覺(jué)得BillGates先生的話足以說(shuō)明問(wèn)題:“如果你認(rèn)為你是一名真正優(yōu)秀的程序員讀Knuth的《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》,如果你能讀懂整套書(shū)的話,請(qǐng)給我發(fā)一份你的簡(jiǎn)歷”。作者數(shù)學(xué)方面的功底造就了本書(shū)嚴(yán)謹(jǐn)?shù)娘L(fēng)格,雖然本書(shū)不是用當(dāng)今流行的程序設(shè)計(jì)語(yǔ)言描述的,但這絲毫不損傷它“程序設(shè)計(jì)史詩(shī)”的地位。道理很簡(jiǎn)單,它內(nèi)涵的設(shè)計(jì)思想是永遠(yuǎn)不會(huì)過(guò)時(shí)的。除非英語(yǔ)實(shí)在有困難,否則建議讀者選用英文版。

      經(jīng)驗(yàn)分享

      (十一)給學(xué)習(xí)計(jì)算機(jī)的同僚們(初學(xué)者,進(jìn)階者,包括Linux愛(ài)好者)的學(xué)習(xí)建議

      為什么我們要學(xué)習(xí)計(jì)算機(jī),為什么我們要學(xué)習(xí)編程,有很多很多的原因,但當(dāng)我們踏進(jìn)計(jì)算機(jī)的世界里的時(shí)候,我們找到了可以任由我們發(fā)揮,任由我們施展拳腳的天地,我們有了一種對(duì)學(xué)習(xí)計(jì)算機(jī),甚至是學(xué)好計(jì)算機(jī)的渴望,但是任何一門(mén)學(xué)科都不是那么容易學(xué)的好的,計(jì)算機(jī)更是如此,我想我們大多數(shù)人都是從編程開(kāi)始學(xué)習(xí)的,逐漸形成了對(duì)學(xué)習(xí)編程的興趣,但是如果想真正的學(xué)好計(jì)算機(jī),單單學(xué)習(xí)高級(jí)語(yǔ)言是不能達(dá)到效果的,就算你說(shuō)我只想學(xué)好一門(mén)高級(jí)語(yǔ)言,把它學(xué)的精通就可以了,但問(wèn)題就是那么的簡(jiǎn)單么,我想不是吧。

      計(jì)算機(jī)是一個(gè)整體,學(xué)習(xí)任何一門(mén)計(jì)算機(jī)課都是和其他課程聯(lián)系在一起的,要學(xué)習(xí)就要有足夠的深度和廣度,不然不可能有深入的了解就像學(xué)習(xí)c語(yǔ)言一樣,如果你想知道他是怎樣在計(jì)算機(jī)的內(nèi)存中分布的,具體是怎么運(yùn)行的,就要學(xué)習(xí)匯編語(yǔ)言,當(dāng)然計(jì)算機(jī)體系結(jié)構(gòu),計(jì)算機(jī)組成原理,是你理解計(jì)算機(jī)的基礎(chǔ),計(jì)算機(jī)大師knuth都非常重視匯編語(yǔ)言(匯編語(yǔ)言和機(jī)器語(yǔ)言是一一對(duì)應(yīng)的),要想學(xué)好軟件,脫離硬件是不可能,因?yàn)檐浖罱K要靠硬件來(lái)運(yùn)轉(zhuǎn)的。當(dāng)然了如果是初學(xué)者還是要一步步學(xué)的,如果你想知道c語(yǔ)言是怎么運(yùn)行的,想了解指針和數(shù)組的真正區(qū)別,那多學(xué)一門(mén)語(yǔ)言匯編語(yǔ)言吧,人們都說(shuō)匯編語(yǔ)言是與機(jī)器相關(guān)的,不能移植的,但想在的pc機(jī)上用的幾乎都是AMD,和intel的處理器,他們有都是互相兼容的,所以指令集的體系結(jié)構(gòu)都是IA*32當(dāng)然了現(xiàn)在都有64位的處理器了,但是這并沒(méi)有什么很大的區(qū)別,僅僅是位數(shù)變多了,所能表達(dá)的數(shù)字變大了,精度也變的更長(zhǎng)了等等。就像學(xué)習(xí)高級(jí)語(yǔ)言一樣學(xué)習(xí)匯編語(yǔ)言也是相通的,因?yàn)樗麄兊墓δ芏疾畈欢?,而且更加?jiǎn)單,你會(huì)發(fā)現(xiàn)在高級(jí)語(yǔ)言中的語(yǔ)法會(huì)在匯編語(yǔ)言中消失,僅存的就只是指令的書(shū)寫(xiě)格式(相當(dāng)如詞法吧,當(dāng)然了我可能也說(shuō)的不太對(duì),因?yàn)閷?duì)匯編語(yǔ)言學(xué)的不是很深入,所以現(xiàn)在也正在有計(jì)劃的去學(xué)習(xí))。如果你學(xué)習(xí)的java,vb,c#等等那么就請(qǐng)您多多看看c和c++吧,我們常常聽(tīng)說(shuō)某種語(yǔ)言實(shí)現(xiàn)了垃圾回收機(jī)制,用某種算法不定期的把你程序中不再使用的內(nèi)存回收掉,最好的例子就是JAVA了(關(guān)于它的一句話說(shuō)的挺好,一次編譯到處運(yùn)行,非常適用于嵌入式計(jì)算機(jī)程序的編寫(xiě)),不過(guò)你能用JAVA語(yǔ)言寫(xiě)出內(nèi)存回收的程序么我想應(yīng)該是不可能,JAVA對(duì)于這方面做了太多的限制,但在c/c++中卻沒(méi)有,你可以用庫(kù)函數(shù)malloc等等去分配內(nèi)存,free去釋放內(nèi)存,c++中對(duì)應(yīng)的是(new,delete)實(shí)現(xiàn)的跟方便些,你也可以用系統(tǒng)調(diào)用brk(其實(shí)庫(kù)函數(shù)也是調(diào)用了他,只不過(guò)做了一些更加完善的工作而已)去分配,而且他可以直接去操作數(shù)據(jù)到位(&,|,~),如果說(shuō)高級(jí)語(yǔ)言是匯編語(yǔ)言的一個(gè)子集的話,那么JAVA在這方面就是C/C++的一個(gè)子集,我并沒(méi)有說(shuō)java不用學(xué),不好,而是在學(xué)習(xí)他之前應(yīng)該多去學(xué)學(xué)C/C++,(注意語(yǔ)法不是特別的重要,重要的是你怎么能在學(xué)完語(yǔ)言以后去靈活的運(yùn)用他),計(jì)算機(jī)體系結(jié)構(gòu)對(duì)于你理解。

      軟硬件非常的重要給大家推薦一本書(shū),書(shū)名 :計(jì)算機(jī)組成與設(shè)計(jì)——硬件/軟件接口作者:DavidA.Patterson John L.hennessy 出版社:機(jī)械工業(yè)出版社,這本書(shū)很不錯(cuò),能夠很好的把軟硬件的關(guān)系數(shù)清楚,而且不像一些國(guó)內(nèi)的體系結(jié)構(gòu)教材,看的非常的費(fèi)勁誰(shuí)然講的都是很清楚,但不能從讀者的角度去考慮問(wèn)題,這本書(shū)會(huì)讓你看的愛(ài)不釋手的,恩,對(duì)于我來(lái)說(shuō)卻是如此,不適合初學(xué)c語(yǔ)言的,要有一定的c語(yǔ)言基礎(chǔ)。我想還有一點(diǎn)要和大家分享一下,就是學(xué)習(xí)計(jì)算機(jī)切忌浮躁,不要像追是族一樣,看到一項(xiàng)新出的技術(shù)就去學(xué)習(xí),新技術(shù)會(huì)不斷的變的,而且很容易讓你迷失方向,一定要打好基礎(chǔ),關(guān)于計(jì)算機(jī)基礎(chǔ)的書(shū)一定要多看,不要死記硬背,但你發(fā)現(xiàn)你需要死記硬背去記住書(shū)中的知識(shí)的時(shí)候,那么我可以給你個(gè)建議把此書(shū)放在書(shū)架里,去看一些能夠引導(dǎo)你一步步的從本質(zhì)上理解知識(shí)的書(shū),首選一些計(jì)算機(jī)科學(xué)叢書(shū),圖靈叢書(shū)(機(jī)械工業(yè)出版社,人民郵電出版社,電子工業(yè)出版社),我們學(xué)校用的是清華大學(xué)自己出版的計(jì)算機(jī)書(shū)籍,雖說(shuō)清華大學(xué)在工科方面很不錯(cuò),但是出版的計(jì)算機(jī)書(shū)籍就我個(gè)人來(lái)說(shuō)真的不怎么好,相對(duì)于國(guó)外的計(jì)算機(jī)書(shū)籍來(lái)說(shuō)差的真是太遠(yuǎn)了,我很不明白為什么要用清華出的,有一本關(guān)于Linux/unix內(nèi)核的書(shū)我覺(jué)得挺好的,書(shū)名是Linux內(nèi)核源代碼情景分析浙江大學(xué)出版的,我目前正在潛心學(xué)習(xí)這本書(shū),雖然很難,但真的不錯(cuò),很少有由我們自己寫(xiě)的關(guān)于Linux內(nèi)核這方面的好書(shū),這本就是不可多得的好書(shū)。說(shuō)了太多關(guān)于計(jì)算機(jī)書(shū)籍的話題了,但我認(rèn)為一本好的書(shū)籍真的能給我們很大的幫助還能從中得到快樂(lè)。如果你只想學(xué)習(xí)計(jì)算機(jī)去賺錢(qián)的話,那么你大可以不必去學(xué)習(xí)很多東西,對(duì)于你也沒(méi)有用處,如果你是對(duì)計(jì)算機(jī)有著非常濃厚的興趣的話,那么就塌下心來(lái),一步一步去在計(jì)算機(jī)的海洋里傲游吧,真是一件美妙的事情。

      現(xiàn)在我告訴大家自己認(rèn)為的關(guān)于學(xué)習(xí)計(jì)算機(jī)的路程

      (1)

      c語(yǔ)言(可以去學(xué)譚浩強(qiáng)寫(xiě)的c語(yǔ)言的書(shū),如果能找到K&R C 那就更好,自己是沒(méi)有找到,要想進(jìn)一步去學(xué)習(xí)的話去看 c缺陷與陷阱,c專家編程,這兩本書(shū)很經(jīng)典的)

      (2)

      c++語(yǔ)言(c和c++其實(shí)并不一樣,可以說(shuō)c++是繼承了c,增加了面向?qū)ο蟮乃枷?,如果能找到c++program languagec++之父寫(xiě)的就很好,不過(guò)自己沒(méi)有找到,要想進(jìn)一步去學(xué)習(xí)的話去看effective c++ more effective c++,挺不容易懂的,因?yàn)樽约阂碙inux內(nèi)核所以沒(méi)有多少時(shí)間去看,c++沉思錄(c缺陷與陷阱 的作者與他的妻子)也非常的不錯(cuò),還是沒(méi)有時(shí)間去看,只看了200多頁(yè),講的太好了,有時(shí)間自己一定會(huì)去看完的,這本書(shū)講的主要是教你怎么運(yùn)用C++語(yǔ)言去寫(xiě)出好的文章)算法和數(shù)據(jù)之間的結(jié)構(gòu)的理解也很重要,我想如果你有了c++的學(xué)習(xí)經(jīng)驗(yàn)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)應(yīng)該不太困難,一直以來(lái)我都不是很明白抽象的數(shù)據(jù)結(jié)構(gòu)(abstract data type ADT)的抽象是怎么回事是什么意思,之后看了c++沉思錄才恍然大悟,抽象就是把想關(guān)注事務(wù)的部分拿出來(lái),不關(guān)心的不去考慮,就像我們?nèi)祟?lèi),人有很多屬性,姓名,年齡,體重等等,當(dāng)我們研究具體問(wèn)題是也許只關(guān)心人的屬性的某些方面,例如姓名,年齡,那么就把它拿出來(lái)也就是術(shù)語(yǔ)抽象,在c/c++語(yǔ)言就用用戶自定義的數(shù)據(jù)類(lèi)型來(lái)去定義人:struct people{charname[10];int age;};struct 是structure(結(jié)構(gòu))的縮寫(xiě),這樣理解就非常簡(jiǎn)單了么,所以c++沉思錄非常的好。

      (3)

      算法與數(shù)據(jù)結(jié)構(gòu)(有很多好的書(shū)籍,大家可以去找找,反正清華出的不敢恭維)

      (4)

      匯編語(yǔ)言,計(jì)算機(jī)組成原理,計(jì)算機(jī)體系結(jié)構(gòu) 微機(jī)原理(我認(rèn)為剛才我說(shuō)計(jì)算機(jī)組成與設(shè)計(jì)——硬件/軟件接口就很好的包含了這些內(nèi)容挺不錯(cuò)的,當(dāng)然了學(xué)習(xí)是無(wú)止境的。)之后才能開(kāi)始o(jì)s的學(xué)習(xí),我認(rèn)為OS是讓你在學(xué)習(xí)計(jì)算機(jī)上有一個(gè)質(zhì)的飛躍,因?yàn)楝F(xiàn)代的程序設(shè)計(jì)一般都是基于OS的,如果不了解OS,那么就不可能學(xué)好程序設(shè)計(jì),就像建造房子一樣,房子要建在地上,如果你不了解當(dāng)?shù)氐沫h(huán)境,地質(zhì),這么怎么能建造好的房子呢?

      (5)

      操作系統(tǒng)原理的學(xué)習(xí),數(shù)據(jù)庫(kù)原理的學(xué)習(xí)(有一本挺好的書(shū),自己是看完了一遍,電子工業(yè)出版社的操作系統(tǒng)設(shè)計(jì)與精髓作者 stalling 忘了具體怎么拼了,理論性很強(qiáng),不過(guò)是一本好書(shū),要理解性的看)。

      至于網(wǎng)絡(luò)原理,軟件工程,通信安全,鑒于尚在學(xué)習(xí)中,就不說(shuō)了。哦,還有編譯原理,是一門(mén)教你怎么把語(yǔ)言翻譯成匯編語(yǔ)言,機(jī)器語(yǔ)言的一門(mén)課,有很多很難的算法,LR算法就很不好理解,至于要什么時(shí)候?qū)W那就在學(xué)好語(yǔ)言和算法的基礎(chǔ)上去學(xué)習(xí)吧。記住千萬(wàn)不要趕時(shí)髦去學(xué)什么VC,BC,包括MFC之類(lèi)的,他們只是開(kāi)發(fā)程序的工具而已幫你做了一些輔助性的工作,所以好好學(xué)習(xí)語(yǔ)言吧!還有就是對(duì)于什么等級(jí)考試一點(diǎn)作用都沒(méi)有,如果要是我說(shuō)現(xiàn)在的等級(jí)考試只是人家賺錢(qián)的一種方式,已經(jīng)變質(zhì)了,我不知道為什么不跟上時(shí)代的腳步,把它們給取消了,不止是計(jì)算機(jī)等級(jí)考試,英語(yǔ)等級(jí)考試也沒(méi)有用,不管怎么說(shuō)他都是一門(mén)紙上的考試,對(duì)于提高自己沒(méi)有作用,反而會(huì)有反作用。如果你只是為了拿一個(gè)計(jì)算機(jī)考試的憑證,那我勸你還是止步吧,我們是為了學(xué)習(xí)計(jì)算機(jī)而學(xué)習(xí)計(jì)算機(jī)而不是為了學(xué)習(xí)計(jì)算機(jī)而去拿那個(gè)一文不值得證,不然我真不知道你學(xué)習(xí)計(jì)算機(jī)還有什么意思。如果真的是對(duì)計(jì)算機(jī)感興趣那就塌下心來(lái),一步一個(gè)腳印的去探索計(jì)算機(jī)世界的奧秘,多么美好的事情呀。很多人開(kāi)始學(xué)習(xí)的人都是夢(mèng)想成為黑客,用幾個(gè)程序去攻擊別人的漏洞,但什么是黑客,天才的程序員才能配的上,就像Linus等一樣,我們的目的是去建造宏偉的建筑,而不是去炸毀他那是駭客所做的事情,如果你認(rèn)為別人的建筑有不足之處大可以指出來(lái)。這只是我個(gè)人的意見(jiàn),有不足之處請(qǐng)指出,謝謝了!

      還有就是談?wù)勛约簩?duì)于Linux學(xué)習(xí)的看法。學(xué)完os以后自己就覺(jué)得應(yīng)該去學(xué)習(xí)os的內(nèi)核了,其實(shí)當(dāng)自己剛學(xué)os的時(shí)候就特別特別特別的想去自己寫(xiě)一個(gè)os,看了很多東西還是一無(wú)所獲,當(dāng)然了這是必然的,因?yàn)樽约哼Bos有什么功能,進(jìn)程線程,進(jìn)程調(diào)度,虛擬內(nèi)存,進(jìn)程間的通信,文件系統(tǒng),系統(tǒng)調(diào)用與中斷,都是不知所云,所以當(dāng)時(shí)很是郁悶,很是茫然,在學(xué)完os之后才對(duì)操作系統(tǒng)有一個(gè)感性的認(rèn)識(shí),但是還是太理論了,沒(méi)有任何源代碼的分析,沒(méi)有任何設(shè)計(jì)os的細(xì)節(jié),所以自己只好去看linux源代碼了,但是還有一件重要的事沒(méi)有做,寫(xiě)源代碼我要在一個(gè)環(huán)境中去寫(xiě)在哪去寫(xiě)呢,那就是在類(lèi)UNIX操作系統(tǒng)上(我用的是fedora 9.0的發(fā)行版,內(nèi)核是2.6版的),怎樣去編譯源代碼呢用的是一種特殊的格式(其實(shí)這種特殊的格式就是在寫(xiě)make命令時(shí),所規(guī)定的make認(rèn)識(shí)的文件)書(shū)寫(xiě)去告訴編譯器編譯的過(guò)程是什么,也就是用make命令去解釋,在windows上我們所用的幾乎都是IDE(集成的開(kāi)發(fā)環(huán)境,編輯器,編譯器,調(diào)試器等都組裝在一個(gè)程序中)的開(kāi)發(fā)環(huán)境所以想,對(duì)于編譯的

      過(guò)程一無(wú)所知,所以當(dāng)初自己看linux內(nèi)核書(shū)籍的時(shí)候很是不理解,為什么每個(gè)文件目錄下都會(huì)有一個(gè)Makefile文件,原來(lái)但你輸入make命令的時(shí)候他會(huì)自動(dòng)在當(dāng)前的目錄下按照makefile,Makefile的順序去查找是否有此文件名,然后就讀取文件進(jìn)行解釋,并告訴gcc編譯器怎樣編譯按照什么樣的順序編譯這些源文件。之后就是去熟悉linux操作系統(tǒng),編寫(xiě)Linux上的c程序(unix環(huán)境高級(jí)編程第二版是在類(lèi)unix上學(xué)習(xí)的很好的書(shū)籍,因?yàn)檫@些開(kāi)放源代碼的os都是按照POSIX(開(kāi)放的操作系統(tǒng)接口標(biāo)準(zhǔn))標(biāo)準(zhǔn)寫(xiě)的,所提供的API(通用的應(yīng)用程序編程接口,就是人們把各個(gè)方面常用的函數(shù)用某種語(yǔ)言編寫(xiě)出來(lái)供程序員使用,減少了程序員的負(fù)

      第三篇:用戶交互設(shè)計(jì)學(xué)習(xí)心得

      學(xué)習(xí)心得

      老師整體講得挺好,從中學(xué)習(xí)到了交互設(shè)計(jì)的精髓,即是“不要讓用戶思考”,可用性是交互設(shè)計(jì)的基本目標(biāo)。從中也了解了Web用戶的行為特點(diǎn),了解了一般Web可用性的基本要素以及比較專業(yè)的設(shè)計(jì)迭代和設(shè)計(jì)驗(yàn)證過(guò)程?;剡^(guò)頭來(lái)對(duì)比之前做的項(xiàng)目,參照著也發(fā)現(xiàn)了不少問(wèn)題和缺點(diǎn),尤其是在設(shè)計(jì)流程上,也有時(shí)間因素沒(méi)法花兩三個(gè)禮拜要做設(shè)計(jì)迭代和驗(yàn)證。我們的原型和設(shè)計(jì)缺乏對(duì)最終用戶群的設(shè)計(jì)考慮,出發(fā)點(diǎn)尚處在以自我觀點(diǎn)為決策的階段,沒(méi)有為最終用戶設(shè)計(jì),這點(diǎn)是我們亟需改進(jìn)的。除此之外,也講到了web交互設(shè)計(jì)的一般法則,對(duì)我們以后開(kāi)發(fā)也很有裨益。

      用戶體驗(yàn)的提高需要各方的努力,不是光靠UE設(shè)計(jì)師一個(gè)人就能達(dá)到。一個(gè)項(xiàng)目的用戶體驗(yàn)好與壞,需要受眾用戶、產(chǎn)品經(jīng)理、業(yè)務(wù)分析師、視覺(jué)設(shè)計(jì)師、開(kāi)發(fā)人員一起協(xié)同努力才能在一個(gè)有限的時(shí)間內(nèi)達(dá)成。更多得可能還是需要在研發(fā)流程和規(guī)范上下藥,提高用戶體驗(yàn)設(shè)計(jì)的重視度,才能貫徹相同的理念互相協(xié)同起來(lái),達(dá)到高用戶體驗(yàn)的目標(biāo)。

      第四篇:停水告知用戶程序及規(guī)定

      停水告知用戶程序及規(guī)定

      1、水廠計(jì)劃?rùn)z修造成的停水,由公司生產(chǎn)技術(shù)安監(jiān)部及時(shí)通過(guò)新聞媒體告知全市用戶,并同時(shí)書(shū)面通知公司供水服務(wù)熱線。

      2、因突發(fā)事件造成的停水,由公司生產(chǎn)技術(shù)安監(jiān)部科學(xué)確定停水時(shí)間,及時(shí)通過(guò)新聞媒體告知全市用戶,并同時(shí)通知公司供水熱線。

      3、因管網(wǎng)部搶修造成的停水,由公司管網(wǎng)部確定搶修時(shí)間,并通知公司生產(chǎn)技術(shù)安監(jiān)部。生產(chǎn)技術(shù)安監(jiān)部及時(shí)通過(guò)新聞媒體告知全市用戶并同時(shí)通知公司供水熱線。

      4、公司供水熱線在接到相關(guān)部門(mén)的停水通知后,負(fù)責(zé)把停水相關(guān)信息通過(guò)手機(jī)短信告知公司領(lǐng)導(dǎo)及相關(guān)部門(mén)負(fù)責(zé)人,同時(shí)電話通知營(yíng)銷(xiāo)部和各營(yíng)業(yè)所負(fù)責(zé)人,并把停水相關(guān)信息在公司網(wǎng)站上公告。

      5、公司營(yíng)銷(xiāo)部在接到停水通知后,應(yīng)及時(shí)通過(guò)水費(fèi)通知短信平臺(tái),用手機(jī)短信告知用戶。

      6、公司各營(yíng)業(yè)所在接到停水通知后,要及時(shí)以告知函的方式書(shū)面通知所轄片區(qū)的大型小區(qū)、大型企業(yè)和重點(diǎn)單位,告知函需用戶簽收。

      7、遇突發(fā)性停水,公司各營(yíng)業(yè)所要第一時(shí)間電話通知大型小區(qū)、大型企業(yè)和重點(diǎn)單位的聯(lián)系人,并補(bǔ)填停水告知函。

      8、各營(yíng)業(yè)所必須注冊(cè)登記上述相關(guān)用戶指定的聯(lián)系人電話號(hào)碼(包括手機(jī)和固定電話),并報(bào)營(yíng)銷(xiāo)部備案,以便今后及時(shí)將停水信息告知用戶。

      9、各部門(mén)負(fù)責(zé)人為第一責(zé)任人,如未按規(guī)定和程序執(zhí)行,將按公司《職工獎(jiǎng)懲條例》相關(guān)規(guī)定處理。

      10、本規(guī)定下發(fā)之日起執(zhí)行,解釋權(quán)屬公司企管部。

      第五篇:產(chǎn)品設(shè)計(jì)程序用戶研究 課程小結(jié)

      產(chǎn)品設(shè)計(jì)程序與用戶研究課程小結(jié)

      轉(zhuǎn)眼間產(chǎn)品設(shè)計(jì)程序用戶研究的課程結(jié)束了。通過(guò)這門(mén)課程的學(xué)習(xí),我懂得了產(chǎn)品設(shè)計(jì)的概念以及產(chǎn)品設(shè)計(jì)具體實(shí)施過(guò)程和采用的基本方法、設(shè)計(jì)的基本要素等。

      產(chǎn)品設(shè)計(jì)是以“用戶為中心”,通過(guò)物質(zhì)材料對(duì)產(chǎn)品的造型、結(jié)構(gòu)等的綜合性創(chuàng)造。按照產(chǎn)品造型時(shí)間的一般過(guò)程,大致可分為三個(gè)階段:設(shè)計(jì)準(zhǔn)備階段、方案設(shè)計(jì)階段、方案實(shí)施階段。細(xì)分的話,可分為設(shè)計(jì)選題、市場(chǎng)調(diào)研、準(zhǔn)備構(gòu)思、創(chuàng)意草圖、確定設(shè)計(jì)方案、產(chǎn)品效果圖、工程圖繪制、編寫(xiě)設(shè)計(jì)報(bào)告書(shū)。

      首先設(shè)計(jì)師應(yīng)根據(jù)企業(yè)的設(shè)計(jì)要求制定詳細(xì)計(jì)劃,對(duì)要求進(jìn)行具體分析,并對(duì)其做廣泛調(diào)查,如功能性、認(rèn)知性、審美性、適應(yīng)性、經(jīng)濟(jì)性、環(huán)保性等。在選題過(guò)程中,要充分了解設(shè)計(jì)的對(duì)象、用途、及影響產(chǎn)品造型的各種參數(shù)。

      市場(chǎng)經(jīng)濟(jì)決定著產(chǎn)品的生產(chǎn),因此,市場(chǎng)調(diào)研應(yīng)把銷(xiāo)售作為主要課題來(lái)研究。產(chǎn)品設(shè)計(jì)包括產(chǎn)品的工程設(shè)計(jì)和產(chǎn)品的造型設(shè)計(jì),兩者是緊密聯(lián)系在一起的。但也有所不同,工程設(shè)計(jì)接近于生產(chǎn)者,而產(chǎn)品造型設(shè)計(jì)則偏重于消費(fèi)者。調(diào)研的主要內(nèi)容包括:分析使用對(duì)象、市場(chǎng)狀況、產(chǎn)品使用的環(huán)境和地區(qū)等等。

      我們還學(xué)習(xí)到了產(chǎn)品設(shè)計(jì)方法的種類(lèi),如:智力激勵(lì)法、設(shè)問(wèn)法、列舉法、聯(lián)想法、整理法等。在歸納后便開(kāi)始產(chǎn)品的創(chuàng)意草圖。創(chuàng)意草圖是設(shè)計(jì)師設(shè)計(jì)思想的直接反應(yīng),能清楚地表達(dá)出的每一個(gè)思維跳躍和創(chuàng)意火花。在老師的帶領(lǐng)下我們對(duì)電線插線板進(jìn)行了拆分,對(duì)它的內(nèi)部和外部進(jìn)行了分析討論,并一比一繪制了插線板的三視圖。使我們更加深刻地了解產(chǎn)品設(shè)計(jì)構(gòu)造。之后利用了幾天時(shí)間對(duì)插排進(jìn)行市場(chǎng)調(diào)研。接著我們便開(kāi)始繪制插線板的改良設(shè)計(jì)草圖,并在全班進(jìn)行公開(kāi)研討與辯論。

      在這個(gè)課程當(dāng)中,我們通過(guò)查找大量資料,相互討論,請(qǐng)教老師,以及不懈的努力,對(duì)電線插排進(jìn)行了后期改良設(shè)計(jì),在這次設(shè)計(jì)過(guò)程中,體現(xiàn)出自己?jiǎn)为?dú)設(shè)計(jì)產(chǎn)品的能力,與同學(xué)交流,完成了插排的改良設(shè)計(jì)。使我們學(xué)到了很多知識(shí),還鍛煉了我們動(dòng)手能力。在未來(lái)的設(shè)計(jì)學(xué)習(xí)中我會(huì)繼續(xù)努力學(xué)習(xí),多加鍛煉自己,讓自己的專業(yè)能力更進(jìn)一步。

      設(shè)計(jì)藝術(shù)學(xué)院

      X班 XXX

      下載abaqus_用戶程序-學(xué)習(xí)心得(五篇范例)word格式文檔
      下載abaqus_用戶程序-學(xué)習(xí)心得(五篇范例).doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        室內(nèi)設(shè)計(jì)程序?qū)W習(xí)心得

        室內(nèi)設(shè)計(jì)程序?qū)W習(xí)心得 指導(dǎo)老師:向陽(yáng)班級(jí):藝設(shè)六班姓名:李陟學(xué)號(hào):20092468藝術(shù),在人類(lèi)文明的知識(shí)體系中與科學(xué)并駕齊驅(qū)。藝術(shù),具有完全不可代替的學(xué)科系統(tǒng)。 藝術(shù)與科學(xué)的理論研究......

        實(shí)質(zhì)性程序?qū)W習(xí)心得

        實(shí)質(zhì)性程序總結(jié)心得 ———趙彩虹 一、 總體心得 (一) 每張表頭均包含客戶名稱、財(cái)務(wù)報(bào)表日、編制人及日期、復(fù)核人及日期以及索引號(hào)和頁(yè)次。 (二) 會(huì)計(jì)科目的審計(jì)目標(biāo)通常......

        程序文件學(xué)習(xí)心得2

        學(xué)習(xí)心得根據(jù)質(zhì)保體系會(huì)議要求及學(xué)習(xí)計(jì)劃,本周重點(diǎn)學(xué)習(xí)了《質(zhì)量體系程序文件》的“無(wú)損檢測(cè)系統(tǒng)質(zhì)量管理程序”、“理化檢驗(yàn)系統(tǒng)質(zhì)量管理程序”、“熱處理系統(tǒng)質(zhì)量管理程序”......

        程序文件學(xué)習(xí)心得1

        學(xué)習(xí)心得本公司《質(zhì)量體系程序文件》共有22個(gè)控制程序,作為工藝員及理化負(fù)責(zé)人,主要涉及到其中的12個(gè)控制程序,并計(jì)劃利用3周時(shí)間對(duì)其進(jìn)行重點(diǎn)學(xué)習(xí)。 程序文件就是為了完成管理......

        計(jì)算機(jī)常用程序軟件應(yīng)用技巧 學(xué)習(xí)心得

        《計(jì)算機(jī)常用程序軟件應(yīng)用技巧》聽(tīng)課心得 序號(hào):xx 學(xué)號(hào):xx 姓名:xx 班級(jí):xx 本學(xué)期,我選擇了這門(mén)公共選修課課程——計(jì)算機(jī)常用程序軟件應(yīng)用技巧。通過(guò)短短的18次堂課的學(xué)習(xí)過(guò)......

        發(fā)展黨員的程序和手續(xù)學(xué)習(xí)心得

        本周星期二下午我們上了關(guān)于“入黨條件、手續(xù)和程序“的黨課。在這之前,我對(duì)此入黨條件有一小部分的了解,但對(duì)入黨的手續(xù)和程序不是很了解。我想通過(guò)這次課后,能夠更深刻的體會(huì)......

        修改獨(dú)立博客程序 獲得更好的用戶體驗(yàn)

        獨(dú)立博客,由于其靈活的操作性,以及盈利的可能性,越來(lái)越受到網(wǎng)友們的青睞。如今現(xiàn)成的博客程序比比皆是,更加消除了創(chuàng)建獨(dú)立博客的門(mén)檻限制,拋去前期的注冊(cè)域名和域名備案,余下的......

        汽車(chē)修理業(yè)務(wù)受理程序、服務(wù)承諾、用戶抱怨制度★

        汽車(chē)修理業(yè)務(wù)受理程序業(yè)務(wù)受理工作從內(nèi)容上分為兩個(gè)部分: 迎接客戶送修程序與恭送 客戶離廠程序。工作程序具體內(nèi)容如下: 1、接待室接待前來(lái)公司送修的客戶。 2、受理業(yè)務(wù):詢問(wèn)......