精华内容
下载资源
问答
  • 个人觉得,Java开发对于初入互联网的人来说是一个不错的选择,前不久一个不知名的招聘平台(Boss直聘)发布了一个自己统计的2019年的就业...因为Java后端作为一个开发性的工作,说到底工作还是做业务逻辑上的处理,就是
  • 我从事java后端开发,对大数据领域工作有些了解,但不深入。本文描述一下我对java后端是否转大数据开发的个人见解。 目的 分析大数据领域分类 分析大数据工作工资高的原因 分析造成觉得jav...

    撰写我对java后端开发工程师选择方向的想法,写给在java后端选择转方向的人

    背景

    看到一些java开发工程师,对java后端薪酬太悲观了。认为换去大数据领域就会高工资。觉得java后端没有前途。我从事java后端开发,对大数据领域工作有些了解,但不深入。本文描述一下我对java后端和是否转大数据开发的个人见解。

    目的

    1. 分析大数据领域分类
    2. 分析大数据工作工资高的原因
    3. 分析造成觉得java后端开发不够前景的原因
    4. java后端转大数据工作做什么
    5. 转去大数据领域的各类方向与java后端比较衡量

    一、大数据领域工作我认为分4类

    类别 业务开发 架构组
    1数据处理 ETL、爬虫 未知
    2数据统计 实时流式计算、离线流式计算、Elastic-search分词统计 架构研究spark hadoop源码开发数坊系统、shuffle优化。
    3数据分析 基于mahout、sparkStream 做机器学习、自然语言 性能优化
    4数据算法/建模 推荐算法、用户画像、风控建模 未知

    二、大数据领域工资高的原因

    大家看到大数据工资高,其实是大数据领域包含了建模或者算法工程师那部分。高工资的就只有推荐算法、用户画像、风控建模、自然语言这些工作,职位为算法或者建模工程师。

    然而大数据领域的大部分工作,都是上图表中,第1、2类的工作,如:etl、爬虫、实时离线流式计算,es、顶多就机器学习。即使这些工作也只是工程级的应用(换句话说就是写业务代码,搬砖),如果工资高也是有架构能力(提升spark性能之类),而不是大数据应用开发。

    三、分析造成觉得java后端开发不够前景的原因

    有人觉得java后端开发工资低,没有前景,没有适应时代。第一、大数据时代很久了,很早就开始招大数据了,不是需求火爆的状态,如安卓工程师一开始火,如现在做的人多了,像安卓变多了,大数据的应用开发就不像2014年刚开始的时候那么高工资了,但是大数据中算法、建模工程师依然高薪,那种要求高质量高的工作都是10个人里面只有1个会的那种。第二、很多java后端开发都是业务开发,写好业务没bug渡过一天又一天,没有遇到好项目或者没有自主学习,导致做了很久的java开发工程师,都是做业务,写CRUD、redis、mq等,会写代码是一回事,但是有没有好的技术方案就是另外一回事。

    四、Java后端转大数据工作做什么

    java换去做大数据其实只能做etl、爬虫、实时离线流式计算,es、顶多就机器学习这些工程级的应用,也就换套工具写业务代码,换套工具搬砖而已。因为Java开发人员多数是使用、应用程度,而不是研究程度,所以Java工程师转大数据很少有人会做到第3、4类的工作,如果做第3、4类估计是重新开始了。其实第1、2类这些工作薪酬跟java后端没什么区别,毕竟两个领域都有纯业务搬砖和自带技术体系的人。

    这些大数据工程级应用(第1、2类),也有架构组,如同java后端一样,也有业务架构和基础架构。其实如果积累经验java后端和这些大数据晋升我认为是一样的。

    举例

    假如表中的第2类,大数据工程级应用做spark、hadoop,一种是做应用开发,如双11在页面显示华为、小米等品牌实时出货量多少,就用实时流式计算。另一种属于架构工作,如开发个数坊系统(也叫数据仓库、DataWareHouse)出来让大数据应用开发同事在上面做 OLAP。这些架构组的人,一般需要对hadoop、spark、presto源码有过研究,或许会在上面二次开发,或者进行性能优化工作。前者是换套工具搬砖,后者是架构组。如同java也有些业务代码和架构设计。

    五、转去大数据领域的各类方向与java后端比较衡量

    考虑方向

    • 要么转做大数据架构,如研究spark、hadoop、presto,搞个数坊系统、shuffle调优等,毕竟属于架构组,工资会高一点。
    • 要么转做推荐算法、用户画像、建模/算法类。而这部分工作都是有要求的,算法过硬、研究生、985、211 、数学专业,这些工作也会更高。数据挖掘与分析不止会mathot、spark streaming,还有SAS/SPSS 。
    • 如果转做大数据应用做实时流式计算、离线流式计算、es分词统计,其实是相当于业务码农,如果有java后端开发经验的话,这种那还不如在java后端继续深耕,毕竟换去做大数据应用开发深耕也是一样的。

    考虑晋升机会

    • 考虑另一部分,能晋升到领导位置的,一般是伴随公司成长的核心员工。公司成长,开始是业务,一般都是java后端业务代码。等到中期、后期做报表才会用上大数据业务开发(第1、2类),有性能问题就会有架构组,再后期才到推荐算法这些让app更好体验的东西,如淘宝首页推荐。所以业务架构在前期就比较容易晋升。
    • 等公司成长起来了,公司有钱自然就会招很好的算法、建模工程师做真正有价值的部分。
      而实时流式计算、elastic-search这些业务码农,也只是搬砖,现在做的人像安卓一样多了,就不像2014年刚开始的时候那么高工资了。

    考虑所在城市的岗位数量

    如第3、4类工作,岗位比较少,换公司换工作是否方便,有些公司如:中国移动 的第3类大数据工作就有外包出去,不是正式编制。画好跳槽路线,因为转行第一间不一定是你的终点,所以要看其他的更上流的企业的要求是否能匹配自己。

    BackUp作用

    • 多学大数据只是防止当前公司业务停止,没有业务开发时,java后端开发工程师可能被裁员掉,学大数据和前端React.js类只是对于java后端开发另谋活路的backup。因为有些职位就希望你全栈,但现在很多都前后端分离的。
    • 而被淘汰掉的java后端只是写业务代码,用用redis、mq。
    • java后端人人都会写,java后端技术领域还是很广的,但有没有写出好的技术方案就另外一回事。

    总结

    大数据、前端页面开发对于java后端开发工程师来讲,我觉得了解就可以了,知道有解决办法,不必每个领域都精通,况且没办法每个领域都精通。

    如果后端开发转去做大数据、项目经理、产品经理岗位,估计都是java后端技术没做上去(本身不喜欢做程序员的也有可能),或者是只会做纯业务代码这些被淘汰掉了,所以就换领域了,还有转hr的。不过同级别的java后端开发和产品经理薪资确实有差距,估计一两千。

    我觉得大数据工程级应用开发(第1、2类)和Java后端开发薪资就没什么差距,以前java后端能转大数据应用开发,是因为那时候还缺人,现在不缺人了,要招都是招有真实经验的。如果你从事java后端开发几年了,要转大数据领域,相当于你有一个升高级java开发工程师的机会,还是选择中级大数据应用开发工程师的机会,反正都是写业务代码的。如果你的条件过硬,如985/211学历、数学专业、算法研究经验,如果要转算法/建模工程师就早点转,大数据领域高工资的就是这类人。如果java后端开发工作经验4以上年了,没有硬性条件,建议继续深入后端学习。如果java后端开发工作一两年,你想怎么转都可以。

    如想了解薪酬,可以在招聘网站搜大数据工程师(一般就是指第1、2类的),和算法工程师、风控建模工程师、推荐算法工程师、用户画像工程师。我所知道有个风控建模经理三万多。

    欢迎留言跟我讨论

    欢迎关注

    我的公众号 :地藏思维地藏思维

    掘金:地藏Kelvin

    简书:地藏Kelvin

    CSDN:地藏Kelvin

    我的Gitee: 地藏Kelvin https://gitee.com/dizang-kelvin

    展开全文
  • 我只截图不说话,PPT大全,分为研发篇、算法篇、大数据Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、...

    我只截图不说话,PPT大全,分为研发篇、算法篇、大数据、Java后端架构!除了大家熟悉的交易、支付场景外,支撑起阿里双十一交易1682亿元的“超级工程”其实包括以下但不限于客服、搜索、推荐、广告、库存、物流、云计算等。

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    研发篇部分截图一览,感谢大佬们的分享

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

    需要免费领取阿里全部资料的朋友麻烦帮忙一键三连,然后加小猪理VX:wjj2632646免费领取

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    算法篇部分截图一览,直接上目录

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    机器算法大集合

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

     

    PPT内容还有很多!涵盖阿里巴巴的全部技术栈!

    需要免费领取阿里全部资料的朋友麻烦帮忙一键三连,然后加小猪理VX:wjj2632646免费领取

    阿里巴巴开发手册1.4.0(终极版)

    1. 编程规约
    2. 异常日志
    3. 单元测试
    4. 安全规约
    5. MySQL数据库
    6. 工程结构

    阿里巴巴内部:2020年全技术栈PPT分享(架构篇+算法篇+大数据)

    Java核心知识PDF

     

     

    需要免费领取阿里全部资料的朋友麻烦帮忙一键三连,然后加小猪理VX:wjj2632646免费领取

    展开全文
  • 在将要找工作之际,笔者根据大厂的招聘信息在牛客网上的校招求职经验课程,在Java后端方向和大数据方向总结出如下内容,希望能对读者有所帮助。

    在将要找工作之际,笔者根据大厂的招聘信息和在牛客网上的校招求职经验课程,在Java后端方向和大数据方向总结出如下内容,希望能对读者有所帮助。


    目录

    • 1.学习目标
      • 1.1 后端开发方向
      • 1.2 大数据开发方向
    • 2.学习内容
      • 2.1 后端开发方向
      • 2.2 大数据开发方向
      • 2.3 整合分析
    • 3.学习途径
      • 3.1 后端开发方向
      • 3.2 大数据开发方向

    1. 学习目标

    以一二线大厂为求职目标,对后端开发和大数据方向的学习目标进行确定。

    1.1 后端开发方向

    以下为阿里2019年后端开发的校园招聘。

    研发工程师JAVA Software Engineer, Java
    岗位描述Job Description

    如果你想了解JAVA开发在阿里巴巴互联网生态系统中无与伦比的应用广度与深度;
    如果你对基础技术感兴趣,你可以参与基础软件的设计、开发和维护,如分布式文件系统、缓存系统、Key/Value存储系统、数据库、Linux操作系统和Java优化等;
    如果你热衷于高性能分布式技术,你可以参与高性能分布式服务端程序的系统设计,为阿里巴巴的产品提供强有力的后台支持,在海量的网络访问和数据处理中,设计并设施最强大的解决方案;
    如果你喜欢研究搜索技术,你可以参与搜索引擎各个功能模块的设计和实现,构建高可靠性、高可用性、高可扩展性的体系结构,满足日趋复杂的业务需求;
    如果你对电子商务产品技术感兴趣,你可以参与产品的开发和维护,完成从需求到设计、开发和上线等整个项目周期内的工作;
    如果你对数据敏感,你可以参与海量数据处理和开发,通过sql、pl/sql、java进行etl程序开发,满足商业上对数据的开发需求;
    如果你热衷于客户端开发,你可以参与为用户提供丰富而有价值的桌面或无线软件产品。

    岗位要求Qualifications

    或许,你来自计算机专业,机械专业,甚至可能是学生物的;
    但是,你酷爱着计算机以及互联网技术,热衷于解决挑战性的问题,追求极致的用户体验;
    或许,你痴迷于数据结构和算法,热衷于ACM,常常为看到“accept”而兴奋的手足舞蹈;
    或许,你熟悉Unix/Linux/Win32环境下编程,并有相关开发经验,熟练使用调试工具,并熟悉Perl,Python,shell等脚本语言;
    或许,你熟悉网络编程和多线程编程,对TCP/IP,HTTP等网络协议有很深的理解,并了解XML和HTML语言;
    或许,你热衷于数据库技术,能够熟练编写SQL脚本,有MySql或Oracle应用开发经验;
    或许,你并不熟悉Java编程语言,更精通C,C++,PHP,.NET等编程语言中的一种或几种,但你有良好和快速的学习能力;
    有可能,你参加过大学生数学建模竞赛,“挑战杯”,机器人足球比赛等;
    也有可能,你在学校的时候作为骨干参与学生网站的建设和开发;
    这些,都是我们想要的。来吧,加入我们!


    根据前期探索,大厂的后端需要准备基础知识,因为这些公司更看重你的发展潜力,他们有能力和条件培养你。基础知识就包括:数据结构,算法,计算机网络,操作系统等。。。

    和Java相关的岗位主要有C++、大数据、测试开发。接下来我大概介绍一下这几个岗位:
    1, Java:主要从事一些业务开发,更多的是实现网站的业务逻辑,工作中主要使用Spring生态的框架和工具。
    2, C++:主要从事一些基础平台的开发,非常注重提高性能,需要具备网络编程和系统编程的知识。
    3,大数据:主要从事一些底层的二次开发,或者开发一些简单的大数据应用。除了需要Java知识外,也需要分布式基本原理以及大数据基本组件原理相关的知识。
    4·测试开发:需要参与测试相关的工作,还需要参与自动化测试工具的研发。所以投递测试开发岗位需要测试相关的知识,也需要一定的工具开发知识,最好会使用Python或者Java等语言。

    1.2 大数据开发方向

    以下为阿里2019年大数据开发相关的校园招聘。

    阿里对于数据方向的分类。基础平台研发工程师、数据研发工程师较为符合我的发展目标,对技术的要求较高。这里的数据分析师较为偏业务,之对Excel、SQL,和简单的python有要求,技术性不强。其他的数据中心技术工程和数据安全工程师都偏设施维护,和保障工作,技术要求不高。

    基础平台研发工程师 Software Engineer,Systems and Infrastructure
    岗位描述Job Description

    负责云计算和大数据基础技术研发,包括不限于以下方向:
    1、云基础设施技术,包括研发面向百万级服务器的网络(如RDMA、可编程芯片)、服务器(如异构计算)、数据中心,以及构建超大规模的基础设施智能化运维体系(如AIOps);
    2、虚拟化技术,包括XEN、KVM等开源技术的改进,以及也包括我们自研的SDN、VPC等网络虚拟化、存储虚拟化技术,还包括Docker等轻量级的容器方案;
    3、MySQL、PostgrelSQL、MongoDB、Redis、HBase等开源数据库内核的改进(阿里巴巴是WebScaleSQL组织的一员,并拥有多个开源项目的committer);
    4、(分布式平台)包含单集群上万个节点,多地多集群的超大规模分布式存储系统(文件系统,KVstore,BigTable等等)、分布式计算系(MapReduce,DAG,类Hive/spark的计算系统包括离线,分布式开发语言,分布式开发IDE,查询优化,流式实时计算,图计算,MPP等等)、弹性分布式资源管理和调度(海量多维度的多目标的调度系统,多个资源维度资源隔离技术等等)、机器学习平台(包括Paratemter Server,深度学习,逻辑回归等等)、异构等新型硬件上计算(包括CPU,GPU,FPGA,RDMA等等);
    5、(大数据分布式平台)大数据在线引擎体系的目标是是集广告、搜索、推荐的投放三位于一体,在近百毫秒周期内,从服务端跨越至移动端上智能,支撑总体近TB级的模型,完成知识推理向量匹配等各种召回,以及其它深度学习的排序和预测算法,参与计算的数十亿商品保持实时更新,支持数百位算法工程师面向众多场景展开测试,在算子流图化的抽象之下,引擎内的模型和数据可随时调整布局满足迭代所需。

    岗位要求Qualifications

    1、快速学习,不断突破技术瓶颈,乐于探索未知领域,随时准备好去面对新挑战;
    2、具备优秀程序员的基本素养,对代码有洁癖,遇到问题可以一查到底,善用工具,对工程效率有自己的见解;
    3、全栈式人才,在计算机系统结构、操作系统内核、网络、分布式系统、算法等领域有所专长相互融合;
    4、至少需要在一门编程语言上达到精通的水平,对编程语言不封闭,有学习新语言的兴趣。

    工作地点Location

    无锡市(Wuxi),上海市(Shanghai),深圳市(Shenzhen),北京市(Beijing),广州市(Guangzhou),杭州市(Hangzhou)
    参加面试的城市或地区Interview City or Region
    远程(Remote Interviews)

    数据研发工程师 Software Engineer, Data Technology
    岗位描述Job Description

    如果你想参与阿里大数据的采集、存储、处理,通过分布式大数据平台加工数据,支持业务管理决策,
    如果你想参与阿里大数据体系的设计、开发、维护,通过数据仓库、元数据、质量体系有效的管理和组织几百P的数据,
    如果你想参与阿里大数据产品的研发,通过对数据的理解,发挥你的商业sense,发掘数据价值,探索大数据商业化,
    如果你想接触世界领先的大数据处理与应用的技术和平台,获得大数据浪潮之巅的各类大牛的指导,
    那就加入我们吧!

    岗位要求Qualifications

    如果你所学专业是计算机、数学、统计、数据科学与大数据技术等相关专业;
    如果你有强的动手能力和学习能力,熟悉一门数据处理语言,如SQL、JAVA、Python、Perl等,熟悉unix或者linux操作;
    如果你具备扎实的专业基础,良好的沟通能力和团队合作,主动积极,乐于面对挑战;
    如果你有参与过数据处理、分析、挖掘等相关项目更好;
    如果你对Hadoop、Hive、Hbase等分布式平台有一定的理解更好;
    那么成为数据工程师吧,这里就是你的舞台。

    工作地点Location

    上海市(Shanghai),成都市(Chengdu),深圳市(Shenzhen),北京市(Beijing),广州市(Guangzhou),杭州市(Hangzhou),南京市(Nanjing)
    参加面试的城市或地区Interview City or Region
    远程(Remote Interviews)

    对比基础平台研发工程师和数据研发工程师在这里浅显的认为基础平台研发工程师更多偏向于底层大数据平台的搭建和二次个性化开发,更多的是面向于对大数据各个组件的组合升级开发,涉及到的业务问题较少。而数据研发工程师则是更偏向于将大数据的开发操作应用于实际的业务场景中,是在大数据基础平台的基础上对大数据进行开发使用。
    综合以上两个岗位,其工作内容不一样,但需要的基础知识大致相同,且数据研发工程师写的较为详细,故以数据研发工程师的岗位要求为最终的学习目标。

    2. 学习内容

    根据目标岗位和对目标岗位的研究,制定相应的学习内容。

    2.1 后端开发方向

    Java后端岗位主要考察以下几个理论知识:

    • 语言基础
    • 设计模式
    • 框架和中间件
    • 数据库
    • 数据结构与算法
    • 计算机网络
    • 计算机操作系统
    • 系统设计

    2.2 大数据开发方向

    大数据对技术栈的要求比较高,
    身为大数据开发工程师,对数据从采集、接入、流处理、批处理到数据存储、数据分析和数据可视化等一整套流程都要了解,包括的组件非常多。
    做数据流处理需要掌握spark.flink, storm, kafka stream等,
    做批处理需要掌握hadoop, hive等,
    数据存储需要掌握 hdfs, hbase, redis, tsdb,es等,
    各个公司会基于这些组件针对部门特有的业务进行二次开发

    大数据开发岗位主要考察以下几个理论知识:

    • 熟悉Java语言特性,熟练掌握Java的使用(Java语言基础)
      Java语言涉及到的面试知识可以分为Java关键字、Java集合、多线程、设计模式、类的设计几部分
    • 熟悉JVM(Java语言基础)
    • 熟悉常用算法和数据结构
    • 熟悉计算机网络知识和操作系统
    • 熟练掌握Mysql操作(数据库)
    • 熟练使用git
    • 熟练掌握linux基本操作
    • 熟悉大数据,hadoop, spark, kafka, hive, elasticsearch等框架

    大数据涉及的组件多,但是上手不难,这些组件大家最好掌握基本的操作和原理,如果读过一种或者几种组件的源码会非常加分,代表你对大数据技术的研究和应用比较深入推荐子雨大数据教程:http://dblab.xmu.edu.cn/blog/924

    2.3 整合分析

    总上分析,对于后端开发方向和大数据开发方向均有重叠的学习内容。
    Java语言基础、算法和数据结构、计算机网络、操作系统和数据库这5项作为共有的基础必学部分。
    对于后端开发方向,在必学基础之上还需了解设计模式、Java的主流框架和中间件还有系统设计。
    对于大数据开发而言,在必学的基础上还需要学习Linux操作系统和大数据模块,其中大数据模块才是大数据开发的重点,在其中需要学习主流的大数据开发框架,对于这部分从数据处理方面入手,专注于学习当下最流行并且公司应用最广的一种组件例如spark.flink或者kafka等。
    最后Git作为辅助工具会用最好。

    3. 学习途径

    3.1 后端开发方向

    (一)语言基础

    如果刚开始接触Java,建议先阅读《JAVA核心技术》的前几章语法内容,安装Java环境并使用1DEA开发工具熟悉一下语法知识。不推荐阅读这本书后面几章内容,很多是在简单地堆API,讲解地并不好。
    学习完简单语法之后其实就可以开始学习设计模式相关的知识,因为Java源码涉及到大量的设计模式,如果没有相关知识很难理清Java众多类之间的关系。学习完设计模式之后就可以开始学习Java的一些高级特性,推荐阅读《Java编程思想》以及《Effective Java》 。虚拟机和并发编程也是Java面试经常考察的内容,但是建议在学习了计算机操作系统的知识之后再学习这些内容。
    虚拟机推荐《深入理解Java虚拟机》这本书,重点学习一下内存、垃圾回收、类加载机制这几部分内容。而并发编程推荐《Java并发编程实战》 ,学习得越深入越好.
    Java面试也会涉及到一些源码分析问题,阅读源码除了需要有一定的编程经验,也要有一定的数据结构与算法知识,数据结构与算法知识会在后面讲解。对源码的考察主要是一些集合框架,例如Hashtable,HashMap ConcurrentHashMap等等,你可以在牛客网或者Github上找一些源码分析的文章学习,比自己阅读源码更加高效。

    (二)设计模式

    面试中设计模式也经常被考察,比较常被问到的设计模式包括单例模式、几个工厂模式、代理模式。在回答的时候最好结合Java类库中的实现,或者Spring等框架中的实现。
    学习设计模式推荐《Head First设计模式》这本书,包含大量的原理图,生动形象,非常适合入门。

    (三)框架与中间件

    在做个人项目时不可避免要学习这些内容,框架主要是Spr ing框架,中间件重点是缓存和消息队列。
    Spring框架的入门推荐《精通Spring 4.x》 ,虽然看看《Spring揭秘》中对于AOP和10C的讲解很有帮助,但是最好动手实践一下,可以找两个项目课程来学习。牛客网上的有相关的项目课程https://www.nowcoder.com/courses
    缓存中间件主要是Redis,推荐《Redis实战》和《Redis设计与实现》这两本书,消息队列可以看看 RabbitMa实战指南》

    (四)数据库

    学习数据库最开始要先学习SQL语法,推荐《MySQL必知必会》 ,学完之后建议到Leetcode上刷一些题目,因为面试的时候有可能会考察手写sQL语句。
    学完SQL语法之后可以再学习一些数据库管理系统相关的知识,推荐《数据库系统概念》 ,至少理解关系型数据库管理系统、事务、范式等内容理解清除
    互联网公司主要用MySQL数据库,所以接下来重点准备MySQL相关的知识,推荐《MySQL技术内幕》以及《高性能MySaL》 ,重点学习InnoDB存储引擎,索引、锁、事务、性能优化等内容。

    (五)数据结构与算法

    数据结构与算法在国内互联网公司面试中至关重要,特别是一二线大厂。零基础学习数据结构与算法推荐《算法第四版》
    在学完一定的数据结构与算法知识之后,就可以开始刷Leetcode了, Leetcode包含了大量的面试算法题。刚开始刷的时候可以先刷Top100的题目,按照通过率来排序,先从通过率最高的开始刷。在碰到不会的题目,可以看看讨论区的答案,找一些高票的答案来学习。或者在Github上找一些Leetcode题解来学习。

    (六)计算机网络

    对计算机网络的考察主要在于TCP/IP, HTTP, Socket编程,这些内容对于大厂面试非常重要,所以准备越充分越好。但是对于其它公司,其实找一些高频面试题看看就足够了。
    计算机网络入门书籍推荐《计算机网络自顶向下方法》 ,随后再学习《TCP/IP详解》以及《图解HTTP》 .Java后端开发对于Socket编程没有特别高的要求,但是至少要了解10多路复用知识,可以看看《Unix网络编程》

    (七)计算机操作系统

    对计算机操作系统的考察主要在进程线程、死锁以及内存管理。前面提到要学习Java虚拟机和Java并发编程最好先学习计算机操作系统知识,可想而知这部分内容有多重要。入门书籍推荐《现代操作系统》 ,随后学习下《深入理解操作系统》的部分内容。Linux系统编程也是计算机操作系统中很重要的内容,但是Java后端岗位只需要了解一下Linux基本原理即可, Linux的学习推荐《鸟哥的Linux私房菜》 .

    (八)系统设计

    系统设计主要设计网站架构相关的内容,推荐先学习《大型网站架构》这本书来入门。之后再学习一些分布式知,到《Zookeeper》和《大规模分布式存储系统》 。最后再看看微服务。

    3.2 大数据开发方向

    1、熟悉Java语言特性,熟练掌握Java的使用

    Java语言涉及到的面试知识可以分为Java关键字、Java集合、多线程、设计模式、类的设计几部分
    Java关键字
    常考static关键字;String. StringBuffer, StringBuilder的区别;final, finally, finalize的区别;==和equals的区别;
    Java集合
    常考HashTable和HashMap的区别(尤其阿里必考) ;HashMap和ConcurrentHashMap的区别;HashMap怎么解决hash冲突;HashMap的大小为什么是2的幂次;HashMap的扩容;jdk 1.8对HashMap的改进;HashMap的key适合选用什么数据类型;ArrayList和LinkedList的区别;HashSet的底层实现
    Java多线程:
    进程和线程的区别;Java实现多线程的方式;线程安全的定义;线程安全产生的原因和解决方案;volatile关键字;volatile和synchronized的区别;synchronized和lock的区别;synchronized的底层实现;sleep和wait的区别;Java锁;线程池有哪几种;线程池的组成部分;线程的生命周期;线程池参数
    设计模式:
    Java有哪些设计模式;单例模式饿汉式和懒汉式(一定要手写)
    类的设计:
    什么是面向对象;面向对象的三大特征;多态的概念;多态存在的必要条件;重载和重写

    2、熟悉JVM

    学习JVM必看《深入理解Java虚拟机》这本书,其中JVM常考知识点可以分为内存管理机制、GC与垃圾收集器、虚拟机性能监控与故障处理工具、类加载机制几个部分
    内存管理机制:
    JVM内存的划分;堆和栈;创建Java对象的过程;内存泄漏和内存溢出;Java堆溢出问题的处理
    GC与垃圾收集器
    怎么判断对象是否已死;常用的垃圾收集算法;新生代和老年代;什么情况对象会进入老年代;GC分为哪几种
    虚拟机性能监控与故障处理工具:
    常考JDK的命令行工具;查看进程状况或者配置信息的命令
    类加载机制:
    类加载的过程;类初始化步骤和初始化时机;JVM有哪几种类加载器;双亲委派模型;对象的创建过程;HelloWorld的执行过程

    3、熟悉常用算法和数据结构

    面试常常需要手撕算法题或者口述算法题的解题思路,常考题目包括:
    三大排序:
    快排、堆排序、归并排序
    树的问题
    树的递归和非递归遍历、求二叉树的深度、二叉树中两节点的最低公共祖先、二叉树的广度优先遍历
    链表的问题:
    两锥表的第一个公共节点、链表中环的入口、反转链表、链表中倒数第k个节点
    数组的问题:
    二维数组的查找、数组中出现次数超过一半的数字、两数之和(给一个整数数组和一个目标值,找出数组中和为目标数的两个数,返回下标)
    路径问题
    最小路径(每个网格包含一个非负整数,找出一条路径,使路径上的数字和最小)、不同路径(mn的网格,机器人从左上角往右下角移动)
    二分查找法、斐波那契数列、青蛙跳台阶问题和青蛙变态跳台阶问题、不包含重复字符的最长子串的长度

    4、熟悉计算机网络知识和操作系统

    计算机网络:
    常考TCP和UDP、三次握手和四次挥手、为什么TCP连接需要三次握手而不是两次、用户输入域名到浏览器显示页面的过程、http和https的区别、Cookie和Session的区别、分层体系结构包括哪几层
    操作系统:
    进程和线程、多进程和多线程、死锁产生的必要条件、死锁的处理方法、进程通信和线程通信

    5、熟练掌握Mysql操作

    包括创建、更新、删除数据库和表;插入、更新、删除数据;检索数据;过滤数据;聚集函数的使用;数据分组;子查询;表连接等部分

    6、熟练使用git

    因为各个公司基本都是用git进行协同开发,因此git的基本操作一定要熟练Git包括工作区、暂存区、本地仓库、远程仓库四级体系,推荐《Pro Git中文版》学习git的使用,链接: https:/lgitee.com/progit/index.html

    7、熟练掌握linux基本操作

    大数据集群都是搭建在linux系统上,因此使用linux是做大数据开发的基础,推荐《linux命令行中文版》学习 linux和shell的使用,链接:http://billie6.gihu.io/LCLbook

    8、熟悉hadoop, spark, kafka, hive, elasticsearch等框架

    大数据涉及的组件多,但是上手不难,这些组件大家最好掌握基本的操作和原理,如果读过一种或者几种组件的源码会非常加分,代表你对大数据技术的研究和应用比较深入推荐子雨大数据教程: htt:/dblab.xmu.edu.cn/blog/924

    大数据可以归纳为4个V:
    海量的数据规模(volume) 、快速的数据流转和动态的数据体系(velocity) 、多样的数据类型(variety)和巨大的数据价值(value) ,简称“多快好省”
    我对大家的建议是从数据处理方面入手,专注于学习当下最流行并且公司应用最广的一种组件,例如spark.flink或者kafka等,手动去搭建要学习组件的环境,搭建的过程也是一种熟悉的过程,对于流处理程序而言,从最基本的word count功能入手,编写相应实现代码, spark, kafka、flink的代码示例都可以参照官网文档,这是最便捷和权威的学习途径。数据处理完后需要对接存储层进行数据存储,并且可以延伸到对于存储的数据进行分析、将存储的数据可视化展示出来,所以我们不单单掌握了一种组件的使用,更是利用多种组件搭建了一套简化版的数据平台。

    这里推荐几个实用的大数据博客:
    (1)董的博客: http://dongxicheng. org/
    2)美团技术博客: https://tech. me i tuan. com
    3)腾讯大数据: https://bigdata. qq. com/blog
    4) http://spark. apache. org/docs/latest/streami ng-programming-gu i de. html
    5)小萝莉: https://www. cnblogs. com/smartlol i/
    6)https://www. cnb logs. com/cxzdy/category/752765. html
    7) Spark: https://github. com/xubo245/SparkLearni ng

    展开全文
  • 后端,还是大数据

    千次阅读 2020-07-27 20:00:00
    最近到了招聘旺季,发现一些朋友很纠结一个问题:做后端开发和大数据开发?这个问题还是比较普遍的。其实,后端开发,更专注于一种技术栈的开发,对于成熟的开发框架而言,的确市面上的竞争压力会比...

    最近到了招聘旺季,发现一些朋友很纠结一个问题:做后端开发和做大数据开发?这个问题还是比较普遍的。

    其实,后端开发,更专注于一种技术栈的开发,对于成熟的开发框架而言,的确市面上的竞争压力会比较大,竞聘者除了技术功底够硬,更多的是要对业务充分的熟悉。而大数据开发,由于兴起时间较晚,再加上国家政策的扶持,人才需求远远没有饱和,相比较起来,竞争的确要小一些,薪资和前景更有吸引力。

    但这并不意味着面试难度就会有所下降。一些人总会说大数据岗位基本靠内推进去的。这其实是片面的。即使你获得了内推机会,技能不过关,比如一问你 spark,flink 开发就懵圈,结果可想而知。

    在这样一个数据即金钱的时代,学习大数据开发技术,毕竟是一个技多不压身的事情。这里给对大数据感兴趣的朋友一些建议:一,技术基础得打好,至少得懂集群、数据库开发的知识;二、多实践项目,多思考,多对比方案的优劣,了解市面上性能较好的解决方案。三、提升自己的认知水平,拓宽行业视野

    当然,这些都不是一蹴而就的。一个更有效的方式是由业内的资深前辈来指导。这里推荐家关注开课吧廖雪峰团队亲实战驱动型课程《大数据高级开发实战班》,能帮你在实战项目中更快速地提升技术能力,成长为符合主流一线大厂招聘标准的高级大数据开发人才。我这里还争取到了 10 个优惠名额,需要的朋友不要错过!

    腾讯、京东、百度等多名一线大数据专家倾力指导

    廖雪峰团队联合阿里P8级架构师打造

    课程深度直击阿里P6+

    近70%的企业级项目实战+大厂脱敏数据

    名企内推等就业服务

    先就业/涨薪,后付费

    课程经过 10 个月不断打磨升级, 累计已有 4000+ 学员学习。截止目前,很多毕业学员都已拿到百度、今日头条、阿里、滴滴等知名互联网公司 Offer。据不完全统计,超过 89% 的学员实现大幅升职涨薪,平均涨薪幅度超过 8k 元/月

    课程持续 4 个月,共 100+ 课时,内容包括:

    • 专业课程 

    • 个性化项目作业评审,全程进度督促与问题解答

    • 模拟面试、简历修改及背景提升等职业生涯辅导

    01 为什么推荐

    1.

    更贴近一线实际生产,助力提升职场竞争力

     实战驱动课,增加简历含金量 

    想进入一线互联网大厂,99% 的企业都会考核项目实战经验,尤其是对转行大数据开发的程序员来说,项目多寡及实用程度则直接影响了薪水高低。为此,课程花了很大力气打磨项目,难度匹配实际生产环境。

    本期课程实战项目占比高达近70%一线大厂真实需求工作常见业务场景出发,选取了电商、广告、出行等多个热门行业的架构级别综合实战项目,通过在线演练确保学员提升实战能力,为学员日后进入相应行业垫好基石,不仅能提升面试成功率、更能无缝衔接工作

    大家4个月的学习,等同于获得 2~3 年大数据开发实战经验。以下是课程部分核心项目

     核心项目一 

    数仓的搭建与实践是个亘古不变,历久弥新的话题,在当前大数据分析实战中,各大公司基本都会构建自己的数据仓库,而数仓的高频面试题也常让求职者很为难。那么,如何树立一套自己的数仓实践最佳方法论?

     核心项目二 

    随着大数据技术日趋成熟和稳定,越来越多的公司在内部深度实践 Kafka,Hbase,Phoenix,Spark 等各种大数据技术。那么,如何在工作中熟练运用这些技术,开发企业级上线代码等?本项目可以让大家找到答案。

     核心项目三 

    爬虫消耗了系统资源,但却没有转化成销量,导致系统资源虚耗,严重时还会造成系统波动,影响正常用户访问购票。企业为了限制伪装技术越来越强的爬虫访问和恶意占座行为,就需要开发大数据防爬工具,而有经验的工程师怎能不会这项技能?

     核心项目四 

    Kafka 作为大数据实时处理场景中的重要环节,是实时数据处理的数据中枢,广泛应用于 linkedin、facebook、BAT 等互联网企业中。为了提高大数据实时处理平台的稳定性和高效性,提升自己分析、定位及解决问题的能力,掌握 Kafka 底层源码不能少。

     核心项目五 

    在大数据行业,大数据工程师除了会平台开发,如果还能懂一些算法,会更有竞争力。尤其是推荐算法人才非常稀缺,既会大数据平台开发又懂算法原理和基本运用的人才,将会非常受欢迎。 

     核心项目六 

    如何基于多数据源场景,构建数据中台?项目通过对接多数据源,重新定义SparkSQL语法,带你实现前后端高吞吐交互处理,以及服务的自动发现和多租户的权限处理。

     核心项目七 

    像字节跳动、百度、阿里等互联网大厂,往往很注重开发者的源码能力,这也是很多大厂面试必考点。一些开发者由于平时工作很少接触底层,或是不用心积累,面试一问底层就歇菜?本项目可帮大家全面掌握源码层知识,攻克大厂面试难题。

     科学性设置,攻克体系化硬技能 

    本期实战课更贴近实际工作需求,学员每学完一个阶段,都能快速检验自己的学习成果,重要的是,它覆盖了大家日后职业发展各阶段核心能力的培养:

    • 通过学习,能让学员全面掌握Hive、Hbase、Spark、Flink等多个热门知识点,帮大家夯实基础,进阶提升

    • 剖析 Hadoop、Kafka 等源码,让大家能够深入理解各框架的底层设计原理等,助力大家快速成为项目核心技术人员,并能在职场上走得更高更远。

    只需实战演练4个月,就能让大家在不知不觉中,斩获当下大厂都急缺的高级大数据开发工程师所必备的技术知识体系

    另外,为帮助学员获得更多扎实性的专项技能,针对部分不同项目,课程配备了专项解读视频,助力大家巩固拓展大数据开发技能,提升核心能力。我们还配备了体验课,有需要同学也可联系助理老师咨询。

    vip 课详细大纲图

    体验课 及 专项解读视频

    扫码加微信,进行咨询


    2.

    一线大厂师资,专注培养职场目标人才

    优秀的领路人能让求职者事半功倍。讲师是 Top5 互联网企业的技术负责人和架构师,熟知行情与主流技术方案,同时也负责企业内大数据人才选拔和面试。来源于企业,输出到企业,这是我们课程跟其他课程的本质区别。 

    (篇幅原因,下面只列出课程部分讲师)

    为 100% 保障教学质量,我们为大家组建了专业的助教团队,提供督导式教学+班级化管理,而且加入本次培优计划,学员只要每次听课60%和提交作业,就可获得返学费奖励,让你切实体验高端学习服务。

    3.

    360度就业服务助你通关面试斩 Offer

    针对目前严峻的就业形势,我们特别提供了专业靠谱的内推,配置了从 JD 解析简历编写面试准备薪资谈判等全方位的面试服务,帮助学员解决各种就业问题。

    此外,开课吧还与 Boss 直聘等招聘网站建立战略合作,优秀学员可享受无限次内推大厂等优质服务,带你横扫大厂offer

    (下面是部分内推公司)

    02 适合谁学

    课程面向希望自己能够在短时间内找到一份大数据开发、算法工程师、数据科学家、推荐系统等岗位的朋友,尤其适合

    03 需要的预备能力

    依据往期经验,要能完成以上学习任务,需要具备以下背景能力:

    • 至少具备大专学历,本科及硕士以上学历更佳。

    • 持续自学能力,能够每周投入6小时以上,持续4个月进行学习。

    • 做过编码开发的工作,至少熟悉一门编程语言,如 Java/Python/R/C/C++/PHP。

    • 有良好的逻辑思维能力。

    注:不具备预备能力的同学,我们为您提供了预修过度课程(JavaSE 和 SQL、Linux 基础),限于篇幅,详情可以咨询官方助教老师。 

    报名资格,优惠政策

    大厂内推信息

    扫码加微信进行咨询


    04 往期学员收获

    1、涨薪幅度高达 83 %

    左右滑动查看更多涨薪案例

    2、课程评价

    部分学员课程好评

    左右滑动查看更多

    05 补贴与保障

    为了帮大家缓解职场压力,减轻学习负担,我们特别推出了“开课吧战役培优奖学金计划”,承诺上一节课,返一节学费,助力大家能在特殊时期安心实现升职涨薪的工作目标。

    分期付款:报名学员可享受开课吧提供的 3/6/12 期信用卡分期服务。

    返还学费:奖学金班学员报名伊始既签订协议,只要学习达标,每一节课都有奖学金,最高可获得全额学费返还奖励

    不仅如此,开课吧还郑重承诺:正式开课后,前3次课不满意,学员可提出退还学费,课程组将无理由退还学费。

    7 大核心实战项目

    名师手把手授课+大厂内推机会

    仅限 10 个优惠名额  

     名额有限  扫码快速预定

    我这里争取到的优惠名额只有10个,近期想要系统学习大数据开发,提升实战能力的朋友,可以扫描上方二维码进行预约或咨询。 (注:由于添加人数较多,教务老师没法第一时间一一通过,请耐心等待。

    学习一门新技术最重要的是方法和耐心!最后,希望大家都能在职场上走的更高、更远!

    附:1、线下交流会现场

    2、发布会视频

    展开全文
  • 经常会有胖友在后台留言,说他是做 Java 后端开发,想要转大数据开发,怎么转呢?一方面是对大数据开发感兴趣,一方面是觉得大数据开发的薪资比较高。如果你也有类似的想法,可以瞅一瞅本文!2...
  • Java后端开发框架

    万次阅读 多人点赞 2019-09-09 15:31:22
    Java web开发框架了解 ...后端–对外提供(类)RESTful风格的API—数据库交互-- web应用服务器(tomcat)-- Spring 技术栈开发 交互–HTTP协议通信-- JSON格式–RESTful 风格 java web开发框架的变迁 ...
  • Java后端开发学习路线:编程基础、数据结构与算法、计算机网络、SQL/数据库、操作系统、设计模式、研发工具、应用框架、运维知识、成神之路、平稳降落。
  • Java后端开发需要掌握什么? 需要熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web服务器应用服务器的使用,熟悉面向对象的设计原则,熟悉基于JSPServlet的Java Web开发,熟练使用JSTLEL编写无脚本动态...
  • Java Web和Java后端开发的学习路线 翻译 2017年03月11日 23:14:18 标签:java 11353 基础:比如计算机系统、算法、编译原理等等  Web开发: 主要是Web开发相关的内容,包括...
  • Java后端开发学习路线 JavaSE 该部分主要讲的是java基本语法、常用类、集合框架、多线程、IO流、反射及简单SQL语句。学完这个课程,只能掌握基础知识,类似多线程、IO流都不足以支撑企业开发的工作需求。还需要学习...
  • Java后端开发需要具备哪些知识结构

    千次阅读 2019-02-12 21:38:26
    采用Java进行后端开发往往是不少大型互联网平台的选择,一方面原因是Java的性能比较稳定,另一方面原因是Java的扩展性比较强。对于大型互联网平台来说,采用Java进行后端开发不仅会降低开发风险,而且组建开发团队也...
  • Java后端开发学习路线

    2020-07-22 10:14:47
    文章目录编程基础Java语言语言基础JVM虚拟机并发/多线程数据结构与算法数据结构算法计算机网络数据库/SQL操作系统设计模式开发工具集成开发环境Linux操作系统代码管理工具项目管理/构建工具应用框架后端Spring家族...
  • 本人现从事大数据开发工作,平时也会关注学习一下其他方向的技术,如爬虫,web前端开发…等。俗话说技多不压身,希望能压住头发。以下是我个人觉得还不错的学习资料,可供有需要的朋友免费下载,顺便还有一套不错的简历...
  • 首先想要做Java后端,你需要学习的知识点有这些,Java语言是最常见的后端开发语言之一,Java语言由于自身具备构建多线程的能力,且体系结构比较中立,所以在大型互联网平台的开发中得到了广泛的采用。 第一,Servlet...
  • “360行,行行转IT!”而转IT的小伙伴中,又有相当一部分选择了Java后端开发。实不相瞒,一直以来,有非常多的小伙伴咨询Java后端开发的学习路线问题。这有什么难的,一张图搞定:毋庸...
  • 本文来源:http://r6d.cn/Jz79整理出一套公共性的项目模板,旨在尽量多地包含日常开发所需,减少开发者的重复性工作以及提供一些最佳实践。1. 从写好README开始一个好的R...
  • java后端开发工作经验技术总结

    千次阅读 2019-06-05 15:13:16
    你在两年里踏过某些弯道,也遇到某些难点,也遭受过作为一位开发设计却常常为服务器维护公布当救火队员的烦恼。遂决策整理一下下自个所教到过的物品,为大伙儿共享一下。经过几年的认识,以前有很多误解,比如:...
  • 来源:infoq.cn/article/dSSYAFSMMxx1sZkJwrN2在使用了 Java 15 年后,我写了第一行 Kotlin 代码,到现在已经差不多 5 年了。我们的团队用U...
  • 学习java后端开发可以看看这些书:

    千次阅读 2018-07-31 20:58:22
    书架主要针对Java后端开发。 3.0版把一些后来买的、看的书添补进来,又或删掉或降级一些后来没有再翻开过的书。 更偏爱那些能用简短流畅的话,把少壮不努力的程序员所需的基础补回来的薄书,而有些教课书可能很...
  • 现在已经从之前的java后端开发正式转大数据开发,项目数据50T,日均数据增长20G左右,大概是需求问题吧,工资待遇较上一份翻了一倍(这是重点)。当然,我的分享不是能让各位升职加薪跳槽,只是对于技术人来说,技.....
  • 职业向导 - Java后端开发

    千次阅读 2017-08-15 21:13:39
    主要是学习顺序 开发框架 相关书籍
  • 这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?  ...1、由于我本人是Java后端开发出身,因此所推荐的学习内容是J...
  • 因为受疫情影响,大环境下经济发展不景气,求职这个“副本”的过关难度,以肉眼可见速度提升了! 与很多行业裁员情况严重相比,相反,IT互联网行业受到...Java开发工程师就业前景有多好? 1、Java程序员市场需求缺口大 Ja
  • 找工作选大数据方向还是选择java后端方向?求职网搜索大数据java后端知乎建议哔哩哔哩建议12 求职网搜索 大数据 薪资普遍高,技术点 就算是做大数据,java也要相对成熟 java后端 薪资偏低一些,技术点 需要...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,093
精华内容 10,437
关键字:

java后端开发和大数据

java 订阅