-
不会的话先 Google ,搜索完之后还是没有解决再来问我们
-
第一天先 fork 仓库:bingyan-summer-camp2018,本次夏令营要求代码,日报周报等全部托管在 你们 fork 之后的 github 仓库上
日报、周报不需要太多,只需要介绍每天学习了什么即可
-
之后的 code review,采用 PR --> MR 的形式
当你需要代码写了一部分的时候,可以向你们fork的仓库提交 pull request,我们会审核代码,如果有点问题,会附上建议,你们修改好之后我们再将你们的 PR merge 进我们仓库
-
在夏令营开始的时候会给你们每人分配一个合适的导师
-
我们每周一次组内分享,欢迎新人做分享
-
没做完,可以夏令营结束之后继续写,欢迎来问我们
-
坚持就是胜利,我希望你们在最后还能保持着刚刚进来的热情,很多事情没有你想象的那么难,当然也没有你想象的那么简单,但是很难的事情也是一步一步做完的,希望冰岩夏令营能成为你成为你大学的一个契机、一个跳板。加油!
注:准备工作主要是作为参考,不做要求,可以跳过,这里涉及到一些你写项目的时候可能会需要的知识
-
推荐使用 Linux or Mac 作为开发系统
-
git
-
搭建本地开发环境
高性能反向代理代理服务器软件: Nginx/Openresty
数据库:MySQL/MongoDB/PostGreSQL
缓存数据库:Redis/memcached
语言环境:Python/Go/Java/PHP/node/Kotlin等
容器工具:Docker,docker-compose
云服务器:可以选择 阿里云或者腾讯云的学生套餐, 仅10元一月,前期学习只需要在本地即可,后期可能会用到
注:斜杠划分的选择其一即可
-
选择好自己适合的开发工具,如:编辑器 vscode,用不惯的话 IDE 亦可
-
安装一款后台接口测试工具,如:Postman
-
Python
-
Go
-
PHP
-
Java
- 菜鸟教程
- Java 代码规范
-
Node
关键字:单线程,异步,回调地域,Promise,async/await
-
Kotlin
-
Python
可能会用到 uWSGI 启动
- Flask
- Django
- sanic
-
Go
其实原生的以及封装的很好了
- Gin
- Echo
- Beego
-
PHP
-
Laravel
-
CodeIgniter
-
-
Java
Servlet 写小一点的东西也行
-
SSM + Spring Boot
-
Play
-
Spark
-
-
Node
- express
- Koa
-
Kotlin
熟悉以下三种前后端认证方式,一般在登录时使用
- cookie
- session
- JWT
不同需求,对应不同加密方式,先了解
- 对称加密
- 非对称加密
- 哈希算法
注:初学前端请使用 Chrome
-
基本 HTML、CSS 知识
关键字:
- HTML:布局,表格表单,区块,元素,列表
- CSS:盒模型,样式表,选择器,浮动,定位
-
基本 JavaScript
关键字:事件,DOM操作,作用域,变量,函数
注:前端可使用相关UI框架和 JS 框架(react,vue),以及一些比较好用的 js 包(如请求包 axios),可自行选择,具体可以咨询前端组的同学。
-
HTTP基本知识
如:HTTP 方法:GET、POST、PUT、UPDATE等,HTTP状态码:404,500, 200,301等,HTTP URL,HTTP 基本传输格式:json,form等
关键字:HTTP 方法,HTTP状态码,HTTP传输格式,HTTP头部
-
前后端如何交互
如:前端如何获取后端返回的数据,如何发送请求,后端如何根据前端发过来的请求,回应请求,如何辨别不同的请求
关键字: js 请求库(axios, fetch, superagent选其一,原生亦可),URL, 域名,ip
学习基本操作(增删改查)即可,以后可自行研究
- MySQL/MongoDB/PostGreSQL
- Redis
可在菜鸟教程上速成
注:前端能看就行,不是硬性要求
具体要求:
-
管理员登录/注册
管理员与普通成员信息类似
注:登录之后注意用户认证问题,如:从浏览器退出此页面之后,再次进入页面如何辨认此用户,登录过期等问题
-
普通成员注册
注册之后,需要管理员审核通过才能成为组员
-
查看未审核的成员,审核成员注册是否通过
-
添加成员
成员必须信息如下:用户ID(字符串),密码(要求在数据库中加密存储),邮箱,手机号,昵称,组别
其他信息自行思考
-
删除成员
-
修改成员信息
-
获取所有成员信息
-
可以根据组别显示成员
关键字: 认证,数据库,成员管理
注:前端能看就行,不是硬性要求
形式不定:网页,小程序,桌面程序均可
基本功能:
-
登录注册
用户密码使用非对称加密
-
商品按照类别查询
如:商品类别:电子设备、书籍资料、宿舍百货、美妆护肤、女装、男装、鞋帽配饰、门票卡券、其他
-
商品按照地域查询
如:韵苑、沁苑、紫菘、其他
-
热门查询、最新查询
热门查询可在后台记录用户的浏览数据等信息
-
商品页面
-
商品详细信息
标题、简介、价格等
-
图片
图片可以存在本地,或者使用七牛云存储
-
-
个人信息页
- 个人基本信息
- 浏览量
进阶功能:
-
图片压缩
浏览时显示压缩的小图片,详细页显示大一点的图片
-
收藏夹
-
商品浏览量、收藏量等
-
后台系统
- 商品上架、下架
- 商品信息变动
- 系统通知
-
消息提醒
如:降价提醒、系统推送
-
接入微信或者QQ
学习配置 nginx 做中间代理层,具体可从以下链接中选取部分学习,作为示例,夏令营之后可以好好研究,当然夏令营期间有时间也可以自行研究,遇到坑可以问我们。
前提:有已经备案的域名,有服务器
- 冰岩程序组夏令营:https://github.com/tofar/bingyan-summer-camp2018
- 冰岩前端组夏令营:https://github.com/BingyanStudioFE/summber-camp-2018
- 冰岩产品组夏令营:
- 冰岩运营组夏令营:
- 冰岩产品组夏令营:
- 冰岩游戏组夏令营:
-
不推荐快速入门
-
Effective Python 中文版 Effective Python 原版
很高质量的一本书,让你领略 Python 的一些哲学,以及一些 Python 的使用经验,适合有一定基础的 Python 选手
-
讲了很多 web 的基础知识,适合 web 入门
-
可以了解基本web开发,推荐入门
-
一共两本,第二本讲原理多(如:go 的gc, 内存管理等),第一本适合入门
- 《深入php面向对象、模式与实践》
- 《细说PHP》
- 深入浅出 node
- 你不知道的JavaScript 上、中、下
- JS 高级程序设计
- ECMAScript 6 入门
- effective Java
- Java 核心技术卷
- 深入理解jvm虚拟机
只要你是一个程序员,那么算法对你就是必备!
-
常见排序算法
如:冒泡、插入、选择、希尔、堆排序、归并、快排
-
常见散列
如:分离链接法、开放定址法(线性探测、平方探测、双散列)
-
常见数据结构
如:链表、堆栈、队列、树
-
常见算法了解
如:贪婪算法、分治算法、动态规划、回溯
这些算法主要了解其**
-
图论算法
如:最短路径算法、最小生成树、深搜、宽搜
-
。。。
书籍推荐:
- 《数据结构与算法分析 C语言描述》黑皮书,质量很高
- 《算法 第四版》普林斯顿的书,好像还不错
- 《算法导论》(理论比较多)
-
面向对象和抽象的**
-
熟悉 Github,熟悉 git 版本管理工具的基本命令操作,如:clone, add, commit, push, pull, merge, branch, checkout, tag
-
http 协议,主要阅读《http权威指南》前三章
-
tcp/ip协议,《计算机网络,自顶向下方法》tcp/ip协议至少要知道他的协议栈,每层是干嘛的,tcp连接建立、断开的过程,tcp/udp的区别
-
WebSocket、Socket、TCP、http,http2
-
Linux 常见操作学习,熟悉基本操作, 如:man, ls, mkdir, cd, cp, mv, scp, ssh, rm, ps, cat, head, tail, vim, wget, curl, chmod, chgrp, chown, sudo, grep
-
了解 linux基本概念:用户组,权限,文件系统,软/硬连接,挂载,启动等
-
了解 vim 基本操作,毕竟服务器上一般都是用vim操作,没有图像界面
-
学习 shell 脚本程序
-
正则表达式
这个经常用到,不管是那个方向
-
数据库设计,可以看下《SQL反模式》
-
常见设计模式,如:MVC模式,装饰器模式
-
常见安全问题
常用工具:浏览器 F12,抓包工具:Fiddler, wireshark
- DDOS攻击
- 中间人攻击
- sql注入
- ip欺骗
- xss攻击
- csrf
- 远程脚本执行
-
操作系统基础知识
基本特性:并发、共享、虚拟、异步
-
CPU 进程调度,线程,进程
-
共享,信号量,PV操作,锁
-
内存管理
虚拟存储,段页式系统,缺页
-
文件系统,ELF文件
-
-
分布式了解以及应用
-
数据库分布式
-
分布式常见问题
一致性问题,共识算法,FLP 不可能性原理,CAP 原理,ACID 原则,拜占庭问题,可靠性指标
-
分布式算法
Paxos 与 Raft
-
- 良好的英文阅读能力对于一个优秀的程序员来说真的很重要,如果可以的话要养成看英文文档的习惯,毕竟很多好的文章、书籍都是国外的,翻译毕竟会有所损失,而且速度更新也没有看英文的快,不要因为觉得自己英语不好就不看英文文档和英文文章,如果只是阅读的话,还是OK的
- 对于我们来说,技术好不好其实不一定重要,最重要是你有独立解决问题的能力和对 code 的热爱与勇气。