Learn Go or Improve My Python / Ruby Knowledge

I read about Go, and I see that it is very good and may be the language used by many developers in a few months, but I want to solve a simple thing: Learn Go or improve my Python or Ruby knowledge?

Years of development with Python: 1
Years of development with Ruby: 0.3

+4
source share
10 answers

If you just want to have fun and expand your horizons, I would study Go, since you already know some kind of Python.

If you want to improve your work as a developer, I personally would recommend working on a real project (using Python, since this is the language in which you have the most experience):

  • This will cause your programming skills (Python and general) to become completely new.
  • If you choose an interesting project, for example, a semi-popular open source project, you will even get some specific result to show your extra work. This will help your resume, help you meet other people interested in programming, etc.

I personally think that spending the time you would spend learning a new language coding the actual things you can use is usually a clear victory (unless, of course, as I said, you just do it for fun or relaxation).

+18
source

In fact, you have to do both; if that is what you want. For me, though, of the two, I just looked at Python. I have no real interest in new languages.

+9
source

It depends on your goals and your needs.

If you want to develop your skills for work, go to Python or Ruby. You are unlikely to see that Go will appear in the workplace for quite some time (if ever) if you are not working on Google. (Even then, it is doubtful.)

If you want to have fun, do what you want. I believe that the best solution is to choose the project that you want to work on, and then choose the language that is best for this project .

Other things to consider:

  • Each language is suitable for specific tasks. Go is compiled into machine code, while Python and Ruby work in interpreters. Go lends itself to a slightly lower level of work. It is also good for simultaneous tasks. Higher-level tasks may be more appropriate for Python or Ruby.

  • Go is an experimental language that can experience change. These changes may be backward incompatible. If you find out now, after 6 months or a year, you may have to retrain some of them because it has changed. However, it may be interesting to be part of something that is on the verge of bleeding. And if this happens to become the “next big thing”, you are on the first level.

+8
source

How long have you been working with Python?

If it were me, I would do my best to possibly get working knowledge of Go (basic syntax, some familiarity with unique language functions) and continue with Python, as usual.

In the end, you can come up with a small project for which Go seems appropriate (or you can come up with it now!) And really immerse yourself in the language this way.

There is no reason to limit yourself to one. :)

+3
source

This is for you. You should probably do both if you can, because that way you will have more tools in your programmer’s metaphorical belt.

There are several things that, in my opinion, deserve consideration whenever I am in a similar dilemma.

Is a new language (not just unfamiliar, but actually new, like Go) likely to catch? (If so, it will be practically REQUIRED to study it, not just a good idea.)

You will need to spend some time learning an unfamiliar language. Will this time come as a result of some kind of positive comeback? The development time is obvious here (i.e. you can end up getting more results and return the time spent learning it), but if the language outperforms other methods (works faster or with less memory, it’s best for your specific problem domain), which may also matter.

Learning an unfamiliar language will allow you to solve an urgent / important / urgent problem that cannot be solved with the help of what you already know?

Unfortunately, none of us can tell you how to weigh each of these problems. You need to think about this very carefully and come to an answer on your own.

+2
source

First of all, this is a very personal question, and my first recommendation would be, if you think so, try Go for one month or so, learning the basics, and then deciding ... Everyone has a mind, more in some languages ​​than others ...

I would also recommend using Python and Ruby, if you're interested, you have enough experience to use them comfortably (I think), so in the coming months you could experience a big boost in your experience using them ..

For a harsh, utilitarian point of view, Go training can be pretty much a risk move, but worthy if it starts to be used, and you are one of the few people with some experience when everyone is just starting to learn the syntax ...

+2
source

These two languages ​​serve different purposes. Go is only 20% slower than C. If you want crazy speed and easy parallelism, then learn Go. However, readability was not a design goal. In addition, there are no exceptions. It can be used for real-time products, though ...

+1
source

IMO you need to improve your knowledge of Python. Python is a widespread language, while Go is still at a very early stage, and there is no reason to believe that it will succeed.

From a purely utilitarian point of view, you will get much more benefits from learning Python.

+1
source

It is not easy to answer this without knowing how good your Python is, or what you are doing, or where you will use Go. If you are looking for work, I suspect Python is the way to go. I would be surprised if anyone were using Go for large projects at the moment (outside of Google).

Please note that Go is by no means complete. See here for the Go roadmap and look for potential future changes. Thus, you can now click on a moving target.

+1
source

Python is available for most operating systems, it is usually perceived as a scripting language and matures in terms of product quality.

Go is a research language that is only available in beta on Linux and OS X. Nowhere else. This is interesting from an intellectual point of view in that you can study and apply several concepts (typed channels combined with simple multitasking) that are otherwise difficult to use.

As for Go, you can first take a look at the AT & T "Plan 9" operating system. It comes with a programming language called "Aleph", also with a C base, has channels and multitasking. It seems to me that Go is a reimplementation of Aleph on larger operating systems.

+1
source

All Articles