JavaRush/Java блог/Архив info.javarush/Советы для всех новичков и немного своей истории
kolust
40 уровень

Советы для всех новичков и немного своей истории

Статья из группы Архив info.javarush
участников
Всем привет.Сразу хочу поблагодарить huberta и его комманду за замечательный ресурс- огромное вам спасибо,вы дете знания и главное опыт всем пользователям вашего ресурса и главное возможность протоптать себе дорогу в светлое будущее!!! Немного о себе. Всегда любил математику и логику, хотел научится программировать,но не въезжал со старта в принципы и методы этого дела с помощью литературы, так как сразу в голове при прочтении каждой следующей страницы появлясось сколько непонятностей и вопросов,что книга улетала далеко на полку.Решил искать в инете какие-то интерактивные курсы с наглядными примерами и наткнулся на JavaRush, и втянуло так... За несколько первых лекций сразу понял,что к чему,все мысли были заняты поиском решения задачи,это как наркотик.Пришел на JavaRush полным "0" прошлим летом, а сейчас я уже на 34 уровне.На собеседования еще не хожу,потому что понимаю что есть еще пробелы в знаниях,пойду когда закончу все уровни и почитаю еще немного литературы. И так,хочу дать немного советов новичкам,может кому - то поможет и кто - то не будет повторять моих ошибок.Все написаное ниже - мой личный опыт,как абсолютно полного новичка в программировании: 1.Все мы хотим учится и при этом ничего не платить,таков уж наш менталитет.Первые уроки бесплатные и кого сразу не втянуло- могу сказать,что программирование вряд ли для вас!И так, я ,как наверное и многие,прошел бесплатные уровни и остснавливатся не захотел.Денег как всегда жалко и я воспользовался 5 приглашенными друзьями,сам за ник под их логинами дошел до третего уровня и получил дополнительную подписку на месяц,так делал 2 или 3 раза(hubert прости).Сразу отмечу,что вначале задания короткие и легкие,начинаеш думать,что за пару месяцев осилиш весь курс!Но это не так!!!Дальше задания большие и сложные,для некоторых решение выносится в голове неделями,так что месяц бесплатной подписки истекает очень быстро. Вот и я взял себе премиум подписку - И НИ КАПЕЛЬКИ НЕ ЖАЛЕЮ!!!Друзья -не тратте своего времени зря,если хотите учится,берите премиум подписку(это не реклама,все равно вы сами к этому прийдете) это секономит вам кучу времени и сил и нервов!!!!!!! 2.Мое мнение,что все надо изучать с самого происхождения,поэтому я начал свой путь программиста с очень замечательной книги "Чарльз Петцольд - К.О.Д.".В ней описывается истори появления на свет вычислительных машин,основы их работы,как они считают,вычисляют,как работает память,единици измерения информации,кодировки и много других полезных вещей.Книга читается очень легко и очень понятна,рекомендую всем.Из литературы по программированию не советую новичкам читать "Филоссофия ява"(для новичка она вам даст больше вопросов чем ответов,а когда вы приобретете немного опыта и поймете суть,конечно же ее нужно почитать).Для старта читайте лекции на курсе и дополнительные материалы по лекциям и смотрите примеры на форумах. 3.Сразу зарегистрируйтесь на http://info.javarush.ru и help.javarush.ru.Там найдете большинство ответов по решению задач на курсе. Если прошли несколько уровней и поняли как решить определенные задачи то не ленитесь и помогите решить их тем,кто просит помощи в сообществе.Помогая другим вы лучше закрепите пройденный материал и в будущем кто - то поможет вам(не сомневайтесь,что помощь вам понадобится).Если не можете пройти задание не стои сразу создавать новые топики на форуме.Воспользуйтесь поиском и в 99% вы найдете уже готовые ответы на ваши вопросы по задачам,к тому же ,когда вы читаете обсуждение задач,кто то можеть дать вариант решения попроще или ссылку на поллезный материал. 4.И так вы прошли первые уровни ,где задачи решаются в браузере и пора установить IDEA. В сообществе есть топики по установке и настройке IDEA,прочитайте их все перед тем как начнете решать задачи в среде разработки,так как вы сразу настроите IDEA под себя и будете хорошо ориентироваться в настройках и использовании,это секономит кучу времени,которое вы посвятите решению задач! В идеа есть быстрые клавиши выучите основные. некоторые советы по ускорению написания кода: 1.Если надо вывести что то в консоль печатаете sout и жмете tab - появится System.out.println(); 2. psvm и жмете tab - появится public static void main(String args){}; 3. alt + ins - вставка конструкторов,геттеров,сеттеров и т.п. 4.Бывает запулкаете код на выполнение а выполняется код предыдущей задачи - в нажной для запуска задаче жмете правую миши и запускаете из контекстного меню. 5. String args - это массив параметров(строк) которые передаются программе в начале ее работы.С этого массива вы извлекаете нужные вам строки и оперируете ними в main.чтобы передать программе список строк жмете Run -> Edit configurations и в строке Program arguments вводите строки через " ".Чтобы использовать их содержимое args[0]- 1-ая строка,args[1]- 2-ая ...Напр.System.out.println(args[0]) - выводит первый параметр.Короче с args работаете как с массивом(Когда попалась первая задача с парамет- рами я нифига не понимал что это,думаю многим поможет) 6.@Override - обозначает переопределенный метод 7.Прочитайте про рефакторинг 5.В процессе обучения будете узнавать много новых классов.Если вы используете класс впервые то рекомендую найти в гугле явадоки(описание классов).Обращаем внимание на конструкторы, методы(особенно их принимаемые значения и главное какой тип они возвращают).Новые классы сарайтесь сразу освоить-почитайтеБгде они применяются,выучите методы.Иногда простое описание класса не дает полного представления о нем- я рекомендую посмотреть исходный код класса,это временами помогает понать как работает его метод и как он устроен.В исходном коде,код отрефакторин специалистами,написан кратко и ясно,читая исходники вы научитесь составлять красивый читабельный код и меньше времени будете тратить на написание своего.И так,где же взять исходники?Основные класс вшиты в идеа.В IDEA слева,где папки проекта,вверху есть кнопка со стрелкой Project,нажмите на стрелку и виберите Packages, внизу есть папка Libraries там в подпапках вы найдете исходники стандартных классов. 6.По идеа пока все,остальное осваивайте сами,я рассказал о том что используется чаще всего(Если бы вы знали сколько раз я написал public static void main(String args){}... пока узнал о psvm + tab). Теперь по задачам: 1.Внимательно читайте условие!!!!Называйте поля,классы и методы точно так,как вас просят,даже если программа работает правильно,валидатор не подтвердит решение если хать одна буква отличается! Внимательно следим за пробелами и их колличеством. В задачах на потоки используем BufferedReader. 2.Освойте цикл for-each - с ним код лаконичней 3.Обрабатывайте исключения и проверяйте ссылки на null!!! 4.После того как решили задачу,зайдите в сообщество и посмотрите логику решения других.Бывает люди код в несколько строк заменяют мемуарами 5.Принимайте опыт других и передавайте свой 6.Если задача все же для вас трудна и вы решили создать свой топик - выкладывайте условие задачи,свой читабельно оформленный код,желательно с комментариями, и суть проблемы.ЗАПОМНИТЕ каракули читать никто не будет и вам не помогут. В завершение скажу - Учится никогда не поздно!Я создал этото топик чтобы помочь начинающим так как мне помочь не было кому.Для кого то мои советы покажутся смешными и кто то скажет "Как этого можна было не знать" ,но все таки все написаное это мой личный опыт,мои ошибки которые я не хочу чтобы кто то повторял. Не судите строго за грамматику,писал на скорую руку. P.S. Учитесь,учитесь и еще раз учитесь!!!Ваше будущее в ваших руках!!!
Комментарии (12)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
velobaduk
Уровень 22
3 сентября 2015, 12:59
Лозунг «Учиться, учиться и учиться» актуален во все времена!
Спасибо за пост.
Diana
Уровень 41
17 февраля 2015, 01:33
Очень много полезной информации об использовании IntelliJ IDEA есть в специальном блоге на этом сайте. Не поленитесь, пойдите и почитайте.
antonk
Уровень 27
14 февраля 2015, 21:10
по поводу работы в IDEA я бы добавил ещё пару сочетаний клавиш которыми часто пользуюсь:
iter+Tab — вставка цикла for-each
fori+Tab — вставка цикла for
ctrl+пробел — автоматическая вставка (названия, класса, да много всего)
ctrl+d — дублировать текущую строку
kolust
Уровень 40
14 февраля 2015, 22:31
А вобще каждый может просмотреть сокращения для быстрого ввода и настроить их зайдя в Settings->ide Settings-> Live Templates
Sdu
Уровень 17
13 февраля 2015, 19:15
Хотелось бы от себя добавить:
1) В качестве первой книги по Java я бы посоветовал «Head first Java» (Кэти Сьерра, Берт Бейтс). Для затравки. В легкой доступной форме, буквально на пальцах, разъясняются все основные моменты: переменные, передача по ссылке и по значению, память, стэк-трэйс, классы и многое многое другое. Повторюсь: действительно просто и доходчиво.

2)В чем заключается реальная ценность JavaRush. Можно перечитать огромную кучу различных учебников, переработать все приложенные примеры кода, но не приблизится к практическому программированию ни на каплю, потому что все предложенные примеры сугубо теоретические, и как данные вещи применять на практике новичку совершенно непонятно. Если Вы ни разу не видели как и для чего в программе используется синглтон, сколько бы Вы ни читали его описания только от этого будет мало. Ресурс же шаг за шагом формирует навык практического программирования, с учетом полученных теоретических знаний.
KapChook
Уровень 19
13 февраля 2015, 19:40
Java in a Nutshell ещё хорошая, в октябре как раз вышло 6 издание, в котором также рассматриваются нововведения Java 1.7 и 1.8
gnev
Уровень 24
14 февраля 2015, 14:53
Действительно упомянутая книга очень доступна (в плане понимания). Недавно проходил очные курсы в «Luxoft», огромное количество материала было использовано именно из нее.
KapChook
Уровень 19
13 февраля 2015, 14:33
4.Бывает запулкаете код на выполнение а выполняется код предыдущей задачи — в нажной для запуска
задаче жмете правую миши и запускаете из контекстного меню.
ctrl + shift + F10 запускает текущий код
RabenokDmitry
Уровень 21
13 февраля 2015, 09:33
О многом из написанного уже узнал, но узнал и много полезного! Спасибо за информацию! Посоветовал бы уже ходить на собеседования. Мне кажется, что какими бы знаниями ты не обладал, опыт прохождения собеседования (неважно успешно или нет) очень важен. Ты поймешь, как строится диалог, что в основном спрашивают и т.д. Я ходил пока только на два, но точно уяснил, что надо знать чем ArrayList отличается от LinkedList:)
hubert
Уровень 41
13 февраля 2015, 11:06
Открою большую тайну:
зачастую собеседования приходится проводить техническим специалистам, которы этим собеседованием отрывают от более интересных дел. Им и задачи надо делать, и сроки горят, а тут надо сидеть с какими-то нубами, еще и не с одним, и тратить много часов непонятно на что.
Поэтому и к вопросам, обычно, подход такой: «Не хочу думать еще и над вопросами, лучше в инете гляну что спрашивают». Оттуда и вопросы на каждом собес вида «ArrayList vs LinkedList, Interface vs Abstract Class».
Поэтому: если вы изучили и поняли хотя бы несоклько обширных статей с вопросами и ответами на Java собеседование (их можно найти даже на этом сайте, и предостаточно, в блоге «Переводы»), то с большой вероятностью вы уже знаете, что будут спрашивать на 90% собеседований.
Gradus
Уровень 27
13 февраля 2015, 11:42
Подготовка к собеседованию:
kolust
Уровень 40
14 февраля 2015, 20:04
hubert и все желающие извините что пишу не в тему
очень прошу помощи(никто не отзывается), вот ссылка
info.javarush.ru/kolust/2015/02/11/Редко-нужна-помощь-но-в-этот-раз-не-помешает-.html