這一年,做為應屆生的我合格嗎?


看了博客園首頁 這一年,做為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語句我確實寫不出,但別忘了有谷歌和百度,還有身邊的同事,沒有什么問題是解決不了的。

6、服務器端開發

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

7、其他

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

總結:

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

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM