Разработка программного обеспечения: различия между версиями
AE (обсуждение | вклад) (→Объясните простыми словами, пожалуйста: Правки и улучшения) |
AE (обсуждение | вклад) (→А если серьезно: Про грейды) |
||
Строка 28: | Строка 28: | ||
Программирование — одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением. | Программирование — одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением. | ||
=== Как стать разработчиком === | |||
В разработку ПО могут быть вовлечены различные специалисты, не выполняющие работу с исходным кодом: различные менеджеры, дизайнеры, аналитики, тестировщики, другие инженеры. Но название разработчик закрепилось за специалистами, основная, но не единственная задача которых — программирование. | |||
{| class="wikitable" | |||
|+Профессиональные уровни разработчиков (грейды) | |||
!Название | |||
!Стажер | |||
!Junior | |||
!Middle | |||
!Senior | |||
|- | |||
|Высшее IT образование | |||
|Не требуется | |||
|Не требуется | |||
|Желательно | |||
|Очень желательно | |||
|- | |||
|Как оценивает свои знания и навыки | |||
|Недооценивает | |||
|Часто переоценивает себя | |||
|Оценивает себя правильно | |||
|Недооценивает себя | |||
|- | |||
|Опыт работы разработчиком | |||
|Нет | |||
|От 0 до 2х лет | |||
|Обычно больше 2х лет | |||
|Обычно больше 5 лет | |||
|- | |||
|Самообучение | |||
|Учится постоянно | |||
|Учится постоянно | |||
|Учится постоянно | |||
|Учится постоянно | |||
|- | |||
|Учит других | |||
|Нет | |||
|Обычно нет | |||
|Учит стажеров и младших разработчиков | |||
|Учит всех | |||
|- | |||
|Ключевой софт-скилл | |||
|Обучаемость | |||
|Инициативность | |||
|Работа на результат | |||
|Ответственность | |||
|- | |||
|Выполненные проекты | |||
|Небольшие учебные проекты | |||
|Небольшие проекты для себя | |||
|Небольшие бизнес проекты | |||
|Есть опыт запуска крупных проектов | |||
|- | |||
|Участие в Open Source | |||
|Активное (имитация) | |||
|Нет времени | |||
|Нет времени | |||
|Нет времени, но надо | |||
|- | |||
|Системный анализ (сбор требований) | |||
|Что это? | |||
|Нет | |||
|Обучение | |||
|Может принимать участие | |||
|- | |||
|Участие в проектировании | |||
|Что это? | |||
|Нет | |||
|Обучение | |||
|Активная работа | |||
|- | |||
|Сколько языков программирования знает | |||
|0 | |||
|Один, но в резюме указывает больше | |||
|Обычно один хорошо и несколько хуже. Честно об этом говорит. | |||
|Понимает, что знает мало языков программирования. | |||
|- | |||
|Знание языков программирования | |||
|Обучение | |||
|Знает и умеет писать код самостоятельно | |||
|Знает особенности и подводные камни | |||
|Следит за развитием языков программирования | |||
|- | |||
|Программирование | |||
|Учебные задачи | |||
|Простые бизнес задачи | |||
|Все задачи | |||
|Может решать сложные задачи оптимальным способом | |||
|- | |||
|Качество | |||
|Нет | |||
|Много багов | |||
|Мало багов | |||
|Мало багов | |||
|- | |||
|Фреймворки | |||
|Обучение | |||
|Знает в теории | |||
|Активно использует | |||
|Экспертный уровень | |||
|- | |||
|Шаблоны проектирования | |||
|Не понимает | |||
|Знает теорию | |||
|Умеет применять | |||
|Активно применяет | |||
|- | |||
|Парадигмы программирования | |||
|Что это? | |||
|Нет | |||
|Обучение | |||
|Знает и понимает | |||
|- | |||
|Методологии разработки | |||
|Что это? | |||
|Обучение | |||
|Соблюдает | |||
|Внедряет | |||
|- | |||
|Автотесты | |||
|Что это? | |||
|Обучение | |||
|Умеет писать | |||
|Понимает почему надо писать | |||
|- | |||
|Код-ревью | |||
|Что это? | |||
|Нет | |||
|Да, но немного | |||
|Перепроверяет чужого кода больше, чем пишет сам | |||
|- | |||
|Документирование кода | |||
|Нет | |||
|Да | |||
|Да | |||
|Да | |||
|- | |||
|Поддержка выпущенных продуктов | |||
|Нет | |||
|Простые багфиксы и доработки | |||
|Сложные багфиксы и доработки | |||
|Задачи по оптимизации, устранение технического долга | |||
|- | |||
|Отношение к информационной безопасности | |||
|Нет | |||
|Зачем это всё? | |||
|Обучение на ошибках | |||
|Считает очень важным | |||
|- | |||
|Отношение с проектными менеджерами | |||
|Кто это? | |||
|Обычно негативное | |||
|Нейтральное | |||
|Командная работа | |||
|} | |||
[[Категория:Незавершённые статьи]] | [[Категория:Незавершённые статьи]] |
Версия от 17:59, 24 декабря 2022
Разработка программного обеспечения — это производство программ для вычислительных устройств как продуктов полностью готовых к использованию. Могут предназначаться для внутреннего использования или для внешнего заказчика, для перепродажи или для бесплатного распространения.
Объясните простыми словами, пожалуйста
Почему программистов называют разработчиками?
Это слова часто используют вместе, но это не совсем одно и то же. В разработке современных качественных программ программирование необходимо, но его недостаточно. Это сложный процесс и со стороны всё выглядит примерно так: несколько человек собираются вместе, начинают спорить и ругаться, а в перерывах стучат по клавиатурам. И в результате всего этого компьютеры начинают делать то, что раньше не делали, или начинают делать что-то лучше.
Название для этого странного процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «разворот», давно позаимствованное в английский и дополненное смыслами. Development — это рост и развитие, раскрытие потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка».
Разработка программного обеспечения похожа на издательство, читатели продукции которого не люди, а привередливые компьютеры. Некоторые издательства выпускают регулярные журналы по определенному графику. Некоторые выпускают редко, но большие издания. Вам недостаточно уметь только грамотно программировать-писать, чтобы работать в такой компании.
- Нужно уметь пользоваться профессиональными инструментами индивидуальной и командной работы.
- Нужно соблюдать производственные стандарты.
- Нужно эффективно работать в команде по правилам, определенными методологиями.
Профессиональный разработчик в таком издательстве — это журналист, готовый писать на любую сложную и незнакомую тему, погрузившись в неё с головой.
- Он должен понимать, что делает и зачем. Работать на результат и соблюдать сроки.
- Он должен писать качественно, простым понятным языком.
- Он должен помогать коллегам.
- Он должен выполнять требования редактора-тимлида.
Это не значит, что разработчики лучше программистов. Профессиональный программист — это узкоспециализированный специалист, писатель лучших авторских книг для компьютеров. Программист может работать один, писать что хочет и как хочет, а потом выкладывать тексты в свободный доступ. А может выполнять небольшие заказы для коммерческих компаний.
Кем быть — вы выбираете сами.
А если серьезно
Программирование — одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением.
Как стать разработчиком
В разработку ПО могут быть вовлечены различные специалисты, не выполняющие работу с исходным кодом: различные менеджеры, дизайнеры, аналитики, тестировщики, другие инженеры. Но название разработчик закрепилось за специалистами, основная, но не единственная задача которых — программирование.
Название | Стажер | Junior | Middle | Senior |
---|---|---|---|---|
Высшее IT образование | Не требуется | Не требуется | Желательно | Очень желательно |
Как оценивает свои знания и навыки | Недооценивает | Часто переоценивает себя | Оценивает себя правильно | Недооценивает себя |
Опыт работы разработчиком | Нет | От 0 до 2х лет | Обычно больше 2х лет | Обычно больше 5 лет |
Самообучение | Учится постоянно | Учится постоянно | Учится постоянно | Учится постоянно |
Учит других | Нет | Обычно нет | Учит стажеров и младших разработчиков | Учит всех |
Ключевой софт-скилл | Обучаемость | Инициативность | Работа на результат | Ответственность |
Выполненные проекты | Небольшие учебные проекты | Небольшие проекты для себя | Небольшие бизнес проекты | Есть опыт запуска крупных проектов |
Участие в Open Source | Активное (имитация) | Нет времени | Нет времени | Нет времени, но надо |
Системный анализ (сбор требований) | Что это? | Нет | Обучение | Может принимать участие |
Участие в проектировании | Что это? | Нет | Обучение | Активная работа |
Сколько языков программирования знает | 0 | Один, но в резюме указывает больше | Обычно один хорошо и несколько хуже. Честно об этом говорит. | Понимает, что знает мало языков программирования. |
Знание языков программирования | Обучение | Знает и умеет писать код самостоятельно | Знает особенности и подводные камни | Следит за развитием языков программирования |
Программирование | Учебные задачи | Простые бизнес задачи | Все задачи | Может решать сложные задачи оптимальным способом |
Качество | Нет | Много багов | Мало багов | Мало багов |
Фреймворки | Обучение | Знает в теории | Активно использует | Экспертный уровень |
Шаблоны проектирования | Не понимает | Знает теорию | Умеет применять | Активно применяет |
Парадигмы программирования | Что это? | Нет | Обучение | Знает и понимает |
Методологии разработки | Что это? | Обучение | Соблюдает | Внедряет |
Автотесты | Что это? | Обучение | Умеет писать | Понимает почему надо писать |
Код-ревью | Что это? | Нет | Да, но немного | Перепроверяет чужого кода больше, чем пишет сам |
Документирование кода | Нет | Да | Да | Да |
Поддержка выпущенных продуктов | Нет | Простые багфиксы и доработки | Сложные багфиксы и доработки | Задачи по оптимизации, устранение технического долга |
Отношение к информационной безопасности | Нет | Зачем это всё? | Обучение на ошибках | Считает очень важным |
Отношение с проектными менеджерами | Кто это? | Обычно негативное | Нейтральное | Командная работа |