我是學java的,給你推薦幾本,《Java核心編程》,《Java編程思想》《Java高手真經》,至於學習視頻呢,我認為可以到siki學院看下。老師講的都很用心。
『貳』 IDEA中運行scala報錯
Scala是一門現代的多範式編程語言,志在以簡練、優雅及類型安全的方式來表達常用編程模式。它平滑地集成了面向對象和函數語言的特性。Scala是面向對象的:Scala是一個純面向對象語言,在某種意義上來講所有數值都是對象。對象的類型和行為是由class和trait來描述的。Class的抽象可由子類化和一種靈活的基於mixin的組合機制(它可作為多重繼承的簡單替代方案)來擴展。Scala是函數式的:Scala還是一個函數式語言,在某種意義上來講所有函數都是數值。Scala為定義匿名函數提供了一種輕量級的語法,它支持高階(higher-order)函數、允許函數嵌套、支持局部套用(currying)。Scala的case類及其內置支持的模式匹配模型代數類型在許多函數式編程語言中都被使用。Scala是靜態類型的:Scala配備了一套富有表現力的類型系統,該抽象概念以一種安全的和一致的方式被使用。Scala是可擴展的:Scala的設計承認了實踐事實,領域特定應用開發通常需要領域特定語言擴展。Scala提供了一個獨特的語言組合機制,這可以更加容易地以類庫的形式增加新的語言結構:兩者結合使用可方便地定義新語句,無需擴展語法,也無需使用類似宏的元編程工具。任何方式可以被用作中綴(infix)或後綴(postfix)操作符閉包按照所期望的類型(目標類型)自動地被構造Scala可與Java和.NET進行互操作:Scala設計時就考慮了與流行編程環境良好交互,如Java2運行時環境(JRE)和.NET框架(CLR)。特別是與主流面向對象語言,如Java和C#盡量無縫交互。Scala有像Java和C#一樣的編譯模型(獨立編譯,動態裝載類),允許訪問成千上萬的高質量類庫。對於某些開發者來說,這些刺激已足以引誘他們脫離Java進入Scala世界。但對另外一些開發者來說,它們並沒有為Java世界裡當前正在演繹的日復一日的編程活動提供好處。在一篇名為「Scala:集Ruby和Java之所長」的博文中,Ian講述了或許不應在Java和Scala之間做出選擇,相反,相對於選擇其它語言如Ruby,選擇使用Java和Scala的混合物是的另一種選擇:許多開發者熱愛Ruby,不過他們不能從中獲取足夠的東西。它可能是最具侵略性的語言之一,因為Java才是第一個到場的。人們總是引證Ruby的靈活而可擴展的語法、閉包等特性,以及其代碼如何簡明和具有表現力。例如,你可以用一個簡單語法創建一個Map(Ruby稱之為「hashes」,盡管hashtable只是map一種可能的實現方式),如:numberMap={"one"=>1,"two"=>2,"three"=>3}Java與之對等的語句顯得頗為冗長:MapnumberMap=newHashMap();numberMap.put("one",1);numberMap.put("two",2);numberMap.put("three",3);那麼Scala怎麼樣呢?讓我們看看Scala中map的例子:varnumberMap=Map("one"->1,"two"->2,"three"->3)你會注意到它看上去非常類似等價的Ruby代碼,但是這兒有一些重要區別。特別是,就像Java,Scala編譯器知道numberMap使用String作為鍵,Integer作為值。與Java不同的是,你無需告知,它本身就能領會這一點!這稱為「類型推理(typeinference)」。這意味著如果你試圖給numberMap增加一個新的鍵值對,但是要使用Integer作為鍵,String作為值,Scala將在你試圖編譯它時立刻報錯(或者你的IDE將立刻警告你)。使用Ruby,只有當你運行你的軟體並試圖從該Map中找回該鍵和值時,得到的分別是Integer和String而不是所期望的String和Integer,這時才會導致報錯。過分強調編譯時類型檢查節省多少多少時間是困難的,但它消除了所有類在執行時將會產生的bug。Scala給你帶來了這一好處,而且代碼並不繁瑣。為更進一步在一個小例子中展現代碼量的縮減,TedNeward研究了開發同一個類,用Java、C#、VirualBasic、Ruby和Scala的區別。請參考其博文Scalapt2:簡短。Ian繼續指出:Scala還有一連串其它好的Ruby特性(Java所缺乏的),包括閉包,以及非常適合「領域特定語言」的可塑性語法。它擁有所有這些特性,而且結合了靜態類型好處。DavidMacIver在其博文說正經的,為什麼選擇Scala?中分享了他對於面向對象編程、面向模塊編程、靜態類型、函數編程以及該語言中他所喜歡的未言明特性的觀點。他補充道:Scala離完美還差得遠。它有一些語法缺陷,一些由Java帶來的問題,一個有適度問題的編譯器以及一堆你記不住的瑣碎特性和邊界情況(edgecase)。然而,我發現這些問題除了煩你之外並不真正產生什麼後果。如果只是想坐下來書寫好的代碼,該語言的核心是強大的和非常有用的。為了提供一個均衡的觀點,David在其博文中接著探討了為什麼不選Scala,文中他闡述了一些邊界情況(edgecase)。作為總結,David有如下評論:總而言之,我發現這些只是增加了一些煩心事。它仍是我最喜歡的JVM語言,但是你的看法將取決於你怎樣擱置那些對你來說可能是更重要的需要優先考慮的事情。為了展現Scala是一門不斷成熟的語言,ProgramminginScala一書很快將會出版。如果等不及,Artima網站上有該書PDF格式的預印版。
『叄』 GitHub 上有哪些值得推薦的開源電子書
語言無關類
操作系統
鳥哥的Linux私房菜 (簡體)
Linux 系統高級編程
The Linux Command Line (中英文版)
Linux 設備驅動 (第三版)
深入分析Linux內核源碼
UNIX TOOLBOX
Docker中文指南
Docker —— 從入門到實踐
FreeRADIUS新手入門
Mac 開發配置手冊
FreeBSD 使用手冊
Linux 命令行(中文版)
一步步搭建物聯網系統
Nginx開發從入門到精通 (淘寶團隊出品)
Git教程 (本文由 @廖雪峰 創作,如果覺得本教程對您有幫助,可以去 iTunes 購買)
git – 簡易指南
猴子都能懂的GIT入門
Git 參考手冊
Pro Git
Git Magic
GotGitHub
Git Community Book 中文版
Mercurial 使用教程
HgInit (中文版)
沉浸式學 Git
Git-Cheat-Sheet (感謝 @flyhigher139 翻譯了中文版)
GitHub秘籍
NoSQL資料庫筆談 (PDF)
Redis 設計與實現
Redis 命令參考
帶有詳細注釋的 Redis 3.0 代碼
帶有詳細注釋的 Redis 2.6 代碼
The Little MongoDB Book
The Little Redis Book
Neo4j 簡體中文手冊 v1.8
Neo4j .rb 中文資源
MySQL索引背後的數據結構及演算法原理
持續集成(第二版) (譯言網)
讓開發自動化系列專欄
追求代碼質量
selenium 中文文檔
Joel談軟體
約耳談軟體(Joel on Software)
關於瀏覽器和網路的 20 項須知
前端知識體系
瀏覽器開發工具的秘密
Chrome 開發者工具中文手冊
Chrome擴展開發文檔
Grunt中文文檔
移動Web前端知識庫
正則表達式30分鍾入門教程
前端開發體系建設日記
移動前端開發收藏夾
jsON風格指南
HTTP 介面設計指北
前端資源分享(一)
前端資源分享(二)
前端代碼規范 及 最佳實踐
w3school教程整理
大數據/數據挖掘/推薦系統/機器學習相關資源
程序員編程藝術
每個程序員都應該了解的內存知識(譯)【第一部分】
取悅的工序:如何理解游戲 (豆瓣閱讀,免費書籍)
OpenWrt智能、自動、透明翻牆路由器教程
awk程序設計語言
C++ 並發編程指南 (@傅海平ICT)
Linux C編程一站式學習 (宋勁杉, 北京亞嵌教育研究中心)
CGDB中文手冊
100個gdb小技巧
100個gcc小技巧
ZMQ 指南
How to Think Like a Computer Scientist (中英文版)
跟我一起寫Makefile(PDF)
GNU make中文手冊
GNU make 指南
Google C++ 風格指南
C/C++ Primer (by @andycai)
簡單易懂的C魔法
Cmake 實踐 (PDF版)
C++ FAQ LITE(中文版)
C++ Primer 5th Answers
學習CSS布局
通用 CSS 筆記、建議與指導
CSS參考手冊
Emmet 文檔
前端代碼規范 (騰訊alloyteam團隊)
Dart 語言導覽
Fortran77和90/95編程入門
實時 Java 系列
Apache Shiro 用戶指南
使用 Eclipse 和 Java SE 6 創建獨立 Web Services 應用程序
第 1 部分: Web Services 服務端應用程序
第 2 部分: Web 服務客戶端應用程序
JavaServer Faces 1.2 入門
第 1 部分: 構建基本應用程序
第 2 部分: JSF 生命周期、轉換、檢驗和階段監聽器
用 Eclipse Europa 進行 Web 開發
第 1 部分: Eclipse Java EE
第 2 部分: PHP 開發工具
第 3 部分: Ruby Development Toolkit 和 RadRails
使用 JavaServer Faces 構建 Apache Geronimo 應用程序
第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 構建基本的應用程序
第 2 部分: 在 JavaServer Faces 中使用 Tomahawk
第 3 部分: 使用 ajax4jsf 添加 Ajax 功能
第 4 部分: 使用 Apache Trinidad 組件擴展 JSF
第 5 部分: 將 JSF 應用程序與 Spring 集成
Apache Geronimo 和 Spring 框架
第 1 部分: 開發方法學
第 2 部分: 構建第一個應用程序
第 3 部分: 集成 DAO 與 ORM
第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow
第 5 部分: Spring MVC
第 6 部分: Spring MVC:使用 Web 視圖技術
終極 mashup —— Web 服務和語義 Web
第 1 部分: 使用與組合 Web 服務
第 2 部分: 管理 Mashup 數據緩存
第 3 部分: 理解 RDF 和 RDFs
第 4 部分: 創建本體
第 5 部分: 切換 Web 服務
Jersey 2.x 用戶指南
MyBatis中文文檔
Google JavaScript 代碼風格指南
Airbnb JavaScript 規范
JavaScript 標准參考教程(alpha)
Javascript編程指南 (源碼)
javascript 的 12 個怪癖
JavaScript 秘密花園
JavaScript核心概念及實踐 (PDF) (此書已由人民郵電出版社出版發行,但作者依然免費提供PDF版本,希望開發者們去購買,支持作者)
《JavaScript 模式》翻譯,此書中文版有售,但是紙質書翻譯的還沒有這個版本翻譯的好
命名函數表達式探秘 (注:原文由為之漫筆翻譯,原始地址無法打開,所以此處地址為我博客上的備份)
學用 JavaScript 設計模式 (開源中國)
深入理解JavaScript系列
ECMAScript 6 入門 (作者:阮一峰)
jQuery
jQuery 解構
簡單易懂的JQuery魔法
How to write jQuery plugin
Node.js
Node入門
七天學會NodeJS
Nodejs Wiki Book (繁體中文)
express.js 中文文檔
koa 中文文檔
使用 Express + MongoDB 搭建多人博客
Express框架
nodejs文檔
Node.js 包教不包會
Learn You The Node.js For Much Win! (中文版)
Node debug 三法三例
underscore.js
Underscore.js中文文檔
backbone.js
backbone.js入門教程 (PDF)
Backbone.js入門教程第二版
Developing Backbone.js Applications(中文版)
AngularJS
AngularJS最佳實踐和風格指南
AngularJS中譯本
AngularJS入門教程
構建自己的AngularJS
在Windows環境下用Yeoman構建AngularJS項目
zepto 簡明中文手冊
Sea.js
Hello Sea.js
CoffeeScript
CoffeeScript Cookbook
The Little Book on CoffeeScript中文版
ExtJS
Ext4.1.0 中文文檔
Chrome擴展及應用開發
JavaScript入門教程
PHP調試技術手冊(PDF)
XDebug 2中文手冊(譯) (CHM)
PHP之道
PHP 最佳實踐
PHP安全最佳實踐
深入理解PHP內核
PHP擴展開發及內核應用
CodeIgniter 用戶指南
Laravel4 中文文檔
Laravel 入門
Symfony2中文文檔 (未譯完)
Phalcon中文文檔(翻譯進行中)
YiiBook幾本Yii框架的在線教程
簡單易懂的PHP魔法
swoole文檔及入門教程
iOS開發60分鍾入門
iOS7人機界面指南
Google Objective-C Style Guide 中文版
iPhone 6 屏幕揭秘
Apple Watch開發初探
馬上著手開發 iOS 應用程序
網易斯坦福大學公開課:iOS 7應用開發字幕文件
Android Design(中文版)
Google Android官方培訓課程中文版
Android學習之路
小白的Python教程
簡明Python教程
零基礎學Python
Python 2.7 官方教程中文版
Python 3.3 官方教程中文版
深入 Python 3
PEP8 Python代碼風格規范
Google Python 風格指南 中文版
Python入門教程 (PDF)
Python的神奇方法指南
笨辦法學 Python (PDF版下載)
Django 文檔中文版
Django 最佳實踐
The Django Book 中文版
web.py 0.3 新手指南
Web.py Cookbook 簡體中文版
Dive Into Python 中文版
Bottle 文檔中文版 (需翻牆)
Flask 文檔中文版
Jinja2 文檔中文版
Werkzeug 文檔中文版
Flask之旅
Introction to Tornado 中文翻譯
Python自然語言處理中文版 (感謝陳濤同學的翻譯,也謝謝 @shwley 聯系了作者)
Python 繪圖庫 matplotlib 官方指南中文翻譯
Scrapy 0.25 文檔
ThinkPython
Ruby 風格指南
Rails 風格指南
笨方法學 Ruby
Ruby on Rails 指南
Ruby on Rails 實戰聖經
Ruby on Rails Tutorial 原書第 2 版 (本書網頁版免費提供,電子版以 PDF、EPub 和 Mobi 格式提供購買,僅售 9.9 美元)
編寫Ruby的C拓展
Ruby 源碼解讀
Shell腳本編程30分鍾入門
Go編程基礎
Go入門指南
學習Go語言 (PDF)
Go Web 編程 (此書已經出版,希望開發者們去購買,支持作者的創作)
Go實戰開發 (當我收錄此項目時,作者已經寫完第三章,如果讀完前面章節覺得有幫助,可以給作者捐贈,以鼓勵作者的繼續創作)
Network programming with Go 中文翻譯版本
實戰 Groovy 系列
一份其實很短的 LaTeX 入門文檔
一份不太簡短的 LATEX 2ε 介紹 (PDF版)
ANSI Common Lisp 中文翻譯版
Lua編程入門
Real World Haskell 中文版
R語言忍者秘笈
Scala課堂 (Twitter的Scala中文教程)
Effective Scala(Twitter的Scala最佳實踐的中文翻譯)
Scala指南
The Swift Programming Language 中文版
Modern Perl 中文版
Perl 程序員應該知道的事
笨辦法學Prolog
Vim中文文檔
笨方法學Vimscript 中譯本
Vim中文文檔
編譯原理(紫龍書)中文第2版習題答案
把《編程珠璣》讀薄
Effective C++讀書筆記
Golang 學習筆記、Python 學習筆記、C 學習筆記 (PDF)
Jsoup 學習筆記
學習筆記: Vim、Python、memcached
圖靈開放書翻譯計劃–C++、Python、Java等
蒂姆·奧萊利隨筆 (由譯言網翻譯,電子版免費)
Octave 入門 (PDF版)
SICP 解題集
精彩博客集合
正則表達式簡明參考
『肆』 大數據學習需要哪些課程
主修課程抄:面向對象襲程序設計、Hadoop實用技術、數據挖掘、機器學習、數據統計分析、高等數學、Python編程、JAVA編程、資料庫技術、Web開發、Linux操作系統、大數據平台搭建及運維、大數據應用開發、可視化設計與開發等
『伍』 大數據學習路線是什麼
主要分為 7 個階段:入門知識 → Java 基礎 → Scala 基礎 → Hadoop 技術模塊 → Hadoop 項目實戰 → Spark 技術模塊 → 大數據項目實戰。
階段一:學習入門知識
這一部分主要針對的是新手,在學習之前需要先掌握基本的資料庫知識。MySQL 是一個 DBMS(資料庫管理系統),是最流行的關系型資料庫管理系統(關系資料庫,是建立在關系資料庫模型基礎上的資料庫,藉助於集合代數等概念和方法來處理資料庫中的數據)。
MongoDB 是 IT 行業非常流行的一種非關系型資料庫(NoSQL),其靈活的數據存儲方式備受當前 IT 從業人員的青睞。
而 Redis 是一個開源、支持網路、基於內存、鍵值對存儲資料庫。兩者都非常有必要了解。
1、Linux 基礎入門(新版)
2、Vim編輯器
3、Git 實戰教程
4、MySQL 基礎課程
5、MongoDB 基礎教程
6、Redis基礎教程
階段二:Java基礎
Java 是目前使用最為廣泛的編程語言,它具有的眾多特性,特別適合作為大數據應用的開發語言。
Java 語言具有功能強大和簡單易用兩個特徵,跨平台應用能力比 C、C++ 更易用,更容易上手。同時還具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。最重要的一點是 Hadoop 是用 Java 編寫的。
1、Java編程語言(新版)
2、Java進階之設計模式
3、J2SE核心開發實戰
4、JDK 核心 API
5、JDBC 入門教程
6、Java 8 新特性指南
階段三:Scala基礎
Scala 是一種多範式的編程語言,其設計的初衷是要集成面向對象編程和函數式編程的各種特性。由於 Scala 運行於 Java 平台(Java 虛擬機),並兼容現有的Java 程序,所以 Scala 可以和大數據相關的基於 JVM 的系統很好的集成。
1、Scala 開發教程
2、Scala 專題教程 - Case Class和模式匹配
3、Scala 專題教程 - 隱式變換和隱式參數
4、Scala 專題教程 - 抽象成員
5、Scala 專題教程 - Extractor
6、Scala 開發二十四點游戲
階段四:Hadoop技術模塊
Hadoop 是一款支持數據密集型分布式應用並以 Apache 2.0 許可協議發布的開源軟體框架,它能搭建大型數據倉庫,PB 級別數據的存儲、處理、分析、統計等業務。編程語言你可以選,但 Hadoop 一定是大數據必學內容。
1、Hadoop入門進階課程
2、Hadoop部署及管理
3、HBASE 教程
4、Hadoop 分布式文件系統--導入和導出數據
5、使用 Flume 收集數據
階段五:Hadoop項目實戰
當然,學完理論就要進行動手實戰了,Hadoop 項目實戰可以幫助加深對內容的理解,並鍛煉動手能力。
1、Hadoop 圖處理--《hadoop應用框架》
階段六:Spark技術模塊
Spark 和 Hadoop 都是大數據框架。Hadoop 提供了 Spark 所沒有的功能特性,比如分布式文件系統,而 Spark 為需要它的那些數據集提供了實時內存處理。所以學習 Spark 也非常必要。
1、Spark
2、x 快速入門教程
2、Spark 大數據動手實驗
3、Spark 基礎之 GraphX 圖計算框架學習
4、Spark 基礎之 DataFrame 基本概念學習
5、Spark 基礎之 DataFrame 高階應用技巧
6、Spark 基礎之 Streaming 快速上手
7、Spark 基礎之 SQL 快速上手
8、Spark 基礎之使用機器學習庫 MLlib
9、Spark 基礎之 SparkR 快速上手
10、流式實時日誌分析系統--《Spark 最佳實踐》
11、使用 Spark 和 D3.js 分析航班大數據
階段七:大數據項目實戰
最後階段提供了大數據實戰項目,這是對常用技能的系統運用,例如使用常用的機器學習進行建模、分析和運算,這是成為大數據工程師過程中的重要一步。
1、Ebay 在線拍賣數據分析
2、流式實時日誌分析系統--《Spark 最佳實踐》
3、大數據帶你挖掘打車的秘籍
4、Twitter數據情感分析
5、使用 Spark 進行流量日誌分析
6、Spark流式計算電商商品關注度
7、Spark的模式挖掘-FPGrowth演算法
(5)scala教程擴展閱讀:
大數據技術的具體內容:
分布式存儲計算架構(強烈推薦:Hadoop)
分布式程序設計(包含:Apache Pig或者Hive)
分布式文件系統(比如:Google GFS)
多種存儲模型,主要包含文檔,圖,鍵值,時間序列這幾種存儲模型(比如:BigTable,Apollo,DynamoDB等)
數據收集架構(比如:Kinesis,Kafla)
集成開發環境(比如:R-Studio)
程序開發輔助工具(比如:大量的第三方開發輔助工具)
調度協調架構工具(比如:Apache Aurora)
機器學習(常用的有Apache Mahout 或 H2O)
託管管理(比如:Apache Hadoop Benchmarking)
安全管理(常用的有Gateway)
大數據系統部署(可以看下Apache Ambari)
搜索引擎架構(學習或者企業都建議使用Lucene搜索引擎)
多種資料庫的演變(MySQL/Memcached)
商業智能(大力推薦:Jaspersoft)
數據可視化(這個工具就很多了,可以根據實際需要來選擇)
大數據處理演算法(10大經典演算法)