Программист - это профессия "не знать" Каждая профессия имеет свои акценты. Врачи должны быть внимательными, сфокусированными. Грузчики, условно, должны быть физически развиты. Гимнасты гибкими. Продажники уверенными в себе. Юристы дотошными к мелочам. Музыканты должны управлять своим вдохновением и эмоциями (в жизни черти что, вечером концерт, и должен выдать его ух) и тд и тп. А программисты, это профессия "не знать". Бросают тебя на проект, а ты в тех технологиях ни в зуб ногой. А таски делать надо. И что ты будешь делать? Разбираться и делать таски. Причем на разбираться не будет время читать книжечки. Максимум на что хватит время это короткие видосики, статьи и туториалы. Меня коробит от одного упоминания на джава раше "решил с первой попытки!", потом эти люди будут страдать. Чем больше "провальных" попыток, тем больше информации о ситуации и обратной связи, ага, так не работает, и так не работает. Это уже информация конкретная, отправная точка с которой можно начать раскручивать маховик поиска решения. Поэтому наиболее существенная разница между программистом с опытом и начинающим - это то, что программист с опытом ПРИВЫК находится в состоянии неизвестности. Для него это НЕ является дискомфортным состоянием. Да я не знаю момент А или Б. Ну и что? Что я должен сделать, выучить, чтобы разобраться с этим вопросом. В стандартной библиотеке джавы 4500 классов. Некоторые до 8-10 тысяч строк. Версий джавы - 14 штук, выходит каждые полгода. Огромезная экосистема - сотни, тысячи фреймворков, технологий, это миллионы строк кода, постоянные обновления по версиям, которые конфликтуют между собой. То добавляют функционал, то удаляют, то меняют. Кто это вообще может "знать"? Это невозможно знать. Все знать. Система работает следующим образом: - крепкая база, которая дает понимание на определенном уровне, - навыки решения задач: умение эффективно гуглить, знать различные методики и подходы к решению задач, к чтению условий, это все навыки, приобретаемые в следствие опыта и имея это можно прийти к решению. Использовать одни знания для получения других знаний. Поэтому должно быть три вещи - теоретическая база, практический опыт, умение фокусироваться на результате/конкретике. Мы решаем задачу. Не поняли КОНКРЕТНЫЙ момент. Загуглили 10 мин, почитали статью, что-то отложилось, поставили галку пошли дальше. Если не понятно ничего, то нужно уметь разложить на конкретные составные и дальше гугль+статья/стековерфлоу. Здесь активно нужно использовать принцип "поедания слона по кусочкам" https://www.psychologos.ru/articles/view/kak-sest-slona Джава раш дает базу по джава кору. Теоретическую и практическую. Стажировка джава раша укрепляет практические навыки и формирует навыки, необходимые для работы. На выходе будет база + практика. Чтобы формировать эффективно практические навыки, нужно формировать привычку фокусироваться на результате. А не на своих эмоциях: -друг мой горацио, ответь ты мне, а понял ли я эту тему, или не понял, понять, или не понять, вот в чем вопрос.. и прочая высокая поэзия. Также, потихоньку нужно осознавать и брать на себя ответственность и не перекладывать ответственность за наши трудности на других: -Это все валидатор! Если бы не он, ух бы я, это все плохие условия, плохие задачи, плохой валидатор, все плохое, только я один хороший! Это на самом деле роскошь. Роскошь, когда иметь столько времени, чтобы тратить на абстрактные рассуждения и обвинять всех вокруг (поскольку этот процесс, тоже занимает время). Я всегда повторяю , "глубокое понимание" для программиста это роскошь. Есть время читать книги, проходить еще 100500 курсов и тд, ну классно, но это роскошь. На практике, всегда приходится чем-то жертвовать, столько всего хотелось бы изучить, но есть рабочие задачи, отнимающие время, есть семья, а к этому всему еще и постоянно самообучаться надо, приходится искать баланс. И чем-то жертвовать, например с 10 интересных тем для самообучения, выбрать одну-две, в которые углубиться.Проработать их, а потом еще 1-2, и так итеративно. Программист это инженер, а для инженера первично предоставление решения. Если мы сдаем авто на СТО, к примеру у меня проблемы с топливным фильтром, я хочу забрать автомобиль исправный, который не будет глохнуть на каждом подъеме. И мне как клиенту, абсолютно ПО БАРАБАНУ, понял ли автослесарь-механик проблему или нет. Если он решит проблему, нормально решит, а не так, что я приеду снова, меня ВСЕ устраивает. Про это никогда не нужно забывать. ПРОГРАММИСТ ЭТО СПЕЦИАЛИСТ, КОТОРЫЙ ПРЕДОСТАВЛЯЕТ ТЕХНИЧЕСКОЕ РЕШЕНИЕ, КОТОРОЕ РЕШАЕТ КОНКРЕТНУЮ ПРОБЛЕМУ КЛИЕНТА. Это не лектор в ВУЗе, который на конференции должен показать всю свою теоретическую мощь. Да. Должно быть понимание. Должна быть база, должна быть теория. Ведь профессионал должен предоставить качественное решение, а для этого нужно иметь и багаж знаний и практики, но это все должно быть в комплексе и гармонии, должен быть баланс, определенный уровень понимания и практических навыков. Но свитчерам особенно тяжело уловить этот баланс, что задача программиста как математический пример. Наивысшую ценность имеет решение. Все крутится вокруг правильного решения. В идеале, корректного с технической точки зрения и продуманного. У студентов профильных вузов это понимание обычно без проблем за 5 лет обучения, у них сил не остается после бессонных ночей на размышления что и как они поняли. Лишь бы лабу сдать, сессию закрыть. Свитчеры же этот путь проходят более сжато и часто не имеют ориентиров, какие критерии качественного кода, какие приоритеты. Частая ловушка на этом этапе, свитчеры сами себе придумывают уровень понимания, что они, изучая джаву без года три недели, должны разбираться как просветленные, и если они этому уровню не соответствуют, то расстраиваются, упадок сил и привет прокрастинация. Проще говоря, сам поставил для себя завышенную планку, сам не достиг, сам упал в депрессию. В высоких планках ничего плохого нет, если это стимулирует идти вперед. Если же это лишает сил и вводит в уныние - нужно менять подход. Здесь и возникают типичные проблемы "нам это не объясняли, чего нас спрашивают" (школьный подход, не инженерный), "лекций недостаточно или мало или они не такие" и тд. Хотя нужно уметь искать информацию. Всем не объясняли, но одни ищут решения и находят, другие рассуждают и жалуются. Программист на работе: 30-40% читает код, вникает в суть вопроса 40-50% гуглит, ищет инфу, обучается, устраняет ПРОБЕЛЫ в знаниях 10-20% пишет код. Если мало теории - нужно ее добирать. Не нужно ждать, пока прилетит мама-аист и червячка в открытый рот бросит. Под каждой лекцией тонны материалов - ссылки, статьи, разъяснения и тд. Непонятно как решить задачу - нужно спрашивать. Есть раздел Помощь. Сколько нужно столько и спрашивайте. Не отвечают - поднимайте вопрос, задавайте его столько раз, пока не получите ответ. Не нужно рассматривать джава раш как школу, как пишут некоторые "я заплатил деньги, ну давайте, учите меня", а сами сложили руки на груди, и с ухмылкой выстроили все блоки и защиты, чтобы ни одно знания к ним в голову не попало. Да, нужно иметь свою точку зрения, уметь ее защитить но при этом и быть открытым новым знаниям. Ролевые игры Есть такой прием, может музыканты слышали, это вжиться в роль. По другому начинаешь учиться и работать над собой. Я советую попробовать рассмотреть джава раш как работу, как-будто взяли на работу программистом с нуля и сказали, что помогут всему обучить, оказав доверие. И начали бросать небольшие задачки от легкого к сложному (от 0 уровня к 40). При этом тебе дают основные необходимые знания, которых часто может быть недостаточно и это нормально, поскольку невозможно для 2-х миллионов человек дать то, что гарантированно хватит каждому, ведь все мы разные с разным багажом. При этом нет ответственности и дедлайнов. Но есть возможность круглосуточно получить Помощь в соответствующем разделе. Поэтому не нужно считать себя учеником и делать себе скидки в том плане, что раз я ученик, то можно и не напрягаться, давайте там, учите меня, что-то непонятно, ну что я сделаю, задача такая кривая и тд. Как только мы начинаем писать код, пусть самый простой - мы программисты. Какие - другой вопрос 😀 Но нужно писать код. Нужно решать задачки. Двигаться от одной задачи к задаче. От решения к решению. Заполнять свои пробелы , для этого нужно уметь их вычленить и за разумное время почитать что-то или обработать материал. Если задача никак не дается, начинает прокрастинация развиваться, всегда есть опция ее пропустить и оставить на потом. Но самое главное - идти вперед, повышать свой технический уровень, приобретать новые знания, а общая картинка обязательно сложится, кода наступит нужное время