DevPrep

Все темы › Основные понятия программирования

Программирование

Junior

Суть

Программирование — превращение задачи в исполняемую программу: модель данных, алгоритм, код на языке, сборка, отладка, поддержка. Код — лишь часть; не менее важны чтение чужого кода, тесты и умение объяснить решение. На собеседовании по этому вопросу обычно хотят услышать про парадигмы и про то, какой язык Swift.

Парадигмы, и как они выглядят в Swift

// Императивно: описываем КАК, шаг за шагом, с мутацией
var squares: [Int] = []
for n in 1...10 where n % 2 == 0 { squares.append(n * n) }

// Функционально: описываем ЧТО — чистые функции, без мутации
let squares2 = (1...10).filter { $0 % 2 == 0 }.map { $0 * $0 }

// Протокольно-ориентированно: поведение через протокол + расширение
protocol Shape { var area: Double { get } }
extension Shape { func describe() -> String { "area = \(area)" } }
struct Circle: Shape { var r: Double; var area: Double { .pi * r * r } }

Swift — мультипарадигменный: в одном файле могут сочетаться все четыре подхода.

Компилируемые vs интерпретируемые

Статическая vs динамическая типизация

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store