1. Начните действовать.
Тут все просто и всем это известно. Не нужно сидеть на месте и крутить в голове мысли, начинать или не начинать. Всё приходит в действии, начнете действовать — появится результат (положительный или отрицательный — не важно). Не будете действовать — так и останетесь в роли отстающего.
2. Изучайте код других программистов
Общайтесь с другими программистами, пробуйте и читайте их программы. Зачастую это важнее, чем чтение книги в одиночку. С друзьями или коллективом, объединенным общими целями, можно быстрее достигнуть желаемого. Если вы все вместе будете изучать программирование, делиться друг с другом мыслями – вы ускорите свое изучение во много раз.
Изучайте программы других программистов, находите в них ошибки или учитесь. Думайте как их можно усовершенствовать. Например, вы решили изучить код, написанный опытным, по вашему мнению, программистом. Поначалу вы можете ничего не понять. Через некоторое время вы уже понимаете, как этот код работает, ещё немного — уже находите в нем ошибки, ещё через некоторое время – совершенствуете его.
Так происходит переход от новичка к профессионалу. 90% программистов повышают свои знания за счет чтения кода более опытных программистов.
3. Не перегружайте себя информацией.
Нереализованная информация давит на вас. У меня в свое время было 30 гб скаченной информации по Java, из которой я изучил ок.1%. Когда я удалил все — на душе стало так хорошо, как будто груз сбросил с плеч. Если вы изучаете рассылки авторов, не нужно подписываться на все рассылки подряд – большинство из них будут сразу удаляться в корзину.
Желательно сначала подписаться на несколько рассылок, но именно по вашей теме, которые вы изучаете в данный момент. Прозапас не нужно. Держите на своем компьютере только то, что изучаете в данный момент — не более. От остального хлама избавляйтесь. Наверно замечали, как хорошо работается, когда очистишь свой рабочий стол (виртуальный или реальный) от мусора, разложишь все по своим местам, оставишь только одну книгу или документ перед собой — тогда все ваши мысли будут заняты только этим документом.
Также во время написания кода или изучения материалов отключайте все свои мессенджеры (ICQ, magent и пр.), т.к. они невероятно сильно отвлекают. Бывает, после ответа на вопрос «Как дела? Что делаешь?» не можешь вспомнить на чем остановился и мысль потеряна.
4. Почаще ходите на собеседования.
Если вы боитесь пойти на собеседование только из-за того, что у вас как вы думаете недостаточно знаний — вы никогда не устроитесь на работу. Потому что всегда найдется вопрос на собеседовании, на который вы не сможете ответить. Так ведь это наоборот хорошо — вы узнали свое слабое место и следующий раз уже не допустите промашку в этом вопросе.
Так, через 10-20 собеседований у вас не останется тем, которые вы не изучили хотя бы на начальном уровне, достаточном для прохождения собеседования. А дальше, устроясь на работу, вы будете оттачивать свои навыки на практике. Предварительно можно в интернете найти список наиболее частых вопросов по Java. Найти на них ответы, изучить темы по этим вопросам.
А если новые знания немного подпереть практикой — работа сама вас найдет, нужно будет только выбрать место получше.
5. Изучайте Java разумно
Вам необходимо найти золотую середину между самостоятельным “копанием” и консультацией с более опытными специалистами, и не впадать в крайности. Начинайте свое обучение с видео материалов, например на youtube.
Новичками видео воспринимается лучше всего, потому нет возможности что-то сделать неправильно, ошибиться, а это важно на начальном этапе. Ищите видео, например, по тегу «Java для начинающих», сортируйте видео по рейтингу или кол-ву просмотров. Если чувствуете, что не понимаете какой-либо материал — не нужно лбом пробивать стену и пытаться его понять во что бы то ни стало.
Не нужно застревать на одном месте. Попробуйте поискать его эквивалент в видео уроках, презентациях, готовых программных проектах, т.е. изучить его в других типах мультимедиа.
Также обратите внимание на скорость печатания на клавиатуре. Многие не придают этому навыку большое значение. И напрасно. Учитесь печатать несмотря, отличная программа “соло на клавиатуре”. Скорость в изучении увеличивается. Когда печатаешь автоматически, голова не отвлекается, руки сами все делают, а голова не прерывает процесс мышления.
6. Помогайте людям, которым можете помочь
Для повышения знаний очень полезно пытаться отвечать на вопросы участников на форумах. Пытаясь помочь решить чью-то проблему — вы во-первых повышаете свой опыт, во вторых запускаете ментальный закон — чем больше отдашь, тем больше получишь (Чем больше поможешь другим людям — тем больше помогут тебе в будущем).
Ещё способ вырасти – берете любые задачки из интернета (можно поискать соответствующие ресурсы) решаете их по книгам, сами, с чьей-то помощью, потом выставляете на форумах и ждете, что люди скажут. Наиболее опытные программисты укажут на ваши недочеты, наименее опытные будут учиться на вашем коде.
7. Заведите свой багтрекер.
Багтрекер — это система отслеживания ошибок, наличие которой является правилом хорошего тона при разработке большинства систем. Одна из функций — она позволяет копить опыт решенных проблем с целью их не повторения в будущем. Если вы не поленитесь и заведете у себя на локальном компьютере свой багтрекер, куда будет вносить все свои ошибки и их решения — вы быстро начнете прогрессировать.
Когда вы описываете свою проблему и заносите ее куда-либо вместе с решением — в будущем мала вероятность, что вы совершите эту ошибку ещё раз. Либо вы с ней быстро справитесь. Следующий раз, когда у вас возникнет ошибка, когда-то решенная вами – вы найдете ее в своем багтрекере и не будете заново вспоминать и тратить драгоценное время, как же вы тот раз решили эту проблему.
8. Изучайте Java последовательно
Не нужно забегать вперед и пытаться начинать изучать, например, потоки в Java, когда вы даже не можете вручную скомпилировать класс и запустить его. Все надо делать последовательно. Вы наверно заметили, почти все книги по Java имеют схожее содержание книги. Т.е. краткое название и последовательность глав книги.
Это сделано неспроста, потому что авторы стараются обучать от простого к сложному. Поэтому не надо изобретать велосипед и думать, что вы умнее всех и можно изучать с середины или конца. Содержание — ваш ориентир в последовательном изучении. Не следует переходить на другие темы или уроки, если вы не освоили предыдущий материал.
Например, многие книги предлагают сначала теоретически понять, что такое объект, и только потом приступают к изучению самого языка, к его синтаксису и пр. На мой взгляд — отличная методика, потому что сразу начиная программировать на уровне объектов — вы закладываете прочный фундамент для развития своих навыков.
9. Научитесь правильно находить информацию
Не нужно по любому поводу бежать на форум и задавать вопрос. Сначала надо поискать самому. Ищете через поисковики google.com или yandex.ru. В большинстве случаях ваша проблема уже кем-то решена, нужно найти тех, кто ее решил. Пользуйтесь расширенными возможностями поиска google.
Правильно построенный поисковый запрос существенно увеличит скорость нахождения решения проблемы. (подробнее о расширенном поиске вы можете узнать, если например введете запрос “скрытые функции поиска google” в поисковике google и пройдетесь по найденным ссылкам) Также можно искать на английском языке, у кого с ним хорошо. Правило — чем больше сил вложил в поиск проблемы, тем лучше ты запомнишь решение этой проблемы.
Если вы часто сидите на форумах, то наверно заметили, что более опытные программисты не любят отвечать на вопросы прямо. Они скорее укажут вам направление, чтобы дальше вы сами разобрались. Поэтому не нужно просить решить вашу проблему или написать за вас какой-либо код. Просите указать направление, куда вам копать, вам его с радостью покажут. Часто конкретный ответ на вопрос требует много времени, которого у профессионалов немного, а просто показать пальцем, куда нужно идти — это для него легко.
10. Не уходите с головой в изучение
Учите Java быстро и успевайте делать остальные свои дела. Не надо однобоко подходить к изучению, важны и другие сферы жизни (как и в любом деле). Подтягивайте другие сферы жизни, и тогда карьера тоже подтянется, т.к. все находится в гармонии.
Поэтому не надо бросаться в крайность: окунаться с головой в изучение Java, позабыв всех и вся. Действуйте легко и непринужденно, не забывая о других своих обязанностях, но в то же время дисциплинированно и обдуманно. Постепенно, шаг за шагом вы будете увеличивать свои знания и повышать свой уровень. Если развивать только программирование — это как качать только одну ногу.
Представьте себя хилым с одной здоровой ногой, которая наоборот теперь мешает ходить и вообще выглядите вы как урод какой-то. А если вы гармонично качается все мышцы (развиваетесь в разных сферах жизни) вы будете полноценным качком.