SwiftSimple
SwiftSimple
  • 223
  • 98 908
11. Методы
Методы
00:00:00 Введение
00:01:56 Методы экземпляров
00:09:19 Изменение типов значений методами экземпляров
00:19:12 Методы типа
Переглядів: 79

Відео

10. Свойства
Переглядів 78Місяць тому
Свойства 00:00:00 Введение 00:01:54 Свойства хранения 00:06:02 Ленивые свойства 00:10:08 Вычисляемые свойства 00:30:56 Наблюдатели свойств 00:40:13 Оболочки свойств 01:07:20 Проецирование значения из обертки свойства 01:17:52 Глобальные и локальные переменные 01:25:20 Свойства типа
09. Структуры и классы
Переглядів 121Місяць тому
Структуры и классы 00:00:00 Вступление 00:03:18 Сравнение классов и структур 00:28:05 Структуры и перечисления - типы значения 00:39:48 Классы - ссылочный тип 00:52:11 Операторы тождественности 00:56:23 Указатели
Вебинар - Массивы и ответы на вопросы
Переглядів 33Місяць тому
Вебинар - Массивы и ответы на вопросы Если хотите освоить язык программирования Swift, то я приглашаю вас в свою школу SwiftSimple. Более подробно о курсе можете узнать на личной 15 минутной бесплатной консультации. Пишите мне в телеграмм (t.me/johnkostanov) и записывайтесь на консультацию. Если вы хотите получить доступ к базе знаний школы SwiftSimple или пройти стажировку заполняйте следующую...
08. Перечисления
Переглядів 772 місяці тому
08. Перечисления 00:00:00 Вступление 00:01:24 Синтаксис перечислений 00:08:09 Использование перечислений с инструкцией switch 00:13:00 Итерация по кейсам перечисления 00:18:58 Ассоциативные значения 00:28:28 Исходные значения 00:44:01 Рекурсивные перечисления
07. Замыкания
Переглядів 1802 місяці тому
Замыкания 00:00:00 Вступление 00:07:32 Замыкающие выражения 00:29:28 Трейлинг замыкание 00:52:07 Захват значений 01:03:35 Замыкания - ссылочный тип 01:07:24 Сбегающие замыкания 01:20:58 Автозамыкания
06. Функции
Переглядів 842 місяці тому
Функции 00:00:00 Вступление 00:02:54 Объявление и вызов функций 00:09:16 Параметры функции и возвращаемые значения 00:33:14 Ярлыки аргументов и имена параметров функций 00:41:19 Значения по умолчанию для параметров 00:44:05 Вариативные параметры 00:48:34 Сквозные параметры 00:56:19 Функциональные типы 01:15:54 Вложенные функции
05. Управление потоком
Переглядів 1362 місяці тому
Управление потоком 00:00:00 Вступление 00:00:56 Цикл for 00:12:42 Цикл while 00:23:33 Цикл repeat while 00:31:38 Инструкция if 00:41:16 Инструкция switch 01:13:02 Операторы передачи управления 01:28:55 Маркированные инструкции 01:35:20 Оператор раннего выхода guard 01:41:53 Проверка доступности API
04. Типы коллекций
Переглядів 1033 місяці тому
Типы коллекций 00:00:00 - Вступление 00:01:44 - Массивы 00:30:21 - Наборы 00:56:57 - Словари
03. Строки и символы
Переглядів 943 місяці тому
Строки и символы 00:00:00 - Вступление 00:01:04 - Строковые литералы 00:21:10 - Инициализация пустых строк 00:23:19 - Изменчивость строк 00:25:43 - Строка является типом значений 00:28:57 - Работа с символами 00:32:29 - Конкатенация строк и символов 00:37:57 - Интерполяция строк 00:40:21 - Юникод 00:43:30 - Подсчет символов 00:45:47 - Доступ и изменение строки 00:59:38 - Подстроки 01:03:04 - Ср...
02. Базовые операторы
Переглядів 1213 місяці тому
Базовые операторы 00:00:00 - Вступление 00:03:17 - Оператор присваивания 00:06:38 - Арифметические операторы 00:13:01 - Оператор остатка от деления 00:21:44 - Операторы унарного минуса и плюса 00:25:17 - Составные операторы присваивания 00:29:48 - Операторы сравнения 00:39:19 - Тернарный оператор 00:48:27 - Оператор объединения по nil 00:56:50 - Операторы диапазона 01:09:05 - Логические операторы
01. Основы
Переглядів 4243 місяці тому
Основы 00:00:05 - Вступление 00:01:27 - Константы и переменные 00:17:36 - Комментарии 00:19:50 - Точки с запятой 00:21:19 - Целые числа 00:27:15 - Числа с плавающей точкой 00:32:21 - Строгая типизация и вывод типов 00:43:08 - Преобразование числовых типов 00:52:06 - Псевдонимы типов 00:54:20 - Логические типы 00:57:50 - Кортежи 01:07:57 - Опционалы 01:38:11 - Обработка ошибок 01:42:22 - Утвержд...
Что делать если не понятна одна из тем?
Переглядів 2437 місяців тому
Что делать если не понятна одна из тем? Продолжать ее изучать и не двигаться дальше, пока тема не будет понятна? Или двигаться дальше и вернуться к этой теме позже? Если хотите освоить язык программирования Swift, то я приглашаю вас в свою школу SwiftSimple. Более подробно о курсе можете узнать на личной 15 минутной бесплатной консультации. Пишите мне в телеграмм (t.me/johnkostanov) и записывай...
Опционалы в Swift и ответы на вопросы
Переглядів 1379 місяців тому
Опционалы в Swift и ответы на вопросы
Условные конструкции в Swift и ответы на вопросы
Переглядів 819 місяців тому
Условные конструкции в Swift и ответы на вопросы
Кортежи в Swift и ответы на вопросы
Переглядів 13610 місяців тому
Кортежи в Swift и ответы на вопросы
Типы данных в Swift и ответы на вопросы
Переглядів 15810 місяців тому
Типы данных в Swift и ответы на вопросы
Прошел собеседование с первого раза. Интервью с Владимиром (iOS interview)
Переглядів 58111 місяців тому
Прошел собеседование с первого раза. Интервью с Владимиром (iOS interview)
Разбор алгоритма 504. Base 7
Переглядів 220Рік тому
Разбор алгоритма 504. Base 7
Разбор алгоритма 500. Keyboard Row
Переглядів 245Рік тому
Разбор алгоритма 500. Keyboard Row
Как войти в IT без опыта? Об этом и не только. Интервью с профессиональным IT рекрутером
Переглядів 449Рік тому
Как войти в IT без опыта? Об этом и не только. Интервью с профессиональным IT рекрутером
Разбор алгоритма 495. Teemo Attacking
Переглядів 129Рік тому
Разбор алгоритма 495. Teemo Attacking
Как войти в IT? Интервью с Антоном Чвертковым
Переглядів 350Рік тому
Как войти в IT? Интервью с Антоном Чвертковым
Интервью с Максимом. Обсудили обучение и поиск работы
Переглядів 412Рік тому
Интервью с Максимом. Обсудили обучение и поиск работы
Как фиксить баги?
Переглядів 277Рік тому
Как фиксить баги?
Разбор алгоритма 485. Max Consecutive Ones
Переглядів 140Рік тому
Разбор алгоритма 485. Max Consecutive Ones
Разбор алгоритма 476. Number Complement
Переглядів 174Рік тому
Разбор алгоритма 476. Number Complement
Hero Of Might. Видео отчет (часть 1)
Переглядів 279Рік тому
Hero Of Might. Видео отчет (часть 1)
Разбор алгоритма 463. Island Perimeter
Переглядів 353Рік тому
Разбор алгоритма 463. Island Perimeter
4 часа разбора алгоритмов (Swift & Leetcode)
Переглядів 526Рік тому
4 часа разбора алгоритмов (Swift & Leetcode)

КОМЕНТАРІ

  • @lllllllllllIIIl
    @lllllllllllIIIl 27 днів тому

    Привет Джон, а сколько всего предусмотрено блоков по изучению swift? и сколько блоков ты планируешь доснять?

    • @johnkostanov
      @johnkostanov 27 днів тому

      @@lllllllllllIIIl Привет! Сейчас уже не записываю видеоуроки. Нет на это времени. То что выкладываю сейчас, это видео двухлетней давности

    • @lllllllllllIIIl
      @lllllllllllIIIl 27 днів тому

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

    • @lllllllllllIIIl
      @lllllllllllIIIl 27 днів тому

      @@johnkostanov если же нет «запасок» твоего материала, то не мог бы ты пожалуйста скинуть ссылку на документацию? спасибо!

    • @johnkostanov
      @johnkostanov 27 днів тому

      @@lllllllllllIIIl По основам у меня есть ещё 7 видеоуроков. Скоро открою к ним доступ.

    • @johnkostanov
      @johnkostanov 27 днів тому

      @@lllllllllllIIIl У меня есть материалы для обучения в Notion. Могу открыть тебе доступ на полгода за 9 тыс. рублей. Там всего 10 модулей. Если хочешь подробно узнать про материал то пиши в телеграмм.

  • @natusvincere
    @natusvincere 27 днів тому

    Когда на примере добавили Bool.random() стало более понятно. Спасибо!

  • @rtjh045h
    @rtjh045h Місяць тому

    Привет Джон, а часто такое бывает, что после обновления xcode не работает один метод в библиотеке pdfkit, (возврат выделенного слова), хотя остальные методы работают отлично. Встречался с таким, как быстро это исправляют обычно?

    • @johnkostanov
      @johnkostanov Місяць тому

      @@rtjh045h Привет! Нужно разбираться почему метод не работает. Может проблема и не в Xcode

  • @Editz.mm2
    @Editz.mm2 Місяць тому

    second

  • @AdamTabiev
    @AdamTabiev 2 місяці тому

    Круто разобрал. Я в своё время не понял вложенные функции и это меня подкосило в дальнейшем. Спасибо

    • @johnkostanov
      @johnkostanov 2 місяці тому

      @@AdamTabiev Спасибо за комментарий 👍

  • @artmuk9890
    @artmuk9890 3 місяці тому

    🌊🌊🌊🌊

  • @vladislavwhatislove7156
    @vladislavwhatislove7156 3 місяці тому

    Крутая подача материала, спасибо большое!)

  • @ongrustit
    @ongrustit 3 місяці тому

    Честно ге понял что это алгоритм делает

  • @sahergd
    @sahergd 4 місяці тому

    Войти войти

  • @vladbotee2545
    @vladbotee2545 5 місяців тому

    есть copilot для swift или аналог ?

  • @luckyea7
    @luckyea7 6 місяців тому

    Я сделал две игры с помощью нейросети и опубликовал их в яндекс играх. Одна игра называется "Тетромикс". Она была создана специально для истинных любителей тетриса, которым фигур классического тетриса недостаточно. Им предоставляется возможность самостоятельно сформировать свой набор фигур. В игре представлено 37 самых разнообразных фигур, многие из которых, как правило, отсутствуют в других реализациях тетриса. Также игрок может выбирать уровень игры. С повышением уровня растет скорость игры и размер зарабатываемых очков. Эта игра представляет собой головоломку, построенную на использовании геометрических фигур мономино, домино, тримино, тетрамино, пентамино и гексамино - разновидности полимино. Мономино, домино, тримино, тетрамино, пентамино и гексамино - это виды полимино - плоских геометрических фигур, образованных путём соединения нескольких одноклеточных квадратов по их сторонам. Мономино - состоит из одного квадрата, домино - из двух квадратов, тримино - из трёх квадратов, тетрамино - из четырёх квадратов, пентамино - из пяти квадратов, гексамино - из шести квадратов. В этой игре есть лидерборд. Для того чтобы попасть в лидерборд, необходимо нажать кнопку «Соревнование». В этом случае игрок уже не может выбирать фигуры и уровень: игра начнется с первого уровня, и на начальном этапе будут использоваться фигуры «тетрамино». После достижения игроком 10 000 очков добавятся ещё фигуры «мономино», «домино» и «тримино». В случае, если игрок сможет набрать 20 000 очков, ему станут доступны фигуры «пентамино». А после того, как игрок наберет 30 000 очков, появятся фигуры «гексамино». В лидерборд попадают те, кто больше всех набрал очков. В детстве я как раз хотел, чтобы у меня был тетрис, в котором я мог добавлять свои фигуры, которых в то время не было в моем тетрисе . И вот сейчас у меня такая возможность появилась. С помощью нейросети я создал свой тетрис с самыми разнообразными фигурами от мономино до гексамино и со своими правилами игры. Самому мне эту игру писать не пришлось, это сделала нейросеть по моим запросам. Сделан этот тетрис, не сколько для коммерческой выгоды, сколько для личного пользования. В интернете я нигде не находил подобного тетриса. Я сделал возможность игрокам самим выбирать нужные фигуры. Вторая игра называется "Быки и Коровы: игрок против компьютера", в ней можно играть одному, вдвоем или против компьютера: угадывать не только числа, но цвета и слова, а также выбирать количество цифр (букв, цветов) в числе (слове, последовательности цветов). В игре также есть лидерборд. В лидерборд попадают те, кто быстрее всех победил компьютерную программу, угадав число с 4 и более цифрами. По функционалу эти обе игры превосходят аналоги, которые я видел в интернете.

  • @ДаниилКорнев-б5з
    @ДаниилКорнев-б5з 6 місяців тому

    Боже мой!!!! Ты просто супер! Я так долго искал информацию нормальную по авторизации в firebase и не мог найти что то стоящее. И вот спустя недели 2 я снова вернулся к проекту и случайно нашел твое видео! Я просто благодарен за это 4 часовое видео. Ты на пальцах объяснил как правильно написать код. Я тебе шлю все респекты мира, спасибо за это прекрасное видео! Жалко я не встретил тебя раньше.

  • @3eeka
    @3eeka 7 місяців тому

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

    • @johnkostanov
      @johnkostanov 7 місяців тому

      Практика самый лучший учитель

    • @3eeka
      @3eeka 7 місяців тому

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

    • @johnkostanov
      @johnkostanov 7 місяців тому

      @@3eeka 😁

  • @rtjh045h
    @rtjh045h 8 місяців тому

    почему в некоторых циклах, когда выводишь принты для отладки, видно что код выполняется по 2 раза?

    • @johnkostanov
      @johnkostanov 8 місяців тому

      Это на какой минуте?

    • @rtjh045h
      @rtjh045h 8 місяців тому

      @@johnkostanov это про вообще, часто видел в своем коде.

    • @johnkostanov
      @johnkostanov 8 місяців тому

      @@rtjh045h Но это на код нужно смотреть. Так сходу не могу тебе сказать. Очевидно же что несколько раз вызывается этот принт.

  • @MrSievs
    @MrSievs 8 місяців тому

    Кто такие программисты? Это люди, которые переводят функциональные требования в код. Код пишется на каком-то языке. Раньше это был ассемблер, потом более высокоуровневые языки, сейчас один из языков - это chatgpt. Рассматривайте его как новый язык программирования. Задача программиста при написании на нем никак не меняется. Всё также требования переводим в код-текст)

    • @johnkostanov
      @johnkostanov 8 місяців тому

      В принципе так и есть

  • @mikhail1017
    @mikhail1017 8 місяців тому

    Спасибо за видео. Очень познавательно. Интересно, почему всё таки смена структуры на класс, привела к такому багу. Неужели, потому что обращение к куче медленнее чем к стеку и обновление интерфейса не успевает за dismiss'ом?)

    • @johnkostanov
      @johnkostanov 7 місяців тому

      Доступ к стеку происходит быстрее. Поэтому структуры работают быстрее чем классы.

  • @vasylkey
    @vasylkey 9 місяців тому

    как проверить на подлиность видео?

  • @valeriid6543
    @valeriid6543 9 місяців тому

    Спасибо за видео, материал очень интересный, подписался. Подскажите пожалуйста, а как можно поставить сцену на паузу? Пробовал вызывать scene.isPaused = true в GameSceneView но не работает, анимация не останавливается.

    • @johnkostanov
      @johnkostanov 9 місяців тому

      Нужно поработать непосредственно во вью модели и в GameScene. Вот один из вариантов действий для того чтобы поставить фейеверки на паузу: 1. В GameSceneViewModel создай свойство: var fireworksIsPaused = false 2. В методе createFirework для нода контейнера задай имя: node.name = "containerFirework" 3. В GameSceneViewModel создай следующие методы: func pauseFireworks(to scene: SKScene) { if fireworksIsPaused { if let gameScene = scene as? GameScene { gameScene.enumerateChildNodes(withName: "containerFirework") { node, _ in node.speed = 0 } } pauseTimer(in: scene) } } func startFireworks(to scene: SKScene) { if fireworksIsPaused == false { if let gameScene = scene as? GameScene { gameScene.enumerateChildNodes(withName: "containerFirework") { node, _ in node.speed = 1 } } startTimer(in: scene) } } private func pauseTimer(in scene: SKScene) { cancellable?.cancel() } 4. В GameScene в методе update вызови эти методы: gameSceneViewModel.pauseFireworks(to: self) gameSceneViewModel.startFireworks(to: self) 5. В GameSceneView в body создай кнопку для паузы: VStack { Spacer() HStack { Spacer() Button { gameSceneViewModel.fireworksIsPaused.toggle() } label: { Text("Pause") .foregroundStyle(.white) } } } .padding() После этих действий ты сможешь ставить фейеверки на паузу.

    • @valeriid6543
      @valeriid6543 9 місяців тому

      @@johnkostanov Супер, добавил и все прекрасно работает, но как я понимаю это подходит конкретно под этот проект где мы просто убираем ракетам скорость. Но можно ли написать какой-то универсальный метод который будет останавливать всю сцену и все анимации, в том числе падение элементов или например прокрутку сцены, я имею в виду как-нибудь задействовать scene.view?.isPaused = true или что-то подобное. Возможно ли такое вообще сделать из GameSceneViewModel?

    • @johnkostanov
      @johnkostanov 9 місяців тому

      @@valeriid6543 Конечно можно. Там где не используется таймер можно просто поставить сцену на паузу с помощью свойства isPaused. Главное вызвать этот метод в GameScene.

    • @valeriid6543
      @valeriid6543 9 місяців тому

      @@johnkostanov а в каком методе в GameScene нужно вызывать isPaused?

    • @johnkostanov
      @johnkostanov 9 місяців тому

      @@valeriid6543 Нужно создать label для паузы и вызывать ее действие в touchesBegan.

  • @AdamTabiev
    @AdamTabiev 9 місяців тому

    Огонь!

  • @XenonGamesChannel
    @XenonGamesChannel 9 місяців тому

    Держите реальное тестовое задание : Имеется система настроек пользователя Задача: Реализовать систему подтверждения смены конкретной настройки пользователя по коду из смс / email / telegram с возможностью выбора пользователем другого метода. Какие вы выделили бы слои, абстракции, таблицы? Как связали бы модели? Реализуйте данную схему интеграции -> ORM / прочее на уровне интерфейсов / контроллеров / используя различные паттерны проектирования. Вывод значений можно сделать абстрактно, дизайн и технологии ввода/вывода на клиентской части не так важны, но будет плюсом.

  • @drag11ish
    @drag11ish 10 місяців тому

    SwiftUI работает медленнее чем UIKit According to a study by KTH Royal Institute of Technology, UIKit outperforms SwiftUI by about 25% when the component count is below 32. UIKit also consumes less memory. However, some say that SwiftUI's modern and optimized layout engine gives it the edge over UIKit.

    • @johnkostanov
      @johnkostanov 9 місяців тому

      Зато на SwiftUI работать быстрее, чем на UIKit

  • @Croleack
    @Croleack 10 місяців тому

    Как раз задача прилетела свой спм выпустить)

  • @defkill1erb
    @defkill1erb 10 місяців тому

    0 пользы !! Назвездел

    • @johnkostanov
      @johnkostanov 9 місяців тому

      Спасибо за комментарий!

  • @dmitry3881
    @dmitry3881 10 місяців тому

    Первая задача прикольная. Собеседующий: верните Отсортированный массив уникальных элементов, но только сет не используйте. В итоге вернули массив уникальных элементов с большой О(н), т.е. ни условие не выполнили, ни оптимизировали. Собеседующий: да, правильно). Нормальное решение это одна строка Set(nums).sorted()

    • @dmitry3881
      @dmitry3881 10 місяців тому

      Но если без сета прям критикал, то второе решение var hash:[Int:Int] = [:] for i in nums { hash[i,default:0] = 0 } return hash.keys.sorted()

    • @johnkostanov
      @johnkostanov 9 місяців тому

      👍

    • @SpaKSlow
      @SpaKSlow Місяць тому

      ​@@dmitry3881 зсложно вашу функцию понять, что она делает func filterArray(_ input:[Int]) -> [Int]{ var uniqueNumber:[Int] = [] for num in input{ if uniqueNumber.contains(num){ uniqueNumber.append(num) } } return uniqueNumber } print(filterArray([1,2,1,3,4,5])) ​ @dmitry3881 зачем усложнять систему? через словарь выводить массив?

  • @isNotAndy
    @isNotAndy 11 місяців тому

    классное видео, да?

    • @johnkostanov
      @johnkostanov 11 місяців тому

      Это видео для тех, кто недавно начал изучать Swift.

    • @isNotAndy
      @isNotAndy 11 місяців тому

      Да это понятно, я больше сделал отсылку к тому, что у вас привычка говорить "да?" Просто забавно, так даже интереснее смотреть )@@johnkostanov

    • @johnkostanov
      @johnkostanov 11 місяців тому

      @@isNotAndy Сложно избавиться от этого слова паразита. Устал уже при монтаже вырезать его. В этом же видео с монтажом не заморачивался. Нет на это времени. 😁

  • @torburgmax
    @torburgmax 11 місяців тому

    свифт ограничивает программиста, чтобы тот не сравнивал контракты. программист все равно пытается. вопрос только: зачем?)

    • @johnkostanov
      @johnkostanov 11 місяців тому

      Под контрактами ты имеешь ввиду протоколы?

    • @torburgmax
      @torburgmax 11 місяців тому

      @@johnkostanovда, контракт более общий термин по сути

    • @johnkostanov
      @johnkostanov 11 місяців тому

      @@torburgmax Есть такой протокол как Equatable. Разные типы могут ему соответствовать. Но разные типы мы не можем сравнивать друг с другом, даже если они соответствуют этому протоколу. Эту проблему решает непрозрачные типы. Этот механизм широко используется в SwiftUI, например, в вычислимом свойстве body.

  • @xvalniko
    @xvalniko 11 місяців тому

    А вот если по предпоследней задаче не просто protocol P { } обьявить а написать protocol Р { func method() } то тогда два раза вызовится from class. Я как-то помню на похожей задаче облажался из-за этого момента

  • @alexdapp3898
    @alexdapp3898 11 місяців тому

    если можно поменять название видео не удаляя, наверное было бы эффективнее для просмотров написать "IOS interview" в названии видео

    • @johnkostanov
      @johnkostanov 11 місяців тому

      Спасибо за совет!

  • @alexdapp3898
    @alexdapp3898 11 місяців тому

    на счёт методички, можно ли их получить отдельно от курса?

    • @johnkostanov
      @johnkostanov 11 місяців тому

      Заполняй анкету в описании к видео и я с тобой свяжусь.

  • @НиколайЖданко-р9и
    @НиколайЖданко-р9и 11 місяців тому

    Что за методичка ?

    • @johnkostanov
      @johnkostanov 11 місяців тому

      Выжимка с курса по подготовке к техническому собеседованию. Она платная. Если тебе она нужна заполняй анкету (в описании к видео) и опиши свой запрос. После этого я свяжусь с тобой.

  • @НиколайЩербаков-р8ф

    Спасибо за видео! Очень помогают

  • @Васенков
    @Васенков Рік тому

    топ! Давай еще!

    • @johnkostanov
      @johnkostanov Рік тому

      Будет ещё, раз есть запрос. 😁

  • @pickleteach1920
    @pickleteach1920 Рік тому

    Большое спасибо!

    • @johnkostanov
      @johnkostanov Рік тому

      Спасибо за обратную связь. 🤝

  • @mikhail1017
    @mikhail1017 Рік тому

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

    • @johnkostanov
      @johnkostanov Рік тому

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

  • @kochkindavid
    @kochkindavid Рік тому

    Спасибо за видео. Много было сказано что нужно круто оформить резюме, но что конкретно в это входит, не особо было озвучено. Кроме того, что нужно описать достижения а не просто что делал🤷🏻‍♂️ И про опыт работы, насколько сильно поможет тебе классное оформленное резюме если ты не пройдешь по фильтрам? Получается замкнутый круг. Резюме хорошее, но мало опыта. Уже не попал. Соврать о годах опыта с резюме, попал но получается соврал. И как тут быть? В вакансиях часто либо пишут сколько лет опыта, а бывает не пишут. Просто разработчик. И как в таких случаях понять, не прошел по годам или резюме не очень составлено?

    • @johnkostanov
      @johnkostanov Рік тому

      Отдельно про резюме на самом деле можно говорить больше часа. У нас же было много вопросов для обсуждения.

    • @NameeSurnamee-c6g
      @NameeSurnamee-c6g Рік тому

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

    • @johnkostanov
      @johnkostanov Рік тому

      @@NameeSurnamee-c6g Да, к джуниорам сейчас требования высокие.

  • @gorilla7225
    @gorilla7225 Рік тому

    Спасибо, окончательно убедился, что не стоит даже напрягаться и пробовать заниматься тем, что в итоге отсеится фильтром 😒

    • @johnkostanov
      @johnkostanov Рік тому

      Артур не все так плохо. Фильтры же можно обойти. Главное понять твоё это или нет.

    • @gorilla7225
      @gorilla7225 Рік тому

      @@johnkostanov Джон, понимаешь, потратить ещё пару лет, а тебе скажут "вы не подходите по возрасту" или вообще ничего не скажут, для чего?!

    • @johnkostanov
      @johnkostanov Рік тому

      @@gorilla7225 Я не могу тебе ответить на этот вопрос. Каждый сам должен найти свой ответ на этот вопрос. Только в этом случае это будет двигать тебя вперёд не смотря ни на что.

    • @NameeSurnamee-c6g
      @NameeSurnamee-c6g Рік тому

      @@gorilla7225 в резюме сейчас не обязательно писать возраст и прикладывать фото (правда опыт работы и годы образования вас "сдадут" так или иначе), но в целом ответ джона я бы реально читал именно так как он его написал - по моему опыту (не свифт но думаю сути не особо меняет - лодка то одна) - пара людей были кто в возрасте "заходил" на работу 4 года - там все дальше через такие сложности шло, что не совсем понятно зачем это все надо, 200 сейчас можно зарабатывать очень по разному, а на 300 таким людям просто не светило никогда и не при каких обстоятельствах, так что если какое то избыточное время пытаешься (например окончил курсы и два года ничего не можешь найти) - то дальше этим заниматься бред, не бывает так что в начале такие сложности, а потом полетело :( извини если расстроил

  • @NataVyt
    @NataVyt Рік тому

    Джон, спасибо за интервью и большое спасибо Лизе! очень информативно.

    • @johnkostanov
      @johnkostanov Рік тому

      Наталья спасибо за обратную связь.

  • @codeInMe
    @codeInMe Рік тому

    Спасибо большое за интересное видео 🎉

    • @johnkostanov
      @johnkostanov Рік тому

      Очень рад что понравился контент. 🤝

  • @IlnurMugaev
    @IlnurMugaev Рік тому

    с использованием множества можно придумать такой алгоритм: создаем пустой сет, проходимся в цикле по массиву, добавляем в сет элемент, если такого элемента еще нет в сете, и наоборот удаляем если есть, в конце цикла в сете останется единственный элемент без пары - это и будет ответ)

    • @johnkostanov
      @johnkostanov Рік тому

      Отличный вариант! Проверил. Это решение рабочее: func singleNumber(_ nums: [Int]) -> Int { var setUniques = Set<Int>() nums.forEach { number in if setUniques.contains(number) { setUniques.remove(number) } else { setUniques.insert(number) } } return setUniques.first ?? 0 }

    • @johnkostanov
      @johnkostanov Рік тому

      Также с наборами можно использовать такой вариант. Но в этом варианте нужны два набора: func singleNumber(_ nums: [Int]) -> Int { var setUniques = Set<Int>() var setDupkicates = Set<Int>() nums.forEach { number in if setUniques.contains(number) { setDupkicates.insert(number) } else { setUniques.insert(number) } } return setUniques.symmetricDifference(setDupkicates).first ?? 0 }

  • @IlnurMugaev
    @IlnurMugaev Рік тому

    была мысля, отсортировать массив, и сравнивать i-й и i+1 элемент, если не равны, то i-й элемент и есть ответ

    • @johnkostanov
      @johnkostanov Рік тому

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

  • @IlnurMugaev
    @IlnurMugaev Рік тому

    укажи ссылку на литкод, чтоб можно было перейти и порешать)

    • @johnkostanov
      @johnkostanov Рік тому

      Окей. Чуть позже добавлю ссылки на leetcode.

  • @card1nal312
    @card1nal312 Рік тому

    Спасибо Джон, как раз алгоритмами начал увлекаться! Очень интересная тема! 💪🏻🤯

    • @johnkostanov
      @johnkostanov Рік тому

      Супер! У меня уже много видео разборов по алгоритмам есть.

  • @George-el9mn
    @George-el9mn Рік тому

    Помоги пж, что такое рекурсия

    • @johnkostanov
      @johnkostanov Рік тому

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

  • @card1nal312
    @card1nal312 Рік тому

    Спасибо Джон! Отличный ролик! Ростешь по скилам, сразу заметно было! 👏🏻🔥😀

    • @johnkostanov
      @johnkostanov Рік тому

      Рад что ролик понравился. Но монтаж ролика не мой. Если ты имел ввиду скилл монтажа. 😁

    • @card1nal312
      @card1nal312 Рік тому

      @@johnkostanov Про софт скиллы 💪🏻😊

    • @johnkostanov
      @johnkostanov Рік тому

      @@card1nal312 Понял. Это хорошо. Планирую приглашать ещё больше гостей. Так что софт скиллы мне ещё пригодятся 😃

    • @card1nal312
      @card1nal312 Рік тому

      @@johnkostanov Продолжай в том же духе! 🔥👏🏻

    • @johnkostanov
      @johnkostanov Рік тому

      @@card1nal312 👌

  • @indristwetrust
    @indristwetrust Рік тому

    Сплошная вода, ничего не сказал про рынок итишки в рф, про накрутку опыта повсеместном сейчас распространненом, про количество вакансий конкретно под иос сейчас на рынке именно в рф. Все доводы из разряда инфоцыган, верь в себя, верь в мечту и в то что ты делаешь, и бла бла бла. Хотя видимо залили видео для продажи курса «поверь в меня»

    • @johnkostanov
      @johnkostanov Рік тому

      Так будут ещё видосики совместные. Все в одном видео не рассказать. Можешь написать список вопросов. Мы обсудим их в следующих видео или на стриме.

    • @indristwetrust
      @indristwetrust Рік тому

      @@johnkostanov я работу не ищу, но те кто ищут или переходят сейчас в Ит, ну какой вообще фриланс, касаемо иоса?) Это видимо шутка. А вопросы вот они в первом комментарии, если их полностью раскрыть, то для тех кто ищет или думает свичнуться, сразу будет все понятно.

    • @johnkostanov
      @johnkostanov Рік тому

      @@indristwetrust Спасибо за комментарий. Я у себя эти вопросы отмечу и постараюсь их осветить в следующих выпусках.

    • @AntonyCatcher
      @AntonyCatcher Рік тому

      @@indristwetrustспасибо за коммент, но фриланс в ios практика есть. Пример простой, на кофе код ходят ребята в том числе которые делают прилы с подписочной моделью, и на этом же кофе коде можно найти себе такую подработку. И речь не только про ios,front end ребята тож начинают часто с фриланса. Если ты работаешь в найме и никогда не пробовал фриланс, то это не значит что фриланса нет)

    • @AntonyCatcher
      @AntonyCatcher Рік тому

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

  • @hakatonvideo5241
    @hakatonvideo5241 Рік тому

    Крутой выпуск. пошел смотреть вторую часть

    • @johnkostanov
      @johnkostanov Рік тому

      Супер! Надеюсь и вторая часть тоже понравится.