Management of the "jack of all trades" concept: not focused on one professional in a limited number of things

It may be closed in a couple of minutes, but I think I should still ask about it. As I saw in the industry, it really helps if you know more languages ​​than one; if you can work with several SQL engines than one, and in rare cases, if you know both software development and programming (etc. etc., and the list goes on).

When I first started programming (a year ago), I went with PHP and MySQL. Then I went to Odessa to start looking for side jobs, and I was overloaded; it was not just “PHP”, it was Wordpress, Joomla, COdeigniter, Zend, etc. Knowing this, I decided to study Joomla, Codeigniter and Kohana. While I was browsing the web, I came across Python and Ruby. Then I decided to learn Python, Django, and Pylons. After watching a few more, I came across PostgreSQL and MongoDB. So, along with MySQL, I decided to learn PostgreSQL and MongoDB.

Before I decided to study them, I read about them: what makes people switch from one thing to another, what makes it better than this and all that.

However, my curiosity is again unleashed when I heard about the iPhone and Android development (especially when ASE came into play, allowing me to use Python and PHP for Android), so in a few weeks I can go on completely new grounds again and again, because I'm going to scout.

I just can’t control my desire to search and learn new things, but I’m worried that at the same time I may not be able to be really good at one or some of these things (my goal is to be a web developer who knows PHP, Python , web design and the aforementioned database software). SO, in order to manage things, I decided to stick to web (and mobile network) development (I even planned to do some AI, games and desktop programs, but I had to do this), in particular, with the above technologies.

But then what I read from the many articles “jack of all professions” comes to mind: you can be either good or good in nothing.

Do any of you know more than one programming language or more than one database software (And from experience I mean "really good")? How did you do that? When / Where did you stop learning completely new things?

+4
source share
4 answers

I find the logic of 'jack of all trade, but master of none' can sometimes be a mistake.

A wide knowledge of different areas, programming languages ​​and technologies can allow you to see patterns, relationships and solutions that you would not pay attention to if you knew or worked with a very specific set of tools.

There is a phrase used by people in medicine: "Show the patient an oncologist and they will find cancer, they will show a neurologist of the same patient, and they will find a neurological disease."

Sometimes, being very specialized, deviates from your view to such an extent that you are trying to apply your specific knowledge to solve a problem, and not to find the best solution.

This, however, does not mean that you cannot be an expert in many things. You mentioned that you only programmed for a year. You are obviously very enthusiastic and have the ability, but this is a very short time. You will have many years to get to know many aspects of your craft.

Have any of you had more than one programming language?

There are only a few different language paradigms, and within these languages, most languages ​​vary significantly in syntax, library support, and programming environment. When you learn several types of languages, learning becomes more trivial (I think it’s similar to natural languages).

Personally, I would not consider simply knowledge of many languages ​​a sign that it is well rounded in the field of computer science / software development. It is pretty well taken for granted, you should be able to choose a specific language or development environment without much effort.

Familiarity with various fields, such as machine learning, artificial intelligence, numerical modeling, computer vision, computer graphics, many branches of higher mathematics, etc., is much more difficult to achieve and maintain. I often complain about such things, not knowing and, it seems, not having enough time for experiments. I think it depends on what you need to use.

+6
source

How Akusete perfectly sums up :

There are only a few different language paradigms, and within these languages, most languages ​​vary significantly in syntax, library support, and programming environment. When you learn several types of languages, learning becomes more trivial.

Instead of learning both Java and C #, it would be better to learn Java / C # procedural language. The same goes for databases; playing with a relational database of SQL and NoSQL , you will learn much more than you, having studied MySQL and PostgreSQL as an example.

The real problem is not so much learning the different principles. It’s much harder to maintain these principles, because you will need to actively work with each technology on a regular basis and there is only 24 hours a day.

PS: I think it should be a community wiki :)

+2
source

As a similar example: The field of medicine is a fairly wide branching from neurology to oncology. But practitioners will always have a knowledge base, after which they will engage in their specialization.

Creating basic knowledge is very important. For you, such concepts as the concepts of OOP, MVC, best coding methods, etc. should be understood. My advice: choose a language / platform and be very good at it. Be a Python master or Java guru. The knowledge that you gain from this can be transferred to other platforms that you learn. Since you are at the beginning of your career path, gradually master one / two platforms at a time, then you can start jumping to explore other platforms. Too much fragmentation is also bad for accepting new skills, especially if you are new to it. Jumping from one platform to a platform deceives one knowledge, forcing you to learn or review frequently. So again, develop basic knowledge.

Your skill will gradually and certainly expand overtime. Do not rush to eat the whole cake, or you will suffocate.

+1
source

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


All Articles