最近,我一直在拿這個(gè)問題問自己。之所以會(huì)有這個(gè)問題,我基于兩個(gè)前提:第一、我自認(rèn)為自己不笨;第二、我學(xué)習(xí)和使用javascript也有一段時(shí)間了,并且自己學(xué)習(xí)還算努力。 排除第一個(gè)答案不討論。我們來討論下第二個(gè)和第三個(gè)答案。 答案二:他之前學(xué)過的、接觸過的東西使他對(duì)這個(gè)知識(shí)有啟發(fā),我這里簡單的歸結(jié)為積累,關(guān)于積累問題,我上一篇博客程序員的學(xué)習(xí)和積累有談到。 說到這,我又想起了我深受毒害的應(yīng)試教育。應(yīng)試教育缺乏的正是動(dòng)手和實(shí)踐知識(shí)的場所或曰方式。很多時(shí)候我總是懶于動(dòng)手,為什么懶于動(dòng)手?難道是我真的懶嗎?我不承認(rèn),我不動(dòng)手是因?yàn)槲艺也坏絼?dòng)手的理由,或是不知道如何動(dòng)手。拿寫一個(gè)javascript庫或框架為例,為什么我到現(xiàn)在還沒有寫一個(gè)javascript庫?首先我找不到寫它的理由,現(xiàn)在這么多流行、易用且被廣泛使用的javascript庫或框架了,有必要再寫一個(gè)嗎?就算我寫了,公司會(huì)使用它嗎?如果沒有對(duì)其他庫或框架的深刻理解和認(rèn)識(shí),只是把各個(gè)庫或框架中的一些東西拼湊在一起,甚至不知道其中一個(gè)函數(shù)實(shí)現(xiàn)的內(nèi)部原理,那能叫我寫的嗎?其次,我找不到入手的地方。在沒有對(duì)其他框架有深刻認(rèn)識(shí),自己能找到其中的缺陷、不足而加以修正和實(shí)現(xiàn)之前,我找不到入手的地方。 解釋下答案: 功夫下在和工作有關(guān)的地方,這需要有強(qiáng)烈的責(zé)任心和主人翁意識(shí)。我們需要深刻理解這句話,功夫下在和工作有關(guān)的地方不是說,每天把上司交給自己事情做完、沒有bug、達(dá)到需求就可以了。而是要做得更好,我想提出3點(diǎn),也給自己樹立目標(biāo): 1、用最優(yōu)的方案實(shí)現(xiàn)需求。在自己的已有知識(shí)結(jié)構(gòu)、能力、經(jīng)驗(yàn)上用最好的方式實(shí)現(xiàn)需求,在此基礎(chǔ)上努力搜尋業(yè)界相關(guān)的解決方案比較優(yōu)劣,選出最佳的方案,最終實(shí)現(xiàn)需求。 2、關(guān)心自己已做完工作,關(guān)注業(yè)界的相關(guān)新思想、新技術(shù)、新理念,把已完成的工作,用最新最優(yōu)的方案予以重構(gòu),并在適當(dāng)?shù)臅r(shí)機(jī)在產(chǎn)品上得以實(shí)現(xiàn)。 3、關(guān)注自己所負(fù)責(zé)工作的未來,把產(chǎn)品當(dāng)做自己的孩子,努力將他引向最美好的未來。努力將自己所負(fù)責(zé)的產(chǎn)品打造成為業(yè)界的標(biāo)桿(特別是自己所負(fù)責(zé)的部分,那是自己影響圈內(nèi)的事情)。 語言層面:編程語言之間是想通的,至少高級(jí)語言是想通的(相對(duì)于機(jī)器語言和匯編語言),javascript是一門特殊的語言,既可面向過程、又可面向?qū)ο蟆S腥讼矚g它弱類型語言的特性,而將其語言本身的特性發(fā)揮得淋漓盡致。有人喜歡java這類純面向?qū)ο笳Z言的嚴(yán)謹(jǐn),而使用一些功能函數(shù)將其包裝成完全的面向?qū)ο螅⒉捎盟鼘?shí)現(xiàn)了一些常見設(shè)計(jì)模式。所以說,真正要精通javascript這門語言本身,需要對(duì)其他語言的一些理解(至少是了解)。鑒于目前javascript從業(yè)人員的構(gòu)成,非計(jì)算機(jī)專業(yè)科班出身的同學(xué)可能需要努力補(bǔ)補(bǔ)課。 環(huán)境層面:javascript運(yùn)行的環(huán)境目前有瀏覽器端和服務(wù)器端,將來可能有機(jī)會(huì)到嵌入式設(shè)備中。目前大部分應(yīng)用主要集中在瀏覽器端,而瀏覽器廠商為了各自利益等各種歷史原因造成的javascript運(yùn)行環(huán)境兼容性問題,也是javascript從業(yè)人員較為頭疼的問題。 業(yè)務(wù)層面:很多其他語言有功能完善的底層API、工具包,抱歉,javascript暫時(shí)沒有(瀏覽器端、nodejs開始有雛形,希望commonJS規(guī)范能夠一路走好)。所以各種庫、框架對(duì)于一些基本業(yè)務(wù)需求都提供了類似但非相同的實(shí)現(xiàn)。一個(gè)優(yōu)秀javascript程序員需要辨別各種框架或庫中的業(yè)務(wù)實(shí)現(xiàn),或編寫出自己的業(yè)務(wù)實(shí)現(xiàn)。 綜上,要在語言、環(huán)境、業(yè)務(wù)三個(gè)方面都精通,確實(shí)是需要花費(fèi)很大的功夫。一個(gè)人的精力是有限的,其他語言積累幾十年的東西,你想一個(gè)人在javascript得到實(shí)現(xiàn)是不太可能的。術(shù)業(yè)有專攻,不是說你是javascript高手,javascript的方方面面你都能做到最好。 運(yùn)用javascript把工作做得最好,才是javascript高手! PS:這是本人對(duì)自身問題的思考和分析,之所以發(fā)到首頁來,是希望能給有同樣疑惑、同樣迷茫的同學(xué)帶來些思考。分享這篇博文花了4小時(shí)的寫作時(shí)間,如果你有同感,如果你覺得我還算用心,請(qǐng)幫忙右下角推薦一下,這樣能給更多的同學(xué)帶來一點(diǎn)思考和幫助。如果你以為我是javascript高手,只是來學(xué)習(xí)經(jīng)驗(yàn)的,卻沒有半點(diǎn)收獲,失望而歸,請(qǐng)拍磚 作者 慢熱君
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)站空間、營銷軟件、網(wǎng)站建設(shè)、利通網(wǎng)站維護(hù)、網(wǎng)站推廣。
JS高手……這個(gè)范圍太廣了,能在幾個(gè)領(lǐng)域把JS用到極致就是專家了:
Node.js 可以開發(fā)服務(wù)器、API,當(dāng)后端工程師
Hybrid、React Native 可以開發(fā)移動(dòng)應(yīng)用,當(dāng)移動(dòng)端工程師
nw.js、electron、React Desktop 可以開發(fā)桌面應(yīng)用,當(dāng)桌面應(yīng)用工程師
Canvas、OpenGL Unity 可以開發(fā)游戲,當(dāng)游戲開發(fā)工程師
Sketch、FramerJS 可以搞設(shè)計(jì)、搞原型,當(dāng)交互設(shè)計(jì)師
Ruff 可以搞嵌入式開發(fā),做嵌入式開發(fā)工程師
Cylon、Nodebots、Robotjs 可以做硬件開發(fā),做硬件工程師
…………
只有你想不到,沒有做不到,JS的生態(tài)是它最大的優(yōu)勢(shì),要說自己是JS高手,那還遠(yuǎn)得很呢。
學(xué)習(xí)JavaScript的最佳方法分享
學(xué)習(xí)新的東西是件可怕的事。對(duì)我來說,掌握一項(xiàng)新技能最大的問題是,我不知道自己懂什么。鑒于此,定個(gè)計(jì)劃,學(xué)習(xí)你感興趣的東西應(yīng)該會(huì)有用。這篇文章的主旨就是:你為學(xué)習(xí)JavaScript 制定的藍(lán)圖、路線、行動(dòng)計(jì)劃!你不必?fù)?dān)心找不到最好的資源,先整理些好的資源,再確定下一步該學(xué)什么。遵循它,一步一步來。
任務(wù)0:了解什么是JavaScript
在你真正開始學(xué)習(xí)JavaScript 之前,花一分鐘了解一下什么是JavaScript,它有哪些功能。 JavaScript不是jQuery、Flash或Java。與它們不同,它是一種獨(dú)立的編程語言。 JavaScript 是瀏覽器語言(盡管現(xiàn)在不完全是)。主要目的是給靜態(tài)頁面增加交互性。在瀏覽器里,它不會(huì)為你更換PHP或Ruby,也不會(huì)更改你的HTML或CSS;你可以把它們串在一起使用。另外,它沒有你想的那么難學(xué)。 補(bǔ)充說明:你應(yīng)該聽過jQuery,它可能是被使用最廣泛的JavaScript 庫。也許你還聽說過其他比較流行的JavaScript 框架,比如Mootools,,YUI,Dojo 等等。可以將它們統(tǒng)一看做JavaScript輔助工具集;當(dāng)你使用它們的時(shí)候,你還在寫JavaScript,但都是些很抽象的JavaScript。它會(huì)讓你事半功倍。 “你甚至可能聽到有人說,你應(yīng)該先學(xué)jQuery(或其他庫)再學(xué)JavaScript。我很尊重他們但完全不同意這種說法。先把JavaScript 學(xué)好再用其他庫,你會(huì)發(fā)現(xiàn)你會(huì)做的更好;結(jié)果就是,你會(huì)編寫更好的JavaScript。”
任務(wù)1:通過Codecademy.com站點(diǎn)的課程來學(xué)習(xí)
Codecademy是一個(gè)相對(duì)較新的網(wǎng)站,其廣告語是“最易學(xué)的編碼方法”。目前,該網(wǎng)站僅有兩個(gè)課程,“初級(jí)編程”和“JavaScript快速入門指南”。沉浸在JavaScript 中是種不錯(cuò)的體驗(yàn)。跟 Try Ruby 練習(xí)非常相似,你會(huì)學(xué)到簡短的課程、在瀏覽器里編碼,然后看結(jié)果。得到全部分?jǐn)?shù)、打開成就徽章。(Ruby,一種為簡單快捷的面向?qū)ο缶幊?面向?qū)ο蟪绦蛟O(shè)計(jì))而創(chuàng)的腳本語言。) 如果你已熟悉了另一種編程語言,你也許可以先學(xué)“JavaScript快速入門指南”;如果這是您第一次編程(HTML和CSS除外),你會(huì)發(fā)現(xiàn)“初級(jí)編程”課程相當(dāng)有用。Codecademy是一家免費(fèi)網(wǎng)站,但需要注冊(cè)。
任務(wù)2:appendTo 截屏方法
appendTo 視頻有一套特別適合初學(xué)者的截屏方法。 如果你想用正確(容易)的方法學(xué)習(xí)JavaScript,學(xué)習(xí)這些課程絕對(duì)管用。視覺訓(xùn)練總是有效的! “用我們提供的點(diǎn)播內(nèi)容、務(wù)實(shí)的訓(xùn)練解決方案來提升自己的技能。無需注冊(cè)、無需綁定、絕不忽悠。”
任務(wù)3:閱讀一本好的關(guān)于JavaScript 的說明書
一旦你通過Codecademy上的課程來學(xué)習(xí),你就會(huì)想搞到一本關(guān)于JavaScript的詳細(xì)說明書–介紹所有的類型、運(yùn)算符、控件架構(gòu)等等。 如果可以的話,我來介紹幾個(gè)好的說明書: 《再說JavaScript》 – 這本說明書可在Mozilla開發(fā)者網(wǎng)絡(luò)上找到,語言公正。這本書內(nèi)容很豐富,有很多代碼實(shí)例和文段介紹。 《Eloquent JavaScript》 – 該書由Marijn Haverbeke 編寫,可免費(fèi)在線閱讀,如果你想弄個(gè)硬拷貝可以上亞馬遜網(wǎng)站購買。它比MDN說明更詳細(xì),因?yàn)樗粌H涵蓋了JavaScript 語言,而且包括編碼風(fēng)格以及在瀏覽器里使用JavaScript。當(dāng)然,“eloquent”并非言過其實(shí)。(eloquent - 雄辯的、口若懸河的) 《Getting Good with JavaScript》 – 沒錯(cuò),這本書是我寫的,但是我介紹這本書是另有原因的。它跟我在前面介紹的兩本說明不同;在這本書里我只介紹了編程人員快速掌握編程技巧所需要的部分。此外,它還附帶超過6個(gè)小時(shí)的截屏視頻,因此,想要就去看看吧。(當(dāng)然,這本不是免費(fèi)的。)
任務(wù)4:安裝、學(xué)習(xí)Firebug(或開發(fā)人員工具)
一旦你開始在瀏覽器里使用JavaScript,就需要安裝Firebug并熟悉它的性能。Firebug是一款用于Firefox的插件,它能幫你創(chuàng)建和調(diào)試網(wǎng)頁:對(duì)網(wǎng)頁開發(fā)者來說,它就像外科醫(yī)生的‘手術(shù)刀'。如果你不用Firefox?喜歡Safari 或者Chrome怎么辦?沒問題:可以查找類似Firebug的內(nèi)置開發(fā)人員工具。 “你可以在Mac地址欄里按選項(xiàng)+命令+I 或者按快捷鍵Control + Shift + I ,來打開設(shè)計(jì)工具面板。” 通過打開你選的工具,只需在你喜歡的其中一個(gè)網(wǎng)站上點(diǎn)擊點(diǎn)擊,你就會(huì)學(xué)到很多東西。這里有一些能加速你學(xué)習(xí)的資源:FirebugFirebug網(wǎng)站和維基百科Firebug的CSS-技巧說明你應(yīng)該在Nettuts+上使用Firebug的10大理由。Firebug:從白帶到黑帶,Tuts+ Marketplace 網(wǎng)站()設(shè)計(jì)工具設(shè)計(jì)工具網(wǎng)站Google I/O 2011:由Paul Irish重組的瀏覽器設(shè)計(jì)工具Google 瀏覽器設(shè)計(jì)工具:Paul Irish 的快速開發(fā)12技巧
任務(wù)5:讀一本有關(guān)JavaScript的書籍
現(xiàn)在你已經(jīng)熟悉了些基礎(chǔ)知識(shí),但是還有很多東西要學(xué)。盡管我推薦的一些書可能會(huì)讓你‘破產(chǎn)',但你會(huì)發(fā)現(xiàn)任何時(shí)候我都會(huì)推薦4本高質(zhì)量的書:
前兩本是一般的、較深入的JavaScript 資源,它們會(huì)讓你從簡介到較深層次逐步理解;當(dāng)然,簡介里會(huì)有一些重疊的說明,但不多:剛好讓你看起來很舒服。(注:雖然這些書在亞馬遜網(wǎng)站能買到,我已經(jīng)鏈接了出版商的網(wǎng)站,因此,你能看看范例章節(jié)。) 《JavaScript高級(jí)程序設(shè)計(jì)》- Nicolas C. Zakas 編寫,這本書涵蓋了它能涵蓋的所有內(nèi)容。如果你以前看過Zakas的任何作品,你會(huì)發(fā)現(xiàn)他是個(gè)不折不扣的天才。除了涵蓋了JavaScript語言,這本書還能讓您在瀏覽器里很好的使用JavaScript。 《JavaScript 24-hour Trainer 》由Jeremy McPeak 編撰,該作者也寫過Nettuts+。它不僅僅是一本書:還附帶了一張長達(dá)四小時(shí)的教學(xué)光碟。全書共43節(jié)課,涉及編碼句法指導(dǎo)和代碼優(yōu)化。 雖然這些書非常適合編程人員學(xué)習(xí)JavaScript語言以及如何在瀏覽器中使用這些語言,但是學(xué)無止境。雖然這些書的確進(jìn)入了一些模式和實(shí)練中,我再推薦兩本我認(rèn)為有用的書。1)《JavaScript Patterns 》- Stoyan Stefanov著。我也是剛剛讀完這本書,我真希望能盡快讀完它。在讀過上面的資源之后,你可以學(xué)到如何編寫JavaScript,但是這本書會(huì)教你如何對(duì)資源進(jìn)行重組,這項(xiàng)技能很重要,并非如你想象般簡單。2)《JavaScript:The Good Parts 》- Douglas Crockford 著。該書介紹了JavaScript的優(yōu)缺點(diǎn)。
任務(wù)6:做些事情!
在學(xué)習(xí)完上述資源后,你應(yīng)該已經(jīng)嘗試了一些代碼樣本:修改代碼、整合代碼看看會(huì)怎么樣。但是是時(shí)候讓自己休息一下,做點(diǎn)東西出來了。 你能做什么呢?你能做很多東西。這里有一些意見。1) 圖片庫:顯示一套圖片縮略圖和主圖。當(dāng)用戶點(diǎn)擊縮略圖的時(shí)候,要用較大的縮略圖(不是原縮略圖)替代當(dāng)前的主圖。如果你能覆蓋縮略圖alt 標(biāo)記的標(biāo)題就獎(jiǎng)勵(lì)積分,或是在用戶一分鐘內(nèi)未點(diǎn)擊的時(shí)候進(jìn)行圖片循環(huán)。2) 待辦列表:聽起來有點(diǎn)難,我也不打算推薦你制作一個(gè)完整的待辦列表。只需要做一個(gè)文本框并在其旁放上按鈕;點(diǎn)擊按鈕的時(shí)候,已輸入的文字會(huì)在一個(gè)無序列表下面變成一個(gè)項(xiàng)目。點(diǎn)擊列表項(xiàng)目便可移除。這聽起來很容易,但有幾個(gè)陷阱,對(duì)初學(xué)者來說仔細(xì)想想還是很有好處的。3) 動(dòng)畫框:動(dòng)畫其實(shí)是小把戲而已,并不需要弄得太復(fù)雜。做一個(gè)包含了少許文本的div,其上要有若干按鈕。一個(gè)按鈕用來調(diào)整寬度,一個(gè)用來調(diào)整高度;還有一個(gè)用來調(diào)整背景顏色。關(guān)鍵是不要讓更改發(fā)生得太快,但在一秒鐘之內(nèi)。記住,Google 是你的朋友,特別是如果迄今為止你還未用JavaScript做任何動(dòng)畫的話。 我相信你能想到其他的很好的練習(xí)的計(jì)劃。當(dāng)然,學(xué)習(xí)的唯一方法是把自己從安樂窩里拽出來。“此外,在所有的技能水平上,確保JavaScript 類別在Nettuts+上有大量教程列表。”(Nettuts是一個(gè)專注于提供網(wǎng)絡(luò)開發(fā)教程的網(wǎng)站。)
任務(wù)7:開始學(xué)習(xí)如何使用JavaScript庫
如果你學(xué)到了這個(gè)地步,就會(huì)意識(shí)到有些JavaScript 編寫任務(wù)很難(或根本不能)通過跨瀏覽器的方式實(shí)現(xiàn)。最可能違規(guī)的便是過量的DOM操作,AJAX和動(dòng)畫。這也就是為什么我們需要JavaScript 庫的原因。 正如我前面提到的,一個(gè)JavaScript 庫的詳細(xì)內(nèi)容猶如減輕痛苦的蜜糖。因此,現(xiàn)在有必要來看一下。這里有大量庫供你選擇,我會(huì)讓你自己決定從哪個(gè)開始。無論是jQuery 還是Mootools,YUI 還是Dojo,它們各自的網(wǎng)站會(huì)為你提供開始學(xué)習(xí)時(shí)你所需要的一切信息。如果你覺得用得著就來試試吧。 最流行的庫: 雖然很容易得到大量的庫,你還是應(yīng)該選一個(gè)受歡迎的– 至少排名第一。 jQuery Dojo YUI MooTools Prototype
任務(wù)8:緊隨大師的步伐
有很多令人難以置信的JavaScript 天才,他們一直在做些很酷的東西,你一定不想錯(cuò)過。值得慶幸的是,我們的工作狂Siddharth 副主編已經(jīng)搞到一份33名設(shè)計(jì)人員列表,要想成為一名JavaScript 發(fā)燒友你就必須訂閱它。扔下手頭的工作,訂閱/跟隨這些設(shè)計(jì)人員。這是必須要做的。 但是,你還能做更多事情。這個(gè)公平網(wǎng)站經(jīng)常發(fā)布關(guān)于JavaScript 的信息,所以不要走開。此外,關(guān)注JavaScript Show ,一檔全世界關(guān)于JavaScript最新最大的播客。你可能還想注冊(cè)JavaScript電子周刊簡訊。 還想要更多嗎?關(guān)注Tuts+Marketplace 的JavaScript 類。
網(wǎng)站名稱:javascript高手,JAvaScript
當(dāng)前路徑:http://chinadenli.net/article22/dsdsccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、動(dòng)態(tài)網(wǎng)站、ChatGPT、網(wǎng)站設(shè)計(jì)公司、域名注冊(cè)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)