Skip to content

Instantly share code, notes, and snippets.

@Intey
Created July 2, 2020 17:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Intey/789e9954e4220a2957d823e7c6e1992c to your computer and use it in GitHub Desktop.
Save Intey/789e9954e4220a2957d823e7c6e1992c to your computer and use it in GitHub Desktop.
Абстрактная часть:
- понимает ООП, использует принципы SOLID (обязательно), KISS, YAGNI
- понимает алгоритмы, знает о наличии альтернатив, при необходимости осуществляет анализ и выбор наиболее оптимального под задачу
- поверхностно знает паттерны архитектуры
- имеет представление о функциональном программировании: функции высшего
порядка, каррирование
- понимает почему изменяемое состояние - это плохо, придерживается констант
- знает что такое интерфейс(void myfunc() = 0;), зачем он нужен
- умеет самостоятельно искать информацию: stackoverflow.com, cppreference.com,
etc.
Техническая часть:
- умеет писать автотесты, знает и использует минимум 1 фреймворк для тестирования (googletest, boost, etc.)
- может начать проект с нуля и подготовить его структуру для быстрого старта джунов
Больше гуманитарные вещи:
- может в одиночку решать задачи средней сложности в проекте (задает вопросы по ТЗ, проявляет активность)
- может проводить code-review, соблюдает правила приличия при этом
С++:
- умеет тоже что и джун(основы классов, наследования, полиморфизна, написание
простых алгоритмов, понимание различия файлов .cpp, .h)
- понимает принцпы передачи аргументов, знает как писать конструкторы копирования
- понимает отличие статической от динамической библиотек
- может собрать exe + static/dynamic проект голыми руками (gcc/clang)
- умеет писать простые Makefile
- управление памятью в ручную (голые указатели), использует
(shared/weak/unique)_ptr, понимает различия
- знает про современные стандарты (С++11 и выше), использует наиболее
современные по возможности: move-семантика, auto, лямбды и их скоуп,
реализация по умолчанию
- знает как использовать указатели на функции, передача функций в функци и т.п.
- знает что такое vtable, умеет читать ошибки
- общее понимание шаблонного программирования, может писать шаблонные классы,
функции
- умеет пользоваться стандартной библиотекой
Cmake:
- понимает принцип работы cmake
- Умеет писать cmake-файлы
- может выделить модуль/пачку-файлов в библиотеку
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment