К основному контенту

Кем быть? Разработчик ПО - как профессия.


Многих вопросов сумбурный пост озадаченного родителя.
Старший сын в этом году заканчивает школу и вопрос "куда дальше пойти учиться" стоит для нас остро.
Он отвечает на вопрос "кем хочешь стать" просто  - "программистом". Оставив за рамками ответ на вопрос "почему именно программистом", а там действительно есть что пообсуждать, хочется задать вопрос вам: "а программист - это профессия?"


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

Вроде? Возьмем ту же медицину - есть шанс, что лет через 15-20 вместо докторов будут компьютеры-сканеры? А кто их будет разрабатывать? Доктора или программисты? Или нужны будут доктора с навыками программирования? Нужны ли будут те, кто будет разрабатывать "железо" для этих сканеров, или оно будет "само" проектироваться другими "машинами".

Нужны ли будут "чистокровные" программисты, которые будут уметь только разрабатывать софт? То есть ничего, кроме как писать программы они не будут уметь. И что такое "уметь писать программы"? Кто будет придумывать то, что нужно "закодировать"?

Я сам, по образованию, совсем не программист (да здравствует военная связь). И сейчас 90% знакомых занимающихся разработкой софта - это тоже не программисты по образованию. Плохо это или "никак", я не знаю.
Если почитать образовательные программы ВУЗ-ов, то уже появляются специальности, которые посвящены только разработке софта, управлению разработкой и даже тестированию. Кто из вас учился тестировать в ВУЗе? Сомневаюсь, что многие. А нужно это?

Может вообще в специализации на разработке ПО смысла нет - сейчас то все без нее справляются? Может правильнее математика, физика - база?

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

Или хрень все это - пусть идет куда ему хочется, пробует, меняет направление, если нужно?

ЗЫ1 из 20 человек в классе старшего более-менее определились с тем, куда идти учится человека 3.
ЗЫ2 из общения с теми, кто преподает студентам (до 4 курса) становится ясно, что даже там еще многие не определились.
ЗЫ3 неплохая статья на эту тему

Комментарии

Популярные сообщения из этого блога

Полезные ресурсы для молодых (и не только) тестировщиков

сперто(с) Уже 3 месяца провожу собеседования тестировщиков (март 2016). Поначалу они просто  веселили - после 15-летнего опыта собеседования С++-разработчиков, общение с тестировщиками (чаще были "-цы") было чем-то экзотическим и забавным. Потом становилось все грустнее и грустнее, мимими закончилось. Началась печаль.

Заметки на коленке - 3. Что еще делать, если ваши тесты уже "зеленые"?

"Lately I find I'm working on automated tests that return non-binary results. Tests that neither pass nor fail" by  @noahsussman Отличная мысль, которую я ретвитил еще в 2016. Но давайте вместе подумаем, что за этим может скрываться? ( кстати, не знаю, что при этом думал Noah ) Ваши тесты прошли и прошли "успешно". Все хорошо или все же есть, куда еще посмотреть? Дальше то, что использовал я лично и то, что еще можно прикрутить дополнительно. Естественно все шаги ниже должны быть автоматизированны. 1. Контролируйте время выполнения тестов. Если набор проверок не меняется (а такое часто бывает, к сожалению), то рост времени выполнения может говорить о проблемах в продакшен коде (чаще всего) или проблемах с окружением. 2. Контроль за количеством выполняемых тестов. "Все зеленое" не значит, что сегодня выполняли те же Х тестов, что и вчера. Смешно(нет), но случается такое, что какие-то проверки "исчезают" из запуска из-за того, что у кого-то ...

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system under test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объе...