从网上收集后整理处理的.
推荐使用编辑器: Eclipse/MyEclipse/Intellij IDEA。
maven项目配置管理工具,
tomcat、jboss等应用服务器
1 后端开发语言及技术
PHP:
Web开发的模式理解
php高级部分(面向对象)及pdo数据处理,php特级部分(框架的应用)等。
面向对象分析和设计技术,包括设计模式、UML建模等
具有设计和开发对外API接口经验和能力,同时具备跨平台的API规范设计以及API高效调用设计能力
技术:
如JS,JQ, AJAX ,Velocity ,Spring ,iBatis ,OSGI ,SpringMVC ,Mybatis ,Struts2 ,Hibernate开发。
Nginx/Tomcat 反向代理,多项目部署,30X重定向等SEO。
Git/SVN/Maven/RESTFul/Markdown/QRcode 各种杂技。
2 运维
Unix/Linux后端必须掌握的操作系统。
个人建议平时可以完全使用Ubuntu Desktop作为日常使用的操作系统。附带的,需要对操作系统本身有足够的认识和了解。
了解 (ansible, salt, puppet)等自动化运维技术, 了解docker, 熟练掌握shell脚本处理线上问题
熟悉 Linux(CentOS Ubuntu)/Windows 服务器维护。
3 安全
知道各种安全攻击方式(xss, csrf, sql注入) 代码实现能够规避常见的安全漏洞, 处理各种网络攻击事件
App开放接口api安全性的设计与实现
4 数据库
关系型数据库还是非关系型数据库
知道常见的数据库的优化以及运维,能够分析sql并且调优使之满足性能
熟悉 MySQL 数据库表设计,外键关联,多表查询等一系列技巧。
熟练使用oracle、sqlserver、mysql等常用的数据库系统,对数据库有较强的设计能力
mysql技术内幕第五版,有点厚当手册读读,要有耐心,高性能mysql也强烈建议读读
5 网络编程
图解密码技术,密码入门不二之选
建议书籍:《Unix网络编程》《TCP/IP协议详解》《Linux编程》《Unix环境高级编程》linux相关知识:鸟哥的教程和APUE
了解linux的网络模型epoll, 熟练掌握http, tcp/ip协议,并且能够通过抓包方式debug。 熟练掌握linux, 能够在高兵法场景下通过优化内核解决问题。
6 大数据
高并发处理负载调优
了解 (hadoop/storn/spark)技术栈, 能够使用大数据技术栈解决常见的大数据问题
7 算法和数据结构
知道常规的算法和数据结构,通过分析代码能了解架构的计算复杂度和性能,并针对性做出优化
8 机器学习算法
数据结构与算法:看算法导论和《数据结构与算法C语言描述》
知道常见的机器学习算法,能够使用机器学习和深度学习解决一些人工智能问题,比如聊天机器人, 反spam, 机器推荐等
9 搜索引擎
掌握elasticsearch solr等开源搜索引擎,能够搭建搜索引擎实现各种搜索以及排序任务
10 扩展
5个方面为核心扩展开的,无论做哪方面的后端开发,归根到底都是这5个方向的延伸。
建议书籍:《C/C++ Primer》《Effective C++》《Pointers on C》等等
一个框架(了解url机制,模板机制,视图机制),数据库,缓存,长连接,http协议,推荐,搜索,队列,消息,性能调优,等等。
c/c++:看《C++ primer》和C++标准库