程序员要学习那些知识

开发人员要具备的知识如下: 

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. 可承受较大压力,有责任感,较强的沟通协调能力,具有团队合作精神。

相关推荐