[PYTHON] What is the last programming language you learn in your life? (If you want to catch up with a club with a lifetime salary of 300 million yen)

Introduction Do you learn a new programming language every year?

It's Poem's time, borrowed from the java Advent calendar. Java was written in an Android project a few years ago. The complement of modern IDEs is great. Today we are talking about what programming language everyone loves and should learn. However, the adult version.

Well, everyone who has been writing code for quite a few years in some language. As a matter of course, I think that there are many people who have learned Java and have written it at work, or usually only write Java. Do you learn a new language every year, as it is said somewhere? I am learning halfway every year.

But maybe, for many of you, no programming language is worth learning as many years. Especially for a good old man, the number of programming languages that may be worth learning is less than half the number of years.

I learned Java 23 years ago (the year JDK 1.0 came out), how many languages have I learned so far? In my case, if I list the ones that I wrote the code and remember the name:

>>> A="Basic,Z80,6809,C,C++,Object-Pascal,Java,Ruby,Perl,Scala,R,Go,Haskel,F#,Kotlin,Swift,Objective-C,Groovy,Python,Dart,Nim,Elm,Julia".split(",")
>>> len(A)
23

Will be. Only what I remember is 23. There should be a few more, so I wonder if it's more than half the number of years. The i386 assembler was frustrated. Oh, I was also writing JavaScript. ..

Now that the SEO of programming schools is working, I see many stories about "programming languages to learn first", but I rarely see stories about "programming languages to learn at the end of my life" (contexts such as blur prevention). I've seen it in). So, I would like to write my case, "a programming language to learn at the end of my life," which I feel someone should try to write.

We are all dead in the long run (Keynes). So, it may be helpful for those who have learned several programming languages (... I wonder?).

When it comes to the second half or the end of my life, I remember hearing that in a seminar like pension economics, the diversity of old people is far greater than the diversity of babies. Since each person's life, which has an adult situation, is different, the "program language to be learned at the end of life" is probably different for each person.

"Program language to learn at the end of life", forcibly in my case with three lines.

――I need to earn tens of millions of yen in old age, but I don't want to reduce the hourly rate so much. ――The place where the hourly rate seems to be good even if you are over 60 years old is a project manager or a place for newcomer programming education. ――When it comes to Java, Java seems to be painful for presbyopia, so I would like to use Groovy 3.0, which is almost compatible, as a programming language to learn at the end of my life.

To the last, the idea as of the end of 2019.

(Additional note) Lifetime salary 300 million yen I want to catch up with the club, so I learn another language.

Well, I want to write code, earn some money, invest some money, and reach old age. It costs tens of millions of yen after working until retirement age.

So, how much can you earn by writing code as a member of society? Let's write a little about the calculation.

A little helpful material is the "Latest Ranking of Lifetime Salary" Top 500 Companies in Tokyo "" below. https://toyokeizai.net/articles/-/313934?page=5 Among the companies that you may know the name of, the IT companies that are estimated to have a lifetime salary of just 300 million yen are the ones that you should pay attention to. Glittering cyber agents, Rakuten, which is often used as an official language in English. Even if he worked for such a company from new graduate to retirement age, he would get 300 million yen as a full-time employee (... there are very few such people). If converted as a freelance engineer, it would be good if he could earn 400 million yen, which is 1 + 1/3 times that amount, in his lifetime. I haven't got a job as a new graduate in the first place, and I'm broken in a black workplace on the way, so even if I catch up in the second half, it will be only about 250 million yen in terms of full-time employees. In other words, I want tens of millions of yen later.

Why isn't "Language X" the last thing to learn in life?

What should I learn at the end of my life is rust?

I will probably end my working life by continuing to write scala. When learning a JVM language like Scala, I sometimes envy languages that can be natively compiled. Especially modern rust looks cool. ... But I think it's something different for an old man after retirement to write rust, which is a lower language, in a grind business. (Of course, it would be cool if there was such an old man) So, in my case, I rejected it because of my age. Oh, I think young people can make money by doing it properly with rust ~

What should you learn at the end of your life in elm?

It can be said that it is the opposite of rust, and I am quite attracted to the front-end neighborhood language elm in the standing position. (If you're an elm, read here first.) Since it is specialized for the web front end, the description is concise, but on the other hand, it can be written naturally and safely. With elm, I feel like I can use a code that is safe even in the year when dementia is approaching, which is wonderful. However, unfortunately, for me, who is vulnerable to UX, I could not see the future of earning tens of millions of yen with elm after retirement. If you are younger than the front end, you will definitely be happy if you do elm properly.

What should I learn at the end of my life?

Other than that, it is possible that dart, which has regained its presence with flutter, and Go, which has become a practical language for microservices, can be used in practice. I don't think it's for the elderly, so I rejected it. I felt lonely to say that Haskell was the best way to prevent blurring, so I rejected it.

Why are you thinking of learning groovy 3.x at the end of your life?

Well, it is groovy3. I think few people are paying attention. After all, groovy as Alt-Java has a longer history than other JVM languages, so groovy itself isn't much talked about anymore.

It is worth noting that the decisive difference from other JVM languages such as Scala / Kotlin is the ruby-like scripting language, but the high notational compatibility with Java. In this area, you should read the introductory article by NTT TechnoCross, who uses groovy in practice. https://www.ntt-tx.co.jp/column/tec/java_01/ (... In other words, in the case of solid development with a Spring-based framework, It means that it is easy to make proposals such as using groovy together to increase development productivity. )

Groovy has been around for a long time, but Groovy 3.0, which supports the evolution of Java itself after Java 8, is about to be released. ... it's been around for quite some time, probably because Java itself has a large language specification. http://groovy-lang.org/releasenotes/groovy-3.0.html

By the way, if you have SDKMAN in Java version control, you can try Groovy3.0 rc right away.

$ sdk list groovy

==== BROADCAST =================================================================
* 2019-12-08: Groovy 3.0.0-rc-2 released on SDKMAN! #groovylang
* 2019-12-06: Springboot 2.2.2.RELEASE released on SDKMAN! #springboot
* 2019-12-06: Springboot 2.1.11.RELEASE released on SDKMAN! #springboot

In short, if you learn groovy3.0, you can catch up with modern Java. If you've learned Java, ruby, or scala, you should relearn groovy, which is a combination of them. There is no ambition, it is the best.

However, such a non-brilliant choice is a choice that takes aging into consideration. People forget. And it gradually blurs. In order for such an old man not to become a fossil, he must know only 10 or 20 years ago of Java, which is useful as an educational language (I wrote android Java last, so in Java 10 years ago. There is only practical knowledge equivalent to Java 6).

However, even though I'm not working anymore, I don't really like Java8. Even I, who is such an old man, can enjoy learning with groovy3, which can be enjoyed as a scripting language.

Well, the idea of the end of life is different for each person (or is there more people who learn the last language than the program language?) In my case, I also choose the programming language to learn at the end of my life at COSPA, which is groovy3. If you can't get into modern Java for business, I think it's a good idea to learn groovy3 a little even on weekends because it doesn't have to be the end of your life.

I will write my groovy3 study notes after the official release of groovy3.

Finally. Write down the sense of mission to learn a program language at the end of your life.

Finally, let's just write why you learn a programming language at the end of your life (if you only earn tens of millions of yen, there may be other options). That's because I want to tell young people who write programs the clues of object-oriented languages as soon as possible. To put it simply, ["Principles of system design useful in the field-Object-oriented practical techniques that make changes easy and safe"](https://www.amazon.co.jp/dp/B073GSDBGT/ref=dp- I would like to convey a level close to kindle-redirect? _ Encoding = UTF8 & btkr = 1) in places such as SIer's new employee education. I don't want to see young people burning up and being swept away by floods at the site of water fall development without object orientation. Now that I'm learning Domain Driven Design, I hope it will be a small social contribution.

So, life is various. Whether you're an old man or not, think about the program language you'll learn next year and the program language you'll learn at the end of your life during the New Year holidays.

Poem time is over ♪


... Ah, I was planning to write about graalVM and nim1.0, but it was time to go to work, so the time was up. ... a story for the game industry, not the SIer world. I'll write about graalVM later and put a link here. .. He said that graalvm, which can use JVM assets, is useful in languages like nim that specialize in low-level but concise writing. By the way, graalvm was painful in python. .. Actually, I think it's okay to spend tens of millions of yen in the game & e-sports industry in old age, but in that case, the last thing to learn in life is graalvm and nim or alt-python. ;-)

Recommended Posts

What is the last programming language you learn in your life? (If you want to catch up with a club with a lifetime salary of 300 million yen)
Make a note of what you want to do in the future with Raspberry Pi
If you want your colleagues to use the same language
[Django] What to do if the model you want to create has a large number of fields
If you want to switch the execution user in the middle of a Fabric task, settings context manager
If you want a singleton in python, think of the module as a singleton
I want to set a life cycle in the task definition of ECS
What you want to memorize with the basic "string manipulation" grammar of python
How to display the modification date of a file in C language up to nanoseconds
What to do if the progress bar is not displayed in tqdm of python
The programming language you want to be able to use
If you want Python completion in VS Code, Microsoft Python Language Server is the best story
How to write when you want to put a number after the group number to be replaced with a regular expression in re.sub of Python
If you try to make a word cloud with comments from WEB manga, it is interesting to visually understand what kind of manga it is.
What to do if you cat or tail a binary file and the terminal is garbled
What to do when a part of the background image becomes transparent when the transparent image is combined with Pillow
If you want to become a data scientist, start with Kaggle
Don't write Python if you want to speed it up with Python
[Introduction to Python] What is the most powerful programming language now?
What to do if you get a minus zero in Python
[Introduction to StyleGAN] I played with "The Life of a Man" ♬
Delete a particular character in Python if it is the last
If you give a list with the default argument of the function ...
What to do if you get a UnicodeDecodeError with pip install
If you want to assign csv export to a variable in python
What to do if you can't build your project with Maven
What to do if you can't use the trash in Lubuntu 18.04.
What to do if you get a "Wrong Python Platform" warning when using Python with the NetBeans IDE
I want to use complicated four arithmetic operations in the IF statement of the Django template! → Use a custom template
List of language codes used in twitter (including API) (with Python dictionary). What is the most commonly used language?
Think about the order in which you learn programming languages while looking back on your IT life
What to do if you get the error RuntimeError: Python is not installed as a framework when trying to use matplitlib and pylab in Python 3.3
[CleanArchitecture with Python] Apply CleanArchitecture step by step to a simple API and try to understand "what kind of change is strong" in the code base.