Здравствуйте, рублю с плеча - в последнее время меня мучает чувство, что я не правильно развиваюсь. Дело в том, что я устроился junior java dev, с минимально возможным багажом знаний по программированию, но я отлично пользуюсь гуглом и не боюсь английский язык. Мне дают задачи, с помощью гугла я их решают, на фоне других джуниоров, вроде, быстро(хотя мне кажется и это очень долго), я не ленюсь, но времени все равно не хватает и в итоге получается, что я не запоминаю, как я что-то реализовал, то есть, что я сделал я помню, а в новом проекте, опять же без гугла, я не смогу это сделать. Также книги, я прочитал что-то про, к примеру, java ee, да я знаю про валидацию, аспекты, но чтобы реализовать что-то конкретное, мне нужно снова обращаться в доки. И так любая инфа, читаю(это даже захватывает), но применить не могу. Вопрос таков, не стоит обращать на это внимание и жить копипастом, пока не накопиться критическая масса или нудно пережевывать каждый кусочек информации? Спасибо.
Боевая практика бесценна, но не полна.
Программирование по сути - это формальный подход о том, как однозначно выразить картину и процесс имеющимися категориями и методами (что требует определённой эрудиции), а обычно это включает так же формальные подходы по поиску категорий и методов (так как эрудиция не может быть абсолютной).
Боевая практика без такой теории является патчеписанием, что ценно в данную секунду, но не перспективно. Когда-то общее количество перейдёт в качество, и процент скопипащеных решений будет уменьшаться, что тоже важно.
Старайтесь при случае мыслить абстрактно - анализировать практически всё: водопровод, дорожное движение, бизнес процессы, любовь, звёзды - практически всё. Почитайте книжки по алгоритмам, по культуре программирования.
"процент скопипащеных решений будет уменьшаться" - мне кажется, что со временем процент скопипащенных решений должен только увеличиваться, т.к. понимать написанный код всё-таки быстрее, чем писать свой, нужно только найти его. Но это только со временем.
Делайте что-нибудь еще параллельно, дома. Например напишите простенькую змейку для андройда. Больше реальных задач - больше опыта. Рано или поздно это сработает.
Мид - это практически тот же джун, но с опытом работы.
То есть решает типовые задачи быстрее джуна за счет опыта.
Сеньор - тот, кто знает, на сеньора нужно учить много, практиковать много и так далее.
Если успеваешь делать текучку - хорошо. Почитывай книги. Походи на курсы повышения квалификации - при крупной компании часто бывают бесплатные. С наличием реальных задач, курсы воспринимаются лучше и выходят полезнее, чем если не знать куда применять то или иное.
Тебе не куда деваться - ты же должен выполнять на работе текущие задачи. Поэтому работай, пиши, учись. На досуге читай книги по яве, алгоритмам. Со временем все будет!
В принципе ты все правильно делаешь, но ты сильно торопишься.
Программирование слишком сложная штука чтобы помнить все, главное не помнить как что реализовать (но это тоже не помешает), а знать где это описано.
Запоминай (записывай) что и где ты нашел в гугле и как ты это использовал. Очень подробно комментируй код который ты пишешь
rinatoptimus: потому что если нужно писать подробные комментарии, то наиболее вероятно у вас проблема с именованием переменных/методов или делаете нелогичные и странные вещи. К тому же у многих любителей подробно комментировать код имеется проблема с поддержанием комментариев в актуальном состоянии. В итоге комментарии будут только мешать пониманию кода. И да такое тоже встречается: imgur.com/MT3KFXz А комментарии ради комментариев ещё ужаснее imgur.com/aWArFdm
ManWithBear: Ну это уже идиотизм. Хороший программист в комментариях описывает алгоритм работы кода. Если все сделано верно то алгоритм от реализации не зависит. Т.е. Код может быть изменен, а его смысл останется неизменным
Комменты нужно писать. Но не нужно писать комменты типа "Создаю переменную. Если переменная больше нуля (и этот коммент находится над условием, которое само за себя все говорит). Создаю цикл.". При хорошей архитектуре, можно спокойно обходится обычным документированием методов и классов (посмотрите код Django). Для начинающих очень хорошей практикой будет документирование всего и вся. Создаете переменную, пишите коммент "Создаю строковую переменную которая будет содержать сообщение", пишите условие, описывайте что да почему. Так будет легче самому разобраться в этом. Правда в продакшн совать это не стоит, но для себя полезно. Еще очень круто брать исходник хорошего чужого кода из github, удалять все комменты и полностью описывать код. Там можно хорошо научиться читать чужие исходники и понимать как все работает.
Ты все правильно делаешь. Все программисты пользуются гуглом. Важно не то, что ты не знаешь(не помнишь), а то, что ты знаешь КАК искать и можешь понимать, что тебе этот самый гугл предлагает. Программирование - это не о конкретных технологиях, это о подходах и предметной области. Технологии забываются, если ими не пользуешься, и запоминаются рано или поздно в противном случае)
Сосредоточиться по началу надо на современном ООП, GoF, Фаулере, архитектуре, рефакторинге.
Что касается совета комментировать код - это плохой совет. Код должен сам говорить за себя, и в этом кстати тоже заключается искусство писать хороший код.