我是学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大经典算法)