Добрый день, господа учащиеся, закончивший и просто мудрые.
Как вы поступали в ситуации когда упираетесь в задачку и долго ее решаете (более 3-х часов ~), вы упираетесь до конца и решаете ее (часто в этот момент мотивация падает) или просто смотрите какие-то подсказки и идете дальше?
Tamerlan Seitov
11 уровень
Упираться или не упираться?
Комментарии (15)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
not fun
17 апреля, 19:40
Делай как чувствуешь, у каждого свой разный путь,
есть настрой, сделай, разбери, до мучай задачу,
не хочешь, сделай позже, или вообще забей,
и двигайся дальше по темам.
Есть конченые задачи, есть задачи которые важно добить и разобрать,
решай сам, посмотри на тему, задачу
и прими свое решение которое по душе, не мучайся.
В любом случае ты придешь к одному,
к собесам, после них поймешь что доучивать, если не возьмут,
а как возьмут то уже на работе посмотришь что нужно будет, то и будешь учить.
+2
Tamerlan Seitov Processing Engineer в QIWI Expert
18 апреля, 21:56
это то, что я хотел услышать :D
Конечно вариант мучать задачку "до талого" - это правильно, но не у всех хватает усидчивости и времени.
0
Denis Kolesnikov
15 апреля, 18:17
Я как то быстро в себе выработал чуйку, какие темы тебе точно не понадобятся в потенциальной работе. И если попалась задача на эту тему,то просто пропускал и не забивал голову мусором. Вариант не 100%,но рабочий. А главное,что не теряется мотивация от того,что ты не можешь всё решить.
0
Денис Enterprise Java Developer
16 апреля, 10:53
Ага, и знания будут как сито, очень "качественный" подход.
Особенно любопытны критерии отбора - не уверен что ученик в достаточной мере знаком с индустрией, чтобы делать такие "выборки" :)
С высоты своих скромных 7 лет в энтерпрайзе (4 из которых занимаюсь программированием за деньги) я бы сейчас не рискнул делать такие фильтры например :)
Программа JavaRush это самая что ни на есть базовая база, проще некуда. Фактический же набор навыков и технологий которые потребуются для гордого названия "джун" существенно шире.
Задача программиста не просто вызывать библиотечные методы написанные умными людьми, но быть в состоянии себя к этим умным людям причислить, местные задачки которые кажутся странными и не нужными, кроме всего прочего, учат работать с ТЗ, искать информацию, думать в конце концов :)
Конечно же на настоящей работе написание велосипедов не самая частая активность (хотя и она имеет место быть), но каждый уважающий себя ученик должен написать велосипеды на все случаи жизни, просто чтобы понять как на них крутить педали и почему может отвалиться цепь, когда это понадобится в реальной практике.
+3
Aleksei Software Engineer в Cisco Expert
16 апреля, 18:18
Смешно :) Если еще не нашел первую работу, не говори никому вот это на собесах. А если нашел, то тоже не говори никому вот это :) Через пару лет перечитаешь свой комент, тоже посмеешься.
+1
Denis Kolesnikov
16 апреля, 18:49
У меня конечно не 7 лет опыта,а всего лишь 2 года. Но я тот самый бывший джун-вкатун, который имел опыт обучения на джавараш и пробирался сквозь толпу скиллбоксеров на свою первую галеру. Поясню,что я имел ввиду.
Я согласен,что программа джавараш - это базовая база. Но порой их заносит совсем в другую степень. К сожалению,всех таких тем не вспомню,но мысли о задачах на байтовые сдвиги до сих пор как вьетнамские флэшбэки. И таких тем точно с десяток наберётся,которые настолько узкоспециализированные,но они есть в программе курса. И именно такие надо скипать и не париться,если ты конечно не хочешь писать ПО для микроволновки с 1кб памяти.
Теперь момент,как определить нужна тебе та или иная тема. Во-первых, глупо обучаться программированию и использовать только 1 источник. Во-вторых, сейчас информации на любой цвет и вкус, смотришь какие темы и там и там общие, уделяешь им основное внимание. В-третьих, когда ты хотя бы пару месяцев потыкаешь IDEA, повникаешь в айти сферу, появится хоть какое то понимание,чем бы хотел заниматься по итогу. Если писать круды (чем 90% вкатунов и будут заниматься), то опять же, бесполезные задачи на двигание байтиков можно и не делать.
Задача программиста - приносить бабки бизнесу. Используешь ты готовые либы или пишешь сам, бизнесу всё равно. Это только влияет на твой скилл как программиста, который появится с опытом. Мы же здесь говорим про джунов,у которых главная цель - найти работу. Тут главное пояснить за static и инкапсуляцию, ну или если собеседующий особо одаренный,то можно за алгоритмы ещё пояснить. Опять же, поиск работы и её получение не относится напрямую к знаниям. Прохождение собеса ,как известно - это отдельный скилл.
И написание велосипедов для стандартных джавовских библиотек (чем на джавараш тоже любят заниматься) это опять же, больше про собеседование. И если от тебя требуют написать свою реализацию того,что в джаве уже работает стабильно 20 лет,то стоит задуматься, а хочешь ли ты в этой конторе работать.
0
Денис Enterprise Java Developer
16 апреля, 22:23
но мысли о задачах на байтовые сдвиги
То что ты не используешь побитовые операции или не знаешь людей которые это делают не значит что это лишняя тема. И уж тем более не гарантирует что все с ним не будут работать :)
Подозреваю остальные темы на столько же "не нужные" как и битвайс :)
Я так и не понял как определить нужная тема или нет, из целого абзаца, извини. Я котик у меня лапки, для меня джава это какой-то вжух-пыщ-пыщ и в консоль пишется магия. А еще я не понимаю что такое массивы и нулл, как мне что там определить?) И при чем тут какие-то там курды? И поверь мне, здесь хватает людей даже с высоким уровнем у которых перечисленное вызывает священный ужас и, как ты выразился "въетнамские флешбеки", а про какой ни будь квиксорт или пресловутое красно-чёрное дерево даже не слышали. Я думаю таких ребят в принципе большинство. Это ни плохо ни хорошо, это как есть, они сами со всем разберутся, но есть у меня сомнение, что знание кейвордов и мемчиков на тему айти помогает реально что-то там отсеивать из букваря.
Задача программиста - приносить бабки бизнесу.
Безусловно, но до бизнеса постепенно доходит, что 9 джунов не родят ребёнка за один месяц :) А значит нужна экспертиза. И последнее время требования ужесточаются. Какие-ни будь задачки про посчитайте острова в матрице из нулей и единиц где 1 это суша, а 0 вода уже не только в гугле дают на собесах, да и лайвкодинг не новость давно.
это опять же, больше про собеседование
Это не про собеседование, это про понимание. Тут вот регулярно читаю какие ни будь сообщения, ой, я натыкал 100500 спринговых аннотаций, а они вообще нужны? А как они работают? А что они делают?
Библиотека это не серебряная пуля, это инструмент, но чтобы им пользоваться осмысленно нужно понимать как он работает.
Так например велосипед порой может работать быстрее библиотечных методов ну раз в 200 примерно (случай из недавней практики), и это для нагруженной системы выгоднее.
0
Aleksei Software Engineer в Cisco Expert
17 апреля, 17:29
> И последнее время требования ужесточаются. Какие-ни будь задачки про посчитайте острова в матрице из нулей и единиц где 1 это суша, а 0 вода уже не только в гугле дают на собесах, да и лайвкодинг не новость давно.
Есть такое, но имхо это больше связано с тем, что сейчас рынок на стороне компаний из-за массовых лей оффов. Как только рынок начнет стабилизироваться, то и меньше странных требований будет. Кстати, сейчас не редкость тестовые задания для синьеров, что было немыслимо в условном 2021 году.
+1
Denis Kolesnikov
17 апреля, 18:15
Подозреваю остальные темы на столько же "не нужные" как и битвайс
Как раз таки наоборот,если какая то тема используется 1 человеком из 1000, то я не понимаю, зачем её давать на решение ВСЕМ ученикам? Кому надо будет,тот и так будет с этим разбираться,кому не надо,тот просто застрянет на пару дней и всё ради чего? Уверен, абсолютно любой коммерческий разработчик может накидать по 10 примеров задач, которые по его мнению капец как важны для понимания джавы,но только почему то за пределами его работы это не используется.
Я же не говорю, что можно скипнуть любую непонятную задачу. Если человек завис на какой то базовой базе,то конечно надо разбираться пока не поймёшь.
Я так и не понял как определить нужная тема или нет
Мой метод состоял в том,что ты мониторишь N курсов, разбор собесов, обучающих видео и т.д. Смотришь, какие темы +- общие и что в основном требуют на собесах. Вот на это и делаешь упор.
Противникам такого подхода могу только пожелать купить себе справочник Шилдта и учить его наизусть,чтоб "выучить джаву" и понимать,как там всё работает под капотом. Может через пару лет такого пердолинга получится найти работу. За это время хитрый джунишка,который понял,что надо для прохождения собеседования, уже станет крепким мидлом.
0
Денис Enterprise Java Developer
17 апреля, 18:27
если какая то тема используется 1 человеком из 1000
Крутые у тебя цифры :) Я достаточно близко знаю программистов 30 примерно, из них конечно не все пользуются битвайсом, но изрядная их часть, и все умеют. Более того, ни у кого не возникает вопросов зачем он нужен :) Но согласен, 1000 человек выборка сильно репрезентативнее моей.
Мой метод состоял в том
Есть прикольный термин "Ошибка выжившего", не стоит равнять всех по себе, но я правда рад что ты так круто разрулил вопрос. Проактивная позиция сейчас редкость и я лично ее очень ценю в коллегах. К сожалению, не для всех это будет работать, 90% вайтишников это хлебушек, остальные 10 примерно поровну содержат в себе средний минус до гениев.
Ну а в целом JR это не Шилдт, кстати последний меня последнее время выручает не плохо по пет проектам :) Тут сильно меньше информации в целом, зато очень много практики, ты же не будешь спорить с тем, что практика лучший учитель? На голой теории далеко не уедешь, как бы грамотно ты не отсеивал нужную инфу.
Да и выучивать Джавку не нунжо, но очень не плохо знать о существовании разных механизмов в ней, это поможет их применить при необходимости.
Что до хитрых джунишек.... я разных видел ) Есть те что правда тащат и за год становятся миддлами, если не быстрее (рекорд того что я знаю - 7 месяцев), но у тех обычно изначально база не джуновская была, есть такие, что не проходят и испыталку и сами уходят в закат еще до увольнения, короче все ситуативно. Есть сейчас такая проблема, и я считаю ее очень серьёзной, что соискатели делятся на две категории, те что умеют проходить собеседования и те что умеют работать. Не всегда оба качества сходятся в одном человеке.
0
Denis Kolesnikov
17 апреля, 20:19
Конечно,тут я на 100% согласен по многим пунктам,что программирование это больше про практику. И здесь конечно джавараш топ 1 за счёт количества задач. Как и то,что пройти собес не равно быть хорошим специалистом. Но в основном компании сами привели всё к таким голодным играм, поэтому имеем то,что имеем.
Безусловно,мой опыт можно привести к ошибке выжившего. Да и в целом, личный опыт не является аргументом. Я скорее преследовал цель донести мысль,что решать абсолютно каждую задачу любой ценой это не слишком удачная стратегия. Ресурсы человека ограничены, валидатор не безупречный, да и порой задачи такие,что сколь опытного человека могут поставить в тупик. В таком случае лучше уже посмотреть подсказки и разобраться что там к чему.
0
Денис Enterprise Java Developer
17 апреля, 20:30
Я сам тут скипнул числа армстронга (к своему стыду) и большую часть коллекций (32+ уровень), но их тупо потому что уже нашёл работу :) Так что откладывать задачи это нормально, не нужно маниакально долбиться в стену. А вот возвращаться к ним со временем пожалуй стоит, и тему проработаешь и с высоты новых знаний иначе посмотришь на задачу.
Хрен знает, пригодится оно тебе или нет, но профессия порой подкидывает интересные моменты. Я вот сейчас больше занимаюсь AWSом, и CI/CD чем программированием на Java :) Хотя технически девопсом и не являюсь. И это круто! Что мне завтра поручат тоже сложно сказать, возможно я начну заниматься низкоуровневыми оптимизациями, а возможно писать очередной CRUD - посмотрим. Именно по этому, я считаю важным знать о существовании подходов и том как с ними работать. Конечно же это не значит, что нужно наизусть помнить весь JDK и/ли упаси бог Spring :)
0
Denis Kolesnikov
17 апреля, 21:10
Понимаю, понимаю))
Сам только начал втягиваться в коллекции,как нашёл работу. Пришлось уже на реальных пользователях углубляться в эту тему.
Насчёт возвращения к задачам.... К счастью или сожалению,мне пока хватает работы)
Но статьи джавараша частенько всё ещё выручают. Регулярки, например, осваивал здесь.
0
Денис Enterprise Java Developer
3 апреля, 14:55
Долго это например неделю (есть тут такие тоже). 3 Часа это не долго :)
Вообще если задача не решается в течение длительного промежутка времени и ты не видишь видимого прогресса в решении - это повод задуматься что что-то ты делаешь не так. Возьми перерыв, подумай, порисуй схемки всякие, перечитай условие. Возможно ты что-то понял не так, возможно ты что-то не так придумал себе.
Решай задачи так же поступательно, малыми шажками. Начни с того что код просто запускается, потом выводи на экран промежуточные результаты, смотри на сколько они соответствуют твоим представлениям и требованиям задачи.
Твоя задача здесь научиться, а не поставить галочку на каждой задаче - за галочки денег не платят и опыта не отсыпают :) Но если дело совсем не клеится просто оставь задачу на потом, вернёшься к ней позже.
+2
Сергеев ВикторMaster
4 апреля, 22:08
Плюс за малые шажочки )
Можно взять большую задачу - построрить завод и она не будет выполнена пока завод не будет построен, а это может быть несколько лет.
Либо разбить на этапы:
- Заложить фундамент
- Построить каркас
- Чистовая отделка
где каждый будет занимать например год
А можно еще дальше разбить, например заливку фундамента:
- Выкопать яму
- Вбить сваи
- Залить бетон
И каждая уже по 3-4 мес
Идем дальше, выкопать яму:
Бригада выкапывает 100 кубометров грунта в день
Задача на день: выкопать 100 куб метров грунта, и она каждый день выполнена.
Можно и по часам и по минутам расписать, но это лишнее.
Если брать задачи jr. То зависит от того что значит "не решается". Это может быть:
- не компилируется
- не работает как надо
- не принимает валидатор.
И у каждого вариант есть решение и варианты разбивки. По факту все сводится к фиксу ошибок компиляции и написанию тестов. Опять же задачи jr часто хорошо расписаны по требованиям. Можно брать одно отдельное требование и решать его, написать тесты, хотя бы в main на него и если работает считать часть задачи завершенной. И так с каждым требованием.
И будет финальный подгон результатов, когда все требования надо собрать в задачку
PS.. прозвучит возможно странно для тебя (сужу по себе), но у меня были задачи длинной в месяц и больше, дальше на подзадачи я их разбивал сам, которые мог сделать за 2-3 дня.
Но бывало и другое: задача оптимизировать работу с бд, с ней сидел месяц и особых успехов не было, в итоге поменяли БД на более подходящую и проблема ушла )
+2