Home  >  Article  >  Java  >  What are the 20% most commonly used technologies among Java programmers?

What are the 20% most commonly used technologies among Java programmers?

大家讲道理
大家讲道理Original
2017-01-24 09:57:24845browse

I heard about programming languages, and 20% of the technologies in them are often used. In the language Java, what does this 20% include? It has been two months since I took part in the training, and there are still two months left. If I want to find a job as a junior Java programmer in two months, what are the things that I must master, and what can I learn and sell now? What are the specific modules of a complete Javaweb project, and what technologies are used in each module?

Commonly used APIs (String, StringBuffer/StringBuilder, etc.)

1. Collection class, thread class

2.Servlet (rarely used pure servlet writing, but you have to understand, because many frameworks are based on servlet encapsulation)

3.json, xml reading and writing

4. Database access (CRUD, transaction, connection pool)

5.http request (HttpClient)

6Others, including common frameworks, design patterns, object-oriented


Junior programmers will know these Then you can write the project. The problems encountered later will be much more complicated and will depend on the accumulation of various experiences and knowledge.

In addition to the 20% that must be mastered, what knowledge must be mastered to be able to do it with ease. Let me talk about the things I have come into contact with (used).


#Java is famous for its rich ecosystem of distributed applications, and it cannot escape the decision of CAP in distributed systems. Get to know some distributed consistency protocols paxos, raft, etc. early. Learn the principles and usage scenarios of zookeeper (metadata, distributed locks, leaderEletion... etc)

The RPC framework plays an important role in the SOA architecture. It is always beneficial to study it carefully. Here I recommend Alibaba's dubbo framework, and also netty, mina and other network libraries

Hadoop series Storm Spark and other offline\real-time computing framework

ElasticSearch\SolrCloud distributed search ELK log related things are more sensitive to these, of course There are also many

message queues kafka\MetaQ RabbitMQ using ES in more scenarios. Well, yesterday the author of ZeroMQ (not completely counted as MQ) chose euthanasia. May there be no pain in heaven

Then there are various basic knowledge, programming languages, network aspects, databases, data structures and algorithms. Don’t think that you are proficient in any one of them. I dare say there are a few Zhihu who are proficient in it.


Programmer Xiaobai joined the company in July 2015. He is growing and may not be accurate. He only shares his current growth process.

2015 May Xiaobai Bai (with a C background), because he was not interested in his university major, he crammed into learning Java for more than a month. Since joining JavaWEB development, he has worked on two big projects and independently developed n functions (big guys) You’re kidding me), I haven’t heard the 20% statement mentioned by the questioner yet.


Tell me about your feelings. When you first start working, you should not be allowed to start new projects independently. It should be allowed to work with projects under development


1. Learn to use eclipse, svn and other IDEs and tools (needless to say, it mainly depends on where you work. For example, if you use eclipse, you can use IntelliJ IDEA, but you must not understand a lot when you first start working. Don’t be unconventional just yet. If you have any questions, ask them. Of course, if you are an IDE master, please ignore them)


##2. If you have just joined the job and can’t get into the core work, just let me know. First change the page or something. As a web developer, you don’t need to be proficient in HTML, CSS, and JavaScript. You need to at least understand the usage and syntax. Although there are front-end engineers, you must understand this (my company’s small project team, everyone is forced to It’s a full stack). JavaScript is actually very powerful, but you don’t need to write it very deeply at the beginning. There are many wheels that can be used, such as easyui. As @王大 Fat said, he will check the official documents, know the usage, embed it into the web page, and then format the data in the background Just pass it to the front desk.


3. Then I started to gradually write to the background, and became familiar with the design patterns. If there are too many and difficult to understand, you can first understand the factory pattern, write an interface and then use one or more Each implementation class implements this interface. When needed, determine which implementation class to use based on needs. (I didn’t understand the use of doing this in such a complicated manner at first, but since the database of the last project was changed from Oracle to MySQL, I know that it is actually very useful.) Generally, design patterns are used in project development. If you don’t understand it, you may not be able to figure it out. There is no way to start with the structure of the entire project.


4. Different companies use different frameworks, but struts and spring are still used more often, so it is better to be familiar with these two things, otherwise you may I don’t even know the structure of the entire project. Let alone writing it myself, it is difficult to even modify it. For example, how to configure project jumps and which configuration file represents what. (After I started running the project locally, I didn’t even know where the home page was and which file was entered. I kept looking for index.jsp and then I realized that the project was made with freemarker and was an ftl file)


5. Database operations are indispensable in web projects. The project I worked on did not use hibernate, but mainly used StringBuffer to splice SQL. If you are engaged in web development, SQL still needs to be compared. Cooked. The little brother who guided me said that SQL is so powerful, there is nothing that SQL cannot accomplish.



#6. I feel that those who are doing advanced algorithms for web project design may only encounter them if they are more advanced. , it is more about operations on strings and numerical formats, such as how to extract data from the database to the front desk in the background and display it, and how to save the data entered by the user into the database, so it is best to be familiar with the operations of strings, splitting and merging. , String to float, int, etc., date format and so on.


If the company has professional operation and maintenance, just leave server deployment to them. If not, it is best to learn about remote connections and some simple things about Linux. Commands, tomcat, etc.


First of all, I don’t know how to understand the 20% mentioned by the questioner. Next, I will list the techniques that I have often used in my work over the years.


1.html, css

2.java working principle (jvm)

3.java syntax, data structure and algorithm

4.java language features (encapsulation, inheritance, polymorphism, abstraction)

5.java design pattern (often used in development)

6.java reflection Mechanism (reflection mechanism is used in common frameworks)

http://7.io (file reading and writing)

8. Multi-threading

9. Network programming

10.javascript

11.jquery

12.Database (oracle, mysql, etc.)

13.servlet

14.JDBC

15.javabean

16.WEB project layered architecture

17. Front and backend interaction

18.ajax

19. Filters and filter principles

20. Commonly used frameworks (Struts, hibernate, spring, springMVC, i/mybatis)

21. Framework integration

22. Workflow ( Process engine working mechanism)

23.xml, properties, json

24. Commonly used pages and background plug-ins (tree, time, poi, etc.)

25.nosql database And application scenarios (mongoDB)

26. Cache database and mechanism (redis, memcached)

27. Third-party interface call

28.SDK

29. Web application server (tomcat, weblogic)

30.linux

31. Log

32. Database connection pool

33.maven

34.svn

35. Use of modeling tools (powerdesiner, axure)

36.TCP/IP

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn