русский
Germany.ruForen → Архив Досок→ Programmierung

Резюме для программиста

Срыв покровов патриот08.12.21 14:47
NEW 08.12.21 14:47 
in Antwort alex445 08.12.21 14:31

а ты бы на их месте другого бы и не писал

В нашем сумасшедшем мире что не скажешь, так тут же кто-то себя оскорбленным почувствуе


alex445 старожил08.12.21 16:19
NEW 08.12.21 16:19 
in Antwort alex445 08.12.21 14:31

Знаю. Поэтому и считаю, что затея с фидбеком практически бесполезна. Разве что как-то персонально на кого-то выйти или инсайд узнать, почему тебя не взяли и кто им на самом деле нужен.

alex445 старожил08.12.21 16:22
NEW 08.12.21 16:22 
in Antwort alex445 08.12.21 16:19, Zuletzt geändert 08.12.21 16:29 (alex445)

К вопросу о том, нужно ли знать язык. Вот сколько я в эти бодишопы и вообще фирмы не собесился, а почти везде программист должен общаться с клиентами. У меня два вопроса.


1. А менеджер на что?

2. Как будет общаться с клиентами тот, кого взяли по принципу "язык не так важен"?


Клиенты это даже не те, кто тебя собеседуют. Эти-то хоть вежливые. А клиент, как я понимаю, может и орать на тебя и грозить чем-нибудь. И ему пофиг, что ты плохо понимаешь и просишь перечислить проблемы шрифтлихервайзе. Или в Германии везде какие-то особенные всегда уравновешенные клиенты? ))


Вот меня сейчас спросили, как я буду решать проблемы клиента, если у него моя программа тормозит, если зависла, если ещё что-то.


Если ваша фирма развивает один продукт годами, и вы лично там лишь часть делаете, то лично вам с клиентами коммуницировать скорее всего не надо. А когда каждый месяц пишется программка на заказ, упаковывается в инсталлятор и передаётся клиенту, а потом он обращается к тебе (а к кому же ещё, как не к энтвиклеру) с проблемами, то язык должен быть перфект.


Поэтому мне непонятны советы, когда в вакансии написано "Sehr gute Deutschkenntnisse" или прямо "С1" или "С2", а мне говорят "да не обращай внимания". А написано так в каждой первой вакансии. Ещё и английский зачастую с тем же уровнем. Возможно, я часто даже до технического собеса не дохожу, т.к. уже после созвона видно, что дойч у меня не перфект. Вот прямо сейчас мне говорили с таким бааальшим-бааальшим намёком, что им нужен хороший немецкий, у вас он конечно тоже хороший (вежливость!), но у нас немецкие и швейцарские клиенты, а там ещё у них акцент и наречия... Вобщем, вы нам понравились и мы вам перезвоним. ))

alex445 старожил08.12.21 16:31
NEW 08.12.21 16:31 
in Antwort alex445 08.12.21 16:22

Может, все эти "истории успеха" без знания немецкого - про продуктовые фирмы, а не галеры, где программисты вообще всю работу делают, вплоть до общения с клиентами?

Murr патриот08.12.21 19:13
Murr
NEW 08.12.21 19:13 
in Antwort alex445 08.12.21 11:03

либо без ответа остаётся.

------

А что именно можно посоветовать в ситуации, когда ТС просто не воспринимает никакого анализа, если тот не совпадает с его мнением?


Только что ты стукнулся мордой об то, что не сумел грамотно распорядится временем выделенным на выполнение задачи.

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


И так - каждый раз по каждому вопросу. Какой смысл что-то советовать в этой ситуации?

Murr патриот08.12.21 19:21
Murr
NEW 08.12.21 19:21 
in Antwort alex445 08.12.21 14:31

Я другого и не ждал.

-----

Ну наплевав на совет - просить анонимизированную оценку ДО принятия решения - другого и ожидать было бы как то неожиданно. спок


Но ведь наплевал? Наплевал!!!

А как выглядит данный вопрос со стороны работодателя - не подумал или подумал не правильно...

А ответ - нормальный - в текущей ситуации с законами он практически единственный.

Murr патриот08.12.21 19:22
Murr
NEW 08.12.21 19:22 
in Antwort Hryu 08.12.21 10:58

Я столько попкорна не съем

-----

Ну тогда ограничься созерцанием!..

Программист коренной житель08.12.21 19:41
NEW 08.12.21 19:41 
in Antwort alex445 07.12.21 20:21
3. С защищёнными сеттерами не работает. Оно и понятно - как сериалайзер присвоит свойство, если его сеттер снаружи недоступен? Но на интервью я до этого не додумался.

Я не эксперементировал, но:

You can apply the DataMemberAttribute to private fields or properties. Be aware that the data returned by the member (even if it's private) will be serialized and deserialized, and thus can be viewed or intercepted by a malicious user or process.
Программист коренной житель08.12.21 19:48
NEW 08.12.21 19:48 
in Antwort Срыв покровов 07.12.21 20:42
ричём в WPF оно ЕМНИП так же - все свойства VM, к которым View должна иметь доступ, должны быть с публичным сеттером.

Это конечно же не так :)

Если бы это было бы так, то BindingMode не имело бы смысла :)

Более того, простейший пример, когда свойство в VM не должно иметь публичного сеттера - предстать себе окно с фильтром и результатами. Фильтры - имеют геттеры и сеттеры, а результат - коллекция на чтение. Соответственно, при каждом изменении фильтра обновляется коллекция. При этом коллекция никогда не устанавливается из View, соответственно сеттер не нужен.

Программист коренной житель08.12.21 20:00
NEW 08.12.21 20:00 
in Antwort alex445 08.12.21 14:31
Просто в WPF тебе эта стая собак нафиг не нужна - по сравнению с формами там есть нечего. ))

Зависит от контрола :)

Если тебе надо компоновать стандартные контролы, то вообще не вопрос. В WPF это легко и приятно. А если надо изобразить что-то посложней, то тут уже проблема.

Ну вот например, сколько времени у тебя займет создания TimePicker-контрола? :)

Или я тут недавно столкнулся с банальейшей задачей - сделать редактируемый ListView. Вот так чтобы клацнул 2 раза в ячейке и появился эдитбокс, по вводу чтобы ЛистВью перенимал новое значение, а по эскейпу - скидывал бы изменения. В WinForms эта задача решается на раз-два.

alex445 старожил08.12.21 20:19
NEW 08.12.21 20:19 
in Antwort Murr 08.12.21 19:13

Только что ты стукнулся мордой об то, что не сумел грамотно распорядится временем выделенным на выполнение задачи.

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

Я понял ваш подход. Я не сказал, что он плох. Про "замокать" и прочее - это я и сам понимаю. Я сказал, что даже с этим подходом скорее всего не успеешь сделать, если не делал подобные задачи в последнее время.


И кроме того они сами сказали, что задача интенсивная и не обязательно всё делать. Это, так сказать, на вырост - может, ты гений или как раз подобное делал последнее время. Не понимаю, правда, нафига на такое короткое время давать задачи "на вырост". Открывает такой кандидат "маленькое практическое задание", а там одна вычитка и уточнение требований минимум половину времени отведённого займёт.


А вообще, история была такая. За 10 дней сказали, что будет kleine praktische Aufgabe. Я спросил, что подготовить - мне мой копм, или мне доступ к их системе дадут. Сказали, чтобы я свой комп готовил. Ок - у меня всегда всё готово. За 15 минут до встречи присылают письмо, что задание будет на формах. Начинаем встречу, говорят открыть задание - там целая страница А4 и пример layout, как выглядеть должно. Сказали, что можешь свой любой любимый UI-фреймворк использовать, но на работе будут Формы. Я сказал, ну раз будут на работе, тоя тоже попробую на формах. Это была явно моя ошибка. Однако, как я говорил, заткнулся я не только с формами, а и с парсингом JSON.


Сложность была ещё в том, что требования к представлению записи были раскиданы по странице. Сначала одно описание полей модели. Через абзац добавка - а вот тут нужно предусмотреть добавление такого-то значения, а этого значения в описании полей раньше не было. Т.е. приходилось несколько раз перечитывать и собирать требования по всему тексту. Ну типа как будто бы реальное задание - нелаконичное, где-то неконкретное. Типа я должен задать дополнительные вопросы. Я задавал. Они отвечали. Штука в том, что за 1 час 15 минут такое явно не делается. Ну и ещё они там написали, что желательно всё сделать по науке - DRY, SOLID и прочее.

alex445 старожил08.12.21 20:21
NEW 08.12.21 20:21 
in Antwort Программист 08.12.21 19:41, Zuletzt geändert 08.12.21 20:22 (alex445)
Я не эксперементировал, но:


You can apply the DataMemberAttribute to private fields or properties. Be aware that the data returned by the member (even if it's private) will be serialized and deserialized, and thus can be viewed or intercepted by a malicious user or process.

Да, я знаю, что с атрибутами можно переиначить правила. Можно закрытые члены сделать доступными для сериализации, а открытые - запретить. Там много что атрибутами настраивается. Без атрибутов и по дефолту должно всё доступно-публичным быть.

alex445 старожил08.12.21 20:36
NEW 08.12.21 20:36 
in Antwort Программист 08.12.21 20:00, Zuletzt geändert 08.12.21 20:45 (alex445)
Если тебе надо компоновать стандартные контролы, то вообще не вопрос. В WPF это легко и приятно. А если надо изобразить что-то посложней, то тут уже проблема.

Так 99% задач по кастомным контролам в WPF решается компоновкой стандартных контролов. На Формах же наоборот - почти всё делается кастомными контролами, которые ещё гораздо сложнее и дольше писать, чем обычный UserControl в WPF.


Оставшийся 1% в WPF тоже делается долго, с написанием логики и добавлением свойств для привязок (всякие DependencyProperty и прочее).


Ну вот например, сколько времени у тебя займет создания TimePicker-контрола? :)

Не знаю. Это очень непростой контрол, как я читал. С нуля написать генератор дат с какого-то по какой-то год, с учётом дней в месяце, високосных лет и прочее на сколько угодно лет вперёд - не такая уж тривиальная задача. Если не делал раньше, то на интервью наверняка налажаешь. Да и генерить когда? Каждый раз при загрузке контрола? Или один раз и сохранять в самом контроле? Очевидно, что один раз вроде логичнее. Тогда когда генерить? При разработке контрола отдельным кодом, а потом просто захардкодить нагенеренное внутри контрола? Штука ещё в том, что набор подобных данных - дни календаря на кучу лет вперёд-назад - один на весь мир нужно сгенерить один раз всего. Значит, где-то такой набор уже есть. Может, готовый взять?


Вообще, подобные контролы профи пишут не один день. Сидят в каком-нибудь DevExpress челы, которые только и делают годами, что пишут контролы под разные фреймворки. А на собесе просят за часик накидать, и чтобы всё по паттернам было и хорошо работало? Они сами тоже так же работают? Или им просто надо посмотреть, как ты пишешь алгоритм генератора дат календаря?


А в работе я бы тупо готовый взял, а не сам писал. Полно дейт пикеров готовых.


Или я тут недавно столкнулся с банальейшей задачей - сделать редактируемый ListView. Вот так чтобы клацнул 2 раза в ячейке и появился эдитбокс, по вводу чтобы ЛистВью перенимал новое значение, а по эскейпу - скидывал бы изменения. В WinForms эта задача решается на раз-два.

Хмм... А если изначально сделать элементы списка эдитбоксами, но неактивными для редактирования? А когда два раза кликнул - делать актиным?


Скидывать изменения - надо либо где-то запоминать прошлый результат, либо не подтверждать изменения из вьюмодели в модель до нажатия условных клавишь или кнопок. Если на вьюхе всё равно старые данные не появились - обновить вьюху из модели через вьюмодель. Но по-моему, эдитбокс имеет встроенную функциональность скидывать на старое значение, нет? Вроде, банальный ctrl+z.


А как вы на Формах это на раз-два решите? Уже готовый контрол с поддержкой такой функциональности?

alex445 старожил08.12.21 20:47
NEW 08.12.21 20:47 
in Antwort alex445 08.12.21 20:36, Zuletzt geändert 08.12.21 20:51 (alex445)
А если изначально сделать элементы списка эдитбоксами,

Не эдитбоксами, а обычными TextBox - он поддерживает редактирование с историей изменений из коробки. Глубину истории не знаю.


В WPF ещё что хорошо, что можно просто взять копию от шаблона представления контрола (экстракт шаблона представления), изменить там немного, и получить почти такое же, но с немного другим видом. При этом почти не прикладывая усилий. Т.е. как и в вебе логика контрола отделена от его представления. В Формах, насколько я знаю, всё прибито гвоздями друг к другу, поэтому любые, даже мелкие изменения что во внешнем виде, что в логике - это по сути полностью новый контрол надо делать.

Murr патриот08.12.21 21:44
Murr
NEW 08.12.21 21:44 
in Antwort alex445 08.12.21 20:19

за 1 час 15 минут такое явно не делается

-----

Тебе не один раз говорилось, что ты очень медлителен...


1:15 - это 5-8 выделенных задач. По описанию - тебе нужно было выделить 4 задачи.

Среди них будет "каркас" решения, реализация каких-то частей. Возможно что-то будет обозначено и не имплементировано - иногда это тоже допускается. Чего 100% не допускается - тупое прожигание времени, неумение собраться и т.п.


на вырост

-----

Ты так и не хочешь понять - либо ты постоянно учишься, либо рано или поздно пойдешь лесом.

У тебя в багаже отсутствуют самые элементарные навыки. Базовые. Без которых в программинге делать практически нечего.

Только непутай - слова, которыми называются странные штукенции - ты знаешь. А вот что именно они обозначают - нет.

И при этом ты упираешься в том, что все необходимое ты уже знаешь... или будешь учить за счет работодателя...

А работодателю хоть как-то твоя учеба интересна? Тебе не 22-23. Тебе под 40-к. Тебя учить - значит - ломать устоявшееся и потом учить. Сам ты не учишься. И кому нужно тратить столько сил и ресурсов, когда местного молоденького. пусть и тупенького, можно натаскать с гораздо меньшими затратами?


скорее всего не успеешь сделать

------

Разницу между - не успеешь - и - ничего не сделал - тебе нужно отдельно подробно разъяснить?

Да и не суть.

Суть кодинг-теста - показать как ты будешь подходить к работе.

Подошел - никак.

При этом людей с таким подходом - много. Вот только не в ИТ.

Hryu свой человек08.12.21 21:51
NEW 08.12.21 21:51 
in Antwort alex445 08.12.21 16:19

Неправда, практически всегда получала фидбэк автоматом после интервью. А гугль и Майкрософт вообще прислали длинные письма с анализом того, что мне надо доучить, чтобы к ним попасть на работу и на какие вакансии проситься в следующий раз.

Hryu свой человек08.12.21 21:53
NEW 08.12.21 21:53 
in Antwort Murr 08.12.21 19:22
тогда ограничься созерцанием

Ну придется

alex445 старожил08.12.21 22:37
NEW 08.12.21 22:37 
in Antwort Hryu 08.12.21 21:51
Неправда, практически всегда получала фидбэк автоматом после интервью. А гугль и Майкрософт вообще прислали длинные письма с анализом того, что мне надо доучить, чтобы к ним попасть на работу и на какие вакансии проситься в следующий раз.

Мы наверное в разных мирах живём. Я практически никогда не получал. В Гугл и МС не бевербовался.


Получал разве что, если тестовое задание было. Но в Германии сам писал код вот только первый раз недавно. Пока фидбек не дали. Но я и так знаю, что там не так.

alex445 старожил08.12.21 22:50
NEW 08.12.21 22:50 
in Antwort alex445 08.12.21 22:37

Пипец, спросил просто, что там с экзаменами и как пройти в зоны 2Г-3Г после прививки. Так пошёл какой-то вал флуда... По сравнению с тамошними, здешние чудики ещё ничего. ))


Автомобилисты все такие - лишь бы попи...деть? ))

alex445 старожил09.12.21 07:48
NEW 09.12.21 07:48 
in Antwort alex445 08.12.21 22:50

Я тогда здесь спрошу. Как и когда после постановки первой прививки можно пройти туда, где правила 2Г и 3Г. Тебе бумажку-пропуск дают ТОЛЬКО после второго укола и 14 дней, или как?