Coconote
AI notes
AI voice & video notes
Export note
Try for free
Основные навыки каждого программиста
Sep 5, 2024
Что должен знать каждый программист
Определение программиста
Программист — это человек, владеющий инструментами и компетенцией.
Практика вранья в резюме: люди могут называться программистами, не написав ни строчки кода.
Программистом считается тот, чьи программы используются кем-то кроме него.
Основные навыки программиста
Базовая информатика
Понимание измерения информации.
Знание двоичной и шестнадцатеричной систем.
Знание комбинаторики и теории сложности вычислений.
Для геймдева: знание векторной алгебры.
Язык программирования
Необходимость изучения первого языка программирования (Java, C++, Python).
Ноукод решения не обеспечивают гибкость.
Рекомендуется знать несколько языков программирования.
Работа с сетью
Понимание работы интернета и деплой проектов на удаленные серверы.
Рекомендация провайдеров IT-инфраструктуры (например, Selectel) для деплоя.
Знание ПК
Понимание работы компьютера, начиная с процессора и заканчивая ОС.
Способность переустановить ОС и разбираться в механизмах виртуализации.
Работа в терминале
Необходимость уметь работать в терминале, так как это основной способ взаимодействия с компьютером.
Базовые команды перемещения по директориям и редактирования файлов.
Изучение различных парадигм
Освоение второго языка программирования, отличного от первого.
Понимание функциональной и объектно-ориентированной парадигм.
Знание нейминга и стиля кода.
Написание тестов
Обязательно писать тесты ко всем программам для проверки работоспособности функционала.
Чтение чужого кода
Программисты тратят 80% времени на чтение кода, а не на его написание.
Важно уметь читать и понимать чужой код.
Алгоритмы и структуры данных
Знание основных алгоритмов и структур данных (куча, стэк, очередь).
Понимание операций вставки в массивы и их временной сложности.
Основы компьютер-сайенс
Изучение основ компьютер-сайенс для более глубокого понимания.
Освоение функционального языка программирования.
Дополнительные навыки
Умение гуглить проблемы и находить решения.
Владение слепой печатью на клавиатуре.
Знание системы контроля версий (Git).
Умение пользоваться редакторами кода (VS Code, Vim, JetBrains).
Заключение
Необходимо постоянное самообразование и углубление знаний в программировании.
📄
Full transcript