What language should I stick to

I have good experience with Java and web development with some experience with C ++. Recently, I have been thinking of leaving Java (boring with it) for C ++. Then came Python (did not like Ruby). I find it too good to resist and started using it. But C ++ is still in my mind.

Now I want to “stick” in one language to speak fluently with it.

Python is great for quick programming, but it's too easy, and I'm afraid it will overwhelm me. C ++ is tougher, but I doubt that I should use a language where more time is spent on keeping the compiler happy.

What language should I stick to. Any comments?

+4
source share
7 answers

I have experience working with several languages ​​in different languages ​​and several general purpose languages ​​(C, C ++, Java, Delphi, etc.), and I have no experience with Python (just a general idea about this).

You should not judge languages ​​based on how heavy they are. You say that you need to consider the fact that you have to spend time debugging the code to please the C ++ compiler. I am an experienced C ++ programmer, and I can write several thousand lines of code at a time, then compile and run, and everything works on the first try (well, there are several unavoidable typos and stuff like in any programming), so this argument is valid applies only to your level of programming language skills. I always support C ++ for any projects that I have, because it is so effective (for me) for coding in this language. This, of course, can be a pragmatic idea that you should program in a language in which you can really be productive (in the short term).

But, when it comes to training, you should be guided by what seems to be applicable in your domain. I do artificial intelligence to control robots, so I need hardware access, and I need the sophisticated programming constructs offered by OOP, GP, and TMP. Thus, the choice of C ++ for me is straightforward. You should ask, what are the common tasks in your domain? Where do they stand on the scales, such as low-level, network and numerical analyzes, user-oriented and computationally oriented? What are the most widely used languages ​​in your area (or the one you would like to get into)?

I also want to note that as a Linux user, the installation, which seems quite common among developers of the open source Linux software ecosystem, is to implement low-level C drivers, sophisticated C ++ software, and high programming interfaces and plugins in Python . This is what I apparently observe in many open source programs, and I think it makes sense that it uses the best of all three languages. So I'm thinking of starting to learn Python on the side.

+3
source

I suggest you not to worry about sticking to your tongue and learn to move and get out of what is the best solution to your problem.

The best programmers are just great problem solvers - a particular language doesn't really matter.

+13
source

I am of the opinion that you do not “leave” the language. It is still in your toolbar, it may not be used as often. I would recommend looking at it more:

"I am thinking of expanding my capabilities by learning a new language."

Just last week, I worked in C #, Java, Bash, Python, and Javascript. When you see yourself as a problem solver, you never know what you will be asked to help with next month, but you know that you will do something ...

+4
source

I would suggest learning a more esoteric language, at least for a while. Write a small GUI in Smalltalk or a utility in Common Lisp or Scheme. Do not just try to adapt your Java knowledge to these languages, but try to use languages ​​the way Ron Jeffries and Paul Graham use them.

If you just want to know something that is applicable in the labor market, then they will not be as good as Python or C ++. However, learning languages ​​that are very different from languages ​​that you already know should be an interesting problem and constantly changing the way you program.

+3
source

I personally support my main activity in C / C ++ / Assembly and learn other languages ​​on the side. This is because my goals are to stay as sharp as possible, be it solving a problem with a partial or friendly hardware. Personally, I’m much more interested in being near the equipment, among other things. In addition, when you regularly program in the latest languages, control pointers, memory, etc. They become natural and, in fact, make you much better than an encoder and even more so a problem solver; ^).

Hope this helps!

+2
source

It really depends on what kind of work you plan to do. But, indeed, most high-level programming languages ​​work on very similar principles. If you understand all the basic concepts, switching from one language to another is simply a matter of changing your syntax.

However, if you insist on sticking to one language fully, I am a java fan. I think you're right that C ++ is a bit awkward for large tasks. You can probably do something with java that you can with python, but it trades with some python smoothness for a more direct connection between what you are doing and what is actually happening. (At least this is my opinion, as someone who spent a lot of time using java than using python. Experts in both may disagree with me.)

+2
source

Dumb programmers are good programmers. I supported a code of people that is much smarter than me, their code is an unreadable mess. Funny, the same thing happens with people who cannot program, except that the really smart code of the programmers really works.

In both cases, it is difficult for other people to take over, and at the same time, the smart programmer has become bored and do something else.

A good programmer writes “dumb”, easy-to-understand code that he can give to someone else to support, so he can continue to do more interesting things instead of supporting this annoying piece of huge software that is seriously in need of refactoring.

Programmers must be smart. The code must be dumb.

+1
source

Source: https://habr.com/ru/post/1336740/


All Articles