关于技术的整理
* 计算机、通讯、数学等相关专业本科以上学历,3年以上JAVA/J2EE开发工作经验
* 精通Memcached、Smarty、Redis、MongoDB
* 精通HTML/CSS/JavaScript/Ajax/JQuery等相关技术
* 熟悉Apache/Nginx的配置和使用
* 数据结构、算法分析功底扎实,熟悉tcp/ip网络,有较强的架构能力和良好代码规范
* 有大规模系统设计和开发经验者
1.四年及以上Java EE工作经验
2.JAVA基础知识扎实,熟悉IO,多线程,集合类等基础框架,熟悉缓存,消息,搜索等机制
3.精通Java EE相关的主流开源框架,如Spring、iBatis、struts等
4.在可扩展、高性能,高并发,高稳定性系统设计,开发和调优方面有实际经验
5.熟悉Oracle、MySql等数据库技术,对sql优化有一定的经验
6.具有很强的技术研发和创新能力,能有效把握技术发展方向
7.思路清晰,较好的沟通能力与技术领导能力。
8 具有BI产品、数据可视化产品 开发经验者优先考虑
再回来说说java。首先Java不只在说Java语法,而是Java相关的全套技术。
它包括基本语言Java、JavaScript、HTML、JSP、XML、CSS、JQuery、Extjs;
开发环境JDK、JBoss、Tomcat、WebSphere、WebLogic;IDE(开发平台或者插件)JBuilder、Eclipse、MyEclipse、JCreator;
数据库Oracle、SQL Server、MySql;安全Acegi、CAS、jSai、kasai;
项目或测试CruiseControl、JUnit、TestNG;框架及应用Java SE、Java EE、Java ME,Web开发JSP、Servlet、Applet,
项目开发Spring、Hibernate、Struts、Tapestry、JSF JMX,
还有一些专题框架如Ajax JNDI、JMX JMS、JDBC Jmail,JDOM SAX。
这还不止,还有许多开源的,甚至商业的技术或框架。 而现在android系统以及其上的应用都可以用java来开发。
1.基础语言知识,主流语言都差不多,变量、常量、运算符、流程控制 2.面向对象部分,继承、封装、多态 3.集合框架 4.常用类库API 5.JFC部分,awt Swing JavaBean 6.Java高级知识,Annotation、IO和NIO AIO、多线程、线程池、阻塞、非阻塞、异步网络通信、反 射、动态代理 7.SQL基础,基本SQL语句、基本查询、多表查询、子查询、结果集的交、并、差运算 8.JDBC基础,常见数据库用法、JDBC操作常见数据库、RowSet与离线结果集、数据库连接池、事务处理、批处理 9.JDBC进阶,存储过程、函数、触发器、理解JDBC不足、掌握ORM工具优势和设计
1. 精通 Spring (需要阅读源码、大量项目实践)
2. 熟悉Maven , 推荐gradle
3. 熟悉以下常用类库(排名不分先后)
slf4j , json-lib, jetlang , fastutil , disruptor ,, ehcache, lucene, , trove , JNA, xfire, joda-time
commons-configuration
commons-collections
commons-beanutils
commons-codec
commons-pool
commons-lang
commons-io
commons-cli
thrift , protobuf
junit, guava , httpclient , freemarker,
dom4j, stax, sax, jdom
morphia, zookeeper, c3p0, cglib
JDK 中的 Concurrent包, 正则表达式包,
snakeyaml , quartz, acegi-security, bdbje, memcache, netty, kryo,
4. 了解一些常用的 NoSQL数据库:
Mongodb, Redis, Riak, HBase, Cassandra
5. 熟悉 ibatis (以及 abator), Extjs
6. 熟悉一些常用的Java标准:
JMS、 JMX ,Javamail , JSP,
7. 熟悉一些关系型数据库: MySQL、 PostgreSQL, Oracle,
8. 熟悉Eclipse, tomcat
2. 熟悉Maven , 推荐gradle
3. 熟悉以下常用类库(排名不分先后)
slf4j , json-lib, jetlang , fastutil , disruptor ,, ehcache, lucene, , trove , JNA, xfire, joda-time
commons-configuration
commons-collections
commons-beanutils
commons-codec
commons-pool
commons-lang
commons-io
commons-cli
thrift , protobuf
junit, guava , httpclient , freemarker,
dom4j, stax, sax, jdom
morphia, zookeeper, c3p0, cglib
JDK 中的 Concurrent包, 正则表达式包,
snakeyaml , quartz, acegi-security, bdbje, memcache, netty, kryo,
4. 了解一些常用的 NoSQL数据库:
Mongodb, Redis, Riak, HBase, Cassandra
5. 熟悉 ibatis (以及 abator), Extjs
6. 熟悉一些常用的Java标准:
JMS、 JMX ,Javamail , JSP,
7. 熟悉一些关系型数据库: MySQL、 PostgreSQL, Oracle,
8. 熟悉Eclipse, tomcat
去小公司,要看自己的职位是否可能独当一面。
餐饮行业线上线下信息化实践者
从一个游戏公司出来,到一家电商公司应聘。
因为技术不对口,使劲浑身解数,靠着自己扎实的基础知识,积极的态度,良好的交流……公司才勉强同意要我。
入职以后,整天处理的就是大流量高负载的服务器程序的设计和开发……不允许有单点问题,不允许丢消息,业务要有幂等性,集群要有强大的横向扩展能力,很多任务又必须用分布式锁保证唯一性……
被逼久了,想不会也不太可能。
不过还是觉得自己离高级程序员差很多,ElasticSearch集群出问题我可以去追源代码去分析内存,但是mongoDB副本集异常退出,我却没有能力像总监那样去追踪C的源码。
个人观点:环境决定高度——想要进步,我需要爬到更高的环境中。
我跟你的经历类似,楼上的建议比较赞同,但研究的过程可能会比较枯燥,因人而异,我个人的一些建议,也可以尝试以下方法进一步提升自己:
1、从技术的广度上提升自己,多关注IT新技术的发展,比如Hadoop,NoSQL等新兴技术以及相关的解决方案,让自己紧跟IT技术的发展,并从中挑选自己感兴趣的进行研究。
2、从业务上提升自己,学习如何收集需求,从需求中提炼出业务,并为实现该业务提供相应的技术解决方案。技术是一种手段,目的是为了解决实际业务问题
3、多参加一些技术/业务相关的交流会或者聚会,并积极大胆的发言,把自己的知识、经验传播出去,这样才能让学会的东西真正的成为自己的能力。而且,多参加这样的聚会,能够了解到其他人在做什么,也许会给自己找到一个新的发展方向也不一定
每个人都有自己成长的方式,以上建议仅作参考,祝你能够早日找到一条属于自己的光明大道!
另外,Maven还是要学习的,现在多数公司都采用持续集成的开发环境了,Maven已经成为必备技能之一了