День 13: Что я должен узнать дальше?

На этой неделе мы завершили наш первый проект Mod3. Мне понравилось создавать свой первый проект с React. Это делает мою работу как разработчика намного проще, используя React, а не простой, ванильный Javascript. В следующих двух проектах в Mod 3 я буду еще больше практиковаться в React.

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

1. Машинопись

Плюсы

  • Сильное влияние Javascript. Его синтаксис очень похож на Javascript, так что мне было бы легче разобраться. Typescript — это не свободно написанный язык, такой как JS, а строго письменный язык. Это означает, что когда мы объявляем переменную как определенный тип данных, например, число или строку, она должна оставаться в этом типе данных во всем приложении. Честно говоря, я настолько новичок в программировании, что не знаю, зачем вам когда-либо захочется манипулировать вашим типом данных таким образом, поэтому я действительно не понимаю, почему это важно. Но я вижу ошибки, как ошибки могут быть созданы при создании приложения, если вы не проверяете эти типы данных.
  • Относительно новый. Typescript впервые появился в 2012 году и набирает популярность. Так что мне не нужно беспокоиться о том, что этот навык устареет в ближайшее время.

Минусы

  • Некоторые утверждают, что это не настоящий язык со строгой или статической типизацией, такой как C++ или Java. Так что, если я считаю важным отточить этот навык в Mod4, это может быть не лучший путь.
  • Это очень похоже на Javascript. Может слишком похожи? Возможно, будет разумнее попытаться выйти за пределы моей зоны комфорта и перейти на новый язык с другим синтаксисом. Я мог бы даже попытаться перейти от объектно-ориентированного языка к функциональному языку. Насколько я понимаю, на объектно-ориентированные языки повлияли более ранние функциональные языки. Возможно, было бы неплохо бросить себе вызов и написать код в рамках совершенно новой парадигмы. Но так ли это необходимо? Я не уверен.

2. Питон

Плюсы

  • Это один из наиболее широко используемых языков. По данным этого сайта (https://www.tiobe.com/tiobe-index/) он входит в тройку лидеров и быстро растет.
  • Он широко используется в искусственном интеллекте и машинном обучении, что меня очень интересует. Если я хочу заняться этими областями в будущем, это будет язык для работы.
  • Довольно легко подобрать по сравнению с чем-то вроде C++

Минусы

  • Не лучший вариант для мобильных приложений. Я думаю, что способность писать код для мобильных приложений будет огромным набором навыков для младшего разработчика. Python не очень подходит для этого. Опять же, я не уверен, насколько хорошо C++ или TS работают с мобильными устройствами. Это то, что мне нужно изучить больше.
  • Он используется в основном для серверных приложений. До сих пор я читал, что на стороне клиента с Python очень мало что можно сделать. Мне нужно будет подумать, хочу ли я расширить свои возможности, чтобы стать лучше в бэкэнде, или удвоить усилия, специализируясь на внешнем интерфейсе.

3. C++

Плюсы

  • Он используется много. Я должен отдать должное видеоиграм, по крайней мере немного, за то, что я стал веб-разработчиком. В какой-то момент я думал о том, чтобы стать разработчиком игр. Когда я просматривал списки вакансий для разработчиков игр, я увидел, что C++ — это единственный язык, который вам нужно знать, если вы хотите разрабатывать игры. Это подводит меня ко второму пункту…
  • Это язык исполнения. Это язык более низкого уровня, поэтому, если я хочу знать, как кодировать для повышения производительности, C++ заставит меня изучить управление памятью на интимном уровне.
  • У меня есть небольшая история с C++. Когда я в течение семестра учился в колледже на факультете CS, у меня было несколько проектов на C++. Я помню, что они были тяжелыми. Вот и все.

Минусы

  • Это трудно. Я считаю, что мне нужно более глубокое понимание trig и/или calc, чтобы лучше понять, как печатать на низкоуровневом языке, подобном этому. Я не думаю, что это тот путь, на котором я сейчас иду.
  • Не самый лучший навык, которым должны овладеть разработчики интерфейса. Это немного выходит за рамки того, что я хочу, чтобы мое первое выступление повлекло за собой. Это может быть чем-то, что стоит поднять позже в моей карьере.

На данный момент я чувствую, что Python и Typescript — мои лучшие варианты. Я собираюсь провести еще немного исследований, прежде чем приму окончательное решение.