Coder Social home page Coder Social logo

frank-lam / fullstack-tutorial Goto Github PK

View Code? Open in Web Editor NEW
11.5K 380.0 2.4K 64.18 MB

🚀 fullstack tutorial 2022,后台技术栈/架构师之路/全栈开发社区,春招/秋招/校招/面试

Home Page: https://frank-lam.github.io/fullstack-tutorial

Shell 1.56% Java 98.44%
skill-tree java fullstack-developer computer-science interview java-interview

fullstack-tutorial's Introduction


I II III IV V VI VII VIII IX X XI XII
算法
📝
Java
☕️
Python
🐍
前端
🔗
数据库
💾
操作系统
💻
网络通信
☁️
分布式
📃
机器学习
🔍
工具
🔨
Learn
📖
Talking
💡

✨✨✨

和 500+ 技术达人在线交流: 🤟 快来吧,和大家一起技术互动交流

『技术博客』:www.frankfeekr.cn | 『开源贡献』:⊱ 英雄招募令 | 『微信订阅号』:全栈开发社区


🔥🔥🔥

欢迎光临 LinTools 开发者的在线导航: https://tools.frankfeekr.cn

如果你有更好的在线工具,请点击留言,持续更新!

前言

  • 谈谈技术学习的一些方法论

    在学习技术这条路上并不是一帆风顺,也一直在探索一条适合自己的学习方法。从一开始的技术小白,到现在还比较上道的老鸟,在这个过程中走了太多的弯路,想在这里和大家分享一些我的经历和学习方法。

  • 如何选择自己的技术栈

    在编程的世界里,该如何选择自己的技术栈呢。学前端?学 APP 开发?对于 Java、C++、C#、Python、PHP 又如何选择呢?人工智能现如今这么火,是不是机器学习、深度学习更高级一些呢?那么程序员又如何修炼内功呢?

  • 全栈开发神兵利器

    工欲善其事,必先利其器。这里我将推荐开发过程中的提效工具、开发利器、协作工具、文档技术等等。

  • XP 极限编程

    敏捷软件开发中可能是最富有成效的几种方法学之一

技能图谱

  • backend skill

    后台开发技能图谱,从程序员的内功修炼到后台语言,分布式系统架构

一、数据结构与算法

  排序算法、动态规划、递归、回溯法、贪心算法等

二、Java

  基本概念、面向对象、关键字、基本数据类型与运算、字符串与数组、异常处理、Object 通用方法

  数据结构 & 源码分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and LinkedHashMap

  线程状态、线程机制、线程通信、J.U.C 组件、JMM、线程安全、锁优化

  磁盘操作、字节操作、字符操作、对象操作、网络操作、NIO

  运行时数据区域、垃圾收集、内存分配机制、类加载机制、性能调优监控工具

  Java 常见的 10 余种设计模式,全 23 种设计模式逐步更新

  包含 Servlet & JSP、Spring、SpringMVC、Mybatis、Hibernate、Structs2 核心**,如 IOC、AOP 等**。SSM 更详细请转向:Spring | SpringMVC | MyBatis

三、Python

四、前端

TODO LIST
  • HTML5

  • CSS3

  • CSS 预处理

    • sass(scss)
    • less
    • stylus
  • CSS 框架

    • BootStarp
    • LayUI
  • JavaScript

    基础语法、进阶、ES6

  • JavaScript 框架

    • Vue
    • React
    • Angular
    • jQuery
  • Node

    常用 api、对象池、异常处理、进程通信、高并发

  • 静态类型检查

    • TypeScript
    • Flow
  • 构建/打包工具

    • webpack
    • gulp
    • rollup
  • 包管理工具

    • npm
    • yarn
  • 服务端渲染

    • koa2
    • express
    • nuxt
    • next

五、数据库

  • MySQL

    存储引擎、事务隔离级别、索引、主从复制

  • Redis

    Redis 核心知识

  • SQL

    常用 SQL 语句

  • PostgreSQL

    一个开源的关系数据库,是从伯克利写的 POSTGRES 软件包发展而来的

  • InfluxDB

    玩转时序数据库

六、操作系统

  进程管理、死锁、内存管理、磁盘设备

  基础核心概念、常用命令使用

七、网络通信

  传输层、应用层(HTTP)、网络层、网络安全

  • RESTful API

    软件架构风格、格设计原则和约束条件

  • Web网络安全

    web前后端漏洞分析与防御,XSS 攻击、CSRF 攻击、DDoS 攻击、SQL 注入

八、分布式

  • Docker

    容器化引擎服务

  • 微服务

    微服务简介、API 网关、服务注册发现、服务通信

  • Zookeeper

    分布式协调服务,服务注册发现

  • Kafka

    深入浅出 Kafka,将用最极简的语言带你走进 Kafka 的消息中间件世界

【说明】分布式专题 笔者也在学习中,这里列举了一些技能列表,笔者将局部更新。敬请期待

TODO LIST
  • Kubernetes(k8s)

    容器化部署,管理云平台中多个主机上的容器化的应用

  • 云计算

    SaaS(软件即服务) 、PaaS(平台即服务) 、IaaS(基础架构即服务)

  • Zookeeper

    分布式协调服务,服务注册发现

  • Dubbo、Thrift(RPC 框架)

    分布式服务治理

  • 分布式事务解决方案

  • ActiveMQ、Kafka、RabbitMQ

    分布式消息通信

  • 熔断,限流,降级机制

  • Redis

    分布式缓存

  • Mycat

    数据库路由

  • Nginx

    反向代理

  • Tomcat

    Web Server 服务

  • DevOps

    自动化运维,持续集成、持续交付、持续部署

  • 分布式锁

    基于 Redis、MySQL、Zookeeper 的分布式锁实现

  • FastDFS

    轻量级分布式文件管理系统

  • Go

    并发的、带垃圾回收的、快速编译的语言

九、机器学习

  • 深度学习初识

  • 经典机器学习算法

    K 近邻算法、线性回归、梯度下降法、逻辑回归、支持向量机、决策树、集成学习

十、工具

Learn 📖

  包含阅读清单,学习课程两部分

Talking 💡

本仓库致力于成为一个全栈开发爱好者的学习指南,给初学者一个更明确的学习方向,同时也是对自己技能的强化和巩固。在架构师这条路上,希望和大家一起成长,帮助更多的计算机爱好者能够有一个明确的学习路径。持续不间断的维护本仓库,也欢迎有更多的极客们加入。

都说好记性不如烂笔头,定期的学习和整理必然对学习巩固有所帮助,这里通过索引的方式对全栈开发技术做一个系统分类,方便随时巩固和学习,当然还有面试。在学习这条路上难免会有很多盲点和学不完的知识。有道无术,术尚可求,掌握好思维能力才能应对千变万化的技术。不要把大脑当成硬盘,也不要做高速运转的 CPU,而修行自己的大脑成为一个搜索引擎,学会分析解决问题。

Since 20,May,2018

Reference

个人的能力有限,在编写的过程中引用了诸多优秀的 GitHub 仓库。本项目的启发来自 @CyC2018 的学习笔记,是一个非常优秀的开源项目,在本仓库中部分内容引用文字和图例;引用了 @计算所的小鼠标 中对于 JCF 的源码分析和理解;引用了 阿里面试题总结 中全部的面试题,并对面经进行了整理勘误,并进行了知识拓展和修改;引用了 牛客网 上的面试经验贴。也引用了知乎上的热门回答和优秀博客的回答。在这里特别鸣谢,我将每篇文章中做外链引用说明。

文中我也推荐了学习的书籍和学习课程,都将附着上最高清、最形象的配图进行讲解。在文中的配图都来自自己绘制的、博客、Github、PDF书籍等等,这里没法一一感谢,谢谢你们。

推荐一些优秀的开源项目,供大家参考,reference

Contributors

Thank you to all the people who already contributed to fullstack-tutorial !

Please make sure to read the Contributing Guide/如何给我的仓库贡献 before making a pull request.

Stargazers over time

Stargazers over time

License

知识共享许可协议

Copyright (c) 2021-present, Frank Lam

关于作者 👦

『作者简介』:https://www.frankfeekr.cn/author

在颠覆世界的同时,也要好好关照自己。

BLOG 邮箱 QQ群

from zero to hero.

fullstack-tutorial's People

Contributors

ahualy avatar billpoon12138 avatar dodisefti23 avatar fandean avatar frank-lam avatar frankllc avatar ileadall42 avatar librarysong avatar liuenci avatar mazyi avatar mgzu avatar monkeywithacupcake avatar pyinx avatar qiurenbo avatar rovo98 avatar shenxiang11 avatar si9ma avatar syncma avatar taoey avatar unbyte avatar wumiao5s avatar wyc1024 avatar yaosai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fullstack-tutorial's Issues

算法** 2.插入排序 第一部分代码错误

第一部分代码和选择排序完全一样了,应该为

public static void insertionSort(int[] arr) {
        for (int i = 1; i < arr.length; i++) {
            for (int j = i; j > 0; j--) {
                if (arr[j] < arr[j-1]) {
                    swap(arr, j-1, j);
                }
            }
        }
    }

幻读解释有误

我测试了一下mysql,事务t1增加数据后提交,事务t2是无法读到t1提交的数据的,因为mysql隔离级别为默认为可重复读,所以不管t1提交与否,t2都读不到t1提交的数据,但是t2还是可以感知到t1提交的变化,比如t2如果要插入一条用户名唯一的数据a,但是t1已经插入a并提交,t2是读不到a,但是插入a时会因为唯一索引报duplicate错误。

[日本大坂] Ku团队诚聘Golang工程师等6岗位薪水3000-6000 USD

Ku即时通讯专案技术团队徵才
以区块链技术与社交应用深度融合开发的技术团队,旨在实现区块链时代的安全沟通、场景化快速便捷交易。
企业网站: https://www.kuzh2.com/?setIn=en
工作地点:日本 大坂

职缺
1.【产品经理x1】$3500-5000
2.【前端工程师x1】$3000-5000
3.【Java后端运维工程师x2】$3500-6000
4.【Android工程师x1】$3000-5000
5.【Golang后端开发工程师x2】$3500-6000
6.【UI设计师x1】储备岗位$2500-4500
7.【运维工程师x1】$3000-5000

工作地点:日本 大坂
联系方式:以上职缺有兴趣者欢迎联络HR(Kino先生)
skype: live:.cid.66b1344821d6eabe
telegram: @hrkino1116
telegram频道: https://t.me/ITsoftjob
Email: [email protected]

工作性质
是否全职:是
是否远程:否
岗位要求、职责
欢迎联络HR

工作环境
开放式办公空间
大坂商圈

Linux学习类

[TOC]

Linux常用命令

系统安全

sudo su chmod setfacl

进程管理

w top ps kill pkill pstree killall

用户管理

id usermod useradd groupadd userdel

文件系统

mount umount fsck df du

系统关机和重启

shutdown reboot

网络应用

curl telnet mail elinks

网络测试

ping netstat host

网络配置

hostname ifconfig

常用工具

ssh screen clear who data

软件包管理

yum rpm apt-get

文件查找和比较

locate find

文件内容查看

head tail less more

文件处理

touch unlink rename ln cat

目录操作

cd mv rm pwd tree cp ls ll

文件权限属性

setfacl chmod chwn chgrp

压缩/解压

bzip2/bunzip2 gzip/gunzip zip/unzip tar

文件传输

ftp scp wget

定时任务

crontab (分时日月周)
at

系统负载命令?

Linux常用命令 - CSDN博客

ZOOM-23届校招内推!!

ZOOM校招开启啦!!!
本科及以上2023届毕业生,计算机、数学、电子信息、通信工程等满足岗位需求的理工科相关专业
*国内:2022年9月-2023年8月毕业生
*海外:2022年9月-2023年12月毕业生
今年苏州、合肥的校招HC更为充足哦
内推链接:https://dwz.cn/mA5cS7fU
硕博算法内推链接:https://dwz.cn/FCNmYbFM

7月20日 网申启动
8月10日 在线笔试No.1
9月5日 在线笔试No.2
9月28日 网申截止
9月29日 在线笔试No.3
十一之后 开始发Offer 👏

《全栈开发技术地图》出版进行中

本仓库即将重构并出版《全栈开发技术地图》图书(书名暂定),将从各个维度重新原创全栈开发中最核心的技术点,如果你也有好的想法,欢迎留言讨论

【内推】【社招/校招均可】拼多多基础平台招聘大量岗位急招

内推|拼多多|基础平台大量岗位急招 (该招聘长期有效)


拼多多基础平台计算,网络,存储,中间件等各个方向P6/P7/P8都有多个职位空缺,欢迎交流和邮件沟通:


云原生开发工程师(K8s集群管理方向)

岗位职责
负责拼多多的容器平台的工程和产品化建设。
负责K8s集群自动化高可用部署,自动化更新,自动化扩缩容,自动化故障发现和自愈。
负责K8s集群服务能力和规模上限的压测和优化,集群预警指标的建设以及容灾演练。
负责K8s集群内和多集群间的编排能力,插件发布,系统配置变更等。
负责边缘K8s系统的设计,部署和运营工作。

任职要求
计算机、数学、电子工程、通信、自动化等相关专业,基础知识扎实;
熟练掌握C/C++/Golang/Java中的至少一种语言;
有基础架构,云计算相关工作经验优先;
对K8s, mesos,docker有使用和开发经验优先;
优秀的表达能力,沟通能力和团队协作能力;对工作和项目有责任心;对技术和业务有前瞻性的思考,能够参与容器平台领域方向性的决策并推进落地;


云原生开发工程师(k8s编排调度方向)

岗位职责
负责拼多多内部复杂多样的业务发布部署需求的工程和产品化建设。
负责拼多多内部的无状态和有状态编排系统开发。
负责yarn on k8s,spark on k8s,批任务的编排发布系统开发。
负责拼多多内部复杂多样的资源类型的调度系统开发。
负责在离线混部和资源隔离的调度能力开发。

任职要求
计算机、数学、电子工程、通信、自动化等相关专业,基础知识扎实;
熟练掌握C/C++/Golang/Java中的至少一种语言;
有发布和调度系统相关工作经验优先;
对K8s, yarn,spark,flink等有使用和开发经验优先;
优秀的表达能力,沟通能力和团队协作能力;对工作和项目有责任心;对技术和业务有前瞻性的思考,能够参与容器平台领域方向性的决策并推进落地;


云原生开发工程师(K8s 容器/网络/存储/设备管理方向)

岗位职责
负责容器使用cpu,内存的性能问题和隔离问题的优化。
负责容器网络SDN能力开发和优化:包括但不限于网络弹性能力,隔离能力,出外网能力,带宽限流能力和网络指标可视化能力。
负责对象存储,块存储和文件存储的容器挂载能力,io隔离能力,存储空间隔离能力的开发。
负责拼多多内部RDMA,GPU设备的管理,监控和虚拟化分配能力的开发。

任职要求
计算机、数学、电子工程、通信、自动化等相关专业,基础知识扎实;
熟练掌握C/C++/Golang/Java中的至少一种语言;
有网络,存储,RMDA,GPU等相关工作经验者优先。
有linux内核开发和ebpf相关工作经验者优先。
优秀的表达能力,沟通能力和团队协作能力;对工作和项目有责任心;对技术和业务有前瞻性的思考,能够参与容器平台领域方向性的决策并推进落地;


云原生开发工程师(资源运营:财务ops,数据可视化方向)

岗位职责
负责拼多多内部K8s集群的资源运营和用户配额管理相关工作。
负责K8s集群成本和业务使用成本的数据计算和优化。
负责不同资源类型和型号的保有量,成本优劣分析,并推动资源的优胜劣汰。
负责资源分别情况和业务部署使用情况的全面可视化,并分析更合理的部署匹配数据给调度使用。

任职要求
计算机、数学、电子工程、通信、自动化等相关专业,基础知识扎实;
熟练掌握C/C++/Golang/Java中的至少一种语言;
有资源运营或财务ops相关工作经验者优先。
有数据分析,推荐系统相关工作经验者优先。
优秀的表达能力,沟通能力和团队协作能力;对工作和项目有责任心;对技术和业务有前瞻性的思考,能够参与容器平台领域方向性的决策并推进落地;


工作地点:上海
邮箱:[email protected]

[日本] MaskEX诚聘专案&技术团队薪水2500-7000USD

诚聘专案&技术团队[赴日]

MaskEX 亚洲徵才
企业网站:https://www.maskex.com/company/aboutus/zh_HK
工作地点:日本 大坂地区

专案团队职缺:
【产品经理】3000-6000 美金 需求人数2至4人

技术团队职缺:
1.【区块链Java运维工程师】3500-6000 美金 需求人数2人
2.【高级移动端flutter】3000-6000 美金 需求人数2人
3.【资料库DBA】3000-6000 美金 需求人数1人
4.【运维工程师】 3000-6000 美金 需求人数1至2人
5.【Php高级架构师】3500-7000 美金 需求人数1至2人
6.【Php资深工程师】3500-5000 美金 需求人数4至6人
7.【测试工程师】2500-6000 美金 需求人数1人
8.【储备前端工程师】2500-6000 美金
以上薪资范围视实际能力调整

条件要求:
1.工作经历:3年以上
2.学历要求:大学、硕士
3.科系要求:资讯管理、资讯工程相关佳
4.语文条件:中文、英文
5.其他条件:区块链专案经验佳

以上职缺皆保障八险一金、提供在日工作签证。

福利制度&办公环境:
1.免费住宿
2.租房&生活补贴
3.营收奖金分发
4.开放式办公空间
5.大坂商圈。

工作地点:日本大阪
联系方式:以上职缺有兴趣者欢迎联络HR(Kino先生)
skype: live:.cid.66b1344821d6eabe
telegram: @hrkino1116
telegram频道: https://t.me/ITsoftjob
Email: [email protected]
工作性质
是否全职:是
是否远程:否
岗位要求、职责
欢迎联络HR

工作环境
开放式办公空间
大坂商圈

Java 基础知识

Java 基本类型

byte : 1 字节
short:2 字节
char:2 字节
int:4 字节
long:8 字节
double:8 字节

1字节 = 8 位

关于数据结构-二叉树-二分查找代码的问题

针对文中代码修改如下,见注释处
private static int search(int[] data,int l,int r,int target){
int mid;
//注意:此处循环条件为<=,若无=则无法查找数组起始处数据
while(l<=r){
mid=(l+r)/2;
if(data[mid]==target){
return mid;
}else if(data[mid]<target){
l=mid+1;
}else{
r=mid;
}
}
return -1;
}
private static int searchDfs(int[] data,int l,int r,int target){
//注意:此处循环条件为>,若有=则无法查找数组起始处数据
if(l>r){
return -1;
}
int mid=(l+r)/2;
if(target==data[mid]){
return mid;
}else if(target>data[mid]){
return searchDfs(data,mid+1,r,target);
}else{
return searchDfs(data,l,mid,target);
}
}

插入排序有问题吧?

大佬的代码会发生数组下标越界。试试我的代码
public static void sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (int j = i + 1; j > 0; j--) { if (arr[j] < arr[j - 1]) swap(arr, j, j - 1); // 大量的交换会消耗时间 else { break; } } } }

本仓库开源贡献小组,英雄招募令

关于开源贡献说明

个人能力有限,欢迎志同道合的朋友们共同维护本仓库,一起加入开源世界。
本仓库致力于成为全栈技术开发,不限于语言、算法。
招募 PHP,Python,Go,C++,分布式中间件,机器学习,深度学习等等,板块维护者。
当然只要是和技术相关都行啦,欢迎大家的加入。
如果有兴趣,可以加入下方的 QQ 群,和我交流。


English Support

Hi,

Good article, it would be helpful if you add support for English language version. At least the svg images in English. Kindly look into this.

English version

First of all, I would thank you for the content you are giving to developers.
I have just one request. Can you please provide an English version, I'd like to read more and google translate is not enough.
Thanks.

计算机网络.md中运输层是怎么回事啊

“运输层 :提供的是进程间的通用数据传输服务。由于应用层协议很多,定义通用的运输层协议就可以支持不断增多的应用层协议。运输层包括两种协议:”

# Java 集合框架补充知识点

以下哪些java容器是线程安全的( )

  • Vector
  • ArrayList
  • HashSet
  • ConcurrentHashMap

Vector 是list的三个实现类里唯一一个线程安全的集合 它用了synchronized () 另外两个是实现类 ArrayList LinkedList
HashSet 线程不安全 无序集合
ConcurrentHashMap 该类位于 java.util.concurrent 包下,专门用于解决并发问题。 线程安全 另一个是 Hashtable

JavaIO中,JDK提供的java.nio是异步IO?

JavaIO这一文件中,第五点说到同步异步的区别,里面的“JDK提供的java.nio是异步IO”是不是有问题?和第六点里面的“NIO是同步非阻塞”是不是冲突了?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.