Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Работа тестировщиком после переезда в Германию

11076   22 23 24 25 26 27 28 29 30 31 32 все
AlexNek патриот24.12.20 17:44
AlexNek
24.12.20 17:44 
в ответ MrSanders 24.12.20 15:25

Вроде понял что меня смущало - наличие функции округления.

Так как минуты всегда были у меня целочисленными.

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

static int MinuteRoundTo(int value, int precision)
{
        int ret = 0;
        for (int rounded = 0; rounded <= value; rounded += precision)
        {
            ret = rounded;
        }
        return ret;
}

Зато есть задачка на праздники смущ

Murr патриот24.12.20 18:18
Murr
NEW 24.12.20 18:18 
в ответ AlexNek 24.12.20 17:44

Накладные рaсходы на организацию цикла довольно большие...

Если уж так хочется чтобы был двухкоординатный вариант

- считать надо один раз на каждый вариант precision


Ну и по практике - precision

обычно выбирают по какой-то линейке - больше пары-тройки

версий значений в одной задаче не будет.


Бесконечный цикл посетитель24.12.20 19:23
NEW 24.12.20 19:23 
в ответ AlexNek 24.12.20 17:44

Я так понял, что эта функция явно считает сколько раз precision умещается внутри value. Довольно кривая реализация из-за того что две переменные созданы для одного и того же и сразу неочевидно главное: когда цикл закончится и что он вернет, поскольку если решение равно N, то тело цикла выполнятеся N+1 раз, а все-таки правильный результат получается из-за того, того самый последний инкремент хотя и выполняется, но реально не сохраняется. Ну в общем, если нужны трудно находимые ошибки в программе, то такой цикл как раз то, что нужно.


Почему не написать проще:

ret = 0

while(ret < value) ret += precision

return ret


(Я не спрашиваю, почему нужен явный цикл и нельзя это за одну операцию сделать - видимо такая задача.)

MrSanders коренной житель24.12.20 20:46
NEW 24.12.20 20:46 
в ответ AlexNek 24.12.20 15:51
С написанного посчитать еще можно, а вот картинка не возникает на автомате.

Так и с формулой для гипотенузы так же (даже хуже, с ней непонятно почему именно так считать надо). Но после того как пару раз увидишь - узнаёшь сразу.

Все знали о чём речь идёт, так что как можно было не понять, как именно сработает эта простенькая формула я честно не понимаю. Если рассматривать код в отрыве от сообщения, то да, не хватает разумного имени и строчки комментария. Всё. Если это обрезание надо использовать в нескольких местах, то можно написать функцию. Для одного использования функция избыточна. И именно что нарушение KISS. Проверки на то что значение минут не вываливается из интервала 0..59 тоже не надо - мы должны доверять используемым библиотекам.


public const int MINUTES_IN_QUARTER = 15;
...
int minutesInHour = ...;
// Обрезаем минуты до начала четверти часа. 0..14 => 0, 15..29 => 15, 30..44 => 30,  45..59 => 45. Исходим из того, что minutesInHour не может иметь значений <0 и >59.
// (если мы знаем что в проекте есть тормоза, дописываем такое) Внимание! Применяется целочисленное деление без остатка!
int minutesTruncatedToFullQuarter = (minutesInHour / MINUTES_IN_QUARTER) * MINUTES_IN_QUARTER;

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

AlexNek патриот24.12.20 21:06
AlexNek
NEW 24.12.20 21:06 
в ответ Бесконечный цикл 24.12.20 19:23
Почему не написать проще

По одной простой причине. 1-е число минуты, 2-е правильный ответ, 3-е предложенная функция

Но я не понимаю отчего кому то не нравится работать в команде. Именно совместно и можно и можно найти хорошее решение.


Я не спрашиваю, почему нужен явный цикл

Решение может быть любым, главное, что бы было видно сразу для чего именно это решение

Бесконечный цикл посетитель24.12.20 21:38
NEW 24.12.20 21:38 
в ответ AlexNek 24.12.20 21:06

Да, точно. Мой косяк.


Решение может быть любым, главное, что бы было видно сразу для чего именно это решение

Ну тогда очевидно так:


count = (value // precision) * precision


Ну или так совсем надежно как логически так и реализация:


count = value // precision # целочисленное деление

ret = count * precision


И тогда то же самое в виде цикла:


ret = 0

while(ret <= value) ret += precision # Выполняется count+1 раз

ret -= precision # Поэтому один шаг вычитаем


ну или


ret = 0

for(; ret <= value; ret += precision) ;

ret -= precision


По идее должно работать, но хорошо бы юнит тест для пограничных условий.
Бесконечный цикл посетитель24.12.20 21:47
NEW 24.12.20 21:47 
в ответ Бесконечный цикл 24.12.20 21:38

Одну строчку экономим но становится менее понятным:


ret = -precision

while(ret <= value) ret += precision


или вот так:


ret = 0

while(ret <= value-precision) ret += precision


uscheswoi_82 свой человек24.12.20 23:37
uscheswoi_82
NEW 24.12.20 23:37 
в ответ Бесконечный цикл 24.12.20 21:47

НП.

Мне влом последнее время напрягать свои мозги, поэтому кто как хочет, так и про меня думайте, я не переношу какие либо нагрузки, как физически, так и умственные. Я делаю то, что мне нравится. Насчёт алгоритмов, каждый как хочет, так и программирует, у каждый свой стиль, в колледже и в универе учили так, как я написал, как я уже писал, я не хочу выпендриваться с кодом, код должен понять программист который закончил Hauptschule. Я помешан в коде как Терри Девис - https://habr.com/ru/post/443568/, но я не хочу чтобы у меня жизнь закончилось как у Бориса Гритца, кстати у меня как у него тоже было очень много отказов, меня айти фирмы куда подальше отсылали.



P.S.:Какой толк от хорошего кода, если я нафиг никому не нужен? Когда рассказываю, первая ассоциация у моего собеседника от слова Казахстан возникает это Борат, сейчас ещё Борат-2 вышел.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
koder патриот25.12.20 00:07
koder
NEW 25.12.20 00:07 
в ответ uscheswoi_82 24.12.20 23:37
Какой толк от хорошего кода, если я нафиг никому не нужен?


А ваш код хороший?

uscheswoi_82 свой человек25.12.20 00:13
uscheswoi_82
NEW 25.12.20 00:13 
в ответ koder 25.12.20 00:07
А ваш код хороший?

Ну я имел ввиду выпендрёвый, у меня обычный код без всяких сокращений и выпендрёжа. До Vorstellungsgespräch не доходит, 99% отказов, поэтому они мой код не увидят.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
koder патриот25.12.20 00:45
koder
NEW 25.12.20 00:45 
в ответ uscheswoi_82 25.12.20 00:13
До Vorstellungsgespräch не доходит


Ок, тогда дело действительно не в коде

Murr патриот25.12.20 00:50
Murr
NEW 25.12.20 00:50 
в ответ uscheswoi_82 25.12.20 00:13

Я делаю то, что мне нравится.

99% отказов

-----

Обычно получив отказ люди задаются вопросом - Почему? - и изучают как сам процесс, так и персоналии участников.


По тому, что ты пишешь на форуме, на вопрос рекрутера/хрюши:

- Скажите, а когда и какую художественную книгу вы прочли?

следует ответ:

- Мороженное мне не понравилось - не сочетается с таблетками!

после чего 100% следует отказ.

Это нормальный вопрос и нормальная реакция на данный ответ.

dymanoid местный житель25.12.20 00:52
dymanoid
NEW 25.12.20 00:52 
в ответ uscheswoi_82 25.12.20 00:13

Я думаю, дело в том, что в первом телефонном разговоре подчёркивается, что Access и VBA - это круто и маст хэв. Поэтому и не приглашают.

Murr патриот25.12.20 01:00
Murr
NEW 25.12.20 01:00 
в ответ dymanoid 25.12.20 00:52

Access и VBA - это круто и маст хэв

-----

Не-не... что маст хэв - разумеется, но писать надо только на пыхе... смущ

dymanoid местный житель25.12.20 01:38
dymanoid
NEW 25.12.20 01:38 
в ответ Murr 25.12.20 01:00

Писать надо на том, что подходит под задачу. Access и VBA уже давно никуда не подходят, потому что древние, как го*но мамонта. Пых ваш туда же.


Кто-то выше писал про "дигитализацию" в Германии. В индустрии с ней полный абзац и кабздец. До сих пор FoxPro, DB2 и Siebel. Там Access и VBA - инновации прям. А про пыхи ваши никто и не слышал.


Но если брать айтишный мир, то всё не так плохо. Умеют и облака, и C++20, и Rust, и Go. Зависит всё от CTO. Если он бывший говнокодер на бейсике, то и технологии в конторе такие же будут. Древние и вонючие.

koder патриот25.12.20 06:41
koder
NEW 25.12.20 06:41 
в ответ dymanoid 25.12.20 01:38
Писать надо на том, что подходит под задачу

Обычно ищут работников по языку. У нас, например задача и мы, группа программистов, решаем ее при помощи определенного стека технологий. Допустим в группу взяли кого то, который заявляет, что надо все менять и задачу решать другим стеком. Или этот программист решает какую нибудь второстепенную задачу своим стеком. И уходит.

Это конец. Его код никто не может поддерживать. Его просто выбросят и напишут все с начала.

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

uscheswoi_82 свой человек25.12.20 09:33
uscheswoi_82
NEW 25.12.20 09:33 
в ответ dymanoid 25.12.20 00:52
Я думаю, дело в том, что в первом телефонном разговоре подчёркивается.

Я только по эл. почте слал резюме, по телефону не было ни разу интервью, обычно в основном были отказы из 400 отправленых резюме 2-3 раза приглошали на Vorstellungsgespräch, один из них предлагал мизирную зарплату, я 3 месяца на него бесплатно работал. Дважды на фирме когда проходил практику использовали Microsoft Access, один раз не получилось сделать БД, тогда секретарша сделала сама БД на Microsoft Access, я у неё книжку видел по Access.

Мои отказы это из-за ссоры с немцами, и я бред в фейсбуке писал.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
uscheswoi_82 свой человек25.12.20 09:40
uscheswoi_82
NEW 25.12.20 09:40 
в ответ uscheswoi_82 25.12.20 09:33, Последний раз изменено 25.12.20 09:51 (uscheswoi_82)

НП.

Меня травили в фейсбуке, потому-что меня учитель по программированию хвалил постоянно, и я ещё в очень дорогом пуховике пошёл в колледж, пуховик стоял где-то в районе 600 евро. Меня немец с правыми взглядами психологически травил, у него дедушка, отец и он правых взглядах, он гордится что он чистокровный немец. Он окончил Volksschule, потом поступил в колледже, Volksschule это ниже чем средняя школа, сначало он работал сисадмином сейчас дорос до Projektleiter, хотя я почему-то в списке фирм не нашёл его что он там Projektleiter.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
Бесконечный цикл посетитель25.12.20 10:08
NEW 25.12.20 10:08 
в ответ uscheswoi_82 24.12.20 23:37
P.S.:Какой толк от хорошего кода, если я нафиг никому не нужен?

Может это поможет:


Interview advice that got me offers from Google, Microsoft, and Stripe:

https://www.zainrizvi.io/blog/the-interviewing-advice-no-o...


Tip #1: Use recruiters to your advantage
Tip #2: Go to real interviews for practice
Tip #3: Be open to learning during the interview
Tip #4: Keep your skills sharp even when you’re not job hunting


Когда рассказываю, первая ассоциация у моего собеседника от слова Казахстан возникает это Борат, сейчас ещё Борат-2 вышел.

Да ладно, не комплексуй, мы все тут в таком положении. Этого уже не исправить. Значит надо что-то другое менять.

uscheswoi_82 свой человек25.12.20 10:19
uscheswoi_82
NEW 25.12.20 10:19 
в ответ Бесконечный цикл 25.12.20 10:08, Последний раз изменено 25.12.20 10:26 (uscheswoi_82)

Вся проблема ещё была в том, что я одно и тоже всем писал один файл был как шаблон, я просто заменял заголовок, даты, и фамилию Ansprechpartner-а. Может я что-то не так делал, я всем писал знания такие-то, допустим отправлял резюме на PHP разработчика, а писал что допустим знания не только по PHP но и по C#. Некоторые айтишникисоветовали если резюме программистом на PHP то нужно убирать знания C#, мне было в лом с этими Bewerbung-ами возюкоться, всем слал одно и тоже письмо. Дома было две программы которые генерируют Bewerbung и Lebenslauf, последний генератор это Data Becker BewerbungsGenie 5, но советали их не использовать, я был на 2х недельных курсах как писать Bewerbung-и.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида