這一年,做為應屆生的我合格嗎?這一年,做為asp.net程式員我合格嗎?

來源:互聯網
上載者:User

看了部落格園首頁 這一年,做為asp.net程式員我合格嗎? 這篇文章,覺得有此事話要說,下面我就一一列出我的觀點。對事不對人,只是為了和大家一起探討什麼才是程式員必須的技能。

1、div+css2

  這個玩意兒,基本上是專業前端乾的活,但我們做後台開發的。於學習之初多多少少都順帶學習了些,背景程式員不見得要將這門技能掌握得多好,能看能寫就行。但是,如果知道更多就會更好,基本的div+css大家都會,但一些細節注意到了嗎?

  例如透明png圖片在ie6下的灰色背景問題,可以通過一個dd_belatedpng.js的js檔案來消除。

  例如float布局,個人感覺沒有inline-block好用,我們完全可以通過inlile-block布局來加快網頁渲染速度。再如word-wrap和word-break的用法,估計很多個人網站主就沒有注意到。當元素內出現大塊英文和數字時,就會跑到元素外,就時候我們就可以用word-wrap:break-word和word-break:break-all來解決此問題。

  再比如針對ie6和ie7與標準瀏覽器(chrome,firefox)對css的解釋差異。我們一般就用到了*selecor這種方法來css hack。針對ie6的hack為“_”,ie6,7為“*”,ie8為“\0”。當然我們不鼓勵推薦寫出符合w3c標準的html頁面,就無需css hack了。

  順帶說一句,我個人非常鼓勵web開發程式員用標準瀏覽器,而不是所謂的360,搜狗之類的。w3c標準需要web開發人員自己去推動,不能一邊用著360,搜狗一邊罵著ie種種bug。

  個人常去看的一個前端部落格:http://www.zhangxinxu.com/php/ 推薦給大家。

2、javascript

  javascript的確是個好東西,而不是有些人輕視的所謂“簡單的網頁指令碼”而已“,要想真正學會javascript,單是this指向和prototype繼承就得花費不少時間和實踐去理解了。至於一些細節問題比如用var和不用var聲明變數的區別,javascript沒有塊級範圍的問題(http://www.cnblogs.com/fengmiaosen/archive/2011/01/10/1932403.html)。作為一個web開發人員,貌似也沒理由不去掌握吧?舉一個簡單的例子:

function Person(){  this.name="caochao";  this.favorite="php";};Person.prototype.work=function(){  console.log("coding");};var p=new Person();

  初始化一個執行個體時,javascript幫我們將執行個體p的原型指向了建構函式Person的原型,因此便有Person.prototype.isPrototypeOf(p)===true。在這個過程中,p的__proto__指向了Person.prototype。

  筆者是大四應屆生,學習的是.net和php,但是也系統的看過兩本javascript好書《javascript權威指南》和《javascript進階程式設計》,我想說的是javascript真沒那麼簡單,也不是沒規律可言。在我眼裡,它靈活又易用。至於javascript和jquery的關係,jquery能讓人在不懂或懂一點的情況下寫出指令碼,但是筆者的情況是寫多了jquery後總是用javascript去實現相同的效果。畢竟一開啟網頁就載入一個幾十k的庫也是一種效能消耗。只是對於涉及到瀏覽器安全色性的問題,例如clientWidth,scrollHeight,offsetWidth等等筆者就一直沒整明白。http://wenku.baidu.com/view/bc862eea6294dd88d0d26b52.html ,所以這種地方還是要乖乖的用jquery api。

  個人建議:學習javascript,看看這個 http://bonsaiden.github.com/JavaScript-Garden/ ,還要系統看看書。

3、ajax

  Ajax這玩意兒搞web的都知道是個好東西,至於官方的定義以及原理就不說了,至於用jquery.ajax的就不說了,還是不鼓勵引入jquery.js,用原生的javascript一樣能做到相同的效果。不妨參考下此文 https://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/

4、對於伺服器控制項的看法

   筆者現在幾乎不用伺服器控制項了,連個head標籤都有runat="server"標記讓人很無奈。大三那陣,筆者就轉到asp.net mvc了,用mvc+javascript做網站,才是真正的web開發。至少個人認為是這樣的。如果想追求更好的效率的話,就用lamp吧,無論你對lamp的態度怎樣,你都無法否認當前大多數網站是構建於此平台上的現實。自豪的宣稱一下,筆者現在也要轉到php了。

5、對於資料庫的看法

  我不是專業的dba,也不懂得太多的資料庫最佳化,但我多少還知道如何避免大表間的串連查詢,也知道要避免table scan,更知道只詢所需的列。老實說,太複雜的sql語句我確實寫不出,但別忘了有Google和百度,還有身邊的同事,沒有什麼問題是解決不了的。

6、伺服器端開發

  這個才是背景程式員的主業,作為一個.net平台的程式員,自我感覺自己是挺菜的,socket不熟,多線程幾乎沒接觸,泛型不熟練,單元測試不瞭解,這些都是我的短板,但物件導向原則,抽象類別,介面,虛方法,覆寫,非同步,linq這些基本功也還是比較紮實的。作為一個web開發人員,熟練對資料庫的crud操作是必需的,這一點沒什麼好說的。對asp.net基本的理解也僅僅到達Ihttphandler,Ihttpmodule方面。至於什麼應用程式,頁面,控制項生存周期的,真的只是瞭解過,你讓我講原理我只能是啞口無言了,我最多知道在哪裡用,至於原理,我的水平還理解不了。作為一個.net開發人員,我偏偏沒有系統看過一本講.net的書,都是在部落格園混來的或者看一些不知名的書學來的。部落格園的Jimmy Zhang和Fish Li的部落格便是我常去的地方,像forms authentication和cache便是看他們部落格入門的。哦,對了,還有最近 逆時針の風 stream系列,真是讓人受益頗多。感覺自己對System.IO命名空間內容的掌握好了很多。

7、其他

  資料結構真是很重要,稍微大點的公司面試都愛考這個。所以,小生不才也買了本《資料結構與演算法c#語言描述版》在看。

總結:

  Tandy Tang 說的非常對,作為一個代碼工看書是必須的,但動手寫則更是必須的,能力只會在寫的過程中提高。至於複製粘貼,則是非常不建議的,至少你也應該對著敲一遍代碼並努力弄懂它。

  PS:caochao祝大家寫代碼寫的愉快!

  作為IT界一員,我們應該更專業.

1、div+css2

  這個玩意兒,基本上是專業前端乾的活,但我們做後台開發的。於學習之初多多少少都順帶學習了些,背景程式員不見得要將這門技能掌握得多好,能看能寫就行。但是,如果知道更多就會更好,基本的div+css大家都會,但一些細節注意到了嗎?

  例如透明png圖片在ie6下的灰色背景問題,可以通過一個dd_belatedpng.js的js檔案來消除。

  例如float布局,個人感覺沒有inline-block好用,我們完全可以通過inlile-block布局來加快網頁渲染速度。再如word-wrap和word-break的用法,估計很多個人網站主就沒有注意到。當元素內出現大塊英文和數字時,就會跑到元素外,就時候我們就可以用word-wrap:break-word和word-break:break-all來解決此問題。

  再比如針對ie6和ie7與標準瀏覽器(chrome,firefox)對css的解釋差異。我們一般就用到了*selecor這種方法來css hack。針對ie6的hack為“_”,ie6,7為“*”,ie8為“\0”。當然我們不鼓勵推薦寫出符合w3c標準的html頁面,就無需css hack了。

  順帶說一句,我個人非常鼓勵web開發程式員用標準瀏覽器,而不是所謂的360,搜狗之類的。w3c標準需要web開發人員自己去推動,不能一邊用著360,搜狗一邊罵著ie種種bug。

  個人常去看的一個前端部落格:http://www.zhangxinxu.com/php/ 推薦給大家。

2、javascript

  javascript的確是個好東西,而不是有些人輕視的所謂“簡單的網頁指令碼”而已“,要想真正學會javascript,單是this指向和prototype繼承就得花費不少時間和實踐去理解了。至於一些細節問題比如用var和不用var聲明變數的區別,javascript沒有塊級範圍的問題(http://www.cnblogs.com/fengmiaosen/archive/2011/01/10/1932403.html)。作為一個web開發人員,貌似也沒理由不去掌握吧?舉一個簡單的例子:

function Person(){  this.name="caochao";  this.favorite="php";};Person.prototype.work=function(){  console.log("coding");};var p=new Person();

  初始化一個執行個體時,javascript幫我們將執行個體p的原型指向了建構函式Person的原型,因此便有Person.prototype.isPrototypeOf(p)===true。在這個過程中,p的__proto__指向了Person.prototype。

  筆者是大四應屆生,學習的是.net和php,但是也系統的看過兩本javascript好書《javascript權威指南》和《javascript進階程式設計》,我想說的是javascript真沒那麼簡單,也不是沒規律可言。在我眼裡,它靈活又易用。至於javascript和jquery的關係,jquery能讓人在不懂或懂一點的情況下寫出指令碼,但是筆者的情況是寫多了jquery後總是用javascript去實現相同的效果。畢竟一開啟網頁就載入一個幾十k的庫也是一種效能消耗。只是對於涉及到瀏覽器安全色性的問題,例如clientWidth,scrollHeight,offsetWidth等等筆者就一直沒整明白。http://wenku.baidu.com/view/bc862eea6294dd88d0d26b52.html ,所以這種地方還是要乖乖的用jquery api。

  個人建議:學習javascript,看看這個 http://bonsaiden.github.com/JavaScript-Garden/ ,還要系統看看書。

3、ajax

  Ajax這玩意兒搞web的都知道是個好東西,至於官方的定義以及原理就不說了,至於用jquery.ajax的就不說了,還是不鼓勵引入jquery.js,用原生的javascript一樣能做到相同的效果。不妨參考下此文 https://www.ibm.com/developerworks/cn/xml/wa-ajaxintro2/

4、對於伺服器控制項的看法

   筆者現在幾乎不用伺服器控制項了,連個head標籤都有runat="server"標記讓人很無奈。大三那陣,筆者就轉到asp.net mvc了,用mvc+javascript做網站,才是真正的web開發。至少個人認為是這樣的。如果想追求更好的效率的話,就用lamp吧,無論你對lamp的態度怎樣,你都無法否認當前大多數網站是構建於此平台上的現實。自豪的宣稱一下,筆者現在也要轉到php了。

5、對於資料庫的看法

  我不是專業的dba,也不懂得太多的資料庫最佳化,但我多少還知道如何避免大表間的串連查詢,也知道要避免table scan,更知道只詢所需的列。老實說,太複雜的sql語句我確實寫不出,但別忘了有Google和百度,還有身邊的同事,沒有什麼問題是解決不了的。

6、伺服器端開發

  這個才是背景程式員的主業,作為一個.net平台的程式員,自我感覺自己是挺菜的,socket不熟,多線程幾乎沒接觸,泛型不熟練,單元測試不瞭解,這些都是我的短板,但物件導向原則,抽象類別,介面,虛方法,覆寫,非同步,linq這些基本功也還是比較紮實的。作為一個web開發人員,熟練對資料庫的crud操作是必需的,這一點沒什麼好說的。對asp.net基本的理解也僅僅到達Ihttphandler,Ihttpmodule方面。至於什麼應用程式,頁面,控制項生存周期的,真的只是瞭解過,你讓我講原理我只能是啞口無言了,我最多知道在哪裡用,至於原理,我的水平還理解不了。作為一個.net開發人員,我偏偏沒有系統看過一本講.net的書,都是在部落格園混來的或者看一些不知名的書學來的。部落格園的Jimmy Zhang和Fish Li的部落格便是我常去的地方,像forms authentication和cache便是看他們部落格入門的。哦,對了,還有最近 逆時針の風 stream系列,真是讓人受益頗多。感覺自己對System.IO命名空間內容的掌握好了很多。

7、其他

  資料結構真是很重要,稍微大點的公司面試都愛考這個。所以,小生不才也買了本《資料結構與演算法c#語言描述版》在看。

總結:

  Tandy Tang 說的非常對,作為一個代碼工看書是必須的,但動手寫則更是必須的,能力只會在寫的過程中提高。至於複製粘貼,則是非常不建議的,至少你也應該對著敲一遍代碼並努力弄懂它。

  PS:caochao祝大家寫代碼寫的愉快!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.