Как стать автором
Обновить
9
0
Сергей Копытов @kopytovs

iOS TechLead

Отправить сообщение

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

На моем опыте все делятся на тех, кому нравится Go и тех, кто его ненавидит ? Могу понять и тех и других, но я из первых, хотя изначально был из вторых. После Swift меня очень бесило отсутствие кучи удобных штук, типо функций высшего порядка, протоколов (интерфейсов) со всеми вытекающими, да и банальных перечислений (enum). Но, со временем, вжился и стал воспринимать это как плюс, а не как минус, так как отсутствие огромного количества "умных" конструкций очень упрощает читаемость кода, особенно, когда это не твой основной язык. Но да, язык Go с приколами, тут не спорю)

Очень крутой опыт ?

На мой взгляд, нельзя однозначно утверждать, что пригодится, а что нет, чтобы быть на 100% уверенным. Насчет китайского: его сейчас очень активно многие изучают и на нем создаются работы, да, сейчас это ничтожно мало, но утверждать на будущее сложно. Столетие назад все учили французский и английский был даром никому не нужен (равносильно языку инопланетян с планеты Нибиру), а сейчас все ровно наоборот (утрирую, конечно, но смысл понятен, я думаю).

Про скриптовые языки есть очень много обсуждений, использовать их для системного программирования - это такое себе, полностью согласен, но кто мешает их использовать для небольших скриптов?) Это же, тупо, удобно, ты быстро пишешь, смотришь в интерпретаторе и сохраняешь, развернуть элементарно, запустить так же, хранить просто и всю историю видишь. Можно использовать компилируемые языки и собирать себе бинари, но: 1) бинари в гите не сможешь хранить; 2) после каждого изменения нужно пересобирать; 3) чтобы разобраться - нужно искать исходники. Как по мне, скриптовые языки тут гораздо удобнее.

А что с фуллстеками не так? Понятно, что есть новички, которые могут одновременно на всем писать на довольно слабом уровне, но кто их фуллстеками называет, кроме их самих?) Мне кажется, если человек может писать код и в фронт и в бэк - это крутой специалист, который может закрыть полторы позиции, что особенно актуально для небольших команд, аутсорсов или случаев, когда в команде не хватает специалиста, но нужно быстро что-то развернуть. К тому же, такой эксперт всегда пригодится при планировании задачи и поможет спроектировать наиболее удобное API для всех платформ. Никто не говорит, что расти в фуллстека обязательно и этого не избежать, это просто один из вариантов роста при изучении разных языков, фреймворков, плафторм и подходов. ?

А почему именно Dart? Только из-за Flutter? Не хочется начинать холивар, но чем Flutter лучше Kotlin Native?)

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

Этому холивару уже много-много лет, я просто поделился своим мнением :)

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

Мне кажется, все зависит от цели. На сегодняшний день возможности в программировании ушли далеко вперед, по сравнению с концом 90-х и началом 00-х, есть очень простые и умные языки с крутыми фреймворками (тот же Python), есть системные языки с синтаксисом на уровне высокуровневых интерпретируемых языков, есть тот же ChatGPT, в конце концов (не панацея, но отличный помощник). Фронт разработчику, который 20 лет занимается фронт разработкой и его все устраивает, нет большого смысла (кроме внутреннего интереса) изучать подробно структуру языка, машинные команды и тд. Ровно как и нет большого смысла системному разработчику изучать возможности блюра во вьюхе. Это просто дополнительные знания, это не плохо, но никак их не ограничивает и не обязывает.

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

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

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

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

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

90%+ знания языка это его библиотеки. Ну как минимум в современном мире.

Ну тут сильно зависит от языка и от цели, как мне кажется) Но под изучением языка, я, конечно, имел в виду не голое зазубривание синтаксиса, а, именно, умением им пользоваться, а значит и пользоваться библиотеками ?

Спасибо за такой развернутый фидбек!

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

Проведу параллель: спорт занимает твои жизненные ресурсы, расходует твою энергию, забирает много времени, но тебе это все равно нравится и ты раз за разом возвращаешься на тренировку. Вот ты занимаешься, например, большим теннисом, наступает зима и ты начинаешь, параллельно, ездить кататься на сноуборде/лыжах. Это занимает у тебя сильно больше времени и ресурсов, но ты же получаешь от этого удовольствие! Большинство профессиональных спортсменов так же занимаются другими видами спорта (если по контракту не запрещено), вот и мы, как профессиональные разработчики, параллельно занимаемся другими языками. Не потому, что это срочно должно принести новый доход, не потому, что мы не знаем чем заняться и ищем себя, не потому, что текущий проект (спорт) разваливается, а просто потому, что нам это нравится.

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

Никогда не знаешь, что пригодится завтра, будь готов ко всему ?

Круто, что вы в познании очень преисполнились и не стали пахать в ИТ! А мне вот ИТ, пока, нравится, вот и пишу на эту тематику :)

Визуализация

Мне кажется, просто привычно уже, любого из ИТ (почти) спроси кто такой FullStack, тебе скажут, что это это тот, кто пишет сайт с бэкендом сам. По крайней мере, на моем опыте, именно так)

Правда сегодня под фронтом уже можно не только Веб понимать, все-таки смартфоны всегда под рукой и приложений там куча.

В любом случае, всегда полезно изучать различные подходы к разработке, архитектуры, способы шарить данные и тд, никогда заранее не знаешь, когда и где может пригодится :)

Взять тот же Rx, который затащили уже, кажется, во все платформы, но изначально популярность пришла именно с Java же (RxJava), если бы никто из iOS, например, никогда бы это не изучал, то никакого RxSwift и Combine и не было бы ?

Да, конечно, тут я, наверное, не очень корректно написал, под изучением языка я как раз и понимал глубокое изучение, с подходами, фишками и всем остальным. Про экспертное знание согласен, но чаще всего, тебе не нужно быть экспертом в Ruby, чтобы написать себе небольшой кодогенератор или что-то в этом духе, поэтому можно не обязательно изучать все языки в эксперта, особенно, если язык не твой профильный)

Ну, в целом, могу тоже самое сказать и про Swift. С фронт разработкой всё понятно (под iOS и Mac можно из коробки писать, пот Linux и Win уже сложнее, но тоже можно), бэкенд можно с помощью Vapor развернуть, это даже удобно будет, а для веба сгодится WebAssembly (https://webassembly.org). Проблема будет только в комьюнити, таких энтузиастов не много, а значит, почти любые проблемы ты будешь решать в гордом одиночестве(

Ну тут чисто синдром самозванца начинает работать, при Т-шейпе так всегда, от этого никуда не деться) В любом случае, рост вширь - это круто, как по мне, с синдромом самозванца можно и нужно бороться ?

1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

Mobile Application Developer, Application Developer
Lead
iOS development
SWIFT
Objective-C
Development of mobile applications
Golang
Jenkins
Ruby
Development management
Automation of processes