What does it take to become a Java expert?

I just read this thread and wondered if it is easier to become a Java expert than C ++? This is because it is very easy to write incorrect code in C ++, while in Java you have less flexibility (for example, memory management), what prevents you from writing code horrors? Or is it because C ++ is simply hard to learn and master? You came across a study that distinguishes and characterizes C ++ vs Java vs C #, etc. Encoders?

+6
java c ++
source share
12 answers

What do you need? Like nothing, years of practice and countless mistakes.

And even then, your experience will be in several areas where you have solved specific areas of the problem again and again; those. islands of knowledge. Middleware and / or infrastructure? Threading and concurrency? Perhaps Java Swing / GUI applications? Or web applications ...

Java has grown to such an extent that no one can be an expert in everything that Java is - look at how many packages were added between 1.4 and 1.6, and this should be obvious. Although you have guys who are terribly close (Johsua Bloch comes to mind ...).

Edit: if it concerns recruiters and HR ... drop all keywords, minimum years and “expert”, and just get a telephone interview with a team that wants to hire. You need to find out from the technical guy what exactly he is looking for, because almost all recruiters and recruitment agencies are FULLY CLUBS.

+10
source share

With some exceptions, anytime I hear someone say that they are an “expert” in a language that I usually use with salt. Regardless of the language in which the best programmers know that they always have something to learn, whether it's an experienced veteran or a college kid.

+16
source share

Consideration should be given to the amount of open source code available for study and study.

There is also quite a lot of open source C ++ code, but usually Java is more concise and focused, without dealing with the differences between platforms and various different libraries.

I feel that Java is a lot easier to learn, because I recommend improving and learning. Read the code. Read the JDK, read the source of well-known and respected libraries and frameworks. Come in and see how it works.

+2
source share

The best way is to program a lot in Java. If this is not the language that you use most at work, then it should be the language that you use most in your personal projects, if you want to become an expert in it (this applies to any language).

Some reading materials to help you:

Regarding the ease of learning, it was personally much easier for me to learn Java than C ++. Java has definitely benefited from the backdating of its developers. They were able to basically preserve what was good in C ++ and get rid of some of the things that made C ++ more difficult to learn. They managed to make it harder, but by no means impossible, shoot in the foot in Java than in C ++, and the potential damage is also often less when you do it.

You came across a study that distinguishes and characterizes C ++ vs Java vs C #, etc. encoders?

I do not know any such research, and I will not even begin to speculate. :)

+2
source share

You came across a study that distinguishes and characterizes C ++ vs Java vs C #, etc. encoders?

just this one . sorry.

+2
source share

I think the industry has slightly different meanings for Java and C ++ experts. As a rule, Java experience implies experience with some sets of APIs (for example, J2EE) or a set of frameworks or with a specific application server. It seems that the smaller set of companies that use it uses only the Java core, so they often measure experience based on how many APIs you can approve. Often companies using C ++ use it for speed reasons and write much more of their code from scratch, so they may be more interested in knowing in the main languages.

Speaking, I believe that Java as a language is much simpler, but its huge set of libraries and frameworks is very complex. C ++ is difficult because you basically learn three languages: procedural, object-oriented, and meta-programming of templates.

+1
source share

In my opinion, the problem with C and C ++ was that they were invented in the 60s 1 . Java came later and learned a lot due to bugs, bad practices, and dubious decisions often found in C / C ++. After 2001, when C # appeared, I would say that we observed some co-evolution of these two languages. They learned from each other, and also studied in C / C ++ and for the first time in history, from the users themselves! 2

In my case, in order to answer your question, I had to decide to either learn C ++ or Delphi 12 years ago. At that time, using C ++ seemed complicated and tedious. Since then, I switched to Java a couple of years ago, tracking the greatness of C #. In general, in order to become an expert in a particular language, it takes only time. I would rate myself as an experienced programmer, because the meaning of the word "expert" is very well defined on tdwtf, which I hope will never be applicable to me. IMHO.

I think the best way to compare the encoders of different languages ​​is to do it myself, because I think that every argument about the subject is subjective.

1 correct me if I am wrong about dates.
2 maybe not for the first time, but reading articles from the emerging and emerging features of these languages ​​makes me feel like this.

For comparison, I found these links a while ago:

Comparative characteristics of de loslenguajes de programación Java y C #, Mayo, 2003

although it is in spanish and i just looked at the code samples.

Comparing Object Oriented Functions of Delphi, C ++, C # and Java

for another, more diverse comparison on this.

And there’s also an “advertisement” from MS trying to convince you to switch to C # (or C ++, since it is available in VS):

C # for Java Developers (Allen Jones and Adam Freeman, Microsoft Press, 2002)

Or, if you want to do an “independent” study:

From Java to C #: Developer's Guide (Heng Ngee Mok, Addison Wesley, 2003)

+1
source share

In most cases, this applies to many other languages:

As always, you need a lot of experience to be a java expert. And if you think you have gained enough experience, learn more.

Java has a rich and powerful API, it makes sense to know about it if you want to become an expert.

You must learn to program clean and maintain, to be a good programmer.

Also learn concepts in different languages ​​that java does not have (e.g. closures). You can learn a lot about technology / programming language if you know about something that cannot.

Learn about the concepts of a virtual machine, a hotspot compiler, and a java collector garbage collector.

And if you have reached the level of knowledge, you think that you cannot find out more - you are not an expert. There is always something to know, and real experts know about it.

+1
source share

Think what you want to do.

If you want to work with programs for Mac, learn Objective-C. if you want to work with programs for Windows, study C # or C ++. If you want to work with web server servers, learn Java.

If you want to become an expert, you need to practice a lot and learn even more. I can recommend reading “How to Become a Hacker” http://catb.org/esr/faqs/hacker-howto.html#why_this (full document), as it will give you many ideas and hints about what you should do ELSE.

Learning only one language is like painting with acrylic paint only.

0
source share

Or is it because C ++ is simply harder to learn and learn?

I would say that this is the main reason. C ++ is a much more complex language with many features that are hard to understand, especially in how they interact.

Of course, the language itself is not everything: Java has a much higher API standard and standard standard frameworks, which are expected to be known by an "expert".

0
source share

is an "expert" in the language, this does not mean that you, for example, say that you are an expert in C ++, but programmed your entire career in Linux, you would hire such a guy to make the Win32 program, or you would take someone Someone who is not necessarily an expert, but has experience working with Win32 and its quirks?

0
source share

It can be said that it takes 10 years to be a language expert. As I say, it is just as easy to be an expert in Java or C ++.

Being an expert requires different skills. Java has at its disposal an intricate array of hundreds of widely used open source projects. As an expert in Java, you should have a good understanding of many of these add-ons. e.g. Java EE, Spring, Hibernate, and many others.

0
source share

All Articles