Python conf in Kharkiv, Nov 16 with Intel, Elastic engineering leaders. Prices go up 21.10

Первый оффер и ответственность java junior

Всем привет. Это мой первый топик, так что если я ошибся в чем то прошу не тролить
Топик вот в чём!

Недавно после долгих месяцев обучения джаве, получил свой первый оффер. Мне дали проект с использованием spring северной части для удалённого управления устройствами на шине canbus и по tcp modbus. Всё начал с нуля.

Вопрос нормальный ли это объём работы для джуниора, учитывая что это мой первый опыт коммерческий.

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

П. С. Есть один нюанс, мой тим Лид с# разработчик, да и весь штат тоже, некому показать и подсказать, трачу много времени на поиск элементарной информации.

LinkedIn
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Допустимые теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

В принципи ± норм, але може дуже залежати від деталей.
Загалом, як писали нижче, треба відразу ескалювати питання на сініора/ліда/манагера якщо застряг з чимось більше ніж на день.

Вот какие сейчас джуниоры пошли — ответственные, про ответственность думают. Профит же.

Не все. Такой топик по-моему единственный за всё время существования DOU.

Явно лучше чем ковыряться с легаси говне на 10-ти летних технологиях. Если все сложится нормально — апнешь нормально опыта и уйдешь на мидла через годик.

некому показать и подсказать, трачу много времени на поиск элементарной информации.

У большинства также.

Я вот часто думаю о том, что в случае обучения надо прежде всего заставлять ученика самостоятельно составлять конспект. В данном случае речь идет об изучении предметной области. Максимально удобен будет такой конспект, имхо.

Заставлять? Ты что, в школе еще?

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

А когда из речи в визуальные образы переключался, использовал тул с mind-map в качестве такого конспекта.

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

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

А представь если конспект такой это будет мой бот? Ну или твой бот. Что в бота введешь, то он тебе и будет выдавать.

Не будет. Потому что мозг — это «предмет темный...» ©.

Мне сейчас вообще удобнее mindmap’ы для конспектов при изучение чего нового.
И зависимости там я рисуя сам для себя.

Так как раз такой бот. Содержащий твои собственные определения и знания и наблюдения. Ты вводишь их, ты бота учишь, а потом пользуешься, вопрошая у него то, что подзабыл. У Железного человека — Джарвис.

Не, скажу, что идея прикольная. Но вот то, что ты ее реализуешь — вероятность около 0.

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

Вся хитрость, что он вероятностным будет. Блин, да он будет как человек, но не человек. Не будет в нем сложной логики вычисления семантических связей. Например, когда-то ты написал ему инструкцию: "Если тебе скажут: привет, скажи привет в ответ. А в другой раз ты написал: «В ответ на «Доброе утро» напиши «Ага.» Все это в стадии обдумывания еще, но видимо начинаться будет с зеркалирования и подражания. С постоянным накоплением информации. Он будет как бы делать с тебя информационный слепок. При интенсивном общении.

Не будет. У тебя получится просто мусорная куча.
Такого мусора уже миллионами во всяких месенджерах.

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

И удивляться тому, какой ты все-таки умный.

Нее, какой идиот.

Если бот чего не знает он тебе ответит: не знаю. Так что он умный и честный будет. И помнить будет вообще все. Вот только сможешь ли ты вспомнить то, что он помнит?

Такой бот уже есть — гугл называется.

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

Кстати, ты в курсе что мы сейчас с тобой за всех в топике отвечаем? Они просто не успевают сформировать свои мысли, мы их раньше предсказываем и выдаем за свои. Мы не умные, мы сканеры.

Ты не поверишь, но мне пофиг на остальных.

Про бота — все дело в постепенном пошаговом накоплении подборе релевантных контекстов. Вот например: пишешь ты чего-нибудь в чат и одновременно кейлогер пишет все это в базу данных. А на третьем мониторе отображает наиболее часто употребимые с этими словами слова. Только это надо делать очень быстро. Ты можешь такое сделать на c++ ?

Но не хочу. А так разреши гуглу все их анальные зонды применить к тебе и вот то, что ты описываешь, получишь.

Так есть уже такое место где заставляют, ВУЗ называется.

Вот поэтому и говно такое — постсовковые ВУЗы.

а только важное для тебя, для твоего понимания того, что учишь.

Верно. Именно такой конспект. Именно ради этого. Ибо тут твои определения. И только для тебя.

Мой совет — ЗАБЕЙ на спринг и прочую серверную часть, напиши ТЕСТЫ, на которых добейся протокольного общения с нужным тебе железом. И только после того как получишь чего надо по тестам — будешь писать серверную часть.

Почему так: выигрыш во времени. Ничего не придётся переписывать. Даже тесты для автотестирования будут копипастой твоих ручных тестов с минорными изменениями, а то и без оных.

PS. Удостоверься для начала что на файрволе порты открыты. А то ты можешь долго долбиться :)

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

Забей на паттерны. Потому что паттерном есть абсолютно всё, что ты способен понимать. А якобы общепринятые паттерны проектирования — не более чем дрочево на волшебные баззворды.

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

На ХайЛоад откровенно забей болт, если такая задача не ставилась. Никаких лишних воркеров не плоди, тупо хендлеры, скромный кеш каких-нибудь сущностей, несколько синглтонов — и всё. Чем проще — тем лучше. Понадобится скорость — тогда и дорулишь.

Пул потоков сделаешь если оно тебе реально светит нагрузкой. А можешь и сразу. Там всё примитивно до уровня копипасты.

ОСНОВНЫЕ твои задачи — это понимание людьми того как всё работает:
— какие ошибки перехватывать и как мониторить?
— кого и как уведомлять?
— как и куда писать логи, кто и когда их будет читать, как чистить?
— как и где хранить данные? Как долго? Как архивировать? Как индексировать?

Мелочи типа коллбэков ты будешь писать 100500 раз на дню. Но в Java не принято разбрасываться коллбэками. В Java принято давать ИНТЕРФЕЙС, который соответственно будет предоставлять пачку коллбэков(или всего один метод, может даже дефолтный). А уже КЛАСС этого интерфейса чаще порождается анонимным, чтобы не плодить кучу файлов ради нескольких строк кода. Особо извращенцы пишут подобное через лямда-выражения, но сразу предупреждаю что отлаживать такой код адский труд.

Спасибо за развёрнутый ответ, учту ваши советы.

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

Ну и правило всегда одно — чем проще, тем лучше.

Если у тебя консольные приложения, то может оказаться, что достаточно стандартных пайпов будет и свяжешь все свои модули по простому на баше том же, или MPI тебе идеально подойдет, или мутексы и шаред мемори или на потоках с колбеками или еще как.

Ну и правило всегда одно — чем проще, тем лучше.

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

Скорее нет, чем да. У тебя скорее всего нет опыта как п проекты с нуля делаются, а для этого надо разобрать хотя бы один готовый проект нормально.
Но с другой стороны тебе платят за то что ты учишься. А гуглить ты будешь всегда. В любом случае, просто другую информацию.

1. Ты справишься и многому научишься
2. Скорее всего получится франкенштейн который никто не сможет поддерживать и на следующем месте работы ты опять будешь джуном. Это ты сам поймёшь, когда закончишь проект.

По хорошему тебе должны дать ментора (бадди) которого можно донимать вопросами.

Вообще же два самых главных навыка для джуна (да и для всех остальных тоже) это
1. Не бояться копать и разбираться
2. Не бояться сообщать о том, что застрял и нужна помощь

А так — иногда смотришь что интерны заделиверили за 3 месяца и ох..ешь.

(в положительном смысле, некоторые выдают просто феноменальные вещи).

Хорошо, если на запрос «нужна помощь» действительно получаешь хоть какую-то помощь. А не так, как у меня в одной компании было: «ты должна решать все сама». Ну, я и решала, только времени на некоторые моменты уходило просто немеряно. Это при том, что такие моменты возникали далеко не каждый день, и даже не каждую неделю.

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

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

Я думаю — нормальный. С недавних пор начал считать, что junior это обычный программист. По крайней мере, такие требования. Мидл это обычный программист с опытом несколько лет. Сеньор еще больше лет опыта.

Надеюсь вы хвастаетесь, а не жалуетесь? Или вы пришли баксы зарабатывать, пиля унылый легаси, а тут с ходу новый проект с нуля писать предлагают? Если второй вариант — подвиньтесь и дайте дорогу тем кто хочет стать настоящим разработчиком

Я не хвастаюсь и не жалуюсь, просто хотел узнать мнение людей с опытом. С мотивацией и настроем у меня всё хорошо)

Я даже не знаю что такое унылый легаси)

Вопрос нормальный ли это объём работы для джуниора, учитывая что это мой первый опыт коммерческий.

Так, можливо твоя задача саме зробити прототип і перевірити ідею, і в разі успіху її перепишуть краще більш досвідчені спеціалісти

Подписаться на комментарии