How you should choose which technology to learn next english

By Itamar Turner-Trauring

Как выбрать технологию для изучения? russian

Перевод Александр Курилкин

Keeping up with the growing software ecosystem — new databases, new programming languages, new web frameworks — becomes harder and harder every year as more and more software is written. It is impossible to learn all existing technologies, let alone the new ones being released every day. If you want to learn another programming language you can choose from Dart, Swift, Go, Idris, Futhark, Ceylon, Zimbu, Elm, Elixir, Vala, OCaml, LiveScript, Oz, R, TypeScript, PureScript, Haskell, F#, Scala, Dylan, Squeak, Julia, CoffeeScript… and about a thousand more, if you’re still awake. This stream of new technologies can be overwhelming, a constant worry that your skills are getting rusty and out of date.

Шагать в ногу со временем становится все сложнее — новые языки программирования, фреймворки, базы данных появляются практически ежемесячно, и выучить их все невозможно. Если вы вдруг решили выучить новый ЯП, то у вас богатый выбор: Dart, Swift, Go, Idris, Futhark, Ceylon, Zimbu, Elm, Elixir, Vala, OCaml, LiveScript, Oz, R, TypeScript, PureScript, Haskell, F#, Scala, Dylan, Squeak, Julia, CoffeeScript… и еще тысячи других. Поток новых технологий просто ошеломляет, а свои знания необходимо расширять, чтобы оставаться на плаву в IT-сфере и быть ценным работником.

Luckily you don’t need to learn all technologies, and you are likely to use only a small subset during your tenure as a programmer. Instead your goal should be to maximize your return on investment: learn the most useful tools, with the least amount of effort. How then should you choose which technologies to learn?

К счастью, знать всё, что используются в современном мире, совершенно необязательно. В работе вы будете использовать лишь небольшое количество современных технологий, а значит, учить их все не имеет смысла. Вместо этого стоит сконцентрироваться на изучении того, что наиболее окупит потраченные усилия — наиболее полезных инструментов, на освоение которых не потребуется много времени. Но как выбрать стоящую изучения технологию? Секрет прост.

Don’t spend too much time on technologies which are either too close or too far from your current set of knowledge. If you are an expert on PostgreSQL then learning another relational database like MySQL won’t teach you much. Your existing knowledge is transferable for the most part, and you’d have no trouble applying for a job requiring MySQL knowledge. On the other hand a technology that is too far from your current tools will be much more difficult to learn, e.g. switching from web development to real-time embedded devices.

Не тратьте много времени на то, что слишком близко или далеко от той области, в которой вы работаете. Если вы эксперт в PostgreSQL, то изучение еще одной SQL-базы не принесет вам пользы: ваши знания и так помогут без особого труда устроиться на работу, где требуется MySQL. С другой стороны, что-то совсем иное стоит изучать лишь в том случае, если вы твердо решили сменить свою специализацию: иначе вы потратите слишком много времени, а результат все равно не пригодится.

Focus on technologies that can build on your existing knowledge while still being different enough to teach you something new. Learning these technologies provides multiple benefits:

Сфокусируйтесь на технологиях, которые представляют что-то новое для вас, но базируются на уже известных для вас принципах. Такой подход имеет множество преимуществ:

  • Since you have some pre-existing knowledge you can learn them faster.
  • процесс изучения будет проходить быстрее, так как что-то уже будем вам известно, и не придется начинать с нуля;
  • They can help you with your current job by giving you a broader but still relevant set of tools.
  • полученные навыки пригодятся вам в работе: у вас будет более широкий выбор полезных инструментов;
  • They can make it easier to expand the scope of a job search because they relate to your existing experience.
  • поиск работы станет легче в силу расширения вашей области знаний.

There are three ways you can build on your existing knowledge of tools and technologies:

Три пути развития, по которым вы можете пойти:

  1. Branch out to nearby technologies: If you’re a backend web developer you are interacting with a database, with networking via the HTTP protocol, with a browser running Javascript. You will end up knowing at least a little bit about these technologies, and you have some sense of how they interact with the technology you already know well. These are all great candidates for a new technology to learn next.
  1. Изучайте альтернативы. Например, вы специалист в PostgreSQL. Хорошим выбором для изучения будет MongoDB — это тоже база данных, которая решает проблемы, в которых вы уже разбираетесь: хранения и поиск данных. Но MongoDB делает это совершенно в иной манере, нежели PostgreSQL, а значит, из изучения этой технологии вы почерпнете много нового.
  1. Alternative solutions for a problem you understand: If you are an expert on the PostgreSQL database you might want to learn MongoDB. It’s still a database, solving a problem whose parameters you already understand: how to store and search structured data. But the way MongoDB solves this problem is fundamentally different than PostgreSQL, which means you will learn a lot.
  1. Обратите внимание на смежные технологии. Если вы backend-разработчик, то, скорее всего, вы взаимодействуете с базами данных, протоколом HTTP, браузером, выполняющим JavaScript. Все эти сферы являются неплохими кандидатами на изучение, ведь они могут существенно расширить область ваших знаний и углубить понимание того, что вы уже знаете.
  1. Enhance your usage of existing tools: Tools for testing your existing technology stack can make you a better programmer by providing faster feedback and a broader view of software quality and defects. Learning how to better use a sophisticated text editor like Emacs/Vim or an IDE like Eclipse with your programming language of choice can make you a more productive programmer.
  1. Учитесь пользоваться существующими инструментами. Владение инструментами, помогающими в использовании набора технологий, который вы уже знаете, будет вам только в пользу. Никогда не помешает знание таких текстовых редакторов как Vim/Emacs, или IDE как Eclipse — они помогут вам стать более продуктивным программистом.

Neither you nor any other programmer will ever be able to learn all the technologies in use today: there are just too many. What you can and should do is learn those that will help with your current projects, and those that you can learn more easily. The more technologies you know, the broader the range of technologies you have at least partial access to, and the easier it will be to learn new ones.

Ни вы, ни кто-либо иной никогда не сможете овладеть всеми технологиями, которые сейчас используются в IT-сфере. Так почему бы не овладеть только теми из них, что принесут вам больше всего пользы: расширят кругозор, помогут с проектами, сделают более продуктивным.

Тексты были взяты из открытых источников и соединены в формате "билингва" (bilingual book). Для каждой страницы указан источник, автор и переводчик. Если вы заметили неточность перевода, или неправильно сопоставленные абзацы, или текст оформлен неаккуратно - сообщите в комментариях.

Responses

Для добавления комментариев необходимо авторизоваться