Каковы ваши карьерные планы: развитие как менеджер или как технический специалист?

Ответ

Мой основной фокус — углубление технической экспертизы в iOS-разработке. Я планирую развиваться как senior-инженер, что включает:

  • Углубление в технологии: Swift, SwiftUI, Combine, современные архитектуры (MVVM, Clean Architecture).
  • Изучение смежных областей: Performance, Security, CI/CD.
  • Менторство и лидерство в технических вопросах: проведение code review, помощь junior-разработчикам, проектирование решений.

Я понимаю важность soft skills и управленческих компетенций для senior-уровня. Готов развивать их в контексте технического лидерства: коммуникация с командой и стейкхолдерами, декомпозиция задач, оценка рисков. Однако моя цель — стать экспертом в разработке, а не переходить в pure management.

Пример подхода в коде: проектирование модулей с четкими контрактами, что упрощает координацию работы команды.

// Четкий протокол для сервиса, а не жесткая реализация
protocol DataServiceProtocol {
    func fetchData() async throws -> DataModel
}
// Это позволяет разным разработчикам работать над клиентом и реализацией независимо.

Ответ 18+ 🔞

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

Слушай сюда, твой фокус — это не просто «углубление экспертизы», это типа как взять и начать понимать, как эта ебучая платформа на самом деле работает, а не просто по туториалам повторять. Ты хочешь не просто писать код, который работает, а писать код, от которого у других разработчиков не начнётся нервный тик при code review.

  • «Углубление в технологии»: Swift, SwiftUI, Combine — это не три волшебных слова, это твои новые рабочие инструменты. Ты должен с ними на «ты». Современные архитектуры? MVVM — это ещё ладно, но Clean Architecture — это когда ты уже такой весь из себя, блядь, философ, размазываешь слои как арахисовую пасту по тосту, чтобы потом не орать «ёпта, всё сломано!» при малейшем изменении.
  • «Смежные области»: Performance — это когда твое приложение не жрёт батарею как свинья трюфели. Security — это чтобы тебя потом не выебали за то, что пароли в UserDefaults хранил. CI/CD — это волшебная палочка, которая позволяет не тратить полдня на то, чтобы собрать билд и залить его в тест. Без этого — ты не senior, а так, продвинутый junior.
  • «Менторство и лидерство»: А вот это, дружок, самое интересное. Senior — это не тот, кто самый умный. Это тот, кто может сделать так, чтобы и другие не были самыми тупыми. Проводить code review — это не придираться к отступам, а ловить архитектурные косяки, которые через полгода вылезут боком. Помогать джунам — это не делать за них работу, а тыкать носом в документацию так, чтобы они сами додумались. Проектирование решений — это когда ты можешь на салфетке нарисовать схему, и всем сразу становится понятно, какую хуйню мы будем городить следующие два месяца.

И да, про soft skills ты верно печёшься. Без них ты будешь тем самым гениальным мудаком, с которым все хотят послать нахуй, даже если он прав. Коммуникация — это чтобы не мычал как Герасим из «Муму», когда надо объяснить менеджеру, почему его «простенькая фича» займёт не день, а три недели. Декомпозиция и оценка рисков — это чтобы не попадать в ситуации «ой, а тут, блядь, оказывается...».

И главное — ты чётко ловишь разницу: цель не стать менеджером, который только митинги проводит, а стать тем самым техническим костяком, на которого можно опереться. Который и сам в код полезет, и другим путь светит.

Твой пример с кодом — это и есть тот самый краеугольный камень. Вместо того чтобы везде пихать DataService(), ты выставляешь наружу DataServiceProtocol. И тогда получается магия:

// Четкий протокол для сервиса, а не жесткая реализация
protocol DataServiceProtocol {
    func fetchData() async throws -> DataModel
}
// Это позволяет разным разработчикам работать над клиентом и реализацией независимо.

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

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