听说过编程语言,经常会用到20%的技巧。用Java语言来说,这20%包括什么?我已经参加了两个月的培训,还有两个月的时间。如果我想在两个月内找到一份初级Java程序员的工作,必须掌握什么,现在可以卖什么?一个完整的Javaweb项目,具体有哪些模块,每个模块使用了哪些技术?常用api(String、StringBuffer/StringBuilder等)集合类、线程类。Servlet(很少用纯servlet写的,但是你要懂,因为很多框架都是基于servlet封装的)。json、xml读写数据库访问(增删改查、事务、连接池)http请求(HttpClient)其他,包括常用框架、设计模式,面向对象的初级程序员知道这些就可以写项目了。后面遇到的问题会复杂很多,要靠各种经验和知识的积累。除了要掌握的那20%之外,还必须掌握哪些知识,才能游刃有余地做好一份工作。先说一下我接触过(用过)的东西。Java以其丰富的分布式应用生态着称,在分布式系统中也逃不过CAP的选择。早点了解一些分布式共识协议paxos、raft等。了解zookeeper的原理和使用场景(元数据、分布式锁、leaderEletion...等)RPC框架在SOA架构中扮演着重要的角色。细细探究,大有裨益。这里推荐阿里巴巴的dubbo框架和netty,mina等网络库Hadoop系列StormSpark等离线实时计算框架ElasticSearchSolrCloud分布式搜索ELK日志相关的东西对这些比较敏感,当然ES也有很多留言更多场景的队列kafkaMetaQRabbitMQ嗯,昨天ZeroMQ(没有完全算作MQ)作者选择了安乐死,愿天堂没有痛苦,然后就是各种基础知识,编程语言,网络方面,数据库,数据结构和算法。不要以为自己精通任何一项,敢说知乎有多少精通。说说你自己的感受吧。刚开始工作时,不应该让你独立开始一个新项目。应该可以让你在开发的项目中学会使用eclipse、svn等IDE和工具(不用说了,主要看你的工作。比如你要用eclipse,也可以用IntelliJIDEA,但是在工作中一定不是很懂,这时候最好不要标新立异,有什么问题可以问,当然,如果你是ide高手,请无视)说到核心工作,我先换页。作为Web开发人员,您不需要精通html、css和javascript。至少你需要了解用法和语法。项目组,他们每个人都被迫成为全栈)。JavaScript其实很强大,但是一开始不需要写的很深,很多轮子都可以,比如easyui,你会查阅官方文档,知道用法后嵌入到网页中,然后后台会根据格式将数据传给前台。然后开始一步步写到后台,熟悉设计模式。如果太多太难理解,可以先理解工厂模式,写一个接口,然后用一个或几个实现类来实现这个接口。当您需要使用它时,您可以根据需要使用它。它实现了这个类。(一开始不懂这么繁琐的方法有什么用,但是自从上次项目的数据库从oracle换成mysql后,才知道其实很好用)一般项目开发都会用设计模式。如果你不理解它,你可能无法理解它。整个项目的结构,无从下手。不同公司用的框架不一样,但是struts和spring用的还是比较多的,所以对这两个东西还是比较熟悉的,不然你可能连整个项目的结构都不知道,更别说自己写了,甚至改变它也很难开始。比如项目的跳转是怎么配置的,哪个配置文件代表什么。(一开始我在本地跑项目后,连首页在哪,哪个文件,怎么进入都不知道,一直找index.jsp才知道原来项目是用freemarker做的,这是一个ftl文件。)web项目需要操作数据库的工作是必不可少的。我关注的项目没有使用hibernate,主要是使用StringBuffer拼接sql。如果是从事web开发,还是需要熟悉sql的。感觉web项目高级算法的设计,只有做的比较深入,才有可能遇到。更多的是对字符串和数值格式的操作,比如如何把后台数据从数据库显示到前台,如何存储用户输入的数据等。在数据库中,所以最好熟悉字符串操作,比如拆分和合并,将String转换为float、int、date等格式。如果公司有专业的运维,服务器部署交给他们就好了。哪里懂,接下来我会列出我这些年在工作中经常用到的技术。html、cssjava工作原理(jvm)java语法、数据结构和算法java语言特性(封装、继承、多态、抽象)java设计模式(开发中经常用到)java反射机制(常用的框架都会用到反射机制)io(文件读写)多线程网络编程javascriptjquery数据库(oracle,mysql等)servletJDBCjavabeanWEB项目分层架构前端-后台交互ajax过滤器及过滤器原理通用框架(Struts,hibernate,spring,springMVC,i/mybatis)框架集成工作流(流程引擎工作机制)xml、properties、json常用页面及后台插件(tree、time、poi等)nosql数据库及应用场景(mongoDB)缓存数据库及机制(redis、memcached)第三方接口调用SDKweb应用服务器(tomcat,weblogic)linux日志数据库连接池mavensvn建模工具(powerdesiner,axure)usinTCP/IP
