Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 亚洲成人欧美自拍,国内精品免费久久影院,91精品国产综合久久久久久

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          一篇教你如何成為java高級(jí)程序員的,建議收藏

          一篇教你如何成為java高級(jí)程序員的,建議收藏

          ection 1

          1.Core Java,就是Java基礎(chǔ)、JDK的類庫(kù),很多童鞋都會(huì)說,JDK我懂,但是懂還不足夠,知其然還要知其所以然,JDK的源代碼寫的非常好,要經(jīng)常查看,對(duì)使用頻繁的類,比如String,集合類(List,Map,Set)等數(shù)據(jù)結(jié)構(gòu)要知道它們的實(shí)現(xiàn),不同的集合類有什么區(qū)別,然后才能知道在一個(gè)具體的場(chǎng)合下使用哪個(gè)集合類更適合、更高效,這些內(nèi)容直接看源代碼就OK了

          2.多線程并發(fā)編程,現(xiàn)在并發(fā)幾乎是寫服務(wù)端程序必須的技術(shù),那對(duì)Java中的多線程就要有足夠的熟悉,包括對(duì)象鎖機(jī)制、synchronized關(guān)鍵字,concurrent包都要非常熟悉,這部分推薦你看看《Java并發(fā)編程實(shí)踐》這本書,講解的很詳細(xì)

          3.I/O,Socket編程,首先要熟悉Java中Socket編程,以及I/O包,再深入下去就是Java NIO,再深入下去是操作系統(tǒng)底層的Socket實(shí)現(xiàn),了解Windows和Linux中是怎么實(shí)現(xiàn)socket的

          4.JVM的一些知識(shí),不需要熟悉,但是需要了解,這是Java的本質(zhì),可以說是Java的母體, 了解之后眼界會(huì)更寬闊,比如Java內(nèi)存模型(會(huì)對(duì)理解Java鎖、多線程有幫助)、字節(jié)碼、JVM的模型、各種垃圾收集器以及選擇、JVM的執(zhí)行參數(shù)(優(yōu)化JVM)等等,這些知識(shí)在《深入Java虛擬機(jī)》這本書中都有詳盡的解釋,或者去oracle網(wǎng)站上查看具體版本的JVM規(guī)范.

          5.一些常用的設(shè)計(jì)模式,比如單例、模板方法、代理、適配器等等,以及在Core Java和一些Java框架里的具體場(chǎng)景的實(shí)現(xiàn),這個(gè)可能需要慢慢積累,先了解有哪些使用場(chǎng)景,見得多了,自己就自然而然會(huì)去用。

          6.常用數(shù)據(jù)庫(kù)(Oracle、MySQL等)、SQL語句以及一般的優(yōu)化

          7.JavaWeb開發(fā)的框架,比如Spring、iBatis等框架,同樣他們的原理才是最重要的,至少要知道他們的大致原理。

          8.其他一些有名的用的比較多的開源框架和包,Netty網(wǎng)絡(luò)框架,Apache common的N多包,Google的Guava等等,也可以經(jīng)常去Github上找一些代碼看看。

          section 2

          每逢長(zhǎng)假都會(huì)有很多程序員跳槽,十一、過年是跳槽黃金時(shí)刻,尤其是過年。過年的時(shí)候年終獎(jiǎng)到手,沒有了多少牽掛,年終同學(xué)同事聚會(huì)比較多,溝通的就多,各種工作機(jī)會(huì)的消息也相應(yīng)會(huì)多,所以跳槽的機(jī)會(huì)也就會(huì)多。跳槽就必不可少的要經(jīng)過面試,那么作為一個(gè)Java程序員需要準(zhǔn)備哪些面試知識(shí)呢?下面就給大家說說。

          1、集合框架:

          從上圖可以看到主要是Collection和Map的繼承類和Iterator的實(shí)現(xiàn)類,重點(diǎn)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、TreeMap、HashTable的特點(diǎn)和實(shí)現(xiàn)原理,還有多線程使用場(chǎng)景和插入多還是刪除多的時(shí)候使用什么樣的集合類效率會(huì)更高。

          2、IO框架:

          主要掌握Reader、Writer、InputStream、OutputStream的繼承類,重點(diǎn)掌握字節(jié)流(FileInputStream、FileOutputSteam、BufferedInputStream、BufferedOutputStream、DataInputStream、DataOutputStream)和字符流(FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter),并熟練運(yùn)用。還有就是NIO的工作原理要知道。

          3、String先關(guān):

          主要考察對(duì)String的處理,順帶考察多線程和算法,大公司就是喜歡考察字符串的算法,主要是字符串查找或者剔除,多線程打印字符串,超大字符串處理。

          4、異常處理:

          掌握Throwable繼承類,理解Error和Exception的區(qū)別,理解運(yùn)行時(shí)異常和編譯異常的區(qū)別,掌握異常的處理方法,掌握try、catch、finally、throw、throws關(guān)鍵字的意義,掌握try-catch-finally語句的執(zhí)行順序,掌握異常的工作原理,知道常見的異常有哪些。

          5、多線程:

          如何創(chuàng)建和啟動(dòng)一個(gè)線程,有哪些方法?多線程如何交互,線程之間的調(diào)度、讓步、合并,如何同步?生產(chǎn)和消費(fèi)者模型。還有就是掌握線程安全、線程池,死鎖。

          6、JVM知識(shí):

          掌握常見的垃圾回收機(jī)制,掌握程序計(jì)數(shù)器、堆、棧、方法區(qū)的作用,掌握類的加載機(jī)制。掌握內(nèi)存分代模型和工作原理。掌握J(rèn)VM啟動(dòng)參數(shù)常見配置,了解JVM調(diào)優(yōu)。

          7、數(shù)據(jù)結(jié)構(gòu)與算法:

          掌握常見查找和排序算法實(shí)現(xiàn)及其時(shí)間、空間復(fù)雜度。掌握常見數(shù)據(jù)結(jié)構(gòu)如鏈表、隊(duì)列、棧的基本原理和實(shí)現(xiàn)。

          section 3

          經(jīng)常主持對(duì)高級(jí)工程師和中基層Tech Leader的面試,一年下來總有百八十場(chǎng),我給大家分享一下我對(duì)于高級(jí)工程師的定位吧,雖然我主要負(fù)責(zé).Net團(tuán)隊(duì),但是對(duì)于其他語言應(yīng)該也是適用的。

          一 理論基礎(chǔ):高級(jí)工程師必須有較好的理論基礎(chǔ),既包含一些基礎(chǔ)的學(xué)科知識(shí),也要包含個(gè)人專攻方向的前沿理論。我遇到過形形色色的求職者,有人自稱精通領(lǐng)域模式,卻不明白什么是聚合根(領(lǐng)域根)。甚至有人無法列舉常用的非線性結(jié)構(gòu),更別提偽碼實(shí)現(xiàn)和應(yīng)用場(chǎng)景分析了。這些人普遍振振有詞地說, 我有豐富的開發(fā)經(jīng)驗(yàn),項(xiàng)目需要實(shí)現(xiàn)的功能我都能做出來,我只是沒有去記那些術(shù)語名詞。抱歉,你不是沒有記術(shù)語名詞,你是根本沒有潛心看技術(shù)文章的心態(tài),你所謂的學(xué)習(xí)就是看一些諸如《21天精通Java》,《7天,從菜鳥到專家》之類的垃圾書,或者看點(diǎn)視頻。那么你這個(gè)高工,比別人高在哪里呢?當(dāng)單位需要你代表團(tuán)隊(duì)和合作機(jī)構(gòu)溝通,甚至發(fā)表專欄的時(shí)候,你是不是也準(zhǔn)備跟大家講”這個(gè)東西我不知道該怎么講,大家可以看一下我的代碼“。只有代碼可秀的人是碼農(nóng),不是高工,所以我給這類求職者的綜評(píng)是中+封頂。

          二 工作經(jīng)驗(yàn):高級(jí)工程師必須有過在項(xiàng)目中擔(dān)心核心模塊開發(fā)或者整體架構(gòu)設(shè)計(jì)的經(jīng)驗(yàn),并且項(xiàng)目越高大上越好,比如你在互聯(lián)網(wǎng)企業(yè)搞過讀寫分離的實(shí)現(xiàn),你在電商搞過秒殺算法,你在電信行業(yè)做過網(wǎng)絡(luò)層,我必定會(huì)高看一眼。如果你就僅僅只是一個(gè)人全棧搞過幾個(gè)小網(wǎng)站,啪啪啪一大堆成熟框架用得倍溜,那么你只是一個(gè)裝配工。我給這類求職者的綜評(píng)是中+封頂。

          三 培養(yǎng)潛力:高級(jí)工程師必須有全局思維,如果在你過往的工作歷程中,你對(duì)你兄弟團(tuán)隊(duì)或者部門的工作情形一問三不知,甚至于一個(gè)項(xiàng)目中,你只懂自己的模塊,其他同事負(fù)責(zé)的模塊你就只會(huì)call個(gè)API,那么你就是一個(gè)很難再進(jìn)一步的人。對(duì)于企業(yè)來說,有你不多,無你不少,所以我給這類求職者的綜評(píng)是中+封頂。

          四 溝通能力:高級(jí)工程師在技術(shù)團(tuán)隊(duì)中是絕對(duì)的核心人中,小項(xiàng)目中你就是負(fù)責(zé)人,大項(xiàng)目中你也要負(fù)責(zé)帶新人,那么良好的溝通能力必不可少,如果你僅僅是自己一個(gè)人心里亮堂,你對(duì)企業(yè)的價(jià)值就要大打折扣。這類求職者,我也有錄用過不少,因?yàn)槌绦騿T木訥可以說是一種共性,在這方面沒法太挑剔,但是我給他們的綜評(píng)是高-封頂。

          section 4

          如果要應(yīng)聘高級(jí)開發(fā)工程師職務(wù),僅僅懂得Java的基礎(chǔ)知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,還必須懂得常用數(shù)據(jù)結(jié)構(gòu)、算法、網(wǎng) 絡(luò)、操作系統(tǒng)等知識(shí)。因此本文不會(huì)講解具體的技術(shù),筆者綜合自己應(yīng)聘各大公司的經(jīng)歷,整理了一份大公司對(duì)Java高級(jí)開發(fā)工程師職位的考核綱要,希望可以幫助到需要的人。

          1 Java基礎(chǔ)

          1.1 Collection和Map

          (1)掌握Collection和Map的繼承體系。

          (2)掌握ArrayList、LinkedList、Vector、Stack、PriorityQueue、HashSet、 LinkedHashSet、TreeSet、HashMap、LinkedHashMap、TreeMap、WeakHashMap、EnumMap、 TreeMap、HashTable的特點(diǎn)和實(shí)現(xiàn)原理。

          (3)掌握CopyOnWriteArrayList、CopyOnWriteArraySet、ConcurrentHashMap的實(shí)現(xiàn)原理和適用場(chǎng)景。

          1.2 IO

          (1)掌握InputStream、OutputStream、Reader、Writer的繼承體系。

          (2)掌握字節(jié)流(FileInputStream、DataInputStream、BufferedInputStream、 FileOutputSteam、DataOutputStream、BufferedOutputStream)和字符流 (BufferedReader、InputStreamReader、FileReader、BufferedWriter、 OutputStreamWriter、PrintWriter、FileWriter),并熟練運(yùn)用。

          (3)掌握NIO實(shí)現(xiàn)原理及使用方法。

          1.3 異常

          (1)掌握Throwable繼承體系。

          (2)掌握異常工作原理。

          (3)了解常見受檢異常(比如FileNotFoundException)、非受檢異常(比如NullPointerException)和錯(cuò)誤(比如IOError)。

          1.4 多線程

          (1)掌握Executors可以創(chuàng)建的三種(JAVA8增加了一種,共四種)線程池的特點(diǎn)及適用范圍。

          (2)掌握多線程同步機(jī)制,并熟練運(yùn)用。

          1.5 Socket

          (1)掌握Socket通信原理。

          (2)熟練使用多線程結(jié)合Socket進(jìn)行編程。

          2 Java虛擬機(jī)

          2.1 JVM內(nèi)存區(qū)域劃分

          (1)掌握程序計(jì)數(shù)器、堆、虛擬機(jī)棧、本地方法棧、方法區(qū)(JAVA8已移除)、元空間(JAVA8新增)的作用及基本原理。

          (2)掌握堆的劃分:新生代(Eden、Survivor1、Survivor2)和老年代的作用及工作原理。

          (3)掌握J(rèn)VM內(nèi)存參數(shù)設(shè)置及調(diào)優(yōu)。

          2.2 類加載

          (1)掌握類的加載階段:加載、鏈接(驗(yàn)證、準(zhǔn)備、解析)、初始化、使用、卸載。

          (2)掌握類加載器分類及其應(yīng)用:?jiǎn)?dòng)類加載器、擴(kuò)展類加載器、應(yīng)用程序類加載器、自定義加載器。

          3 J2EE

          (1) 掌握J(rèn)SP內(nèi)置對(duì)象、動(dòng)作及相關(guān)特點(diǎn)和工作原理。

          (2) 掌握Servlet的特點(diǎn)和工作原理。

          (3) 掌握Spring框架的IOC和AOP實(shí)現(xiàn)原理(反射和動(dòng)態(tài)代理)。

          (4) 至少掌握一個(gè)MVC框架(Spring MVC,Struts等)的工作原理,并熟練運(yùn)用。

          (5) 至少掌握一個(gè)ORM框架(Hibernate,MyBatis等)的工作原理,并熟練運(yùn)用。

          4 數(shù)據(jù)結(jié)構(gòu)與算法

          (1)掌握線性表和樹的特點(diǎn)并熟練運(yùn)用。

          (2)掌握常用排序和查找算法:插入排序(直接插入排序、希爾排序)、選擇排序(直接選擇排序、堆排序)、交換排序(冒泡排序、快速排序)、歸并排序,順序查找、二分查找、哈希查找。

          (3) 熟練運(yùn)用常見排序和查找算法思想解決編程問題。

          (4)了解幾大基本算法:貪心算法、分治策略、動(dòng)態(tài)規(guī)劃。

          5 計(jì)算機(jī)網(wǎng)絡(luò)

          (1)掌握網(wǎng)絡(luò)的分層結(jié)構(gòu),及每層的功能特點(diǎn)。

          (2)掌握TCP/IP的通信原理(三次握手、四次揮手)

          6 數(shù)據(jù)庫(kù)

          (1)掌握復(fù)雜的SQL語句編寫。

          (2)掌握數(shù)據(jù)庫(kù)的優(yōu)化(SQL層面和表設(shè)計(jì)層面)。

          (3)至少掌握一款數(shù)據(jù)庫(kù)產(chǎn)品。

          (4)熟悉高并發(fā)、大數(shù)據(jù)情況下的數(shù)據(jù)庫(kù)開發(fā)。

          7 Web技術(shù)

          (1)掌握AJAX的工作原理。

          (2)至少熟悉一款JS框架(比如JQuery)。

          8 設(shè)計(jì)模式

          (1)熟悉常見的設(shè)計(jì)模式。

          (2)會(huì)將設(shè)計(jì)模式理論應(yīng)用到實(shí)際開發(fā)中。

          9 Linux

          (1)熟練運(yùn)用Linux常見命令。

          (2)熟悉Linux操作系統(tǒng)基本概念及特點(diǎn)。

          (3)熟悉Shell腳本。

          10 操作系統(tǒng)

          (1)掌握操作系統(tǒng)的進(jìn)程管理。

          (2)了解操作系統(tǒng)的I/O。

          11 正則表達(dá)式

          (1)掌握常見正則表達(dá)式符號(hào)。

          (2)熟練運(yùn)用正則表達(dá)式解決實(shí)際問題(比如匹配電話號(hào)碼、郵箱、域名等)。

          Section 5

          h5edu 的源碼

          pure--響應(yīng)式css框架

          Hadoop大數(shù)據(jù)

          ERP系統(tǒng)開發(fā)

          linux

          freemarker

          weblogic/jobss

          webwhpere

          webservice http://www.iteye.com/topic/1135747

          bootstrap

          HTML5

          android

          css/jslever

          spring aop ssh ssm 徒手搭建

          jquery源碼分析融匯

          緩存 echacge

          并發(fā)

          頁面靜態(tài)化

          UML

          shell

          pathy

          github

          網(wǎng)絡(luò)編程

          ExtJS

          網(wǎng)絡(luò)爬蟲

          設(shè)計(jì)模式

          多線程與并發(fā)

          第三方支付/登錄http://wiki.connect.qq.com/%E7%BD%91%E7%AB%99%E6%8E%A5%E5%85%A5%E6%B5%81%E7%A8%8B

          ============================================高級(jí)工程====================================

          找一些高級(jí)題目去做

          借鑒理解源碼http://www.java1234.com/a/kaiyuan/javaWeb/

          ========================================================================================

          1.Core Java部分

          這是最基礎(chǔ)的,對(duì)于一個(gè)java高級(jí)開發(fā)/設(shè)計(jì)人員,你需要對(duì)這一部分達(dá)到精通的水平,重點(diǎn)內(nèi)容如下:

          a.面向?qū)ο缶幊趟枷?封裝繼承多態(tài)接口)

          b.字符串處理

          c.java.lang包,java.util包等常用包

          4.java異常處理

          2.Java高級(jí)部分

          a.Java I/O流

          b.Java多線程技術(shù)

          c.Java網(wǎng)絡(luò)編程

          d.Java Swing

          后兩項(xiàng)可以了解即可,如果項(xiàng)目需要可以深入研究

          3.前端基本技能

          * HTML + CSS網(wǎng)頁開發(fā)

          * JavaScript

          * Jquery

          * 瀏覽器兼容性 CSS hack(了解)

          4.熟練使用JSP + Servlet進(jìn)行開發(fā)

          5.MVC設(shè)計(jì)模式,原理,以及相關(guān)框架,如Struts

          6.SSH框架

          7.緩存技術(shù) session & cookie

          8.熟練使用一種以上Java開發(fā)工具

          Eclipse/MyEclipse/Jbuilder/Jcreator

          9.熟練使用XML

          JDOM w3c.dom SAX

          10.Java設(shè)計(jì)模式

          工廠模式,單例模式==

          11.Java反射機(jī)制

          反射的各種用法

          12.了解或熟悉 C, C++, .NET

          13.熟悉JDK的配置,環(huán)境變量

          14.數(shù)據(jù)庫(kù)oracle必學(xué),其他最好了解一種以上(mysql,sql server,access==)

          oracle:視圖,索引,存儲(chǔ)過程,觸發(fā)器,游標(biāo),包,常用函數(shù)==

          15.數(shù)據(jù)庫(kù)原理

          事務(wù)的原理,鎖機(jī)制,表連接,復(fù)雜查詢語句(工作經(jīng)驗(yàn)),性能調(diào)優(yōu),鎖表以及解決方案==

          16.JDBC,連接池

          17.Ajax,反向Ajax

          18.HTTP協(xié)議,request 和 response的原理,HTTP status(了解常用的),Https原理

          19.熟悉Linux基本命令,使用過Linux/Unix系統(tǒng),可以編寫shell腳本,可以在Linux上部署項(xiàng)目

          20.了解windows系統(tǒng)批處理腳本bat

          21.了解HTML5,最好學(xué)習(xí)過

          22.熟悉一種JS框架,如Prototype

          23.J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==

          24.熟悉ant或maven

          25.熟悉一門腳本語言,如python ,ruby

          26.了解php/ asp

          27.了解ftp協(xié)議及原理

          28.熟練使用Junit測(cè)試,熟悉Mockito等測(cè)試工具

          29,熟悉javac,javadoc,native,native2ascii等常用命令

          30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過一些的算法,下面的這個(gè)就是我曾經(jīng)研究過的一個(gè):

          http wenku baidu com /view/391db3f0941ea76e58fa04e9點(diǎn)html

          http://wenku.baidu.com/view.391db3f0941ea76e58fa04e9.html

          31.了解Flex(不學(xué)也沒關(guān)系)

          32.了解敏捷開發(fā)模式

          33.工作流workflow至少用過一種,如OSworkflow,了解原理

          34.使用過VPN了解其原理

          35.熟悉jstl表達(dá)式和el表達(dá)式

          36.熟悉webservice,WSDL,SOAP

          37.圖片處理,如圖片上傳,預(yù)覽,限制大小等,下面共享一(垃圾勿噴):

          http wenku baidu com/view/05337bfc770bf78a6529541b點(diǎn)html

          38.版本控制工具,CVS VSS SVN

          39,JSON技術(shù),JSON+AJAX

          40.分頁技術(shù),最好自己實(shí)現(xiàn)過不僅僅是用過要知道原理

          41.Java Mail

          42.Java讀寫txt,excel

          JXL技術(shù)

          43.JVM原理,JVM內(nèi)存管理,GC,Java堆棧池

          44.熟練使用下面的工具:

          office辦公軟件,word,excel,ppt等

          plsql,sqldevelop 數(shù)據(jù)庫(kù)開發(fā)工具

          outlook大公司都用

          ue編輯器

          瀏覽器控制臺(tái),調(diào)試

          SHH/PUTTY 遠(yuǎn)程

          45.UML建模工具 Rational Rose等

          46.使用log4j

          47.使用過開放API如百度地圖,騰訊街景,新浪微博等

          48.頁面靜態(tài)化技術(shù)(偽靜態(tài)頁面)UrlRwriter

          49.報(bào)表技術(shù),使用過報(bào)表制作工具,如水晶易表

          50.定時(shí)任務(wù),如Spring batch,學(xué)會(huì)自定義batch任務(wù)(不適用第三方工具)

          51.了解uuid

          52.B/s 和 C/s架構(gòu)

          53.正則表達(dá)式

          54.了解JNDI JMS

          55. ERP

          56.unicode編碼,亂碼的解決

          57.開源網(wǎng)絡(luò)編輯器,如ckEditor

          58.二進(jìn)制原理

          59,使用過,了解開源論壇框架,如discuzz

          60, GWT ,Closure框架

          61.了解 大數(shù)據(jù),云計(jì)算

          62.搜索引擎搜索技術(shù)

          63.軟件工程,項(xiàng)目管理

          1.你需要精通面向?qū)ο蠓治雠c設(shè)計(jì)(OOA/OOD)、涉及模式(GOF,J2EEDP)以及綜合模式。你應(yīng)該十分了解UML,尤其是class,object,interaction以及statediagrams。

          2.你需要學(xué)習(xí)JAVA語言的基礎(chǔ)知識(shí)以及它的核心類庫(kù)(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。

          3.你應(yīng)該了解JVM,classloaders,classreflect,以及垃圾回收的基本工作機(jī)制等。你應(yīng)該有能力反編譯一個(gè)類文件并且明白一些基本的匯編指令。

          4.如果你將要寫客戶端程序,你需要學(xué)習(xí)WEB的小應(yīng)用程序(applet),必需掌握GUI設(shè)計(jì)的思想和方法,以及桌面程序的SWING,AWT, SWT。你還應(yīng)該對(duì)UI部件的JAVABEAN組件模式有所了解。

          JAVABEANS也被應(yīng)用在JSP中以把業(yè)務(wù)邏輯從表現(xiàn)層中分離出來。

          5.你需要學(xué)習(xí)java數(shù)據(jù)庫(kù)技術(shù),如JDBCAPI并且會(huì)使用至少一種persistence/ORM構(gòu)架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(國(guó)產(chǎn)JDO紅工廠軟件)或者iBatis。

          6.你還應(yīng)該了解對(duì)象關(guān)系的阻抗失配的含義,以及它是如何影響業(yè)務(wù)對(duì)象的與關(guān)系型數(shù)據(jù)庫(kù)的交互,和它的運(yùn)行結(jié)果,還需要掌握不同的數(shù)據(jù)庫(kù)產(chǎn)品運(yùn)用,比如:oracle,mysql,mssqlserver。

          7.你需要學(xué)習(xí)JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,

          codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)還有不同的安全/認(rèn)證 API,例如JAAS(JavaAuthenticationandAuthorizationService),

          JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。

          8.你需要學(xué)習(xí)Servlets,JSP,以及JSTL(StandardTagLibraries)和可以選擇的第三方TagLibraries。

          9.你需要熟悉主流的網(wǎng)頁框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他們下面的涉及模式,如MVC/MODEL2。

          10.你需要學(xué)習(xí)如何使用及管理WEB服務(wù)器,例如tomcat,resin,Jrun,并且知道如何在其基礎(chǔ)上擴(kuò)展和維護(hù)WEB程序。

          11.你需要學(xué)習(xí)分布式對(duì)象以及遠(yuǎn)程API,例如RMI和RMI/IIOP。

          12.你需要掌握各種流行中間件技術(shù)標(biāo)準(zhǔn)和與java結(jié)合實(shí)現(xiàn),比如Tuxedo、CROBA,當(dāng)然也包括javaEE本身。

          13.你需要學(xué)習(xí)最少一種的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。

          14.你應(yīng)該學(xué)習(xí)如何利用JAVAAPI和工具來構(gòu)建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),

          JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。

          15.你需要學(xué)習(xí)一門輕量級(jí)應(yīng)用程序框架,例如Spring,PicoContainer,Avalon,以及它們的IoC/DI風(fēng)格(setter,constructor,interfaceinjection)。

          16.你需要熟悉不同的J2EE技術(shù),例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (J

          最后,想學(xué)習(xí)JAVA的小伙伴們!

          請(qǐng)關(guān)注+私信回復(fù):“學(xué)習(xí)”就可以拿到一份我為大家準(zhǔn)備的JAVA學(xué)習(xí)資料!

          面報(bào)道

          (1)AngularJS在2015

          (2)Vue.js:輕量高效的前端組件化方案

          (3)avalon:小而美,輕量級(jí)前端MVVM框架

          (4)解讀React

          (5)探索React生態(tài)圈

          (6)解讀Mobile Library背后的設(shè)計(jì)故事和理念

          資訊

          (1)外刊速遞:CACM

          (2)大數(shù)據(jù)是如何改善倫敦公共交通的

          (3)確保用正確的方法做事

          (4)創(chuàng)業(yè)公司失敗的原因

          (5)業(yè)界聲音

          (6)數(shù)據(jù)與國(guó)際組織危機(jī)處理

          (7)2015中國(guó)人工智能大會(huì)觀察

          技術(shù)

          (1)我是如何進(jìn)行異構(gòu)并行計(jì)算算法設(shè)計(jì)的

          (2)電信行業(yè)服務(wù)化實(shí)踐

          (3)如何像巫師那樣隔空操作

          百味

          (1)程序員的年齡天花板

          《專家導(dǎo)讀》──流行前端框架展示,告訴你如何選擇? 文/ 程邵非

          2014到2015年,隨著移動(dòng)互聯(lián)網(wǎng)的興起,前端框架開始從jQuery一統(tǒng)天下的局面,逐漸演變成了百花齊放的局面。從這些框架的功能和目標(biāo)來看,前端工程師的視角已經(jīng)逐漸從“兼容性”和“更好的API”轉(zhuǎn)向了“開發(fā)效率”,“表現(xiàn)和邏輯分離”,而后兩者正是更大規(guī)模軟件所需要的,這意味著前端這個(gè)崗位的職責(zé)開始發(fā)生變化,原來的前端只是負(fù)責(zé)切圖、頁面制作,而現(xiàn)在前端工程師更多涉及編程方面。

          MVC模式誕生于1970年代,在前端領(lǐng)域,從Backbone起,借鑒這一模式的框架開始進(jìn)入開發(fā)者視野,如徐飛在本專題中所展示的AngularJS便是從微軟提出的MVVM中獲取靈感的框架,國(guó)內(nèi)工程師司徒正美更毫不掩飾自己對(duì)于微軟架構(gòu)的偏愛,連avalon這個(gè)名稱都是從Vista的codename而來。Vue.js也是MVVM框架中的優(yōu)秀之作,是由華人發(fā)起的、現(xiàn)在業(yè)內(nèi)框架中為數(shù)不多的在國(guó)外技術(shù)社區(qū)頗有影響力的框架,它以輕量、語法簡(jiǎn)潔和充分利用JavaScript的特點(diǎn),贏得了不少追求極簡(jiǎn)的開發(fā)者喜愛。

          同樣是希望提供更優(yōu)秀的UI架構(gòu),F(xiàn)acebook的React提出的很晚,卻有后來居上的趨勢(shì),憑借Facebook的影響力和React Native,它的每一個(gè)新聞都極有沖擊力,它獨(dú)有的Flux跟一般意義上的MV*框架有很大區(qū)別,JSX語法也使得它的UI和代碼耦合性更強(qiáng)。其實(shí)React在各方面都可謂“叛逆”,而我了解到,在所有同時(shí)嘗試過AngularJS和React的團(tuán)隊(duì)中,幾乎一致地最終選擇了React,其中原因令人深思。

          在本期封面報(bào)道中,我們也分享了手機(jī)淘寶的前端庫(kù)Mobile Library,與前面所述的框架不同,它是一組庫(kù),而非一個(gè)框架,Mobile Library更致力于解決移動(dòng)開發(fā)中的點(diǎn)的問題,而把架構(gòu)問題的答案留給框架去解決。

          前端框架現(xiàn)在處于戰(zhàn)國(guó)時(shí)期,而實(shí)際的框架選擇,還是依賴于工程師對(duì)業(yè)務(wù)特征的判斷。架構(gòu)其實(shí)沒有對(duì)錯(cuò),唯有了解更多,才能更好地做出決策。

          訂閱咨詢:

          • 在線咨詢(QQ):2251809102
          • 電話咨詢:010-64351436
          • 郵箱咨詢:reader@csdn.net

          結(jié)合個(gè)人經(jīng)歷總結(jié)的前端入門方法,總結(jié)從零基礎(chǔ)到具備前端基本技能的道路、學(xué)習(xí)方法、資料。由于能力有限,不能保證面面俱到,只是作為入門參考,面向初學(xué)者,讓初學(xué)者少走彎路。

          互聯(lián)網(wǎng)的快速發(fā)展和激烈競(jìng)爭(zhēng),用戶體驗(yàn)成為一個(gè)重要的關(guān)注點(diǎn),導(dǎo)致專業(yè)前端工程師成為熱門職業(yè),各大公司對(duì)前端工程師的需求量都很大,要求也越來越高,優(yōu)秀的前端工程師更是稀缺。個(gè)人感覺前端入門相對(duì)容易,但是也需要系統(tǒng)地認(rèn)真學(xué)習(xí),在打好基礎(chǔ)后堅(jiān)持學(xué)習(xí),成為優(yōu)秀前端工程師也只是時(shí)間問題。

          學(xué)習(xí)任何知識(shí)最重要的都是興趣,如果經(jīng)過一段時(shí)間的學(xué)習(xí)感覺不喜歡,那可能強(qiáng)迫自己學(xué)習(xí)是很痛苦的,效果也不會(huì)好,畢竟這很可能就是以后很多年生存的技能。不過隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,前端必然是Web開發(fā)人員需要學(xué)習(xí)的知識(shí),有時(shí)候是沒有專業(yè)前端工程師一起合作的,所以即使不做專門的前端工程師,掌握基本的前端技能為工作帶來方便。

          以下是個(gè)人覺得入門階段應(yīng)該熟練掌握的基礎(chǔ)技能:

          HTML4,HTML5語法、標(biāo)簽、語義

          CSS2.1,CSS3規(guī)范,與HTML結(jié)合實(shí)現(xiàn)各 種布局、效果

          Ecma-262定義的javascript的語言核心,原生客戶端javascript,DOM操作,HTML5新增功能

          一個(gè)成熟的客戶端javascript庫(kù),推薦jquery

          一門服務(wù)器端語言:如果有服務(wù)器端開發(fā)經(jīng)驗(yàn),使用已經(jīng)會(huì)的語言即可,如果沒有服務(wù)器端開發(fā)經(jīng)驗(yàn),熟悉Java可以選擇Servlet,不熟悉的可以選PHP,能實(shí)現(xiàn)簡(jiǎn)單登陸注冊(cè)功能就足夠支持前端開發(fā)了,后續(xù)可能需要繼續(xù)學(xué)習(xí),最基本要求是實(shí)現(xiàn)簡(jiǎn)單的功能模擬,

          HTTP

          在掌握以上基礎(chǔ)技能之后,工作中遇到需要的技術(shù)也能快速學(xué)習(xí)。

          基本開發(fā)工具

          恰當(dāng)?shù)墓ぞ吣苡行岣邔W(xué)習(xí)效率,將重點(diǎn)放在知識(shí)本身,在出現(xiàn)問題時(shí)能快速定位并 解決問題,以下是個(gè)人覺得必備的前端開發(fā)工具:

          文本編輯器:推薦Sublime Text,支持各種插件、主題、設(shè)置,使用方便

          瀏覽器:推薦Google Chrome,更新快,對(duì)前端各種標(biāo)準(zhǔn)提供了非常好的支持

          調(diào)試工具:推薦Chrome自帶的Chrome develop tools,可以輕松查看DOM結(jié)構(gòu)、樣式,通過控制臺(tái)輸出調(diào)試信息,調(diào)試javascript,查看網(wǎng)絡(luò)等

          輔助工具:PhotoShop編輯圖片、取色,fireworks量尺寸,AlloyDesigner對(duì)比尺寸,以及前面的到的Chrome develop tools,

          FQ工具:lantern, 壁虎漫步

          學(xué)習(xí)方法和學(xué)習(xí)目標(biāo)

          方法:

          入門階段反復(fù)閱讀經(jīng)典書籍的中文版,書籍中的每一個(gè)例子都動(dòng)手實(shí)現(xiàn)并在瀏覽器中查看效果

          在具備一定基礎(chǔ)之后可以上網(wǎng)搜各種教程、demo,了解各種功能的實(shí)際用法和常見功能的實(shí)現(xiàn)方法

          閱讀HTML,CSS,Javascript標(biāo)準(zhǔn)全面完善知識(shí)點(diǎn)

          閱讀前端牛人的博客、文章提升對(duì)知識(shí)的理解

          善用搜索引擎

          目標(biāo):

          熟記前面知識(shí)點(diǎn)部分的重要概念,結(jié)合學(xué)習(xí)經(jīng)歷得到自己的理解

          熟悉常見功能的實(shí)現(xiàn)方法,如常見CSS布局,Tab控件等。

          入門之路

          以下是入門階段不錯(cuò)的書籍和資料

          HTML先看《HTML & CSS: Design and Build Websites》1-9章,然后《HTML5: The Missing Manual》1-4章。

          CSS先看《CSS: The Missing Manual》,然后《CSS權(quán)威指南》

          javascript先看《javascript高級(jí)程序設(shè)計(jì)》,然后《javascript權(quán)威指南》

          HTTP看HTTP權(quán)威指南

          在整個(gè)學(xué)習(xí)過程中HTML CSS JavaScript會(huì)有很多地方需要互相結(jié)合,實(shí)際工作中也是這樣,一個(gè)簡(jiǎn)單的功能模塊都需要三者結(jié)合才能實(shí)現(xiàn)。

          動(dòng)手是學(xué)習(xí)的重要組成部分,書籍重點(diǎn)講解知識(shí)點(diǎn),例子可能不是很充足,這就需要利用搜索引擎尋找一些簡(jiǎn)單教程,照著教程實(shí)現(xiàn)功能。以下是一些比較好的教程網(wǎng)址

          可以搜索各大公司前端校招筆試面試題作為練習(xí)題或者他人總結(jié)的前端面試題還有個(gè)人總結(jié)的面試題(帶參考答案)

          http://code.tutsplus.com有各種各樣的教程

          MDN也有很多教程,更重要的是里面有詳細(xì)的文檔,需要查找某個(gè)功能時(shí)在Google搜索:xxx site:https://developer.mozilla.org

          http://www5rocks.com/zh/也有很多優(yōu)質(zhì)教程

          http://www.sitepoint.com/

          http://alistapart.com/

          原生javascript是需要重點(diǎn)掌握的技能,在掌握原生javascript的基礎(chǔ)上推薦熟練掌握jQuery,在實(shí)際工作中用處很大,這方面的書籍有《Learning jQuery》或者去jQuery官網(wǎng)

          建一個(gè)https://github.com/賬號(hào),保存平時(shí)學(xué)習(xí)中的各種代碼和項(xiàng)目。

          有了一定基礎(chǔ)之后可以搭建一個(gè)個(gè)人博客,記錄學(xué)習(xí)過程中遇到的問題和解決方法,方便自己查閱也為其他人提供了幫助。也可以去http://www.cnblogs.com/或者h(yuǎn)ttp://www.csdn.net/這樣的網(wǎng)站注冊(cè)賬號(hào),方便實(shí)用

          經(jīng)常實(shí)用Google搜索英文資料應(yīng)該經(jīng)常找到來自http://stackoverflow.com/的高質(zhì)量答案,與到問題可以直接在這里搜索,如果有精力,注冊(cè)一個(gè)賬號(hào)為別人解答問題也能極大提高個(gè)人能力。

          經(jīng)典書籍熟讀之后,可以打開前面必備基礎(chǔ)技能部分的鏈接。認(rèn)真讀對(duì)應(yīng)標(biāo)準(zhǔn),全面掌握知識(shí)

          繼續(xù)提高

          有了前面的基礎(chǔ)之后,前端基本算是入門了,這時(shí)候可能每個(gè)人心中都有了一些學(xué)習(xí)方向,如果還是沒有。 可以參考前面必備技能部分提到的那兩個(gè)項(xiàng)目,從里面選一些進(jìn)行發(fā)展學(xué)習(xí)。以下是一些不錯(cuò)的方面:

          Grunt:前端自動(dòng)化工具,提高工作效率

          less css:優(yōu)秀的CSS預(yù)處理器

          bootstrap:優(yōu)秀的CSS框架,對(duì)沒有設(shè)計(jì)師的團(tuán)隊(duì)很不錯(cuò),與less結(jié)合使用效果完美

          requirejs:AMD規(guī)范的模塊加載器,前端模塊化趨勢(shì)的必備工具

          Node.js:JavaScript也可以做后臺(tái),前端工程師地位更上一步

          AngularJS:做Single Page Application的好工具

          移動(dòng)端web開發(fā):智能手機(jī)的普及讓移動(dòng)端的流量正在逐步趕超PC端

          Javascript內(nèi)存管理:SPA長(zhǎng)期運(yùn)行需要注意內(nèi)存泄露的問題

          High Performance JavaScript(Build Faster Web Application Interfaces)

          Best Practices for Speeding Up Your Web Site:重要技能

          一些個(gè)人經(jīng)歷

          LingyuCoder的學(xué)習(xí)經(jīng)歷

          上面的大神都總結(jié)得差不多了,我這里就胡扯一些吧

          工具

          chrome dev tools:前端開發(fā)調(diào)試?yán)鳎刈⒁鈳讉€(gè)功能:

          console(廢話)

          elements:元素樣式調(diào)整,很常用

          sources:代碼中添加斷點(diǎn),單步調(diào)試,以及單步調(diào)試過程中查看內(nèi)存中的對(duì)象

          watch expression:通過表達(dá)式查看當(dāng)前內(nèi)存中的值

          call stack:查看調(diào)用棧,開啟async,可以看異步調(diào)用棧(這個(gè)非常有用,尤其是ajax調(diào)試的時(shí)候)

          scope variables:作用域鏈上的變量,非常有用

          network:抓包查看每個(gè)請(qǐng)求,非常重要,前后端聯(lián)調(diào)必備

          timeline:分析渲染、js執(zhí)行等等各個(gè)階段,性能優(yōu)化利器

          emulation:模擬移動(dòng)端環(huán)境,mobile頁面開發(fā)必備

          一些插件:

          liveload: 修改頁面后自動(dòng)刷新,不用按F5

          dimensions:直接在頁面上測(cè)量的利器

          livestyle:css樣式修改后自動(dòng)起效果,不需要刷新,elements修改后也能同步到代碼中

          image tool:測(cè)量,取色

          UC二維碼:移動(dòng)端調(diào)試掃碼必備

          pagespeed,YSlow:頁面性能分析和優(yōu)化插件

          馬克飛象:優(yōu)秀的在線markdown編輯器,快速寫周報(bào),做記錄

          sublime text2:編碼方便,插件多,速度快,性能好

          emmet:提升html編碼速度必備

          sublimelinter + 各種語言的lint和hint:代碼糾錯(cuò)

          一些snippets:自動(dòng)補(bǔ)全,提升開發(fā)效率

          Intellij IDEA和WebStorm:集成開發(fā)環(huán)境,集成了各種功能,開發(fā)比sublime要方便,但會(huì)比較吃性能

          Mark Men:測(cè)量、取色、標(biāo)注利器,拿到視覺稿之后第一個(gè)打開的軟件

          GFW Fucker:我用紅杏,可以的話買個(gè)虛擬服務(wù)器當(dāng)梯子

          iHosts:非常優(yōu)秀的hosts管理軟件,輕松修改hosts,開發(fā)調(diào)試必備

          Charles:Mac 平臺(tái)最好用的抓包分析工具

          Rythem:AlloyTeam出品的代理抓包軟件,非常輕量,安裝簡(jiǎn)單,移動(dòng)端(真機(jī))開發(fā)調(diào)試很好用

          Wunderlist:一個(gè)非常不錯(cuò)的Todo List,任務(wù)、需求多的時(shí)候管理起來很方便

          技能

          前端的技能其實(shí)除了JavaScript(包括NodeJS)、HTML、CSS以外,還有很多。其實(shí)前端的技能樹很大,這里只能列一些我開發(fā)中見到的說一說

          語言基礎(chǔ)

          JavaScript:

          作用域鏈、閉包、運(yùn)行時(shí)上下文、this

          原型鏈、繼承

          NodeJS基礎(chǔ)和常用API

          CSS:

          選擇器

          瀏覽器兼容性及常見的hack處理

          CSS布局的方式和原理(盒子模型、BFC、IFC等等)

          CSS 3,如animation、gradient、等等

          HTML:

          語義化標(biāo)簽

          進(jìn)階

          JavaScript:

          異步控制(Promise、ES6 generator、Async)

          模塊化的開發(fā)方式(AMD、CMD、KMD等等)

          JavaScript解釋器的一些相關(guān)知識(shí)

          異步IO實(shí)現(xiàn)

          垃圾回收

          事件隊(duì)列

          常用框架使用及其原理

          jQuery:基于選擇器的框架,但個(gè)人認(rèn)為不能叫框架,應(yīng)該算工具庫(kù),因?yàn)椴痪邆淠K加載機(jī)制,其中源碼很適合閱讀鉆研

          AngularJS/Avalon等MVVM框架:著重理解MVVM模式本身的理念和雙向綁定的實(shí)現(xiàn),如何解耦

          underscore:優(yōu)秀的工具庫(kù),方便的理解常用工具代碼片段的實(shí)現(xiàn)

          polymer/React: 組件化開發(fā),面向未來,理解組件化開發(fā)的原理

          CSS和HTML:主要是CSS3的特性和HTML5的特性,以及瀏覽器處理的流程和繪制原理

          DOM樹、CSSOM樹、渲染樹的構(gòu)建流程及頁面渲染的過程

          解析HTML、CSS、JavaScript時(shí)造成的阻塞

          HTML5相關(guān)

          SVG及矢量圖原理

          Canvas開發(fā)及動(dòng)畫原理(幀動(dòng)畫)

          Video和Audio

          flex box布局方式

          icon fonts的使用

          常用NodeJs的package:

          koa

          express

          underscore

          async

          gulp

          grunt

          connect

          request

          一些理念:

          響應(yīng)式Web

          優(yōu)雅降級(jí)、漸進(jìn)增強(qiáng)

          dont make me think

          網(wǎng)頁可用性、可訪問性、其中的意義

          SEO搜索引擎優(yōu)化,了解搜索引擎的原理

          SPA的好處和問題

          性能優(yōu)化:

          減少請(qǐng)求數(shù)量(sprite、combo)

          善用緩存(application cache、http緩存、CDN、localstorage、sessionstorage,備忘錄模式)

          減少選擇器消耗(從右到左),減少DOM操作(DOM和JavaScript解釋器的分離)

          CSS的回流與重繪

          項(xiàng)目

          版本管理:首推Git,用過Git都不會(huì)想用SVN了

          Git:本地版本管理的機(jī)制

          SVN:遠(yuǎn)程中心的版本管理機(jī)制

          自動(dòng)化構(gòu)建:主要就是less、模板、coffee等的預(yù)處理以及對(duì)代碼壓縮和合并

          Gulp:基于流構(gòu)建,速度快、模塊質(zhì)量好

          Grunt:獨(dú)立任務(wù)構(gòu)建,速度慢,配置蛋疼,靈活性高

          預(yù)處理和模板引擎

          less:語法簡(jiǎn)單,但功能有限

          jade、ejs、velocity等模板引擎,各有各的長(zhǎng)處

          coffee:python工程師最愛,我沒用過

          環(huán)境搭建:主要是將線上代碼映射到本地,并在本地啟動(dòng)一個(gè)demo服務(wù)器,至于模擬數(shù)據(jù)的mock,見仁見智了

          本地代理:ihosts

          自動(dòng)化測(cè)試:在業(yè)務(wù)較為穩(wěn)定的情況下,可以通過自動(dòng)化測(cè)試來減少測(cè)試的事件,但需求較多的時(shí)候,維護(hù)測(cè)試用例的成本會(huì)很高,可能用自動(dòng)化測(cè)試會(huì)起到反效果

          jasmine

          mocha

          生態(tài)系統(tǒng)

          npm

          bower

          spm

          搭建一個(gè)屬于自己的博客

          git pages

          hexo

          jekyll

          未來

          Web Componets:面向未來的組件化開發(fā)方式

          HTML模板

          Shadow DOM

          Custom Elements

          HTML Import

          移動(dòng)端Native開發(fā):這也是需要了解的,以后前端工程師會(huì)經(jīng)常地和webview打交道,也要了解native開發(fā)

          其他

          有些東西不是考敲碼就能弄好的,我參與實(shí)習(xí)的時(shí)候感受到了很多,這些是我遇到的也是我感覺自己做的不好的地方

          對(duì)于業(yè)務(wù)的思考:我個(gè)人這方面非常欠缺,所以放在最前面,在敲碼前要多思考業(yè)務(wù)

          交流和溝通能力:這個(gè)非常重要,前端同時(shí)需要與項(xiàng)目經(jīng)理、產(chǎn)品、交互、后臺(tái)打交道,溝通不善會(huì)導(dǎo)致很多無用功,延緩項(xiàng)目

          知識(shí)管理、時(shí)間管理:input和output的平衡,output是最好的input。如何做好分享,參與社區(qū),做好交流,作好記錄

          對(duì)新技術(shù)的渴望,以及敢于嘗試

          入門書

          入門可以通過啃書,但書本上的東西很多都已經(jīng)過時(shí)了,在啃書的同時(shí),也要持續(xù)關(guān)注技術(shù)的新動(dòng)態(tài)。這里推幾本我覺著不錯(cuò)的書:

          《JavaScript高級(jí)編程》:可以作為入門書籍,但同時(shí)也是高級(jí)書籍,可以快速吸收基礎(chǔ),等到提升再回來重新看

          《JavaScript權(quán)威指南》:不太適合入門,但是必備,不理解的地方就去查閱一下,很有幫助

          《編寫可維護(hù)的JavaScript》和:

          《Node.js開發(fā)指南》:不錯(cuò)的Nodejs入門書籍

          《深入淺出Node.js》:Nodejs進(jìn)階書籍,必備

          《JavaScript異步編程》:理解JS異步的編程理念

          《JavaScript模式》和《JavaScript設(shè)計(jì)模式》:JavaScript的代碼模式和設(shè)計(jì)模式,將開發(fā)思維轉(zhuǎn)變到JavaScript,非常好的書

          《JavaScript框架設(shè)計(jì)》:在用輪子同時(shí),應(yīng)當(dāng)知道輪子是怎么轉(zhuǎn)起來的,講解很詳細(xì),從源碼級(jí)別講解框架的各個(gè)部分的實(shí)現(xiàn),配合一個(gè)現(xiàn)有框架閱讀,可以學(xué)到很多東西

          《Dont make me think》:網(wǎng)頁設(shè)計(jì)的理念,了解用戶行為,非常不錯(cuò)

          《CSS禪意花園》:經(jīng)久不衰的一部著作,同樣傳遞了網(wǎng)頁設(shè)計(jì)中的理念以及設(shè)計(jì)中需要注意的問題

          《高性能JavaScript》和《高性能HTML5》:強(qiáng)調(diào)性能的書,其中不只是性能優(yōu)化,還有很多原理層面的東西值得學(xué)習(xí)

          《HTML5 Canvas核心技術(shù)》:我正在讀的一本書,對(duì)于canvas的使用,動(dòng)畫的實(shí)現(xiàn),以及動(dòng)畫框架的開發(fā)都非常有幫助

          《HTTP權(quán)威指南》:HTTP協(xié)議相關(guān)必備,前端開發(fā)調(diào)試的時(shí)候也會(huì)經(jīng)常涉及到其中的知識(shí)

          《響應(yīng)式Web設(shè)計(jì)》:技術(shù)本身不難,重要的是響應(yīng)式網(wǎng)頁的設(shè)計(jì)理念,以及移動(dòng)先行的思想

          《JavaScript語言精粹》:老道的書,也是普及JavaScript的開發(fā)思維的一本好書,非常適合入門

          一些不錯(cuò)的網(wǎng)站

          github:沒啥好說的,多閱讀別人的源碼,多上傳自己的源碼,向世界各地的大牛學(xué)習(xí)

          codepen:感受前端之美的必選之地,里面有很多酷炫的效果和優(yōu)秀的插件

          echojs:快速了解js新資訊的網(wǎng)站

          stackoverflow和segmentfault:基本上各種問題都能在上面獲得解答

          google web fundamentals:每篇文章都適合仔細(xì)閱讀

          static files:開放的CDN,很好用

          iconfont:阿里的矢量圖標(biāo)庫(kù),非常不錯(cuò),支持CDN而且支持項(xiàng)目

          html5 rocks: 一個(gè)不錯(cuò)的網(wǎng)站,很多瀏覽器的新特性以及前沿的技術(shù),都能在這上面找到文章

          css tricks:如何活用CSS,以及了解CSS新特性,這里可以滿足你

          JavaScript 秘密花園 JavaScript初學(xué)必看,非常不錯(cuò)

          w3cplus:一個(gè)前端學(xué)習(xí)的網(wǎng)站,里面的文章質(zhì)量都挺不錯(cuò)的

          node school:一個(gè)不錯(cuò)的node學(xué)習(xí)網(wǎng)站

          learn git branch:一個(gè)git學(xué)習(xí)網(wǎng)站,交互很棒

          前端亂燉:一個(gè)前端文章分享的社區(qū),有很多優(yōu)秀文章

          正則表達(dá)式:一個(gè)正則表達(dá)式入門教程,非常值得一看

          阮一峰的博客和張?chǎng)涡竦牟┛停嚎焖倭私饽承┲R(shí)的捷徑,但是如果需要深挖,還需要其他的資源

          各路大牛的博客:這個(gè)太多了,就不貼了,知乎上有很全的

          各種規(guī)范的官方網(wǎng)站,不懂得時(shí)候讀規(guī)范

          歷程

          以前是做Java SSH的,半路出家做的前端,所以水平比較弱,遇到問題也比較多。基本上入門靠看書和W3C School上的教程,以及一些前端博客,如湯姆大叔的博客。以前也只是使用jQuery,原生js也沒有太多的鉆研,后來逐漸看了很多本動(dòng)物書,比如老道的語言精粹等等。從這些書中學(xué)到了很多語言層面的知識(shí)。但這顯然是不夠的,所以我經(jīng)常會(huì)去社區(qū)上看看大家在談?wù)撌裁矗缓笕タ纯聪嚓P(guān)的資料,感興趣就會(huì)多找些資料看看,或者寫一寫demo。學(xué)CSS主要就是通過這種方式。后來開始更多的關(guān)注各路大牛的博客和一些比較深的書籍,以及關(guān)注一些新的知識(shí)和框架,并且不斷地練手提交代碼到github,這樣也學(xué)到了很多知識(shí)。在實(shí)習(xí)的過程中,切身參與到實(shí)際項(xiàng)目開發(fā)之中,能學(xué)到很多在學(xué)校學(xué)不到的理念和思維,這點(diǎn)也有很大的幫助。不說了,我要去搬磚求offer了…

          MrRaindrop的學(xué)習(xí)經(jīng)歷

          應(yīng)qiu神的邀請(qǐng)分享一下前端學(xué)習(xí)經(jīng)驗(yàn),這里對(duì)前端知識(shí)體系架構(gòu)就不做總結(jié)了,各位大神們的總結(jié)已經(jīng)相當(dāng)?shù)轿涣耍揖拓暙I(xiàn)幾個(gè)個(gè)人認(rèn)為還比較有用的鏈接大家研究研究就好,然后主要分享一下我在前端學(xué)習(xí)過程中遇到的問題和總結(jié)的經(jīng)驗(yàn)教訓(xùn)吧,如果能幫到想要入門的FE初學(xué)者(我就姑且假定為本文的讀者受眾類型了),讓他們少走點(diǎn)彎路,每走一步都知道自己下一步的方向,這是最好了。各位大神的總結(jié)和分享詳見qiu神整理的FE-learning。

          先說下,前端這個(gè)東西每個(gè)人都可以有適合自己的學(xué)習(xí)方法,這篇僅作參考,寫的有點(diǎn)亂,各位湊合看。

          緣起

          我是屬于誤打誤撞進(jìn)了前端,之前一直往做游戲的方向去來著,搞過游戲網(wǎng)站,玩過游戲引擎,比如unity,unreal這種商業(yè)引擎,搗鼓了幾個(gè)游戲原型,不過自打研一進(jìn)了實(shí)驗(yàn)室,直接就被導(dǎo)師派去寫了js,導(dǎo)師給了我半個(gè)月時(shí)間讓我寫個(gè)基于百度地圖api的數(shù)據(jù)展示頁面,雖然這個(gè)時(shí)間還是相當(dāng)寬裕的,不過之前沒怎么寫過js,也不會(huì)用地圖api,于是我就一邊啃著《Javascript權(quán)威指南》(犀牛書)一邊參考實(shí)驗(yàn)室前人留下的“代碼”,總算是把功能都寫出來了。那個(gè)頁面算我的js入門作了,也是我前端學(xué)習(xí)路線的開始。

          現(xiàn)在想來,雖然指派了去做前端,但是一直做下去并做好還是得靠興趣維持,當(dāng)然前端是一個(gè)趣味性十足的技術(shù)領(lǐng)域,而且社區(qū)每天都很“熱鬧”。

          項(xiàng)目,下一個(gè)項(xiàng)目

          我個(gè)人認(rèn)為前端的學(xué)習(xí),初學(xué)階段你可以完全脫離開書本,以項(xiàng)目驅(qū)動(dòng)。雖然我個(gè)人是從犀牛書開始啃的,不過如果你沒有充足的時(shí)間,或者覺得啃大部頭乏而無味的話,還是別像我這樣。當(dāng)然了如果決定啃書最好是把書里的例子都跟著敲一遍的。我上研之前沒接觸過js,4月份還沒開學(xué)呢就被直接被導(dǎo)師甩了個(gè)百度地圖api的項(xiàng)目到臉上,接著就是各種ERP,地圖數(shù)據(jù)展示,雖然換著花樣來一點(diǎn)不重樣,不過基本上都是前端的活,SSH和android開發(fā)也打過醬油,整個(gè)實(shí)驗(yàn)室就我一個(gè)人寫前端敢信?富客戶端SPA時(shí)代的后端就是一個(gè)restful接口,代碼量基本都在前端啊,寫的我一個(gè)人怎一個(gè)爽字了得…期間跟著導(dǎo)師感受了一把創(chuàng)業(yè),每天從7點(diǎn)搞到晚上10點(diǎn),也算是經(jīng)歷了一段快速成長(zhǎng)期。

          掌握一門技術(shù)先掌握它的大體框架,想一個(gè)能實(shí)現(xiàn)的點(diǎn)子,做一個(gè)能跑就行的demo,再去完善它的細(xì)節(jié),等到demo完成了,對(duì)這門技術(shù)有了一個(gè)感性的認(rèn)識(shí),再去啃書,收獲會(huì)大很多。我從開始原生js寫到j(luò)query,再到extjs,再到angularjs,從導(dǎo)師指定技術(shù),到自己做技術(shù)選型,一個(gè)項(xiàng)目接著一個(gè)項(xiàng)目的練,就跟打怪升級(jí)似的。當(dāng)然沒有項(xiàng)目就去自己創(chuàng)造項(xiàng)目,動(dòng)手實(shí)現(xiàn)自己的想法是件有樂趣和成就感的事。

          收集癖和知識(shí)管理

          前端學(xué)習(xí)有個(gè)特點(diǎn),很多東西都很零碎,分散,需要你自己去整理、歸納和總結(jié)。在微博、知乎上follow了眾多的大神,你不僅僅是為了聽八卦,大神們的只言片語有時(shí)候留下的是無盡的余味,很有可能一個(gè)不經(jīng)意提到的一個(gè)詞就成為你下一個(gè)學(xué)習(xí)的目標(biāo)。收集這些信息,善用google,提問,思考。就像游戲里的收集要素,前端學(xué)習(xí)也是充滿搜集要素的一個(gè)“游戲”,只不過你需要一個(gè)知識(shí)管理工具來充當(dāng)物品欄和倉(cāng)庫(kù),我所知道的大牛們無一不是知識(shí)管理工具的重度使用者。以前用的oneNote,那時(shí)候還沒綁定到云存儲(chǔ),現(xiàn)在基本上用evernote,筆記已經(jīng)累計(jì)到1200+篇。書簽一直打算用delicious,因?yàn)樗腔趖ag管理的,但一直沒用起來。當(dāng)然重點(diǎn)不在于這些工具,但是趁手的工具可以提高你的學(xué)習(xí)效率。最關(guān)鍵當(dāng)然是隨時(shí)保持旺盛的學(xué)習(xí)欲望,你的目標(biāo)是了解有關(guān)前端的一切(當(dāng)然不是所有都要掌握,因?yàn)楫吘鼓愕木τ邢蓿椰F(xiàn)實(shí)的說這也不太可能)。

          跟對(duì)神

          這個(gè)可控性貌似不大…跟對(duì)老大這個(gè)就不多說了,一定程度要看造化。不過話說回來,多跟身邊的高手交流是王道,這個(gè)高手不一定要多高,但是一定要對(duì)技術(shù)有熱情。研一的時(shí)候熱情高漲,每天7點(diǎn)進(jìn)實(shí)驗(yàn)室門,然后發(fā)現(xiàn)有個(gè)家伙居然比我還早到。后來發(fā)現(xiàn)這家伙上午就走了,下午又來了,而且導(dǎo)師對(duì)此習(xí)以為常,原來這家伙晚上不睡覺通宵寫代碼,上午才跑回去睡。后來經(jīng)常和這位神討論問題,每次感覺經(jīng)驗(yàn)值蹭蹭蹭的往上漲。然后實(shí)驗(yàn)室還有一位神,被前面這位通宵神形容為“只能望其項(xiàng)背,一直在追趕,從來沒趕上”,兩位神的特點(diǎn)都是什么都了解一點(diǎn),所以什么都能跟你討論得起來,我有段時(shí)間做了個(gè)讀書計(jì)劃,從c/c++到vc/mfc再到unix網(wǎng)絡(luò)編程,最后一路看到j(luò)ava核心技術(shù)和MSDN上的C#編程指南,和神們也能扯得很high了。

          總之就是這兩位神把我拉進(jìn)了坑,或者說從一個(gè)坑跳進(jìn)另一坑,雖然兩位神都不是搞前端的,不過技術(shù)之間總有相通之處。

          讀書

          讀書,多讀書,讀好書。在劉未鵬的博客里看到過一個(gè)公式,你第一個(gè)月的工資等于之前買過(讀過)的技術(shù)書價(jià)格總和(這里說的技術(shù)書指那些經(jīng)典的公認(rèn)的好書)。討論這個(gè)公式的正確性似乎沒什么意義,然而它的合理性是毋庸置疑的,那就是多讀經(jīng)典技術(shù)書。最極端的一個(gè)例子,google的徐宥在我的大學(xué)里面說他掃蕩了圖書館的整個(gè)TP312書架…對(duì)于前端的經(jīng)典書籍,后面列了一個(gè)我收集的前端書列(如果有遺漏的前端經(jīng)典好書,還請(qǐng)留言告訴我),有條件可以嘗試刷一遍這些書,我也是在找完整的時(shí)間去啃完它們。之前說的,前端知識(shí)點(diǎn)松散,收集零散的知識(shí)點(diǎn),從博客里快速學(xué)習(xí)等,這些只是前端學(xué)習(xí)的一個(gè)方面,如果你要想深入理解一個(gè)知識(shí)體系,了解它的來龍去脈,對(duì)它建立系統(tǒng)認(rèn)識(shí),讀經(jīng)典書還是必不可少的。

          我從最開始啃完犀牛書,然后接著去看了其他一些和前端干系不大的經(jīng)典技術(shù)書,再后來通過實(shí)驗(yàn)室的項(xiàng)目和自己弄的一些小項(xiàng)目逐漸對(duì)前端領(lǐng)域比較上路以后,又看了《Javascript模式》、《Javascript設(shè)計(jì)模式》、《編寫可維護(hù)的Javascript》,后來了解到node并開始用node搞點(diǎn)小玩意兒,又看了本《NodeJS up and run》和《Mongodb權(quán)威指南》,不過感覺前者略坑。那會(huì)兒樸靈那本深入淺出(曬書么么噠)還沒出,后來出了就去圖書館借來看完,這么看下來感覺還不錯(cuò),不過感覺看的還是偏少了,還需要繼續(xù)刷(參照上面的書列)。

          前端的定位

          前端的定位關(guān)乎到你需要吸收什么樣的知識(shí)和技能,決定在技術(shù)世界里你對(duì)什么需要格外敏感。如果你認(rèn)為前端僅僅停留在切頁面,實(shí)現(xiàn)交互和視覺的要求,那你對(duì)前端的認(rèn)識(shí)還停留在初級(jí)階段。阿里終面的時(shí)候我問了考官這么個(gè)問題:前端技術(shù)日新月異,范圍越擴(kuò)越寬,標(biāo)準(zhǔn)越來越豐富,似乎任何一個(gè)觸角都能伸出很遠(yuǎn)。怎么給前端一個(gè)合適的定位?考官給我分析了半天,然后總結(jié)成一句話,就是用戶和網(wǎng)站的聯(lián)結(jié)者,用戶體驗(yàn)的創(chuàng)造者(原話不是這樣,但大體是這個(gè)意思)。也就是說前端的終極目標(biāo)其實(shí)就是創(chuàng)造用戶體驗(yàn),提升用戶體驗(yàn),以用戶體驗(yàn)為中心。不管你是從交互設(shè)計(jì)上下手,還是從性能優(yōu)化出發(fā),或者改進(jìn)工作流提升工作流效率,最終都是為了創(chuàng)造和提升用戶體驗(yàn),最終都要體現(xiàn)到用戶體驗(yàn)這一點(diǎn)上來。我認(rèn)為這個(gè)總結(jié)非常有道理(當(dāng)然“用戶體驗(yàn)”這個(gè)詞太寬泛了,并且不僅僅是前端工程師的范疇,比如開發(fā)后臺(tái)的時(shí)候?qū)σ粋€(gè)數(shù)據(jù)處理過程進(jìn)行優(yōu)化,提升了整體性能,這也是對(duì)用戶體驗(yàn)的一個(gè)提升)。

          現(xiàn)在的前端工程師做到一定階段不可避免會(huì)接觸到很多比切頁面、實(shí)現(xiàn)視覺要求、實(shí)現(xiàn)交互等更深入的問題,比如前端自動(dòng)化、圖像編程、性能優(yōu)化等等,再往后推一點(diǎn)就是PHP/JSP/ASP/nodeJs,過去后端模板一般屬于后端的范疇,現(xiàn)在隨著前端架構(gòu)的演進(jìn),可能會(huì)讓你去寫后端模板的代碼,需要用到后端語言(PHP/Java/C#等),這就是所謂大前端(然而這與前端的定位并不是相背離的,大前端處理的依然是與用戶接觸的部分,仍然是對(duì)用戶體驗(yàn)的優(yōu)化)。可能最常見或者被談?wù)撟疃嗟木褪莕ode,其實(shí)這幾種技術(shù)選型都可以,bat三家據(jù)說百度用PHP比較多,阿里用node比較多。

          玉伯在他的博客里提過所謂全端是橫向的,全棧是縱向的。全端即所有的終端說白了都是前端,因?yàn)槎缄P(guān)乎到用戶體驗(yàn),直接和用戶接觸。適應(yīng)多終端的開發(fā),要求你在web前端的基礎(chǔ)上,可能還要去擴(kuò)展android開發(fā)和ios開發(fā)的知識(shí),好在由于hybrid開發(fā)方式的流行,對(duì)使用native語言開發(fā)的技能會(huì)要求的不那么深入。

          全棧可以說是最適合初創(chuàng)公司的一種發(fā)展類型,廣義上認(rèn)為是從前端干到后端,從開發(fā)干到運(yùn)維,這種就不說了,一般人應(yīng)該不會(huì)想要去往這個(gè)方向發(fā)展,想要成為這種意義上的full-stack dev的,可能用不著來看我這篇文章了;而狹義上的全棧特指使用js語言從前端寫到架設(shè)在nodeJs上的后端,前后端統(tǒng)一語言,統(tǒng)一編程模型,甚至公用同一套代碼。更多了解全棧開發(fā)可以看看玉伯這篇說說全棧工程師。

          以上是我對(duì)前端以及衍生出來的技術(shù)路線的一些淺薄理解,學(xué)習(xí)一個(gè)領(lǐng)域掌握它的整體上的走向和趨勢(shì)還是挺重要的。另外如果想要對(duì)前端學(xué)習(xí)方向、職業(yè)成長(zhǎng)路徑有一個(gè)整體的認(rèn)識(shí),推薦看看拔赤總結(jié)的這篇前端開發(fā)十日談。

          最后

          貢獻(xiàn)幾個(gè)對(duì)前端學(xué)習(xí)、面試有幫助的鏈接:

          前端面試問題合集(Front-end-Developer-Interview-Questions)(https://github.com/darcyclarke/Front-end-Developer-Interview-Questions)

          前端技能匯總(JacksonTian)(https://github.com/JacksonTian/fks)

          另一張前端技能匯總圖(http://www.f2er.info/)

          前端那點(diǎn)事兒(書列)(http://book.douban.com/doulist/13701898/)

          byr論壇yiyizym的建議

          與grunt相比,學(xué)習(xí)gulp會(huì)比較簡(jiǎn)單

          做SPA的話,推薦backbone.js和 backbone.marionette.js

          FQ不用折騰,花十塊錢買一個(gè)月的 紅杏。

          把基礎(chǔ)打扎實(shí)了再學(xué)這些都沒問題。

          html 沒什么好說的,有空學(xué)學(xué)html5。

          css 盡量看文檔 ,因?yàn)楹芏嘀形馁Y料都各執(zhí)一辭,看多了反而會(huì)糊涂。

          有個(gè)網(wǎng)站可以查找html/css標(biāo)簽、屬性在各個(gè)瀏覽器中的支持情況,挺好用的。

          javascript 就看 javascript高級(jí)程序設(shè)計(jì) 。不過這么厚的書看過就會(huì)忘。對(duì)javascript核心概念的講解:對(duì)象/原型鏈/ 構(gòu)造函數(shù)/執(zhí)行上下文/作用域鏈/閉包/this,這里有篇不錯(cuò)的文章。

          有閑情可以看看 ecmascript 6,計(jì)劃明年6月就發(fā)布啦。阮一峰的網(wǎng)站有入門資料。

          jquery 有很多 API,這個(gè)網(wǎng)站可以方便查到。有時(shí)間弄清楚jquery deferred 的用法。

          多給 sublimetext 裝插件,比如說檢查代碼錯(cuò)誤的


          主站蜘蛛池模板: 亚洲一区二区三区在线观看蜜桃| 水蜜桃av无码一区二区| 一区二区三区91| 亚洲综合无码一区二区痴汉| 日本美女一区二区三区 | 日本一区二区三区在线观看| 国产视频一区二区在线观看| 久久青草精品一区二区三区| 一区二区三区在线播放视频| 无码一区二区三区免费视频| 亚洲AV一区二区三区四区| 日韩一区二区视频| 无码国产精品一区二区免费式直播| 好看的电影网站亚洲一区| 国产免费无码一区二区| 中文字幕在线观看一区二区| 亚洲国产专区一区| 岛国精品一区免费视频在线观看| 波霸影院一区二区| 一区二区中文字幕在线观看| 影院无码人妻精品一区二区| 日本一区二区在线不卡| 精品福利一区二区三区精品国产第一国产综合精品 | 美女视频免费看一区二区 | 成人精品一区二区三区中文字幕| 亚洲一区二区三区在线视频| 精品女同一区二区| 久久亚洲中文字幕精品一区| 国模私拍一区二区三区| 无码国产精品一区二区免费vr | 亚洲丰满熟女一区二区v| 中文字幕无码不卡一区二区三区 | 日韩精品电影一区亚洲| 国产女人乱人伦精品一区二区| 性色av闺蜜一区二区三区| 国产精品va一区二区三区| 亚洲一区精品伊人久久伊人| 久久久久无码国产精品一区| 91亚洲一区二区在线观看不卡| 国产成人久久一区二区不卡三区| 国产一区二区在线视频播放|