寫給初學(xué)asp.net的新人們 新手學(xué)習(xí)經(jīng)驗(yàn)
新人們常常會(huì)說(shuō)我看了多少多少的書,看過(guò)某某人寫的書,仿佛書看了就會(huì)做了。其實(shí)不然,很多新人在面試的時(shí)候夸夸其談,說(shuō)啥啥都知道一點(diǎn),到真正做的時(shí)候,啥都不會(huì)。歸根到底是沒(méi)有經(jīng)驗(yàn),技術(shù)這玩意兒經(jīng)驗(yàn)非常重要,很多東西如果不是你碰到了,你從書上一輩子都找不到答案。
我看書的習(xí)慣一般都是先把整個(gè)書翻翻,了解一下書的基本內(nèi)容,然后在實(shí)際項(xiàng)目中遇到相應(yīng)的問(wèn)題再去翻書,當(dāng)然這是因?yàn)槲覍?duì)技術(shù)已經(jīng)有一定的了解,不需要通讀整本書。初學(xué)者應(yīng)該找一些適合自己的書,通讀一遍,其中的例子要認(rèn)真做,一定要自己去寫代碼,而不是Copy。我以前在學(xué)做網(wǎng)頁(yè)的時(shí)候,別人都用Dreamweaver去做,只有我打開(kāi)源代碼編輯器學(xué)習(xí)HTML源代碼的編寫。
做完書的例子只能說(shuō)明你會(huì)削木頭了,但會(huì)削木頭離會(huì)做柜子還有很遠(yuǎn)的路要走。還記得達(dá)·芬奇畫雞蛋的故事么?不停地重復(fù)肯定是枯燥的,所以你需要自己嘗試去做一些實(shí)際的東西,比如做一個(gè)個(gè)人主頁(yè)、一個(gè)留言本、一個(gè)通信地址本......在這些實(shí)際的東西中去實(shí)現(xiàn)你的創(chuàng)意,去實(shí)現(xiàn)你在書本上所學(xué)習(xí)的例子,并且將這些例子加入你的思想。
永遠(yuǎn)不要認(rèn)為書本能給你帶來(lái)多少東西,雖然它們很有用,但它們只是一個(gè)Key,一個(gè)引你入門的Key。我買的技術(shù)書中,最多的是 VB.Net,但這卻是我最爛的一門技術(shù)。而我用得比較好的Delphi、Sql Server、Photoshop、CoreDRAW、CSS、HTML、Javascript、Xslt、Xml,我?guī)缀鯖](méi)有買書,但因?yàn)閷?shí)際的項(xiàng)目需要,或者是我個(gè)人的興趣愛(ài)好。
當(dāng)然,我并不是反對(duì)你去買書,去讀書,我只是想告訴你,你需要有一種平和的心態(tài)。但你要記住,書本只是一個(gè)Key。
關(guān)于基礎(chǔ)
現(xiàn)在很多新人們都是好高騖遠(yuǎn),目空一切,基礎(chǔ)的東西不想做,難一點(diǎn)的東西又做不了,真的很令人頭疼。其實(shí)技術(shù)人員,尤其是中國(guó)技術(shù)人員,你要懂的東西太多太多了。我們拿 Web程序員舉例吧,HTML、Javascript、CSS、Photoshop切圖,這些都是很基礎(chǔ)的東西,但很多人就是不愿意去學(xué),認(rèn)為這些東西太低級(jí),甚至有些老程序員也不擅長(zhǎng)這些。但我要告訴你,在Web開(kāi)發(fā)中,這些都很重要,尤其是CSS和HTML、Javascript,如果你不是做一個(gè) OA之類辦公的Web系統(tǒng)的話,這些在網(wǎng)站用得太多太多了,是一些Web應(yīng)用的基礎(chǔ)。
雖然我們現(xiàn)在涌現(xiàn)一大批如ASP.Net的優(yōu)秀開(kāi)發(fā)環(huán)境,可以讓你完全不懂HTML也能開(kāi)發(fā)出一套“網(wǎng)站”來(lái),但正如其它程序化的東西一些,它會(huì)限制你的靈感與思維,它們都很霸道,所以才會(huì)有開(kāi)源的興起。我以前甚至不愿意用ASP.Net內(nèi)置的GridView,我寧愿自己去構(gòu)造 Table,這覺(jué)得這樣我更便于控制。
很多新人們喜歡拿新興的技術(shù)說(shuō)事,比如說(shuō)AJAX,但實(shí)質(zhì)他根本就不懂AJAX實(shí)現(xiàn)的原理,連多線程的原理都不懂,怎么能明白AJAX呢?有些做了一年多 ASP.Net的人,居然還不知道.Net Framework框架的本質(zhì)是什么,不知道ASP.Net是如何實(shí)現(xiàn)的,也不知道客戶端也服務(wù)器端是如何交互的。
在這里,我建議做Web開(kāi)的新人們,HTML、 Javascript,CSS是實(shí)現(xiàn)一些Web功能的基礎(chǔ),一定要打好基礎(chǔ),當(dāng)你會(huì)你記事本編輯這些代碼的時(shí)候,恭喜你,你過(guò)關(guān)了。
關(guān)于語(yǔ)言的選擇
語(yǔ)言之爭(zhēng)都是大公司戰(zhàn)斗的結(jié)果,套用一句管理上的話來(lái)說(shuō),把合適的的技術(shù)用在合適的地方。我們沒(méi)有必要跟風(fēng)去不停地?fù)Q新的語(yǔ)言,每種語(yǔ)言都有它的優(yōu)劣,但在一般的項(xiàng)目中,很難看得出來(lái)。如果我們做一個(gè)只需要新聞發(fā)布功能的小公司網(wǎng)站,你說(shuō)是Java和.Net好,還是Asp和PHP好呢?在很多時(shí)候,Java與.Net、Asp與PHP是難分高下的,他們之間的差異或許是你一輩子也不需要用到,我們范得著把自己拉入某一些陣營(yíng)嗎?
當(dāng)技術(shù)達(dá)到一定的水平之后,語(yǔ)言只不過(guò)是錦上添花了,武俠小說(shuō)常無(wú)招勝有招就是這個(gè)道理。你現(xiàn)在讓我換成Java或者是PHP,我很快就可以做項(xiàng)目,因?yàn)槲艺莆盏牟皇钦Z(yǔ)言,而是對(duì)技術(shù)深層次的理解,現(xiàn)在Java陣營(yíng)也好,.Net陣營(yíng)也好,不管你說(shuō)它們之間有多少差別,但他們的本質(zhì)始終沒(méi)有變,掌握這些本質(zhì),換一種語(yǔ)言就好比換一輛車,只需要一個(gè)熟悉的過(guò)程和一個(gè)磨合期而已。
最后,我建議新手們選擇一種在你實(shí)質(zhì)工作中需要的語(yǔ)言,坦坦實(shí)實(shí)地學(xué)好,不要中途“變節(jié)”,這樣的成本太高了。.Net也好,Java也罷,只是一輛車而已,學(xué)好開(kāi)本田就會(huì)駕豐田。
關(guān)于學(xué)習(xí)態(tài)度
學(xué)習(xí)嘛,在學(xué)習(xí)的過(guò)程中自然會(huì)遇到一些問(wèn)題,遇到問(wèn)題自然會(huì)想到求助。古人有云:禮下于人,必有所求,言下之意是有求于人,必要禮下于人??墒乾F(xiàn)在有些人不僅不禮下于人,反而還趾高氣揚(yáng),仿佛誰(shuí)欠著他似的。我們老家有句俗話叫拜師學(xué)藝要吃二十四碗鼻涕,可見(jiàn)在學(xué)習(xí)過(guò)程中要受到多少的委屈。
吃得苦中苦,方為人上人,做技術(shù)尤是如此。我以前在學(xué)ASP的時(shí)候,同寢室有一哥們是學(xué)VB的,因?yàn)锳SP也是用VBScript做為默認(rèn)腳本,所以有很多問(wèn)題請(qǐng)教他,他當(dāng)是也是給了我不少的嘲笑,像“這些簡(jiǎn)單的問(wèn)題都還要問(wèn)”之類的話我倒是聽(tīng)了不少。但到后我們一起學(xué)Delphi的時(shí)候,我就已經(jīng)超過(guò)他了。
新人們碰到問(wèn)題的時(shí)候,第一個(gè)想法就是想找人解決,當(dāng)你去幫他解決的時(shí)候,他卻去做其它事了,好像這個(gè)問(wèn)題是需要你來(lái)解決的,下次出現(xiàn)同樣的問(wèn)題他還得找你。遇到問(wèn)題最好的辦法是先排查問(wèn)題,然后到互聯(lián)網(wǎng)上查找問(wèn)題的原因,這樣你才不會(huì)忘記,不要忽略了互聯(lián)網(wǎng)這個(gè)最好的老師。我以前在學(xué)ASP的時(shí)候,為了一個(gè)插入數(shù)據(jù)的問(wèn)題,查了一個(gè)星期,但這個(gè)問(wèn)題我永遠(yuǎn)也忘記不了,再也不會(huì)范同樣的錯(cuò)誤。
高手們一般都比較忙,雖然我不是高手,但我還是不原意在我寫代碼正酣的時(shí)候,有人打斷我的思路。先把問(wèn)題記下來(lái),趁機(jī)會(huì)問(wèn)問(wèn)高手,不要讓他為你解決問(wèn)題,你要的是一種解決問(wèn)題的思路。公司常常有新人問(wèn)我,這個(gè)地方出問(wèn)題了,怎么辦?我便問(wèn)他,你上網(wǎng)查了嗎?不是我不愿意幫他,而是授人魚不如授人以漁,我直接告訴他怎么做,那不是在幫他,那是我在害他,我只能是告訴他排錯(cuò)的方法,解決問(wèn)題的思路,否則他永遠(yuǎn)也不知道這個(gè)問(wèn)題是怎么解決的,沒(méi)有人會(huì)珍惜輕易得到的東西的。
最后,我想給踏入這行的新人們一個(gè)忠告,編程沒(méi)有捷徑可言,如果一定要找出一個(gè)捷徑,那只有六個(gè)字——多看、多問(wèn)、多寫。
- asp.net自定義控件代碼學(xué)習(xí)筆記
- asp.net Coolite 學(xué)習(xí)交流
- ASP.NET MVC學(xué)習(xí)筆記
- 一天精通asp.net的學(xué)習(xí)經(jīng)驗(yàn)小結(jié)
- asp.net Linq to Xml學(xué)習(xí)筆記
- ASP.NET的事件模型(很適合學(xué)習(xí)的文章)
- asp.net 學(xué)習(xí)之路 項(xiàng)目整體框架簡(jiǎn)單的搭建
- ASP.NET的HtmlForm控件學(xué)習(xí)及Post與Get的區(qū)別概述
- Asp.net回調(diào)技術(shù)Callback學(xué)習(xí)筆記
- ASP.NET預(yù)備知識(shí)學(xué)習(xí)筆記
- ASP.NET學(xué)習(xí)路線(詳細(xì))
相關(guān)文章
NopCommerce架構(gòu)分析之(六)自定義RazorViewEngine和WebViewPage
本文對(duì)NopCommerce的后臺(tái)分離技術(shù)做簡(jiǎn)單的探討。NopCommerce通過(guò)自定義視圖引擎,重寫了VirtualPathProviderViewEngine類的CreateView、CreatePartialView、FindView、FindPartialView方法,添加自定義的視圖搜索路徑來(lái)實(shí)現(xiàn)后臺(tái)分離。2016-04-04在ASP.NET 2.0中操作數(shù)據(jù)之二十八:GridView里的Button
本文主要介紹ASP.NET 2.0在GridView,DetailsView,FormView都可以包含Buttons,LinkButtons,或ImageButtons.這些button被點(diǎn)擊時(shí),并激發(fā)FormView和DetailsView的ItemCommand事件,GridView的RowCommand事件,根據(jù)CommandName的值來(lái)判斷哪個(gè)button被點(diǎn)擊了,執(zhí)行相應(yīng)的代碼。2016-05-05《解剖PetShop》之三:PetShop數(shù)據(jù)訪問(wèn)層之消息處理
本文主要講解PetShop4.0的數(shù)據(jù)訪問(wèn)層的消息處理部分,需要的朋友可以參考下。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之十七:研究插入、更新和刪除的關(guān)聯(lián)事件
本文主要講解ASP.NET 2.0中如何在點(diǎn)擊插入、更新、刪除等按鈕時(shí)關(guān)聯(lián)和觸發(fā)事件,以便我們?cè)谑录袑懘a,實(shí)現(xiàn)我們期望的效果。2016-05-05在ASP.NET 2.0中操作數(shù)據(jù)之四十九:為GridView控件添加RadioButton
本文主要講解ASP.NET 2.0為GridView的每一行添加RadioButton具體方法,并配合Literal控件實(shí)現(xiàn)單選的目的。2016-05-05解讀ASP.NET 5 & MVC6系列教程(7):依賴注入
這篇文章主要介紹了ASP.NET 5 依賴注入,需要的朋友可以參考下2016-06-06在Linux+Jexus中發(fā)布和部署Asp.Net?Core
這篇文章介紹了在Linux+Jexus中發(fā)布和部署Asp.Net?Core,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12AlternatingItemTemplate類似于 ItemTemplate 元素
AlternatingItemTemplate類似于 ItemTemplate 元素...2006-10-10在ASP.NET 2.0中操作數(shù)據(jù)之七十:配置數(shù)據(jù)庫(kù)連接和命令等級(jí)設(shè)置
TableAdapters將數(shù)據(jù)訪問(wèn)等細(xì)節(jié)進(jìn)行的封裝,但是默認(rèn)情況下這些屬性要么標(biāo)記為internal要么為private,我們可以使用部分類,在部分類里使用標(biāo)記為public的方法或?qū)傩浴?/div> 2016-05-05最新評(píng)論