Как становятся программистами?
================================

 Здравствуйте, рублю с плеча - в последнее время меня мучает чувство, что я не правильно развиваюсь. Дело в том, что я устроился junior java dev, с минимально возможным багажом знаний по программированию, но я отлично пользуюсь гуглом и не боюсь английский язык. Мне дают задачи, с помощью гугла я их решают, на фоне других джуниоров, вроде, быстро(хотя мне кажется и это очень долго), я не ленюсь, но времени все равно не хватает и в итоге получается, что я не запоминаю, как я что-то реализовал, то есть, что я сделал я помню, а в новом проекте, опять же без гугла, я не смогу это сделать. Также книги, я прочитал что-то про, к примеру, java ee, да я знаю про валидацию, аспекты, но чтобы реализовать что-то конкретное, мне нужно снова обращаться в доки. И так любая инфа, читаю(это даже захватывает), но применить не могу. Вопрос таков, не стоит обращать на это внимание и жить копипастом, пока не накопиться критическая масса или нудно пережевывать каждый кусочек информации? Спасибо. 

 Боевая практика бесценна, но не полна.  

Программирование по сути - это формальный подход о том, как однозначно выразить картину и процесс имеющимися категориями и методами (что требует определённой эрудиции), а обычно это включает так же формальные подходы по поиску категорий и методов (так как эрудиция не может быть абсолютной).  

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

Старайтесь при случае мыслить абстрактно - анализировать практически всё: водопровод, дорожное движение, бизнес процессы, любовь, звёзды - практически всё. Почитайте книжки по алгоритмам, по культуре программирования. 

 Не знаю. Меня укусил какой-то бородатый дядька, а дальше всё само пошло. 

 Делайте что-нибудь еще параллельно, дома. Например напишите простенькую змейку для андройда. Больше реальных задач - больше опыта. Рано или поздно это сработает. 

 Мид - это практически тот же джун, но с опытом работы.  

То есть решает типовые задачи быстрее джуна за счет опыта.  
  

Сеньор - тот, кто знает, на сеньора нужно учить много, практиковать много и так далее.  
  

Если успеваешь делать текучку - хорошо. Почитывай книги. Походи на курсы повышения квалификации - при крупной компании часто бывают бесплатные. С наличием реальных задач, курсы воспринимаются лучше и выходят полезнее, чем если не знать куда применять то или иное. 

 Тебе не куда деваться - ты же должен выполнять на работе текущие задачи. Поэтому работай, пиши, учись. На досуге читай книги по яве, алгоритмам. Со временем все будет! 

 В принципе ты все правильно делаешь, но ты сильно торопишься.   

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

Запоминай (записывай) что и где ты нашел в гугле и как ты это использовал. Очень подробно комментируй код который ты пишешь 

 Ты все правильно делаешь. Все программисты пользуются гуглом. Важно не то, что ты не знаешь(не помнишь), а то, что ты знаешь КАК искать и можешь понимать, что тебе этот самый гугл предлагает. Программирование - это не о конкретных технологиях, это о подходах и предметной области. Технологии забываются, если ими не пользуешься, и запоминаются рано или поздно в противном случае)  

Сосредоточиться по началу надо на современном ООП, GoF, Фаулере, архитектуре, рефакторинге.  
  

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