эквивалентно «obj1 = obj2;», т.е. вы в переменную положили ссылку на другой объект.
Ваши выводы в примере говорят о том, что вы не знаете ни как работает String, ни как работает передача параметров в метод!
Вот вам альтернативный пример. Вы понимаете, почему вывод именно такой?
Да уж, получился знатный список вопросов-маркеров, по которым можно отличать тех, кто только читал, от тех, кто использовал, и уже тем более от тех, кто понял.
Уровень описания в статье — junior.
Даже middle должен бы знать, что string ни разу не похож на value type. У этого типа есть две ключевые особенности: immutable (любое изменение порождает новый экземпляр) и оптимизация компилятором (если в коде встречается несколько раз один строковый литерал, после компиляции это будет один и тот же объект)
Так же middle должен понимать, для чего используются публичные методы object, и когда и для чего требуется их переопределять. И что GetHashCode надо переопределять совместно с Equals во избежание разногласий (но не для ускорения).
Список можно продолжить. Но я обычно задаю вопросы вразрез, кандидат сам расскажет, что понимает и шпаргалки не помогут. Например: когда (в каких случаях) ValueType хранится в куче? Занимает ли ReferenceType место на стеке? Всегда ли вызывается Dispose? С какими паттернами разработчик сталкивался на предыдущем проекте (к примеру, типичный asp.net-разработчик сталкивается как минимум с пятью паттернами, но чаще всего их в упор не видит) и т.д.
Автор, вы же все статьи написали заранее и при выкладке очередной никак не учитываете комментарии к предыдущим?
Ведь вам уже пояснили ранее, что ваше отношение к тестированию слишком однобокое, а статьи ваши не раскрывают сути проблем. Но вы продолжаете лепить кэповские статьи с минимумом реальной пользы.
Тут не стоит забывать про контекст.
Я-то тоже первые четыре языка учил по книжкам (а ещё был пятый — для мк-61), т.к. интернета не было.
И да, есть такие языки, что лучше по книгам учить, но очень вряд ли это хороший выбор для первых языков?
Не только первый, но и смотрящий на систему/приложение под особым углом. А ещё он умеет проходит кейсы гораздо быстрее типичного программиста, а ещё безошибочно повторять предыдущие кейсы, и т.д.
Да, опять глупая и бесполезная статья. И опять неверно примерно всё.
Тестирование — скучно, только если это ручное исполнение автотестов. В реальности работа тестировщика бывает очень интересной.
И у разработчиков бывает крайне скучная работа.
Аналогично по всем пунктам…
А финализируется всё это традиционным для этого автора выводом:
Идти нужно туда, куда тебя с наибольшей вероятностью возьмут.
Вот после этого тонны вайтишников, которых выперли с первой работы за профнепригодность атакуют вакансии, запрашивая высокие зарплаты, которые им обещали авторы таких статей.
Да, конечно. Но в языках с нормальной типизацией меньше шансов, что пустая строка будет сложена с массивом и получится число просто потому, что где-то изменился формат данных и конкретный язык старательно игнорирует несоответствие типов :)
Чисто для прояснения. Вы путаете два типа типизации:
статическая/динамическая и слабая/сильная.
JavaScript — динамическая слабая (в рантайме типов, можно сказать, вообще нет).
C# — статическая слабая. И слабость не про var (который лишь упрощает вывод типов при компиляции), а про dynamic.
после программирование стало понятным и в какой-то степени примитивным.
Серьёзно? И вы при этом кому-то что-то советуете?
Установить PhpStorm на своей компьютер.
начинать можно и в блокноте или уже поставить что-то бесплатное. Например VsCode.
множество вторичных технологий, которые не относятся непосредственно к программированию, но обязательны в работе программиста:
Html;
Css;
JavaScript;
MySQL;
как так-то? первые две относятся только к фронтенду, а вторые две как раз про программирование!
Ну и финализирует всё это предложение выучить ответы на вопросы собеседований и таким образом пробраться на реальную работу…
Нет уж, лучше хорошие курсы, чем такое вот руководство!
Новая методология может и нужна, но ваша не взлетит.
Главная проблема — вы слишком всё в кучу смешали. Идея взять всё лучшее из других вариантов и сварганить что-то своё не нова, но обычно получается фигня.
Да и вообще, известно же, что нет идеальных решений, устраивающих всех. Кому подойдёт ваша методология?
Явно не крупному бизнесу, где гендир не будет фокусировать внимание на отдельных командах и сотрудниках. С мелким бизнесом тоже не очевидно — там могут реально не требоваться все эти роли.
А что на счёт типов проектов/продуктов? Для инновационных у вас слишком жёсткие правила, для стадии устойчивого развития много лишнего.
Список можно продолжать.
Ну и отдельно, по мелочам:
— Гендир, подглядывающий за всеми сотрудниками, особенно в курилке? Кто ж согласится так работать, кроме самого гендира-маньяка?
— Сторипоинты в часах и прямо в календарь планировать? Может вы не знаете, зачем эти SP появились и почему в agile не меряют часами?
— Тимлид, который контролирует, как бы чего не усложнилось в проекте, игнорируя бизнес-задачи?
— Зачем вам вообще спринты, если у вас нету " times & materials"?
Я не про то, заходят статьи или нет. Вторая статься пошла по пути первой — в минуса. Минус и статье и вам в карму. Вы говорите, что собираетесь и дальше публиковаться. Если статьи будут такие же, вы сольётесь до невозможности что-то публиковать.
И вот я спрашиваю, вам это зачем?
эквивалентно «obj1 = obj2;», т.е. вы в переменную положили ссылку на другой объект.
Ваши выводы в примере говорят о том, что вы не знаете ни как работает String, ни как работает передача параметров в метод!
Вот вам альтернативный пример. Вы понимаете, почему вывод именно такой?
Во-вторых, фраза не корректна. Не надо путать новичков, они потом это приносят на собеседовании и очень портят впечатление.
Я не единожды писал классы, которые , и даже делал immutable классы. Ничто из это не имеет отношения ни к value type, ни к строкам.
Уровень описания в статье — junior.
Даже middle должен бы знать, что string ни разу не похож на value type. У этого типа есть две ключевые особенности: immutable (любое изменение порождает новый экземпляр) и оптимизация компилятором (если в коде встречается несколько раз один строковый литерал, после компиляции это будет один и тот же объект)
Так же middle должен понимать, для чего используются публичные методы object, и когда и для чего требуется их переопределять. И что GetHashCode надо переопределять совместно с Equals во избежание разногласий (но не для ускорения).
Список можно продолжить. Но я обычно задаю вопросы вразрез, кандидат сам расскажет, что понимает и шпаргалки не помогут. Например: когда (в каких случаях) ValueType хранится в куче? Занимает ли ReferenceType место на стеке? Всегда ли вызывается Dispose? С какими паттернами разработчик сталкивался на предыдущем проекте (к примеру, типичный asp.net-разработчик сталкивается как минимум с пятью паттернами, но чаще всего их в упор не видит) и т.д.
Минусы есть? А то! Они везде есть. Но я не знаю ни одного разработчика, подпадающего более чем под два пункта из списка. Чаще всё совсем наоборот.
Ведь вам уже пояснили ранее, что ваше отношение к тестированию слишком однобокое, а статьи ваши не раскрывают сути проблем. Но вы продолжаете лепить кэповские статьи с минимумом реальной пользы.
Я-то тоже первые четыре языка учил по книжкам (а ещё был пятый — для мк-61), т.к. интернета не было.
И да, есть такие языки, что лучше по книгам учить, но очень вряд ли это хороший выбор для первых языков?
Тестирование — скучно, только если это ручное исполнение автотестов. В реальности работа тестировщика бывает очень интересной.
И у разработчиков бывает крайне скучная работа.
Аналогично по всем пунктам…
А финализируется всё это традиционным для этого автора выводом:
Вот после этого тонны вайтишников, которых выперли с первой работы за профнепригодность атакуют вакансии, запрашивая высокие зарплаты, которые им обещали авторы таких статей.
статическая/динамическая и слабая/сильная.
JavaScript — динамическая слабая (в рантайме типов, можно сказать, вообще нет).
C# — статическая слабая. И слабость не про var (который лишь упрощает вывод типов при компиляции), а про dynamic.
Книжки — хорошо, но они всегда отстают от жизни.
Серьёзно? И вы при этом кому-то что-то советуете?
начинать можно и в блокноте или уже поставить что-то бесплатное. Например VsCode.
как так-то? первые две относятся только к фронтенду, а вторые две как раз про программирование!
Ну и финализирует всё это предложение выучить ответы на вопросы собеседований и таким образом пробраться на реальную работу…
Нет уж, лучше хорошие курсы, чем такое вот руководство!
Главная проблема — вы слишком всё в кучу смешали. Идея взять всё лучшее из других вариантов и сварганить что-то своё не нова, но обычно получается фигня.
Да и вообще, известно же, что нет идеальных решений, устраивающих всех. Кому подойдёт ваша методология?
Явно не крупному бизнесу, где гендир не будет фокусировать внимание на отдельных командах и сотрудниках. С мелким бизнесом тоже не очевидно — там могут реально не требоваться все эти роли.
А что на счёт типов проектов/продуктов? Для инновационных у вас слишком жёсткие правила, для стадии устойчивого развития много лишнего.
Список можно продолжать.
Ну и отдельно, по мелочам:
— Гендир, подглядывающий за всеми сотрудниками, особенно в курилке? Кто ж согласится так работать, кроме самого гендира-маньяка?
— Сторипоинты в часах и прямо в календарь планировать? Может вы не знаете, зачем эти SP появились и почему в agile не меряют часами?
— Тимлид, который контролирует, как бы чего не усложнилось в проекте, игнорируя бизнес-задачи?
— Зачем вам вообще спринты, если у вас нету " times & materials"?
и т.д…
И вот я спрашиваю, вам это зачем?