Альтхофф, Кори. Сам себе программист. Как научиться программировать и устроиться в Ebay?

May 20, 2024 17:20


Альтхофф, Кори.

Сам себе программист. Как научиться программировать и устроиться в Ebay? / Кори Альхофф ; [пер. с англ. М.А. Райтмана]. - Москва : Эксмо, 2022. - 208 с.

Автор книги всего за год научился программировать, что само по себе немало. Однако Кори Альтхофф пошёл дальше, и, научившись программировать, он устроился разработчиком в одну из самых серьёзных современных IT-компаний - Ebay. Как ему удалось? Читайте эту книгу, изучайте программирование на языке Python по уникальной авторской методике - вам это тоже по силам!

FizzBuzz: тест на программирование, используемый на собеседованиях для отсеивания кандидатов.

Linux: операционная система с открытым исходным кодом, используемая на большинстве серверов по всему миру.

Unix: операционная система, созданная в 1970-х годах. Операционная система macOS корпорации Apple основана на Unix.

Unix-подобные операционные системы: Unix и Linux.

Windows: операционная система корпорации Microsoft.

Графический интерфейс пользователя (ГИП): часть операционной системы, которую вы видите, когда смотрите на экран компьютера.

Операционная система: программа, которая является посредником между физическими компонентами компьютера и вами.

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

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



Python: простой в чтении язык программирования с открытым исходным кодом. Создан Гвидо ван Россумом и назван в честь британской комедийной группы «Монти Пайтон».

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

Код: инструкции компьютеру, который пишут программисты.

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

Программирование: написание инструкций, которые выполняет компьютер.

Язык ассемблера: тип трудного для чтения языка программирования.

Bool: тип данных логических объектов.

Float: тип данных вещественных чисел (чисел с десятичной точкой).

Int: тип данных целых чисел.

None: объект с типом данных NoneType. Его значением всегда является None.

NoneType: тип данных объектов None.

Str: тип данных строки.

Арифметический оператор: категория операторов, используемых в арифметических выражениях.

Ветвь: строительные блоки составных инструкций. Ветвь состоит из двух или более строк кода: заголовка, за которым следует тело.

Выражение: код с оператором между двумя операндами.

Декрементирование: уменьшение значение переменной.

Заголовок: строка кода в ветви, содержащая ключевое слово, за которым следует двоеточие, и последовательность из одной или нескольких строк с отступом.

Инкрементирование: увеличение значения переменной.

Инструкция elif: инструкции, которые можно бесконечно добавлять в инструкцию if-else, позволяя последней принимать дополнительные решения.

Инструкция else: вторая часть инструкции if-else.

Инструкция if: вторая часть инструкции if-else.

Инструкция if-else: способ, которым программисты говорят «если это произойдёт, сделайте это, в противном случае сделайте то».

Инструкция: команда или вычисление.

Исключение: ошибка, не являющаяся фатальной.

Ключевое слово: слово в языке программирования, имеющее особый смысл.

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

Константа: значение, которое никогда не изменяется.

Логический оператор: категория операторов, оценивающих значения двух выражений и возвращающих либо True, либо False.

Логический: объект с типом данных bool. Его значением является либо True(истина), либо False (ложь).

Объект: значение с тремя свойствами: идентификатором, типом данных и значением.

Операнд: значение с любой стороны от оператора.

Оператор присваивания: символ = в Python.

Оператор сравнения: категория операторов, которые используются в выражении, принимающем значение либо True(истина), либо False (ложь).

Оператор: символы, использующиеся в выражении с операндами.

Переменная: имя, которому с помощью оператора присваивания присвоено значение.

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

Простая инструкция: инструкция, которую можно выразить с помощью одной строи кода.

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

Символ: один знак, например, a или 1.

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

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

Составная инструкция: инструкция, обычно занимающая больше одной строки кода.

Строка: объект с типом данных str. Значением строки является последовательность одного или больше символов, помещенных в кавычки.

Структура управления потоком: блок кода, который принимает решения, анализируя значения переменных.

Тело: строка кода внутри ветви, которой управляет заголовок.

Тип данных: категория данных.

Условная инструкция: код, выполняющий дополнительный код при наступлении определённых условий.

Целое: объект с типом данных int. Его значением является целое число.

Число с плавающей точкой: объект с типом данных float. Его значением является вещественное число (число с десятичной точкой).

Встроенная функция: функция, поставляющаяся с Python.

Вызов: передача функции вводных, необходимые для выполнения указаний и возвращения вывода.

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

Глобальная переменная: переменная с глобальной областью видимости.

Локальная область видимости: область видимости переменной, которую можно найти и изменить только из функции (или класса), внутри которой переменная была определена.

Область видимости: то, где переменную можно найти и изменить.

Обработка исключений: концепция программирования, позволяющая вам тестировать программу на возможные ошибки, «перехватывать» исключения, если таковые возникают, и решать, что делать дальше.

Обязательный параметр: необходимый параметр.

Опциональный параметр: необязательный параметр.

Параметр: данные, переданные в функцию.

Соглашение: согласованный способ делать что-то.

Строка документации: объясняет, что делает функция, и какие она требует парамтеры.

Функции: составные инструкции, которые могут принимать данные ввода, выполнять указания и возвращать данные вывода.

Значение: значение, связанное в словаре с ключом.

Изменяемый: когда контейнер является изменяемым, это значит, что его содержимое можно изменить.

Индекс: число, представляющее позицию элемента в итерируемом объекте.

Итерирование: объект поддерживает итерирование, если к каждому его элементу можно получить доступ через цикл.

Итерируемые объекты: объекты, поддерживающие итерирование, например, строки, списки и кортежи.

Ключ: значение, при помощи которого находят значение в словаре.

Метод: функция, тесно связанная с определённым типом данных.

Неизменяемый: если контейнер является изменяемым, это значит, что его содержимое нельзя изменить.

Отображение: связывание одного объекта с другим.

Пара ключ-значение: ключ, связанный в словаре со значением.

Словарь: встроенный контейнер для хранения объектов. Связывает один объект, называемый ключом, с другим объектом - значением.

Список: контейнер, хранящий объекты в определенном порядке.

Извлечение среза: способ вернуть новый итерируемый объект, состоящий из подмножества элементов другого итерируемого объекта.

Конечный индекс: индекс, на котором заканчивается извлечение среза.

Начальный индекс: индекс, с которого начинается извлечение среза.

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

Управляющие символы: сообщают Python, что знак, перед которым они помещены, в данном случае е имеет специального значения, а предназначен для представления обычного символа.

Бесконечный цикл: цикл, который никогда не завершается.

Внешний цикл: цикл, содержащий вложенный цикл.

Внутренний цикл: цикл, вложенный в другой цикл.

Инструкция break: инструкция с ключевым словом break, использующаяся для прекращения цикла.

Инструкция continue: инструкция с ключевым словом continue, использующаяся, чтобы прервать текущую итерацию цикла и продолжить со следующей итерации.

Итерирование (перебор): использование цикла для получения доступа к каждому элементу итерируемого объекта.

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

Цикл for: цикл, перебирающий итерируемый объект - например, строку, список, кортеж или словарь.

Цикл while: цикл, выполняющийся код до тех пор, пока выражение принимает значение True.

Цикл: фрагмент кода, непрерывно выполняющий инструкции, пока удовлетворено определённое в коде условие.

Встроенные модули: модули, которые поставляются в составе Python и содержат важную функциональность.

Импортирование модуля: строка кода, которая сообщает Python, где искать нужный модуль.

Модуль: другое название файла с кодом на языке Python.

CSV-файл: файл с расширением .csv, внутри которого данные разделяются с помощью запятых (CSV расшифровывается ка Comma Separated Values - значения, разделяемые запятыми). Часто используется в программах наподобие Excel, обрабатывающих электронные таблицы.

Запись: добавление или изменение данных в файле.

Инструкция with: составная инструкция, автоматически выполняющая действие после того, как интерпретатор Python проходит её.

Путь к файлу: расположение в системе хранения данных (например, на жёстком диске) компьютера, в котором сохранён файл.

Разделитель: символ (например, запятая), используемый для разделения данных в CSV-файле.

Файловый объект: объект, который может использоваться для чтения или записи в файл.

Чтение: получение доступа к содержимому файла.

Глобальное состояние: значение глобальных переменных в программе при её работе.

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

Магический метод: метод, который Python использует в разных ситуациях, например, при создании объекта.

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

Объектно-ориентированное программирование: парадигма программирования, где вы определяете объекты, которые взаимодействуют друг с другом.

Парадигма программирования: стиль программирования.

Переменные экземпляра: переменные, которые принадлежат объекту.

Побочный эффект: изменение состояния глобальной переменной.

Процедурное программирование: стиль программирования, в котором пишется последовательность шагов по направлению к решению, и каждый шаг изменяет состояние программы.

Создание экземпляра класса: создание нового объекта при помощи класса.

Состояние: это значение переменных в программе во время её работы.

Функциональное программирование: решает проблемы процедурного программирования с помощью устранения глобального состояния, передавая его от функции к функции.

Абстракция: процесс «отнятия или удаления у чего-то характеристик с целью сведения его к набору основных, существенных характеристик».

Дочерний класс: класс, который наследуется.

Инкапсуляция: относится к двум концепциям. Первая заключается в том, что в объектно-ориентированном программировании переменные (состояние) и методы (для изменения состояния либо выполнения вычислений, использующих состояние) группируются в единое целое - объект. Вторая концепция, собственно инкапсуляция, заключается в сокрытии внутренних данных класса для предотвращения получения клиентом прямого доступа к этим данным.

Клиент: код вне класса, который использует объект.

Композиция: композиция моделирует отношение «имеет», сохраняя объект в другом объекте как переменную.

Наследование: при генетическом наследовании вы наследуете свойства вроде цвета глаз от родителей. Аналогично, когда вы создаете класс, он может наследовать методы и переменные от другого класса.

Переопределение метода: способность дочернего класса изменять реализацию метода, унаследованного от его родительского класса.

Полиморфизм: полиморфизмом называют «способность (в программировании) представлять один и тот же интерфейс для разных базовых форм (типов данных).

Родительский класс: класс, от которого осуществляется наследование.

Четыре столпа объектно-ориентированного программирования: четыре главные концепции в объектно-ориентированном программировании: наследование, полиморфизм, абстракция и инкапсуляция.

Закрытый метод: метод, к которому объект может получить доступ, а клиент - нет.

Закрытая переменная: переменная, к которой объект может получить доступ, а клиент - нет.

Открытая переменная: переменная, к которой клиент может получить доступ.

Переменная класса: переменные класса принадлежат объекту класса и объектам, которые он создаёт.

Переменная экземпляра: переменная экземпляра принадлежит объекту.

$PATH: когда вы вводите команду в bash, оболочка ищет эту команду во всех каталогах, хранящихся в переменной окружения $PATH.

bash: программа, встроенная в большинство Unix-подобных операционных системах, в которую вы вводите инструкции для выполнения вашей операционной системой.

Абсолютный путь: указывает на расположение файла или каталога, начиная с корневого каталога.

Вертикальная черта: символ ǀ. В Unix-подобных операционных системах вы можете использовать его для передачи вывода команды в другую команду в качестве её ввода.

Интерфейс командной строки: программа, в которую вы вводите инструкции для выполнения вашей операционной системой.

Каталог: другое название папки на компьютере.

Командная строка (в Windows): интерфейс командной строки, встроенный в операционную систему Windows.

Командная строка: другое название интерфейса командной строки.

Относительный путь: указывает на расположение файла или каталога, начиная с текущего рабочего каталога.

Переменные окружения: переменные, в которых хранить данные операционная система, а также другие программы.

Пользователь: человек, пользующийся операционной системой.

Путь: способ представить место файла или каталога в операционной системе.

Рабочий каталог: текущий каталог, в котором вы находитесь.

Разрешения: операции, которые разрешено выполнять пользователям.

Суперпользователь (пользователь с правами root): пользователь с наивысшим уровнем полномочий.

Жадный: регулярное выражение, которое будет с жадностью пытаться найти столько совпадений, сколько сможет.

Нежадный: нежадное регулярное выражение находит наименьшее количество совпадений.

Пасхальное яйцо: сообщение, спрятанное в коде.

Регулярное выражение: «последовательность символов, определяющая поисковый шаблон».

$PYTHONPATH: Python ищет модули в списке папок, который хранится в переменной окружения $PYTHONPATH.

Apt-get: менеджер пакетов, который поставляется с Ubuntu.

Pip: менеджер пакетов для Python.

PyPI: веб-сайт, который содержит пакеты Python.

Site-packages: папка в  $PYTHONPATH. Эта папка - место, куда pip устанавливает пакеты.

Веб-фреймворк: программа, помогающая создавать веб-сайты.

Виртуальное окружение: позволяет хранить пакеты Python для разных программистских проектов раздельно.

Зависимости: программы, от которых зависит должная работа программы.

Метаданные: данные о программе.

Пакет: программное обеспечение, «упакованное» для распространения.

Система управления пакетами (менеджер пакетов): программа, устанавливающая другие программы и управляющая ими.

Git: популярная система управления версиями.

GitHub: веб-сайт, хранящий код в облаке.

SVN: популярная система управлениями версиями.

Извлечение данных: обновление локального репозитория согласно изменениям в центральном репозитории.

Индексирование: указание Git, какие файлы (с изменениями) следует поместить в центральный репозиторий.

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

Локальный репозиторий: репозиторий на вашем компьютере.

Номер состояния: уникальная последовательность символов, используемая Git для идентификации состояния.

Помещение данных: обновление центрального репозитория согласно изменениям в локальном репозитории.

Репозиторий: структура данных, созданная системой управления версиями, наподобие Git, которая отслеживает все изменения в вашем программистском проекте.

Система управления версиями: программа, разработанная с целью помогать вам без труда работать над проектами совместно с другими программистами.

Состояние: версия вашего проекта, сохраняемая Git.

Сохранение состояния: написание команды, указывающей Git записывать изменения, которые вы внесли в свой репозиторий.

Структура данных: способ организовывать и хранить информацию. Списки и словари являются примерами структур данных.

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

HTML: язык, который организовывает структуру сайта.

HTML-элемент: аналогичен ключевому слову в программировании - инструктирует браузер сделать что-либо.

Парсер веб-контента: программа, извлекающая данные с веб-сайта.

Парсинг: парсинг означает принятие формата вроде HTML и придание ему структуры при помощи языка программирования. К примеру, превращение данных в объект.

FIFO: сокращение от англ. First-in-first out - «первым вошел - первым вышел».

LIFO: сокращение от англ. Last-in-first-out - «последним вошел - первым вышел».

Pop: удаление элемента из стека.

Push: добавление элемента в стек.

Очередь: структура данных вида «первым вошел - первым вышел».

Стек: структура данных вида «последним вошел - первым вышел».

Структура данных «первым вошел - первым вышел»: структура данных, в которой первый помещенный элемент является первым извлекаемым.

Структура данных «последним вошел - первым вышел»: вид структуры данных, при котором последний помещенный элемент является первым извлекаемым.

Структура данных: формат, используемый для хранения и организации информации.

Эпоха: момент во времени, используемый в роли ссылки.

Алгоритм: серия шагов, которым следуют для решения проблемы.

Анаграмма: слово, созданное путём перестановки букв другого слова.

Базовый случай: условие, завершающее рекурсивный алгоритм.

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

Палиндром: слово, которое одинаково записывается в обоих направлениях.

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

Последовательный поиск: простой поисковый алгоритм для поиска информации в структуре данных, который проверяет каждый элемент в ней на предмет его соответствия тому, что алгоритм ищет.

Рекурсивный (рекурретный) алгоритм: рекурсивные алгоритмы используют функции, которые вызывают сами себя.

Рекурсия: способ решения проблем, который предполагает разбивание проблемы на все меньшие и меньшие фрагменты, пока проблема не решается элементарно.

Анализ кода: когда другой программист читает ваш код и составляет на него отзыв.

Логирование: практика записи данных во время работы программного обеспечения.

НПС: принцип программирования «Не повторяй себя».

Ортогональность: «Этот термин был введен в информатике для обозначения некой разновидности независимости или несвязанности. Два или более объекта ортогональны, если изменения, вносимые в один из них, не влияют на любой другой. В грамотно спроектированной системе код базы данных будет ортогональным к интерфейсу пользователя: вы можете менять интерфейс пользователя без воздействия на базу данных и менять местами базы данных, не меняя интерфейса».

Отладчик: программа, позволяющая остановить выполнение кода и просмотреть вашу программу строка за строкой, отмечая значения переменных в разных частях программы.

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

Производственный код: код используемого людьми продукта.

Производство: отправить программное обеспечение в производство - значит вывести его в мир.

Тестирование: процесс проверки того, что программа «соответствует требованиям, сопровождающим ее проектирование и разработку, корректно отвечает на все вида ввода, выполняет свои функции за приемлемо количество времени, пригодна к использованию, может быть установлена и запущена в предполагаемых окружениях, а также достигает результата, требуемого от неё заинтересованными сторонами».

список, ссылки, программирование

Previous post Next post
Up