𝚂𝚗𝚘𝚠𝙱𝚊𝚕𝚕𝙲𝚘𝚍𝚎
240 subscribers
112 photos
3 videos
25 links
Простым языком про it, ai и жизнь инди разработчика @Veoeo. Группа: @CodeBallSnow
Download Telegram
🐬🐬

Я не жалуюсь, но рефлексирую. На этапе функций и closure мне стало сложно. Я решил сделать паузу в пару дней с просмотром альтернативных лекций из этого же источника. Информация там подаётся примерно по такому же roadmap и отличается версией языка на -1.

Начал изучать вопрос о прохождении структурированного материала с практикой на реальных проектах и мощной менторской поддержкой от Яндекс практимума. Это стоит 15.500/мес * 10 мес. Смотрю отзывы, вебинары создателей и собираю информацию. По умолчанию двигаюсь по ранее сформированному пути

Обновил macOs до 13.6.9, а Xcode до 15.2, нашёл несколько дополнительных приложений расширяющих функционал среды разработки. В appstore есть плагин "GPT code creator for Xcode", и судя по превью в нём можно прямо из закомментированного участка в среде, вызвать этот плагин и он сверстает нужный код по промту
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3💩1
🐬🐬

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

Если решение не приходит два дня, то смотрю начало следующей лекции где куратор говорит что почти ни у кого не получилось и показывает "как надо "
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2💩1
🐬🐬

Я неделю решал задания из пятой лекции и всё-таки решил. Вот один из примеров и ход моих мыслей от «решить хоть как-то с нарушением условий» до «ладно, решу так»
😍
Задание: cоздайте функцию, которая генерирует возрастающий массив чисел в интервале от X до Y. Интервал должен определять пользователь при вызове функции

Первое решение без функции и со строго заданными параметрами:
var massiveToGo = [Int]()
var index = 0
for index in 1...3 {
massiveToGo.append(index)
print(massiveToGo)
}


Второе решение, где надо было доработать функцию с выводом вариативных параметров без использования внутреннего диапазона 1...3:
func makeGreatArray(numberOne: Int, numberTwo: Int) {
var massiveToGo = [Int]()
var index = 0
for index in 1...3 {
massiveToGo.append(index)
print(massiveToGo)
}
makeGreatArray(numberOne: 1, numberTwo: 3)


Третий вариант где функция создаёт массив, но с каждой итерацией в консоли появляется новый массив и их количество равно переменной которая должна задавать верхнюю границу диапазона, а по заданию (наверно) должен создаваться один массив:
func makeGreatArray(numberOne: Int, numberTwo: Int) {
var massiveToGo = [Int]()
var index = 0
while index < numberTwo {
index += numberOne
massiveToGo.append(index)
print(massiveToGo)
}
}
makeGreatArray(numberOne: 1, numberTwo: 3)


Ошибка которую я не заметил: тут решение зависит от введённой единицы в переменной numberOne = 1, если диапазон начать с другого числа: то массив создаётся с шагом в это число:
func makeTwentyArray(numberOne: Int, numberTwo: Int) {
var massiveToGo = [Int]()
var index = 0
while index < numberTwo {
index += numberOne
massiveToGo.append(index)
}
if index == numberTwo {
print(massiveToGo)
}
}
makeTwentyArray(numberOne: 1, numberTwo: 20) // вот тут ошибка


Четвёртый вариант: верное решение выводит массив с шагом в 1 из диапазона заданного пользователем, но массив начинается с числа которое больше заданного на единицу:
func makeGreatArray(numberOne: Int, numberTwo: Int) {
var massiveToGo = [Int]()
var index = numberOne
while index < numberTwo {
if index >= numberOne {
index += 1
massiveToGo.append(index)
}
}
if index == numberTwo {
print(massiveToGo)
} else {
print("Чтото пошло не так")
}
}
makeGreatArray(numberOne: 4, numberTwo: 27)


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

Верное решение от преподавателя выглядит так:
func createArray(from start: Int, to end: Int) -> [Int] {
var array = [Int]()
for count in start...end {
array.append(count)
}
return array
}
createArray(from: 2, to: 9)


Как выяснилось: всё решаемо, стоит только приложить к интеллектуальному труду должный объём времени и почти всё получается
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1💩1
🐬🐬

Посмотрел и законспектировал в playground лекцию "ООП в Swift". Сказать что она сложная значит быть искренним на 20%. Я понял за три дня что такое классы, инкапсуляция, наследование, полиморфизм и где это применимо. Лишь благодаря постоянным пересмотрам небольших участков видео по два три раза вся информация уложилась как надо

Повторяю код из видео и комментирую то что говорит преподаватель. Я понимаю о чём он рассказывает, даже несмотря на сбивчивое объяснение с постоянными возвратами на предыдущие тезисы из-за тупых и излишних вопросов в чате (это запись вебинара). Еще преподаватель просто копипастит ранее написанный в лекции код который иллюстрировал предыдущую тему и использует его уже для объяснения другой. Просто оставляет все имена свойств, классов и методов как они были в предыдущей теме. А то что было написано ранее просто оборачивает в комментарий
/* some Swift code */ 

и компилятор не ругается, а я матерюсь вслух..

Приходится всё переименовывать и структурировать урок самостоятельно
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2🐳1
🐬🐬

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

Надо было просто оставить свойства и методы класса пустыми не вписывая формулы расчёта фигур в родительском классе, а оставить их в наследуемых объектах

Сейчас споткнулся на этапе создания интерфейса, который должен выводить результаты расчёта через print. Консоль Xcode пишет не цифры, а (function). Пойду погуляю на stack overflow, уверен на эту проблему уже есть решение

Ниже пример который я решил легко. Здесь наработан опыт создания класса, его свойств и методов:
import Cocoa

class Orange {
let color: String
let taste: String
let radiusOrange: Double
var orangeVolume: Double
init() {
color = "Orange"
taste = "sweet"
radiusOrange = 95
orangeVolume = 0
}
func calculateOrangeVolume () {
orangeVolume = 4/3 * Double.pi * pow(radiusOrange,3)
}
}

let someOrange = Orange()
print("Orange has \(someOrange.color) color and \(someOrange.taste) taste")
let orangeVolume = 4/3 * Double.pi * pow(someOrange.radiusOrange,3)
let calculate = Orange()
calculate.calculateOrangeVolume()


Со вторым и третьим заданием я пока разбираюсь. Хочу пройти этот путь самостоятельно, через понимание процесса. В любом случае всегда смогу подсмотреть верное решение в начале следующей лекции, но по возможности делать этого не буду
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍4💩1
🐬🐬

Я подсмотрел решение задачи о которую споткнулся. Буду так делать и далее если на этапе обучения начнутся трудности решить которые становится неоправданно сложно. Преподаватель показал изящный код (второй скриншот) по сравнению с которым, моё решение (первый скриншот) выглядит громоздко и не выводит результат работы метода класса на консоль, пишет (function)

Здесь показывать не буду потому что код не помещается в публикацию. Кому интересно посмотрят скриншоты. Задача была рассчитать параметры геометрических фигур используя переопределяемые методы (тк формулы для разных фигур разные) через наследование классов от общего "Figure" до узкоспециализированных типа "Ellipse". Суть я понял, но на практике применил свои знания частично

Я не сдаюсь, а обучаюсь паттернами поведения. Увеличиваю насмотренность вариантов работы с кодом. Именно так действуют успешные разработчики. Они не проламывают стену незнания своей головой, но ищут опыт и находят его таким же способом как я действую сейчас
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12❤3💩1
12/40

Лето прощай. Первого августа 2024 я начал менять свою жизнь изучением Swift. Моя цель: обязательно стать ios разработчиком

Сегодня проходим перечисления и структуры:

enum Weekday {
case monday // первый вариант написания перечисления
case tuesday // все перечисленные свойстыв имеют тип "Weekday"
case wednesday
case thuesday
case friday
case suterday
case sunday
}


и способы их использования в методах:

func setupAlarmTwo() {
switch weekday { // компиляторр теперь значет что "case" будем сравнивать с "weekday"
case .monday:
print("Установить будильник на 8 утра")
case .tuesday:
print("Установить будильник на 8:30 утра")
case .wednesday:
print("Установить будильник на 8:30 утра")
case .thuesday:
print("Установить будильник на 7:30 утра")
case .friday:
print("Ура пятница")
case .suterday:
print("Будильник не установлен")
case .sunday:
print("Будильник не установлен")
}
}


С каждым разом я всё больше и больше понимаю где применяются фрагменты раннее полученных знаний. Например switch был создан под enum. Без этих операторов ветвление в Swift (через if-else) выглядело бы очень громоздким
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
5❤2💩1
13/40

Решаю домашнее задание на перечисление enum{} и структуры struct{}. Первое готово, остальные три предстоит либо сделать самостоятельно, либо подсмотреть в начале уже следующей лекции

Считаю это нормальным, когда чувствую что вот именно сейчас пора списывать, тоесть насматривать себе бэкграунд кода 😫

Начинаю понимать разработчиков которые внезапно выходят из своего уютного опенспейса (или дома) на прогулку в парк. Отдохнуть от работы, снять напряжение и возможно, совсем чуть-чуть: поплакать

ps: 23 октября 2024 я купил свой первый 16" Macbook pro на процессоре M1pro с 16Gb оперативной и 512Gb ssd памяти
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1💩1
14/40

У меня возникает ощущение что я вот вот сдамся. Почти закончил первый из трёх курсов от swiftbook 2019 года. Информация там устаревшая и преподаватель очень часто сбивается с мысли при объяснении материала, а также в разборе домашних заданий своих студентов

Мне очень не хватает коммюнити учеников, качественного кодревью и вообще фитбека от действующих ios разработчиков. Ощущение что я тут один декомпозирую каменную кладку стены что стоит между моим настоящим и тем человеком, которым я хочу стать. Чтобы перебраться на сторону интересного занятия которое приносит пользу людям, предстоит перетащить не один десяток тяжёлых блоков задач и проблем

Сейчас склоняюсь к мысли что всё таки приобрету курс от Яндекс практикума на десять месяцев тк отказываться от своей цели не планирую. Хотя моушен дизайн мне тоже очень интересен, но у меня есть только одна жизнь и бюджет только на одно решение. Видимо ближе к новому году его надо принять
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13🫡3❤1💩1🙏1
15-я неделя

С этого момента я перестал ставить дедлайн в 40 недель до окончания своего обучения. Успешно закончил первый из трёх курсов 2019 года по программированию от Swiftbook . Весь ноябрь буду повторять материтал и конспекты в playground. Почти всё понятно, но мне по прежнему нужна ещё большая насмотренность кода и вариантов его применения

Сейчас готовлю план по выходу на платные курсы с фитбеком по результату работы на базе моей занятости в найме в декабре
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
2👎9😢7🤔6🤬5👏4😁3🤯2🔥1🤮1
16-я неделя

Пересматриваю лекции от Swiftbook. В этот раз не тот вариант по которым делал домашние задания и конспекты, а версию от 2023 года на свежем Xcode и актуальной версии языка. Дошёл до ООП, классов и инкапсуляции

11 ноября утро заболел и не смог досмотреть лекцию, кое как отработал в найме и еле живой вернулся домой где Ася меня буквально спасла лекарствами, вкусной едой и своей заботой

12 ноября был выходной, я уже выздоровел, но решил набраться сил, остаться дома и не загружать голову знаниями

13 ноября выходной, уже полностью восстановился и к вечеру пересмотрел лекцию ещё раз. Продолжаю двигаться в своём ритме..
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4💩2
17-я неделя

Начал и закончил ознакомление с бесплатной частью курса iOS developer от Яндекс практикум. Кратко и ёмко пояснили за язык, востребованность профессии и формат обучения спринтами

На примере учебного Swift проекта ознакомили с Xcode и структурой файлов. Мне это по душе, то что надо. Всё время до этого урока я работал в playground и постигал базовую логику и синтаксис Swift. Яндекс же, сразу погружает в среду разработки и позволяет по требованиям и гайдам изменить что-то в проекте. Это интереснее, хотя я понимаю что код я хочу и буду писать в будущем
😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
This media is not supported in your browser
VIEW IN TELEGRAM
18-я неделя

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

Ещё я составил себе план из двенадцати пунктов на 2025 год, записал ожидемые доходы (из всех моих источников) и расходы, с затратами на обучение. План включает в себя плотную работу на протяжении декабря 2024 года и уход из найма осенью 2025

По моим ощущениям и взвешенным расчётам - всё получится
😍😍😍
😍
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1