Решил поискать подработку в IT
В общем, сидел я, попивая свой смузи, который капал мне на бороду и в голову пришла мысль найти каую-нибудь подработку в IT в дополнение к моему текущему месту работы.
Все равно периодически мне не чем заняться по вечерам, а так бонусную копейку получу.
Сам я программирую на C# много лет.
Глаз упал на вакансию преподавателя.
Я подумал над этим и пришел к тому, что это может нормальный вариантом и особо не напряжным.
Ну типа сидишь на удаленке и читаешь уже разработанный материал
Откликнулся я на эту вакансию и прошел первое собеседование hr, где мне сказали, что я должен пройти тест на знание C#.
Думаю такой, ну ладно, там какой-то тест на базовую теорию и все, но нет...
Как же у меня порвало жопу с этого теста:
Первый вопрос: Какие из вариантов ответа будут генерить последовательность [5.0, 8.0).
И там варианты с Rnd.Next и Rnd.NextDouble и разные вариации.
1) Как это проверяет мои знания, как знатока C#?
2) Как-будто каждый коде повседневно юзает Random. Я последний раз его юзал несколько лет назад. Пришлось гуглить, что возвращает базовый Next.
Следующий вопрос: Про типы доступа. Ну ок - это похоже на теорию.
Далее : Вам дан такой-то код. Что он делает? Конвертирует в двоичную или десятичную систему и т п ответы. Что проверяет данный вопрос? Я с конвертацией между системами в ручном режиме не работал больше с момента окончания ВУЗ'а. Нажал конвертацию в двоичную систему и угадал.
Далее был вот такой вопрос, который меня убил просто:
1) На WinForms уже никто не пишет особо.
2) Как знание WinForms связаны с преподаванием C#? Я когда работал с WinForms, то вообще не обращал внимание на генерируемы сигнатуры, так как мне это не нужно был.
Сейчас думаю нафиг послать это предложение и поискать другое.
Куда можно устроиться еще на подработку в IT, чтоб без особого напряга, пару часов после рабочего дня несколько раз в неделю поработать и получить деньжат?
Вишенкой на торте - это было написать программу, которая принимает на вход возраст и рост студентов, а потом выводим средний рост в заданном диапазоне возрастов. Я себя почувствовал каким-то студентом первого курса... И не смог даже загрузить им решение на сайт, так как у них оно не компилирвоалось, а у меня в IDE компилирвоалось.
хорошему фембою борода не помеха
Ломай систему! Двадцать шесть по диагонали!
Ты считаешь что "преподавание - это не напряжно", и при этом не смог на элементарные вопросы ответить. Гонору много, а толку чуть. Таких даже в ШаГ не берут.
Особенно если ученики мотивированы. Ведь тогда у них возникают вопросы и времени на них тратится кратно больше чем на пофигистов или обычных.
Чему ты собрался людей учить? Кнопки расставлять в фреймворке, с которым сам работал по этому знаешь?
Мне по работе не разу не приходилось применять эти знания.
Практически все задачи решены и можно посмотреть чужие решения, выкинуть лишнее/доработать и получить нормальное решение.
Ты точно хочешь в преподавание?
Да, чувак, нехуй тебе в программировании делать. Вот я помню в семидесятых мы все алгоритмы наизусть знали, в императивном программировании по-другому было никак, а потом вот это придумали классы какие-то, уровни абстракции, паттерны, прости Господи. Нынешняя молодежь полагается на чужие реализации и общие библиотеки, потому что ленивые бестолочи, но старая школа помнит как надо писать код
Никто не говорит, что использование чужих библиотек запрещено. Но свзяывать библиотеки в рабочий код, это работа линкера а не программиста. Если отсутствие библиотеки делает для тебя задачу невыполнимой - ты не программист.
Угу, работа с абсолютными адресами в памяти... А потом придумали всякие операционки, универсальную архитектуру ЭВМ, и совсем разленились программисты.
Оно и сейчас так же всё работает, только реализация в персоналках скрыта за тремя печатями. И имя тем печатям MMU, HAL и API.
Но если вскрыть байт-код твоей программы, запись в переменную так и осталась запись по абсолютному адресу.
Я там не зря SICP советовал. Книжка из 70х. И про организацию памяти и абсолютные адреса вспоминают к самому концу. А концепция переменных и автоматического назначения адресов появилась ещё в алголе, в 60ые.
Все основные подходы к программированию, программирование как методологию разработали как раз до и в 70х. Нет ни одной технологии, которая бы радикально изменила мир программирования с тех пор. И то, что тебе что бы писать программы не нужно понимать как работает память это не значит, что программисты стали умнее и придумали как это обходить. Это значит что старые программисты сделали программирование легче, что бы снизить требования к программисту.
Это как с авто. 80 лет назад что бы водить машину её нужно было чуть ли не собрать самому. 40 лет назад - водителю нужно было понимать как работает трансмиссия, уметь в двойном выжим сцепления и регулировку клапанов. Сейчас водить может любой.
А что касается систем счисления и базовых алгоритмов, то это не устройство авто, это правила дорожного движения. Программист, это тот кто может решить задачу, а не тот кто умеет гуглить библиотеки.
Зачем мне придумывать свой Dictionary, если меня устроит тот, который дает мне .Net Core. Я +- понимаю, как он устроен под капотом и почему его быстрее юзать, чем обычный список в ситуациях, когда мне нужен доступ по ключу. Мне этого достаточно для решения своих задач.
Если меня вдруг не будет устраивать какое-то дефолтное решение, то я возьму за основу существующий класс и в наследнике переопределю логику.
У меня лишь несколько раз в жизни была задача, где мне нужны были эти знания. И то, я пошел к ребятам за помощью, кто шарит в этом и они мне на пальцах накидали алгортим.
Но вот как раз судя по всему с пониманием как он устроен и как работает у тебя большие проблемы, раз даже преобразование систем счисления для тебя тера инкогнито. И ты рискуешь оказаться в ситуации, когда твой словарик перестанет тебя устраивать в конкретной задаче, а заменить его будет нечем. Хотя о чём это я, вряд ли это случится с программистом, который рисует формы для запросов к базе данных.
В любом случае, не смотри в сторону преподавания. Тебе нечем делится. Лучше сам книжки почитай в свободное время.
Вообще-то именно это и значит.
> Нет ни одной технологии, которая бы радикально изменила мир программирования с тех пор
Паттерны, SOLID и АОП вышли из чата.
Дедуль, если ты с 70-х и до сегодняшнего дня в низкоуровневом программировании с адресами и прерываниями напрямую работаешь и новых технологий не видишь, то это не значит, что их нет.
> что бы писать программы не нужно понимать как работает память это не значит, что программисты стали умнее и придумали как это обходить. Это значит что старые программисты сделали программирование легче
Вообще-то буквально это и значит. Сделали программирование легче, чтобы обходить трудности, на которые уходит куча времени.
> Программист, это тот кто может решить задачу, а не тот кто умеет гуглить библиотеки
С чем я никогда и не спорил вообще-то.
Во первых не. не сылшал.
Во вторых охуеть революционно новая технология в программировании. Сокеты к браузеру прикрутили.
> из 83 года
С точки зрения программиста сокет - это абстрактный поток данных.
Если для вас socket() send(), recv(), close() это прям шаг вперед по сравнению с open() read() write() close() то конечно да.
Паттерны - это вообще не технология, это набор типовых решений, что даже в названии отражено. И да, это набор типовых решений для ООП в основном для решения не ООП задач.
АОП - это надстройка над ООП опять же для решения некоторых проблем ООП, которые не существуют в мире не-ООП. Расскажи о проблеме сквозной функциональности чувакам, которые умеют в Closure =)
Солид - это вообще "соглашение о стиле". Набор рекомендаций, что бы крупный проекты не разваливались под своим весом.
Это конечно очень новые, суперски важные технологии программирования, без которых существование современных технологий было бы невозможно. (нет)
Ха. АОП официально подтирается инкапсуляцией, а наследование извращает так, что его узнать невозможно.
> Это конечно очень новые, суперски важные технологии программирования, без которых существование современных технологий было бы невозможно
Надоело мне с тобой спорить не пойми о чём, дедуль. Это технология, а это не технология, а тут рыбу заворачивали. Я вообще изначально просто шутканул, а ты душнить начал. Ну душни дальше сам с собой о том, что такое технология, кто такой программист и кто чего использует.
Ну так это как шутки про зумеров, которые изобрели проводные наушники.
Сквозной код (с которым изначально боролись АОПом)- это буквально артефакт инкапсуляции, возникающий из за того, что предметной области не может быть формализована как объект. Но функциональное программирование это для чуваков с толстыми линзами, давайте сделаем новую "парадигму" где вместо единого простого механизма переопределяемых функций векторов сделаем ебанину с джоинтпойнтами, срезами и советами.
>>Надоело мне с тобой спорить не пойми о чём, дедуль.
Удачи тебе. Спасибо что пополыхал в беседе со мной. ГГ.
Мне тоже на собесах задавали вопросы типа "что выдаст этот код?" и какая-то замудрённая конструкция, которую любой тимлид на код-ревью забракует и скажет переписать нормально. Я на такие вопросы отвечаю, что в коде подобной хуерги быть не должно, и если она там есть, то её автор либо намеренно пытался запутать свой код, либо он шизофреник и пытался сделать то же самое ненамененно.