Common Problem Java Novice
In recent years, with the popularity of Java in Web applications and enterprise applications, two significant increase in the demand for Java programmers. Therefore, the number of Java programmers a sudden surge in the rankings (from TIOBE can be seen). Although this is a good thing for the Java community, but also exposed some problems.
Beside, due to the large number of developers into Java in this area, appropriate teaching, training can not keep up; Moreover, many developers into the Java field of impetuous, hopes the "quick" do not have the patience needed to train basic skills.
Based on the experience of recent years, I interviewed the Java programmers and Java colleagues around the use of observation, I concluded some common problems and corresponding solutions.
If you are a Java novice (just learned Java soon, working 1-2 years), you can see I said a common problem is not you also have, if any, may quickly remedy the
Next, let us talk about a common problem: algorithms and data structures are not familiar with.
In order to facilitate the reading, compile a catalog of this series of posts is as follows:
Why do I acquire the data structures and algorithms that matter pinch? This stuff is the most basic stuff to write programs. Whether you use Java or what language are inseparable from it. This stuff is a cross-language, regardless of which language you learn.
Since the data structures and algorithms is so important, why many Java novice is very familiar with the pinch? I thought about, it is estimated that there are two possibilities.
Some Department of Computer Science graduate, but the original did not even good science in this course, are returned to the teacher to work early; some half-way switch to dry programming, career change and then not properly lay the foundation (both expect to crash).
Below I've listed a few very basic questions, if you each made very clear that this off, you can go look at the next post. Otherwise, you'd better go to the algorithms and data structures book cramming.
Many people claims to have used design patterns, but more than half are limited to a single-key mode, and abstract factory pattern. When I ask him/her in depth when the abstract factory pattern in the end what is the benefit of many details.
Why many of the Java programmers will lack basic skills of object-oriented? It blamed for those Java framework. Now Java frameworks are too advanced, too stupid, leading many programmers just need step by step, follow the framework code fill in the blanks, basic has lost the capacity of OOA and OOD.
I some friend who's Java programmer, well aware of the Spring framework, Hibernate, etc; but if you give him a simple demand, asked him to write an independent Application from Web framework, he was at a loss. Such a developer in the future but to become the so-called "software blue collar" jobs hard to get promoted.
I will also ask the following question:
If these problems you can have it better, explain your OO based passable. Otherwise, I suggest you look for OOAD and design patterns book to read, and yourself and write some simple applets (do not rely on those frameworks), model theory learned in practice. In this way, to improve his ability to OOAD, the effect would be better.
More details will shown in second post!Stay tune!
Beside, due to the large number of developers into Java in this area, appropriate teaching, training can not keep up; Moreover, many developers into the Java field of impetuous, hopes the "quick" do not have the patience needed to train basic skills.
Based on the experience of recent years, I interviewed the Java programmers and Java colleagues around the use of observation, I concluded some common problems and corresponding solutions.
If you are a Java novice (just learned Java soon, working 1-2 years), you can see I said a common problem is not you also have, if any, may quickly remedy the
Next, let us talk about a common problem: algorithms and data structures are not familiar with.
In order to facilitate the reading, compile a catalog of this series of posts is as follows:
- Not familiar with Algorithms and data structures
- lack of basics of object-oriented
- lack of good programming practice
- Improper use of Exception handling
- A common problem to understand less than new to Java Virtual Machine (JVM
Why do I acquire the data structures and algorithms that matter pinch? This stuff is the most basic stuff to write programs. Whether you use Java or what language are inseparable from it. This stuff is a cross-language, regardless of which language you learn.
Since the data structures and algorithms is so important, why many Java novice is very familiar with the pinch? I thought about, it is estimated that there are two possibilities.
Some Department of Computer Science graduate, but the original did not even good science in this course, are returned to the teacher to work early; some half-way switch to dry programming, career change and then not properly lay the foundation (both expect to crash).
Below I've listed a few very basic questions, if you each made very clear that this off, you can go look at the next post. Otherwise, you'd better go to the algorithms and data structures book cramming.
- When the array container, when the linked list type container?
- What is a hash function? What is the HashMap principle?
- What is recursion? If you've never written a recursive function, try to write a (for example, recursive functions for directory tree traversal).
- What is the complexity of the algorithm?
- Do you understand the idea of space for time?
- write a bubble sort function for an array of integers, see if you want to modify several times in order to run through.
- write a binary search function for an array of integers, see if you want to modify several times in order to run through.
lack of basics of object-oriented
Java is an OO language, Java community has always been filled with "object" atmosphere. But when I was interviewing Java programmer, but repeatedly come across things I plunged my glasses. I came across more than one job, and even what is "polymorphic" we can't talk about things.Many people claims to have used design patterns, but more than half are limited to a single-key mode, and abstract factory pattern. When I ask him/her in depth when the abstract factory pattern in the end what is the benefit of many details.
Why many of the Java programmers will lack basic skills of object-oriented? It blamed for those Java framework. Now Java frameworks are too advanced, too stupid, leading many programmers just need step by step, follow the framework code fill in the blanks, basic has lost the capacity of OOA and OOD.
I some friend who's Java programmer, well aware of the Spring framework, Hibernate, etc; but if you give him a simple demand, asked him to write an independent Application from Web framework, he was at a loss. Such a developer in the future but to become the so-called "software blue collar" jobs hard to get promoted.
I will also ask the following question:
- Based on inheritance and interfaces are based on achieving what inheritance each have advantages, disadvantages?
- Inheritance (including extend and implement) what's the drawback?
- Variation (polymorphism), what are the drawbacks?
- Why do Java can inherit interface, but not multiple inheritance class?
- If you were to write a small game (such as the gobang man-machine war), how would you design class structure?
- Like structure at design time, how to think about scalability?
If these problems you can have it better, explain your OO based passable. Otherwise, I suggest you look for OOAD and design patterns book to read, and yourself and write some simple applets (do not rely on those frameworks), model theory learned in practice. In this way, to improve his ability to OOAD, the effect would be better.
More details will shown in second post!Stay tune!
There are many Java Developers are facing these types of Java Novice Problems for that they should discussion about their problems at many forum discussion and Q & A websites.
ReplyDelete