程序员要学习那些知识
开发人员要具备的知识如下:
1 掌握java语言,熟悉IO,集合,多线程,并发控制
2 开发工具eclipse即可,掌握 SVN,Maven+
3 项目管理Jenkins
4 掌握框架SSH,SSI,Freemarker,Velocity,Webservice等
5 掌握数据库Oracle,Mysql,Redis,MongoDB
6 掌握web服务器,tomcat,jboss,weblogic
7 掌握面向对象并利用UML建模
8 掌握运用前后端的单元测试
9 掌握前端技术javascript以及javascript框架如jquery,掌握html,css
10 熟悉分布式,静态化,事务,缓存,消息,负载均衡
11 linux 熟悉工作中 shell编写
==========================================================
以前是大的框架结构,下面细分一下
1 分布式
分布式框架,比较常用的webservice,hession,cxf
分布式框架,比较常用的Jta实现 jotm,但是更多的是利用消息,最终一致性解决
分布式缓存,比较常用的memcached
分布式消息,比较常用的activeMq
2 linux以及服务器配置
linux上安装并配置SVN,Maven私服,web服务器负载均衡,管理工具
3 数据库
数据库优化中的,分表,分区,分库(水平/垂直),读写分离
4 关于并发
现在流行的jetty
5 安全
安全设计到的有权限验证,验证码(图片,手机短信等),加密,框架的漏洞
业务上的安全,服务器的安全,数据库的安全等
===========================================================
切面关注点
1 使用场景
2 使用技巧
3 使用中的坑,以及解决方案
4 使用中安全,性能,一致性,容错性,负载,优化
============================================================
下面是一个职位要求:
1. 负责系统架构整体设计,技术架构选型,并主导功能模块设计、数据结构设计、对外接口设计; 2. 承担系统核心功能的研发工作;负责核心技术问题的攻关,系统优化,协助解决项目开发过程中的技术难题; 3. 负责研发团队的建设和人才培养,不断提升团队的工作质量、效率和技术能力; 4. 负责处理、协调和解决公司软件研发中出现的技术问题;积极了解业界发展、互联网相关新技术及趋势,规划公司未来技术架构方向; 5. 保证公司研发工作的正常进行,确保公司软件开发计划按时完成; 6. 完成制定与技术相关的各项管理制度、技术规范及业务流程,负责对技术方案的评审工作; 7. 负责组织并指导运维人员保证系统的正常运营、信息的综合利用及系统的安全性。 任职要求: 1. 五年以上大规模在线交易系统设计、规划及参与系统运维经验,熟悉Java/JavaScript等语言; 2. 精通大规模系统的JavaEE架构技术,熟练掌握常见开源框架和技术,如Mybatis、Struts2、Spring、ActiveMQ、Redis等,熟练使用MyEclipse/IntelliJ Idea开发工具,对框架本身有过开发或重构者可优先考虑; 3. 熟悉主流应用服务器的架构体系、数据库以及各种中间件技术,如tomcat、jboss、jetty、websphere、Mysql/MariaDB、Postgresql等; 4. 精通常用设计模式和主流设计工具,能进行系统建模、总体设计; 5. 熟悉大规模系统的负载均衡、缓存、网络存储、网络安全、数据库高可用设计及性能评估机制; 6. 具备海量数据、大批量、高并发、高性能分析及处理的成熟经验; 7. 具备良好的文档撰写能力、编写习惯,良好的抽象思维和逻辑思维能力,独立分析问题解决问题的能力; 8. 可承受较大压力,有责任感,较强的沟通协调能力,具有团队合作精神。