«Какой язык мне выучить первым?» — этот вопрос я очень часто слышу от знакомых. Раз в пару недель в личной переписке на LinkedIn незнакомцы просят посоветовать лучший язык для сына, который хочет учиться программированию. И такие вопросы задают не только новички, но и люди с несколькими годами опыта.
Об этом пишет доктор наук по физике элементарных частиц Эри Джури. Также она разрабатывает алгоритмы искусственного интеллекта, чтобы лучше исследовать эти частицы.
Передаем ей слово.
Не подумайте, что я жалуюсь. Половину средств на жизнь я получаю, исследуя плюсы и минусы разных языков программирования, фреймворков и моделей ИИ на Medium. И мне очень выгодно, когда люди этим интересуются.
Конечно, каждый хотел бы работать с лучшими инструментами и стать профессионалом как можно скорее.
Вы смотрите, какими стеками пользуются разработчики, и пытаетесь понять, какой из них самый лучший.
Но ни одна технология не хорошая или плохая; просто определенные технологии не подходят для решения конкретной проблемы.
Поэтому, если вы хотите начать программировать или усовершенствовать свои навыки в этой сфере, не задавайте вопрос: «Что мне использовать, Python или Julia?». Вам нужно понять, какой язык целесообразно использовать именно для вашей проблемы.
Признаюсь, что у меня нет образования по специальности. Я физик элементарных частиц, который использует концепцию программирования и Data Science, поскольку я имею дело с огромным количеством данных на работе.
И это причина, почему физики востребованы так же, как и программисты. Мы интересуем рынок не потому, что много знаем о нейтрино
Помните цитату Авраама Линкольна? «Дайте мне шесть часов, чтобы срубить дерево, и первые четыре я буду точить топор». Но мы говорим о сфере программирования: это значит, что не нужно сразу приступать к кодингу. Нужно понять проблему и обдумать ее решение.
На собеседованиях обычно ожидают, что кандидаты внимательно рассмотрят проблему, а на написание кода у них уйдет меньше половины отведенного времени.
Никогда не упускайте этот шаг!
Понимаете ли вы проблему? Попытайтесь объяснить ее постороннему человеку, который о ней впервые слышит. Попытайтесь описать ее простым английским или родным языком; нарисовать небольшую схему.
Вы рассказали другу и он не совсем понял, о чем именно идет речь? Это значит, что вам нужно переформулировать проблему и попробовать снова, пока вы не сможете объяснить ее так, что вас поймут.
Вот вопросы, которые вам помогут:
Каждая большая проблема состоит из множества маленьких. К примеру, выше мы упоминали линейную регрессию.
Можно разделить ее так:
Такой анализ проблемы помогает составить правильный план работы. А еще он будет мотивировать вас: не будет ощущения, что работа не двигается. Вы будете видеть свои достижения на каждом отрезке пути.
Дьявол всегда прячется в деталях.
Вместо того, чтобы работать со всем проектом, попробуйте начать с какой-нибудь небольшой части. Проверьте, работает ли ваш план или, возможно, возникнут какие-то трудности, и первоначальное решение нужно адаптировать.
Это поможет вам разобраться, на что нужно обратить максимум внимания. Многие проблемы кажутся простыми, но только до того момента, когда вы начинаете с ними работать.
В нашем примере можно не использовать сразу все соответствующие переменные, а выполнить линейную регрессию для нескольких. Это не слишком близко к завершению проекта, но позволит увидеть ошибки в сценариях: а это сэкономит вам очень много времени.
Сначала проведите небольшие тесты и убедитесь, что ваше решение работает так, как вы его задумали.
Основная часть. Теперь вы можете создать решение для большой проблемы.
Добавьте все свои данные в код и делайте все, что хотите.
Если вы сначала выполнили три предварительных этапа, то все должно пройти отлично.
Если что-то идет не так, то советую еще раз пересмотреть шаги 1-3 и убедиться, что все было сделано правильно.
То, что вы нашли одно удачное решение, не означает, что оно самое лучшее. Не торопитесь: подумайте, как бы вы могли оптимизировать это решение, как можно решить эту проблему по-другому.
Попытайтесь спросить коллег, как они бы поступили на вашем месте. Отличался бы их подход?
Вы также можете попытаться определить «узкое место» в своем решении, то есть те части, на которые требуется больше времени и ресурсов для выполнения.
И последнее: подумайте о том, как ваше решение может развиваться в будущем. Улучшат ли ваше решение новые фреймворки или использование ИИ? Как оно может способствовать решению других, даже более сложных проблем?
Люди часто пытаются найти самый эффективный язык программирования или новый фреймворк, считая это своеобразной «волшебной таблеткой».
Но стоит понять, что не это делает вас профессиональным программистом. Очень важно, насколько хорошо вы можете решать проблемы. Конечно, вы не научитесь этому за одну ночь. Но если вы будете постоянно совершенствовать свои навыки в этой сфере, задавать себе правильные вопросы и тратить достаточно времени на анализ проблемы, вы быстро улучшите свой уровень.
Автор: Эри Джури
Текст адаптировала Евгения Козловская
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…