Re[6]: Порассуждать о поиске работы...
От: velkin Удмуртия https://kisa.biz
Дата: 24.06.15 17:39
Оценка:
Здравствуйте, Dair, Вы писали:

V>>Так вот в каждом случае нужно мыслить совершенно по другому. STL и Boost и в целом шаблоны С++ требуют особого подхода, этому нужно долго учиться, причём на конкретных задач, которые у тех же сишников и оопешников просто нет.

D>Вот пример бы ещё — цены б тебе не было.

Я сам специализируюсь на ООП, впрочем даже для меня очевидно, что массивные вычисления лучше всего проводить с помощью обобщённого программирования используя шаблоны C++. А это может быть всё, что угодно, обработка изображений, криптография и так далее, но это так сказать простые случаи. Так то надо читать книжки, новичкам я бы посоветовал "STL для программистов на C++" Аммерааль Леен, но не решая задачи всё равно останешься теоретиком. Вот, к примеру, иногда встречается такое:

a = a + 1;
a += 1;
++a;


И говорят, что этот код эквивалентен. Так вот прочитав хотя бы азы обобщённого программирования становится очевидным, что здесь никакой эквивалентностью даже и не пахнет. Нужно думать на уровне генератора, учитывать типы, к которым принадлежит "а". Я не могу сказать, что обобщённое программирование сложнее объектно-ориентированного, но вот у меня тоже не дошли руки прокачать этот навык. Между прочим с сишниками та же история, казалось бы можно опуститься с ООП до сишного уровня, но это не так. Для того, чтобы писать программы в стиле Си нужно перейти в параллельный поток мышления.

А всё это к тому, что работодателю необходимо понимать, кого он берёт на работу. Просто взять и написать в вакансии, "программист С++" явно недостаточно. Можно там, конечно, ещё потом сделать приписку, "и чтец, и жнец и на дуде игрец", но такой универсал может оказаться дороже и гораздо менее эффективным, чем специалист своего дела.
Re[7]: Порассуждать о поиске работы...
От: antropolog  
Дата: 24.06.15 22:55
Оценка:
Здравствуйте, velkin, Вы писали:

V>И говорят, что этот код эквивалентен. Так вот прочитав хотя бы азы обобщённого программирования становится очевидным, что здесь никакой эквивалентностью даже и не пахнет. Нужно думать на уровне генератора, учитывать типы, к которым принадлежит "а". Я не могу сказать, что обобщённое программирование сложнее объектно-ориентированного, но вот у меня тоже не дошли руки прокачать этот навык. Между прочим с сишниками та же история, казалось бы можно опуститься с ООП до сишного уровня, но это не так. Для того, чтобы писать программы в стиле Си нужно перейти в параллельный поток мышления.


я вообще не понял, что значит по-твоему "обобщённое программирование"? Я вот спокойно читаю код boost.mpl или какой-нибудь hana, но упаси бог увидеть шаблонный код в продакшне — с вероятностью 99% разработчик или юн, или укушен александреску или jazzer. Тоже самое с "ООП", если кто-то городит классы на ровном месте, строит фабрики, и абстракции, там где можно написать plain структуру и функцию — то в 99% разработчик или юн, или ООП головного мозга. В общем как-то с годами приходит понимание, что все эти вылюбоны — от не понимания прописной истины — наивысшая ценность кода ( кроме его работоспособности ) — это его читабельность, на втором месте — связность. От этого и все пляски.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.