Информация об изменениях

Сообщение Re[4]: Сосредоточение на одном языке программирования от 14.03.2021 11:35

Изменено 14.03.2021 11:39 gyraboo

Re[4]: Сосредоточение на одном языке программирования
Здравствуйте, elmal, Вы писали:

G>>Это утопия, на рынке всегда будут иметь преимущество у более узких специалистов, которые владеют одним языком и парадигмой (а остальными языками и парадигмами более поверхностно), но владеют ими на голову выше чем такой вот разноплановый леонардо. А овладеть на экспертном уровне несколькими языками и парадигмами могут только единицы.


E>Что такое владение языком на экспертном уровне? Умение компилировать в уме граничные случаи какие, что любят проверять на собеседованиях? На экспертном уровне крайне неплохо знать предметную область, также на экспертном уровне нужно разбираться в исходниках проекта. Владение языком на экспертном уровне требуется исключительно разработчикам средств разработки, которые будут писать соответствующие анализаторы кода. Вот только это подразумевает владение предметной областью. Ну и сам разработчик конкретного языка тоже его знает на экспертном уровне, ибо он в курсах зачем это все сделано именно так, а не иначе.


Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, такие:
Integer a1 = 10;
Integer a2 = 10;
System.out.println(a1 == a2);

Выведет true.

Integer a1 = 10_000;
Integer a2 = 10_000;
System.out.println(a1 == a2);

Выведет уже false.
Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

Эксперт же такой ошибки не допустит.

"Прелесть" таких багов в том, что они могут просочиться на прод и долгое время там жить, а разрабы проекта в силу эффекта Даннинга-Крюгера будут выдавать на гора такой вот код и считать что экспертом быть не нужно когда разрабатываешь промышленные системы.
Re[4]: Сосредоточение на одном языке программирования
Здравствуйте, elmal, Вы писали:

G>>Это утопия, на рынке всегда будут иметь преимущество у более узких специалистов, которые владеют одним языком и парадигмой (а остальными языками и парадигмами более поверхностно), но владеют ими на голову выше чем такой вот разноплановый леонардо. А овладеть на экспертном уровне несколькими языками и парадигмами могут только единицы.


E>Что такое владение языком на экспертном уровне? Умение компилировать в уме граничные случаи какие, что любят проверять на собеседованиях? На экспертном уровне крайне неплохо знать предметную область, также на экспертном уровне нужно разбираться в исходниках проекта. Владение языком на экспертном уровне требуется исключительно разработчикам средств разработки, которые будут писать соответствующие анализаторы кода. Вот только это подразумевает владение предметной областью. Ну и сам разработчик конкретного языка тоже его знает на экспертном уровне, ибо он в курсах зачем это все сделано именно так, а не иначе.


Владение на экспертном уровне, это когда не допускаются всякие хитрые баги, скажем, такие:
Integer a1 = 10;
Integer a2 = 10;
System.out.println(a1 == a2);

Выведет true.

Integer a1 = 10_000;
Integer a2 = 10_000;
System.out.println(a1 == a2);

Выведет уже false.
Хотя Khimik бы сделал вывод, как он недавно писал на форуме про аналогию, что, "по аналогии, мы здесь тоже ожидаем true", ведь 10 и 10_000 — оба целых числа, имеют вроде бы аналогичные свойства.

Эксперт же такой ошибки не допустит.

"Прелесть" таких багов в том, что они могут просочиться на прод и долгое время там жить, а разрабы проекта в силу эффекта Даннинга-Крюгера будут выдавать на гора такой вот код и считать что экспертом быть не нужно когда разрабатываешь промышленные системы. Приведенный пример конечно маловероятен, т.к. сравнение объектов по == само по себе является индикатором плохого кода, но в других областях, таких как многопоточность, транзакции, AOP, перформанс, там подобного рода ошибки из-за отсутствия экспертизы допускаются часто.