Новости программирования

Старший инженер Google назвал «лучший язык программирования для изучения в 2022 году»

[ad_1]

Я старший инженер-программист в Google Singapore, и меня очень часто спрашивают, какой язык программирования изучать.

Уведомление об импорте: эта статья была импортирована из моей статьи в блоге Medium: «Лучший язык программирования для изучения в 2022 году» — полную информацию можно прочитать здесь.

Иногда этот вопрос звучит так: «Должен ли я изучать Java, Python или JavaScript?»
Если быть до конца честным, я решил написать эту статью после прочтения ответа на тот же вопрос Эрика фон Рейнхарда в статье

Лучший язык программирования для изучения в 2022 году? — объясняет ведущий разработчик Google.

На самом деле, я решил написать об этом, потому что у меня совсем другое мнение по этому вопросу, поэтому, пожалуйста, не обращайте внимания на вдохновенное название.

Итак, какой?

я рекомендую «нет конкретного».

Неважно, начинаете ли вы с C++, Java, Python, Javascript или любого другого языка в этом отношении. Изучение нового языка не займет много времени, и это также не должно быть приоритетом №1.

Языки программирования — это средства для достижения цели (вот я снова это сказал!), и на практике мы склонны постоянно переключаться на один или другой, который выполняет нашу работу.

Я начал свой путь с C++ в старшей школе, много времени провел за изучением Javascript в университете. Моя работа в Microsoft требовала, чтобы я много работал с C#/.Net и Typescript, и когда я перешел на Google, я начал работать над приложением Android Camera, поэтому я начал работать с Java. Вскоре я переключился на вычислительную часть камеры, и сейчас я пишу гораздо больше на C++ (производственный код) и Python для прототипирования.

И на протяжении всего этого пути стоимость изучения нового языка никогда не была высокой.

Я должен признать, что со временем мы создали разные «виды» языков программирования с точки зрения того, как они используются. Несколько языков используются исключительно для разметки, таких как HTML или XML, в то время как другие предназначены исключительно для сценариев, таких как сценарии оболочки или сценарии bat, некоторые из них функциональны по своей природе, другие — нет, и так далее.
При переключении с одного «вида» на другой могут потребоваться определенные затраты на обучение. Наличие фундаментального понимания этих «видов» сделает этот барьер для изучения нового языка очень тонким.

Подождите… Тогда на чем мы сосредоточимся?

По моему честному мнению, самый важный навык, над которым нужно работать, — это способность решать любую поставленную проблему.

  • Если это должно быть веб-приложение, можете ли вы его создать?
  • У вас есть приложение для Android, можете ли вы улучшить производительность?
  • У вас есть проблема, которую потенциально можно решить с помощью обученной нейронной сети — можете ли вы пойти дальше и сделать все это?

Даже если вы «никогда» не работали над этим раньше! И какой бы язык программирования ни потребовался, чтобы это сделать!

В конце концов, все будет одинаково, так что продолжайте и сосредоточьтесь на изучении новых технологий, попытайтесь глубже изучить концепции, которые выглядят как магия, в начале попытайтесь исследовать множество разных жанров, пока все это не начнет выглядеть как волшебство. такой же. В конце концов, выберите то, что вам действительно нравится, и углубитесь!

Хорошо, но некоторые конкретные рекомендации были бы замечательными!


Для читателей, которые удосужились дочитать до этого места, я чувствую, что должен дать более прямые рекомендации! (Я не жалею!)

Если вы только начинаете изучать программирование

Я бы порекомендовал выбрать технологию, над которой вы хотите работать — это может быть веб, это может быть мобильная версия (Android/iOS), это может быть разработка игр, это может быть разработка других приложений, это может быть обучение моделей машинного обучения, построение настольные приложения и так далее.

Но суть в том, чтобы подобрать технологию и выучить соответствующие языки. Учитесь, создавая случайное программное обеспечение, если это возможно, и хорошо проводите за ним время.

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

Видите ли, программа, которую мы пишем на любом языке, либо напрямую компилируется в инструкции по сборке, либо в промежуточные байт-коды, которые в конечном итоге снова компилируются в инструкции по сборке для выполнения аппаратным обеспечением. Если вы примете этот факт, синтаксис разных языков станет очень похожим.

Определенное требование, скажем, «Увеличить каждое значение массива на 1», может быть обработано с помощью разных синтаксисов:

В Питоне:

y = [i + 1 for i in x]

## or

for i in range(0, len(x)):
  x[i] = x[i] + 1

В Javascript:

for (var i = 0; i < x.length; ++i) x[i]++;

// Or

var y = x.map(val => ++val);

// Or

var y = Array.from(x, val => ++val);

Или в Go:

for i:= range x {
  x[i]++
}

Все это более или менее компилируется во что-то вроде:

increment(int*, int):
  cmp     w1, 0
  ble     .L1
  mov     x2, x0
  add     x1, x0, w1, sxtw 2
.L3:
  ldr     w0, [x2]
  add     w0, w0, 1
  str     w0, [x2], 4
  cmp     x2, x1
  bne     .L3
.L1:
  ret

Что более интересно здесь, в серии примеров, так это то, что некоторые из них приводят к копированию массива, а другие нет, и я бы рекомендовал сосредоточиться на изучении этих типов проблем и их влиянии на программу.

Если вы опытны и владеете определенными языками программирования, но чувствуете, что многое упускаете

Я бы по-прежнему рекомендовал то же самое — сделайте шаг назад и подумайте, какие формулировки проблем вас волнуют. Затем подумайте, какие новые средства для достижения цели вам необходимо изучить.

Например, во время работы над приложением «Камера» у меня появилась возможность поработать над «Ночным режимом» в приложении «Камера», который требует от нас захвата серии изображений и надежного их объединения для получения хорошо экспонированного изображения с низким уровнем шума. Это очень затратно в вычислительном отношении, и нам нужно, чтобы наши алгоритмы работали на оборудовании с ограниченными ресурсами в рамках определенного бюджета задержки.

Для меня это была очень захватывающая постановка задачи, которая потребовала от меня повторного изучения современного C++, концепций обработки изображений и т. д.

Но это было так весело, что усилия, потраченные на обучение, не казались помехой. Я бы порекомендовал найти такие направления и начать учиться, чего бы это ни стоило.

TL;ДР; Не утруждайте себя поиском одного языка программирования, который станет вашей ставкой на 2022 год.

Хотите связаться с автором?

Эта статья была первоначально опубликована в журнале «Лучший язык программирования для изучения» в 2022 году. Полную информацию можно найти здесь.

Подпишитесь на Medium, используя мою членскую ссылку (я получу небольшую комиссию).

  • Мой блог: blog.minhazav.dev для статей по теме
  • Гитхаб: mebjas@
  • Твиттер: минхазав@
  • LinkedIn: минхазав



[ad_2]
Source: codementor.io/community/new

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован.

Краткое описание по статье Старший инженер Google назвал «лучший язык программирования для изучения в 2022 году»

Название: Старший инженер Google назвал «лучший язык программирования для изучения в 2022 году» . Краткое описание: [ad_1] ⭐ Я старший инженер-программист в Google Singapore, и м . Дата публикации: 26.01.2022 . Автор: Алишер Валеев .

Для чего создан сайт Novosti-Nedeli.ru

Данный сайт посвящен новостям мира и мира технологий . Также тут вы найдете руководства по различным девайсам.

Сколько лет сайту?

Возраст составляет 3 года

Кнопка «Наверх»