[JAVA] 5 languages that every developer should learn

The debate about "which language to learn" is a staple of articles for engineers, but 5 Programming Languages Every Master Developer Should Learn posted on HackerNoon. //hackernoon.com/5-programming-languages-every-master-developer-should-learn-a3929a8c6f69) was quite interesting, so I translated it.

(Added on 2018/11/04) The following articles have been added as "opinions from another perspective" regarding this article. Please refer to this as well if you like.

Why the learning order of Ruby-> Go-> Scala is the best for the growth of the engineer's explosive speed

Introduction


Interviewers are very interested in engineers who are familiar with multiple languages such as C ++ and Java.

Personally, I like engineers who have a lot of experience in either C ++ or Java and who can use both scripting languages such as Groovy, Perl, and Python. (In many cases, small scripts are easier to write and better for ad hoc tasks, and I have engineers in my company using Java to read CSV files and capture TCP / UDP port messages. I don't want to write any code)

Why did I choose these 5 languages? The reason is simple and practical, and I chose these languages based on "use," "paradigm," and "popularity."

For example, if you want to be an application developer, you can't ignore Java, and JavaScript in the sense that it's used everywhere on the Web.

I think C is "a language that every developer should learn early in their career." With C, you can gain programming insights at the system level and learn the important concepts behind the JVM and CLR.

Python is my first choice for "scripting language" applications. I think Perl and Groovy are fine, but Python is really great in terms of "richness of online resources". There are many Python modules and you can incorporate them into your work in just a few minutes.

Similarly, learning "object-oriented languages" and "functional languages" like Haskell and Scala will help broaden your programming sense and thinking.

There are many other reasons why you should learn these five languages in this article.

5 languages that every developer should learn

So much for the difficult story, let's get started with five languages that every programmer should try.

A mix of languages, including object-oriented languages, functional languages, scripting languages, low-level languages, and languages used in server-side development.

1.Java

Java has been the most popular language in the last 20 years or so and has been a leader in server-side application development. From the development of mobile games and Android apps to the development of enterprise web applications, we have a huge market share.

Java originally started with the simple idea of "WORA," or "write once run anywhere," but now it's actually run everywhere.

If you want to develop robust and scalable server-side applications, you should learn Java. You can write in Java, no matter how complex your system, and get the support of a variety of tools, technologies, and communities.

** Why do you need to learn Java? With Java, you can focus on your application's architectural design and coding without having to worry about system-level details and memory management. The JVM is in charge of all the troublesome things. ** **

If you decide to learn Java, I recommend Udemy's Complete Java Masterclass (https://www.udemy.com/java-the-complete-java-developer-course/). All basic concepts are covered in a good balance.

If you want a free course, free Java Courses for beginners You should check.

Java is also used by big companies such as banks and insurance companies, and you can also create Android apps to reach the general public.

2.Python

Python is the most widely taught language in schools and universities around the world. In the United States, Python has taken Java away from its position as the first language to teach in academic courses. What can you get by learning Python? We have a lot.

Python can be used as a scripting language or as an object-oriented language for developing huge projects.

Well-known websites such as Reddit are created using web frameworks such as Python and Django, and in recent years many large organizations have moved to Python-based web frameworks.

In addition, Python is becoming more and more popular with new generations of technologies such as machine learning, AI and data science, as TensorFlow, Scikit-Learn and many other machine learning libraries exist in Python. It's no wonder.

Complete Guide to TensorFlow for Deep Learning with Python

I personally use Python as a scripting language. For example, when creating a UDP message listener, it takes 20 minutes for Java to write in 5 minutes for Python. Get rid of ad hoc tasks quickly without the hassle of compiling and packaging.

If you are interested in learning Python, Complete Python Bootcamp is the recommended first course to learn.

If you are interested in free courses, check out free Python courses for beginners please look.

If you're wondering whether to start learning from Java or Python, here's a comparison of Java and Python Infographic Check out -language-to-learn-first.html).

3.JavaScript

In these five lists, it may be possible to replace Java with C ++ or Python with Ruby, but in today's Web world, JavaScript cannot be replaced with any other language. In the last five years, JavaScript has really dominated the world.

JavaScript is no longer just a client-side scripting language. With the advent of Node.js, Angular, React, etc., JavaScript can also be used for server-side development and UI development.

Part of JavaScript has been overwhelmingly successful with jQuery, which has fundamentally changed the way JavaScript is used on the client side.

As one of the Java programmers, I have many experiences using jQuery and JavaScript in parallel when developing JSP and Servlet-based applications.

Gaining knowledge of this language makes it very easy to make such decisions about which features to use on the server side and which to use on the client side. (For example, move a lot of validation processing that was done on the server side to the client side)

If you want to learn JavaScript, Udemy's The Complete JavaScript Course is the best online course.

If you are interested in free courses, check out free JavaScript courses for web developers Please try.

4.C Programming

You can't be a true programmer without knowing C or C ++. It may be too harsh, but I can assure you from my long experience.

Engineers who are proficient in C / C ++ are often simply better than engineers who don't know them, and that's not a coincidence. C / C ++ is a language you should know. By studying C when I was a student, I was able to learn key programming concepts such as structures, arrays, pointers, and memory management.

C is still the most widely used system-level programming language and has always competed with Java in the field of "language popularity" over the last two years.

If you want to learn this wonderful language, C Programming for Beginners is recommended as a first step.

C is one of the oldest mainstream languages and has survived for over 40 years.

By the way, if you want to learn C ++ instead of C, that's not bad either. C and C ++ are very similar, and both can be used for low-level programming.

C ++ is a very important language, especially for game developers, due to its high performance.

If you want to make games and want to learn about C ++, The Unreal Engine Developer Course --Learn C ++ & Make Games is one of the best courses. This is a great course and you will not have any more learning resources to learn how to develop a game.

If you are interested in free courses, check out FREE C ++ Courses for beginners please look.

5.Scala

Scala is a language created by accumulating best practices over the last 20 years. Scala is also a functional language, offering a different paradigm than object-oriented. It will help improve your way of thinking and feeling about programming.

There are many other functional languages such as Haskell, but I'm also a Java engineer, so I chose Scala because it was easier to learn Scala than Haskell.

Of course, there are plenty of ways to challenge Haskell, but for many Java engineers, learning Scala is more practical and pragmatic.

Learning Haskell may be more meaningful for C ++ engineers, but frankly, functional languages should be chosen with "commercial demand" in mind.

As a vocational engineer, I value self-investment as useful in my career. If you want to learn Scala, Beginning Scala Programming is a good first step.

Summary

No matter how many languages you learn, if you want to be a professional engineer, you'll find the coding and design described in Clean Code. You should follow the principles. The skills described in this book will be of great help to your career as an engineer.

That's all of my "five languages that every developer should learn".

In my opinion, learning multiple languages with different paradigms is the best way to improve your programming skills so that you can get your day-to-day tasks done more efficiently. I think it will be.

** Ideally, the programmer's toolset should include "system-level languages such as C / C ++", "object-oriented languages such as Java / Python / C ++", "functional languages such as Scala / Haskell", and "Perl / Python /". I think it should include "a powerful scripting language such as Ruby" and "JavaScript, which is a non-substitute language". ** **

The following articles are also recommended for curious developers. 10 Tools Every Programmer should know 10 Articles Every Programmer Must Read 6 Books to Learn and Master Programming 10 Tips to become a better Software developer 10 Object Oriented design Principle Every Programmer should know 10 More Books Every programmer should read 10 Things Java Developer should Learn in 2018

Finally

Thank you for reading to the end. If you like this article, please share it with your friends and colleagues. Don't forget to follow my Twitter account and Medium account!

If you have any questions, feedback, or other "languages that engineers should learn" that you think, please share them with us.

PS If you want to know other free resources, [free data structure and algorithm courses](http://javarevisited.blogspot.com/2018/01/top-5-free-data-structure-and-algorithm-courses- java--c-programmers.html) is recommended as the first step on your programming journey.

Impressions of the translator

I think that the author is a Java engineer, so I think that it is a Java-oriented view, but from the perspective of "developing the ability as an engineer", I have almost no objection to these five lists. ..

However, in my opinion, another combination is preferable for "growing at explosive speed as an engineer" in the Japanese Web industry. Please refer to the following article regarding this.

Why the learning order of Ruby-> Go-> Scala is the best for the growth of the engineer's explosive speed

Translator bonus

Youtube has a channel called Omnivorous Engineer TV for web engineers and those who are interested in web engineers. I will. If you are interested, I would be very happy if you could subscribe to the channel.

In 2019, we also started an online salon called "omnivorous engineer salon".

Twitter also publishes various information centered on "Career Strategy of Web Engineers", so please follow us if you like. @poly_soft

Recommended Posts

5 languages that every developer should learn
I tried to summarize the languages that beginners should learn from now on by purpose
Packages that should be included