Profile

Cover photo
JavaRush
1,214 followers|359,010 views
AboutPostsPhotosVideos

Stream

JavaRush

Shared publicly  - 
 
Как стать программистом (часть 1)

Итак, ты испытываешь острое желание стать программистом. Куда теперь бежать?

На этот вопрос существует множество ответов в сети. Некогда мы уже писали статью об этом. Тем не менее, судя по вопросам, которые нам задают в социальных сетях, новички часто теряются в обилии информации и не знают, с чего конкретно начинать. В принципе, мы на JavaRush только тем и занимаемся, что помогаем ответить на этот вопрос. Однако для тех, кто совсем растерялся, мы решили составить приблизительный план действий.
Для начала определись с пулом технологий.
Выбери 2-3 основных источника знаний, а также с десяток дополнительных. Но не забывай «гуглить», если что-то не ясно.
Выбери среду разработки и установи на свою рабочую машину всё необходимое ПО.
Определись с тем, что еще учить и где черпать информацию.

А теперь обо всем по порядку.

Хочу освоить программирование с нуля. Что теперь?

Продолжение: http://goo.gl/Bgz0sG
 ·  Translate
Как стать программистом (часть 1). Итак, ты испытываешь острое желание стать программистом. Куда теперь бежать? На этот вопрос существует множество ответов в сети. Некогда
7
2
Add a comment...

JavaRush

Shared publicly  - 
 
Вопросы на собеседование Hibernate
Статьи
Hibernate
Данная статья является переводом и улучшением зарубежных статей (список ресурсов перечислен в конце статьи). Ответы на некоторые вопросы расширены, представлены ссылки на сторонние ресурсы которые содержат ответы которые могут возникнуть в процессе чтения.

1) Что такое Hibernate?

Это фреймворк для объектно-реляционного отображения сущностей в традиционные реляционные базу данных.
Основные возможности фреймворка:
1) Автоматическая генерация и обновление таблиц в базах данных;
2) Поскольку основные запросы к базе данных (сохранение, обновление, удаление и поиск) представлены как методы фрейморка, то значительно сокращается код, который пишется разработчиком;
3) Обеспечивает использование SQL подобного языка (HQL — hibernate query language). Запросы HQL могут быть записаны рядом объектами данных (POJO классы подготовленные для работы с базой данных).

2) Как Hibernate помогает в программировании?

Hibernate реализует ряд фичь которые значительно упрощают работу разработчика.
— Одной из таких фичь является то, что hibernate позволяет разработчику избежать написания большинства SQL запросов (они уже реализованы, вам надо просто использовать методы которые предоставляет фреймворк).
— Под бортом у Hibernate есть куча полезных инструментов которые значительно ускоряют работу приложения, самыми примечательными из них являются двухуровневое кэширования и тонкие настройки lazy и fetch изъятия.
— Сам генерирует таблицы в базу данных.

3) Способы конфигурации работы с Hibernate.

Существует четыре способа конфигурации работы с Hibernate:
— используя аннотации;
— hibernate.cfg.xml;
— hibernate.properties;
— persistence.xml.
Самый частый способ конфигурации: через аннотации и файл persistence.xml, что касается файлов hibernate.properties и hibernate.cfg.xml, то hibernate.cfg.xml главнее (если в приложение есть оба файла, то принимаются настройки из файла hibernate.cfg.xml). Конфигурация аннотациями, хоть и удобна, но не всегда возможна, к примеру, если для разных баз данных или для разных ситуаций вы хотите иметь разные конфигурацию сущностей, то следует использовать xml файлы конфигураций.

4) Какие ключевые интерфейсы использует Hibernate?

Существует пять ключевых интерфейсов которые используются в каждом приложении связанном с Hibernate:
— Session interface;
— SessionFactory interface;
— Configuration interface;
— Transaction interface;
— Query and Criteria interfaces.

5) Какая роль интерфейса Session в Hibernate?

Session — это основной интерфейс, который отвечает за связь с базой данных. Так же, он помогает создавать объекты запросов для получение персистентных объектов. (персистентный объект — объект который уже находится в базе данных; объект запроса — объект который получается когда мы получаем результат запроса в базу данных, именно с ним работает приложение). Обьект Session можно получить из SessionFactory:
Session session = sessionFactory.openSession();
Роль интерфейса Session:
— является оберткой для jdbc подключения к базе данных; (https://ru.wikipedia.org/wiki/Java_Database_Connectiv..)
— является фабрикой для транзакций (согласно официальной документации transaction — аllows the application to define units of work, что, по сути, означает что транзакция определяет границы операций связанных с базой данных).
— является хранителем обязательного кэша первого уровня.

6) Какая роль интерфейса SessionFactory в Hibernate?

Именно из объекта SessionFactory мы получаем объекты типа Session. На все приложение существует только одна SessionFactory и она инициализируеться вместе со стартом приложения. SessionFactory кэширует мета-дату и SQL запросы которые часто используются приложением во время работы. Так же оно кэширует информацию которая была получена в одной из транзакций и может быть использована и в других транзакциях.
Обьект SessionFactory можно получить следующим обращением:
SessionFactory sessionFactory = configuration.buildSessionFactory();

7) Какие типы коллекций представлены в Hibernate?

Bag, Set, List, Map, Array.

8) Что собой являет коллекция типа Bag и зачем она используется?

Своей реализации тип коллекции Bag очень напоминает Set, разница состоит в том, что Bag может хранить повторяющиеся значения. Bag хранит непроиндексированный список элементов. Большинство таблиц в базе данных имеют индексы отображающие положение элемента данных один относительно другого, данные индексы имеют представление в таблице в виде отдельной колонки. При объектно-реляционном маппинге, значения колонки индексов мапится на индекс в Array, на индекс в List или на key в Map. Если вам надо получить коллекцию объектов не содержащих данные индексы, то вы можете воспользоваться коллекциями типа Bag или Set (коллекции содержат данные в неотсортированном виде, но могут быть отсортированы согласно запросу).

9) Какая разница в работе методов load(); и get();?

Метод load(); обычно используется когда в не уверен что запрашиваемый объект уже находится в базе данных. Если объект не найден, то метод кидает исключение Если объект найден — метод возвращает прокси объект, который является ссылкой на объект находящийся в базе данных (запрос в базу данных еще не был осуществлен, своего рода lazy изъятие), непосредственный запрос к базе данных когда мы непосредственно обращаемся к необходимому объекту через прокси объект.
Метод get(); используется тогда, вы на 100 процентов не уверены есть ли запрашиваемый объект в базе данных. В случае обращение к несуществующему объекту, метод get(); вернет null. В случае нахождения объект, метод get(); вернет сам объект и запрос в базу данных будет произведен немедленно.

10) Что такое Lazy fetching(изъятие) в Hibernate?

Тип изьятия Lazy, в Hibernate, связан с листовыми(дочерними) сущностями и определяют политику совместного изъятия, если идет запрос на изъятие сущности родителя.
Простой пример:
Есть сущность Дом. Он хранит информацию о своем номере, улице, количество квартир и информацию о семьях которые живут в квартирах, эти семьи формируют дочернюю сущность относительно сущности Дом. Когда мы запрашиваем информацию о Доме, нам может быть совершенно ненужным знать информацию семьях которые в нем проживают, тут нам на помощь приходит lazy(ленивое) изъятие(fetching) которая позволяет сконфигурировать сущность Дом, чтобы информацию о семьях подавалась только по востребованию, это значительно облачает запрос и ускоряет работу приложения.

 ·  Translate
4
1
Add a comment...

JavaRush

Shared publicly  - 
 
Junior с 3 попыток

История моего обучения почти на 99% повторяет все ранее изложенные мемуары, постараюсь коротко.
Я учился в университете по специальности, которая подразумевает под собой IT-направление, но, увы, что касалось программирования, дальше «Hello World» дело не двигалось. Менялись языки, вместе с ними менялись преподаватели, а толку было мало.

Появлялись первые мысли: «А что же дальше?»
Началось все стандартно: товарищ показал ресурс с классными задачами и системой оценки этих задач, как вы уже догадались, это был тот самый JavaRush! Было это в 2014 году.

10 Уровней пролетели как секунда, нашлись деньги, появилась подписка. Следующие уровни шли тяжелее, так как затрагивали те области, по которым не ступал мой разум… Осилив n уровней после приобретения подписки уверенность подскочила до небес и толкнула меня создать резюме на небезызвестном сайте вакансий. В течение недели даже нашлась вакансия, под которую подпадали мои навыки программиста.

Первое собеседование прошло ужасно, и это, кстати, очень важный момент, в который нельзя опускать руки. Это собеседование дало мне пинок мотивации и следующие 2 месяца я занимался ежедневно по 6-8 часов. Но во мне таился страх завала следующего собеседования, и так и не дойдя до такового я потерял мотивацию, плюс добавились обстоятельства, которые забрали все свободное время, а подписка осталась пылиться…

Вторая попытка началась с того же вопроса: «А что же дальше?»
Тот, кто придумал фразу «повторение — мать учения» был чертовски прав! Вторая попытка шла в разы лучше первой, усвоенные знания хорошо закрепились и структурировались в сером веществе. Еще 2 или 3 месяца прошли в напряженном выкраивании времени для решения задач и чтения лекций, но подкралось одно очень суровое обстоятельство, имя которому — Диплом! Вторая попытка была похоронена вместе с первой, даже не добравшись до заветного собеседования…

Третья попытка началась с тревожного вопроса после защиты диплома: «И что теперь?»
Для третьей попытки требовалась новая тактика. Взяв пачку книг и видео курсов, я плотно уселся за занятия на ежедневной основе и уже через пару недель поднял все старые воспоминания даже подкрепив их новыми. Третья попытка дала мне возможность осмыслить почти каждый символ, литерал и строчку, используемые в коде. Через месяц после старта третьей попытки, я начал искать собеседования, но набор Junior'ов был очень скудный, а количество претендентов на одно место порой достигало 70 человек.

И наконец, в декабре 2015, после успешного выполнения тестового задания и прохождения собеседования в трудовой книжке появилась запись «младший программист». Сейчас заканчивается мой испытательный срок и вероятность трудоустройства на постоянной основе стремится к 100%.

Пожелания

Ребята, не стремитесь к космическому количеству решенных задач. Не решайте задачи для того, чтобы решить задачи! Вникайте в суть, задавайте вопросы, сомневайтесь. Смотрите шире. Да, JAVA очень нужна, но помимо JAVA нужно много знаний. Читайте про сети, web технологии, шаблоны проектирования и многое многое другое.

Традиционный список того, что нужно знать

Основы
Без основ никуда, если пару раз прочитать устройство HashMap, то скорее всего уже никогда не забудешь. В основы входят String, Collections API, Threads, I/O.Threads, I/O.
Debug
Обязательная вещь в больших Enterprise проектах.
ООП
Очень классно порешать тесты на QUIZFUL
Servlets
Так как Java — это всякого рода web и Enterprise, то с 50% сервлеты вам пригодятся.
SQL
Тут без комментариев.
Spring и Hibernate
Связка, которая мне сначала не пригодилась, но с которой постоянно приходится иметь дело, поэтому MUST HAVE!

P.S. Насчет работы. Верьте рассказам людей про то, что это лучшая работа в мире.
P.S.S. Спасибо JavaRush за интересные задачи, и огромное спасибо hubert
 ·  Translate
7
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_перевод
Независимо от того, какой язык программирования вы используете (и Java здесь не исключение), следование правильным принципам проектирования — является ключевым фактором к написанию чистого, понятного и поддающегося проверке кода; а также создавать его долгоживущим, легко поддерживающим решения проблем. В этой части урока мы собираемся обсудить фундаментальные строительные блоки, которые предоставляет язык Java, и ввести пару принципов проектирования, стремясь помочь вам сделать лучшие дизайн-решений.

Подробнее читайте в переводе на info.javarush: http://goo.gl/eqs1u7

P.S. Если вы тоже хотите попробовать себя в переводе технических статей, выбирайте наиболее интересную для вас тему тут: http://vk.cc/4izQK9
 ·  Translate
3
1
Add a comment...

JavaRush

Shared publicly  - 
 
Руководство пользователя IntelliJ IDEA. Проверки

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

Смотрите иснтуркцию на русском —> http://goo.gl/TZHZL4
 ·  Translate
7
2
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_трудоустройство
С нуля

Не смотря на то, что я хотел написать о трудоустройстве после прохождения испытательного срока, руки дошли только сейчас, спустя 11 месяцев после того, как я начал работать.

Предыстория у меня, как мне кажется, выбивается из круга предысторий других счастливчиков, нашедших с помощью JR работу. Я не занимался программированием в 6 лет, я не знал, что такое паскаль до 11 класса, а когда узнал, то на этом мое с ним знакомство и закончилось. До 22 лет я не написал ни единого хелоу ворлда ни на одном языке вообще. Я даже не знал, как это все работает. После школы я поступил в университет на одну из гуманитарных специальностей, на которой мирно и без приключений отучился все 5 лет.

Вышедши из этого теплого гнездышка я влетел лицом в жестокую реальность и получил по зубам осознанием того, что я никому не сдался и за 8 т.р. в месяц. Из встроенных «фич» у меня было только знание английского на хорошем уровне плюс приобретенная фича — полученная специальность. Тут то мне и вспомнились мои слова классе в 10 о том, что я стану программистом, сказанные непонятно зачем и непонятно на какой основе, так как повторюсь, к программированию я даже не приступал ни разу.

Однако, тяга к технике и компьютерам не покидала меня всю мою сознательную жизнь в связи с чем было принято волевое решение в корне изменить свою жизнь, посему я сел учить… HTML. На codeacademy проводил я тогда по 12 часов в день пуская слезы счастья по поводу своего приобретенного могущества. Я ведь мог теперь создать текстовый документ, написать там 5 строчек и запустить всю эту адскую машину в браузере, и она отобразит то, что я захочу! Просто офигительно нереально. Мне настолько это все понравилось, что меня уже было не остановить. После освоения курса HTML и CSS на код академи я принялся за VB. Нашел какой-то богом забытый сайт на краю интернет вселенной и сел за изучение. Из овер 200 уроков я прошел от силы 40, написал стандартную игру в угадайку чисел, поплакался опять над уже EXEшником, моим собственным екзешником, Карл, который я мог запустить, и он работал! Невероятно. Однако здесь мне почудилось, что все это детские игры и успех где-то еще совсем очень ужасно далеко. Вы, я позволю себе предположить, читая сейчас все это удивляетесь, как я мог дожить до работы с такими то познаниями. Я тоже, если честно, в шоке. Так вот, поняв, что это все не то, я задумался над тем, а какой собственно язык я хочу учить. Погуглил «какой язык учить» и получил очевидный ответ, что выбор зависит от того, что вы хотите писать на этом языке.

Очевидным этот ответ для меня является сейчас, но тогда для меня было 2 языка:HTML и «супер великий язык для НОРМАЛЬНЫХ программ». Так как для меня была интересна разработка под мобильные платформы, я, загуглив, что же надо знать для разработки под андроид познакомился с джавой. На тот момент мне в ВК часто встречалась реклама джава раша, однако мне это казалось очередными вебинар стайл курсами и я не воспринимал это всерьез, даже не удосужился прочитать поподробнее про проект. Поэтому я, избрав путь страданий и демотивации принялся штудировать «онлайн учебники для новичков по джава», «джава за 20 минут» и т.д. Однако, встречая на каждом сайте вступление, начинающееся со слов «Вы хотите изучать джава, это круто, давайте напишем „привет мир“. Повторяйте за мной: public static void main(String[] args) throws IOExce....» Стоп, ЧТО? Что это такое? Какой паблик? Какой войд? Это дота что ли? Учебники пошли лесом и я вспомнил про джава раш. Дальше я не помню, что было, помню только 10 уровень, скидку, подписку… 14 уровень, 15…

Тут я бросил джава раш и принялся за Андроид. По началу это был сущий ад, так как на джаве у меня ничего более-менее серьезного написано не было, да и вообще ничего, кроме задач на джава раше. Андроид же встретил меня новой жестью: какие-то xml, какие то onCreate(), а где же паблик мейн? Однако, уже через пару недель я решил вспомнить свою вижуал бейсик «молодость» 2 месячной давности и написать для андроида угадывалку чисел. Это был мой первый прорыв, первое приложение, написанное самостоятельно, первое что-то, что работало, да еще и прямо на моем телефоне! Эти ощущения не передать словами, думаю, вы меня понимаете. С момента написания этого ужаса до момента поступления на работу прошло 4 месяца, скажу я вам наперед. Вы, наверное, опять задались вопросом: «Как? Ну как, это же вообще не знания, что с ними можно?». Отвечу: ничего. После этого приложения я начал проходить различные курсы типа стартандроид и прочих, как вдруг мне поступило предложение от моей девушки написать приложение «список покупок». На тот момент это было для меня что-то нереальное, однако, я решил попробовать. Здесь я впервые познакомился с SQLite, с activity lifecycle, с методами создания различных стандартных элементов ЮИ, таких, как диалоги, тосты и т.д. Приложение дописать не удалось, так как слишком мало было скила, мозг был выеден до последней крошки беспощадным SQLiteом, однако мотивация не покинула меня. Я продолжил изучение на все тех же курсах и тут мне поступило уже более интересное предложение от одного из родственников. Нужно было написать андроид приложение для его бизнеса, который он собирался открыть. Приложение должно было иметь функционал регистрации, формирования заказа, отправка заказа.

Так как подразумевался сайт, приложение должно было быть просто оболочкой, его можно было бы сделать в виде мобильной версии сайта, однако я принялся за приложение. Конечно, это было что-то нереальное. Связь с сайтом, а точнее с его сервером, более серьезная структура БД по сравнению со «списком покупок», приятный интерфейс. Что ж, я забыл мир вокруг и как себя зовут и полностью погрузился в изучение всех деталей, необходимых для создания этого приложения. На этот раз у меня получилось уже написать более менее адекватный механизм работы с бд, ЮИ работал как надо, дизайн был минималистичным и приятным. Так же здесь я познакомился с технологиями парсинга XML, JSON, смог уже взять RSS feed какого-нибудь сайта, распарсить и расложить по полочкам ЮИ приложения.

В итоге, бизнес так и не началася, однако приложение мне очень пригодилось на собеседовании, на которое меня пригласили, увидев мое резюме на хедхантер. На самом деле здесь мне повезло, так как компания искала супер нуба, способного выполнять минимальные задачи. На собедесовании я не очень важно отвечал на вопросы, однако показал свое приложение и меня приняли. Радости не было предела. Однако, она тут же улетучилась, когда мне показали в первый рабочий день проект, над которым предстоит работать. 50 папок, в каждой еще 10 папок и в каждой по 50 классов, предназначение которых для меня полная энигма. Мне было сказано «посмотреть, подебажить че тут да как», что ввергло меня в пучины отчаяния, так как идей по поводу происходящего внутрях этого чудовища у меня было 0. Однако здесь, как и в случае в приложением списка покупок, как в случае клиентского приложения для бизнеса, меня просто протащили через огонь и воду разрывая мозг обилием информации. По началу я занимался несложными вещами вроде переноса функционала двух кнопок в одну и так далее, однако это помогло мне познакомится с проектом поближе и перестать его боятся. Что же сейчас? Сейчас, благодаря этой воистину спартанской методике «брать проект, на 10 голов выше твоего скила» я не боюсь кода, будь там 5000 строк в классе.

Зарплата у меня низкая, но с учетом того, с каким уровнем навыка я пришел в эту компанию мне не о чем сожалеть. Единственное, что я еще бы хотел добавить в конце своей истории: настоящий опыт приходит только в работе с настоящими проектами. Можно быть гуру алгоритмов, решить все задачи в интернете, самые хитрые и не очень, но понять, что да как я смог только в реальных проектах, будь то проект на работе или свой собственный. Сейчас, помимо работы я пишу свою игру для Андроид устройств, в которую можно играть по вай-фай с людьми, сидящими рядом с вами. И опять же, этот проект позволил мне познакомиться с сокетами, потоками и прочими радостями. Прошу прощения за много букоф и желаю всем, что учится здесь с нами и думает, что все тлен — поверьте в себя, главное — начать!

Источник: http://goo.gl/yEFdwg
 ·  Translate
8
1
Add a comment...

JavaRush

Shared publicly  - 
 
⚠ Первая лекция CS50 уже на JavaRush [на русском!] - http://javarush.ru/cs50.html

Это Хогвартс? Нет, друзья, это Гарвард и первая лекция по основам программирования CS50 с русским переводом! Даже на этом вводном занятии (хотя мозг отказывается воспринимать это яркое интерактивное действо как «занятие») David Malan уже успел рассказать и показать много интересного -

Вот о чем:

• родной язык компьютеров — двоичная система счисления
• ASCII — как записываются символы
• как алгоритмизировать задачи — на живых примерах. Очень живых=)
• почему Дэвид разорвал телефонный справочник или что такое двоичный поиск
• сложность алгоритма — что, как и почему
• о том, что такое циклы, расскажет никто иной, как Марк Цукерберг, основатель Facebook
• …а еще вы увидите его же в 2005 году, в качестве приглашенного гостя CS50. Хм… судя по аудитории, интерес к технологиям вырос в десятки раз!

И поверьте, смотрится это всё гораздо интереснее, чем это скучное перечисление. Убедитесь сами - http://javarush.ru/cs50.html
 ·  Translate
4
1
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_трудоустройство
Моя история. JavaRush. Видеоотзыв
 ·  Translate
2
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_трудоустройство
В июне 2014 года я получил диплом бухгалтера. К 3му курсу университета я уже понял, что бухгалтером не буду, я зарабатывал в интернете — разные способы, арбитраж, подписки, дорвеи, сдл, гс и прочее, этого в интернете много, но и нюансов тоже очень много. Студенту хватало. После окончания универа я всё ещё продолжал «крутиться» в интернете, пока…

В январе 2015 года я подумал, что неплохо было бы стать программистом. Просто потому, что мне нравилась IT сфера, я сам давно был с ней связан и developer это логичный её исход (на тот момент это был исход, сейчас это лишь начало нового пути). Для реализации столь замечательной идеи я стал учить pyton 3. Я прошел базовый курс, задачки на логику и алгоритмы, это всё конечно да, но «где же эпичность, где же программы которые спасают мир?» — подумал я тогда. Через недельку я об этом забыл и забил — деньги были, жизнь шла… Но в феврале ко мне в гости приехала сестра с мужем, оба айтишники, и её муж рассказал о планирующихся курсах в их компании (не обучение, а просто курсы которые вводят в IT — ознакомительные, про разницу языков, про технологии, про проекты, цели IT и прочее) и посоветовал на них пойти. Я подписался на все обновления их фирмы и стал ждать…

Читайте подробней на info.javarush: http://goo.gl/xupjr0
 ·  Translate
1
1
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_перевод
CopyOnWriteArraySet это младший брат класса CopyOnWriteArrayList. Это специализированный набор классов, добавленных в JDK 1.5 вместе с их более популярным двоюродным братом ConcurrentHashMap. Они являются частью concurrent collection framework и расположены в пакете java.util.concurrent.

CopyOnWriteArraySet лучше всего подходит для read-only коллекций, размер которых достаточно мал, чтобы их скопировать, если произойдут некоторые изменяющие операции. Например, вы можете использовать CopyOnWriteArraySet для хранения объекта при запуске приложения, и дать множеству других потоков доступ к этому объекту на протяжении жизненного цикла приложения. Если новое состояние или объект приходят в течение этого времени, он также может быть добавлен в этот Set, со стоимостью создания нового массива.

Подробнее читайте в переводе на info.javarush: http://goo.gl/snyGx4

 ·  Translate
4
Add a comment...

JavaRush

Shared publicly  - 
 
Как себя мотивировать

[Пост от ученика JavaRush]

Уже несколько раз сталкивался с низкой мотивацией у джаварашевцев. Чем выше уровень, тем сложнее и ничего не понятно.Задачи начинают выдавать самый хардкор, а гугл не разжевывает как надо. Говоря проще, КПД = null, а из-за невозможности решить задачу пару-тройку дней падает дух. Черт возьми, у меня такое не единожды было! Все таки не спекся)
Поэтому предлагаю несколько интересных методов, которые помогут мотивировать себя.

0. Моделирование будущего.
Наверное самый известный метод, ибо без него никак. Все это благодаря нашей префронтальной коре головного мозга — даже не особо акцентируя на том внимание, мы думаем о том, что будет дальше. Я уверен, что все уже видели себя в качестве программиста, тим-лида, да хоть робототехника или сотрудника NASA. Этот метод, если использовать только его, подходит лишь на начальных стадиях, до столкновения с трудностями. Как только на нашем пути препятствия, так вера в наше будущее начинает потихоньку улетучиваться.
В общем, как бы яро вы не заменяли кусочки реальности на смоделированное будущее, этого мало, даже если вы думаете об оцифровке мозга и отправки коннектома в другие галлактики.

1. Самодисциплинирование.
Вставать в шесть утра всегда ассоциируется не с самыми приятными действиями: пойти в школу, в ВУЗ или на работу. Делать зарядку или бегать сутра — удел немногих. Лучше сутра кофейку выпить чашку другую и настроение лучше станет.
На деле же это все важно. Необходим режим, утренний подъем, зарядка, потом завтрак. Разминка от компа каждые два часа. Чай или кофе по расписанию. Это придает уверенности и усидчивости, так вы можете контролировать желания своего мозга пойти съесть кекс или посмотреть порнуху. А вот проспав десять часов вряд ли от лени можно будет избавиться. С графиком и самодисциплиной сказав:«Сегодня я решаю задачи с десяти до часу», — никаких проблем с усидчивостью не возникнет.

2. Хвастовство.
Чем больше людей знает, что вы программист, занимаетесь в самом лучшем онлайн ресурсе в мире, что вы компьютерный гигант — тем и лучше. Этот метод помогает верить в себя. Почти моделирование будущего, только больше похоже на его проекцию в настоящее или чуть преукрашенное настоящее. А ваши соседи уже знают, что вы решили очередную задачу? Но не увлекайтесь, чтобы написать саморазвивающийся искусственный интеллект еще надо дорости.

3. Поддержка.
Еще о вере в себя. Поддержка ваших близких это лучшее, что может случиться. Когда вы сломленны, уже кричите, что не бывать вам джуном, к вам подходит любимая | любимый | мама | папа | бабушка | дедушка | другие обнимает и говорит: «У тебя все получится». Это окрыляет. И вправду, у вас все получится.

4. Спорт.
Эта графа здесь не потому, что программист много сидит. Спорт помогает думать. Это банальный факт, если тело в тонусе, то и мозг в тонусе, а значит настроение лучше и задачи решать хочется. Одной зарядкой тут не обойдешься. Не бегаете по утрам, самое время начать. А если не хочется бегать? Есть много альтернатив. Как вариант купить уницикл на барахолке и научиться на нем кататься.

5. Скука.
Если нет настроения или не хочется решать задачи, а может и мотивация = null — тогда заставляйте себя скучать. Нет ничего хуже, чем скука. Для меня подобным оказалось чтение всеми известной книги «Философия Java», не мог я читать вне контекста решаемой задачи и за час чтения просто взрывался от рвения заниматься на JavaRush. Может для вас будет лучшим способом просто стоять посреди комнаты и ничего не делать.

6. Мультипоточность или переключение внимания.
Кто сказал, что вы должны все время думать о Java? Философия? Религия? Осторожно, это может замылить на некоторое время разум, а может и вовсе привести к ментальному параличу! Один из лучших способов обучения не уставая и не впадая в уныние это переключение внимания. Так что хобби вперед! Складываем оригами, катаемся на скейте, рисуем, играем на саксофоне, клеим обои — кому что по душе.

7. Отдых.
Исходя из предыдущего пункта, отдых напрашивается сам собой. Бывают дни, когда работа, учеба, задачи и прочее уже в печени сидит. Чтобы не доводить себя до депрессии можно немного расслабиться, выключить будильник, забыть на денек про задачки и просто пожевать чипсы да посмотреть мультики. Правда после такого расслабона немнго тяжеловато вернуться в строй. Однако, голова свежая будет.

8. Реклама.
Сидите в соцсетях? Исключаем из новостей всех, кроме пабликов о программировании и главное оставить JavaRush. Какая у вас стартовая страница браузера? У меня JavaRush. Преобрели уже чашку с логотипом Java? А футболку? Такая реклама изучаемого является неотъемлемым фактором мотивации, эти символы, пусть даже самую малость, заставят вас думать о программировании и в состояние «я это бросаю» будет просто невозможно впасть.

9. Изощренные алгоритмы.
Зачастую проблема состоит не в знаниии материала, а в алгоритме, который не достоин владыки Ада. Самое время открыть Хабр и почухать репу задавая занимательный вопрос: «А как это работает?».

Занимайтесь с удовольствием на javarush.ru
Источник: http://vk.cc/4oxmBT
 ·  Translate
6
1
Add a comment...

JavaRush

Shared publicly  - 
 
#JavaRush_перевод
Java. Справочное руководство для интервью - Часть 1.

Java. Объектно-Ориентированная концепция.

Java основывается на объектно-ориентированной концепции, которая дает более высокий уровень абстракции для решения любой проблемы реальным способом.

Объектно-Ориентированный подход концептуализирует решение проблемы в объектах реального мира, которые проще повторно использовать в приложениях. Например: стул, вентилятор, собака, компьютер и т.д.

В Java, класс — это документация, шаблон или прототип, который определяет общее поведение объектов того же вида. Экземпляр является реализацией определенного класса, и все экземпляры класса имеют аналогичные свойства, как представлено в описании класса. Например, вы можете определить класс, который называется Дом, с числом комнат, как атрибутом, и создать объекты: дом с 2 комнатами, дом с 3 комнатами и т.д.

Преимущества:

Ниже перечислено несколько преимуществ разработки объектно-ориентированного программного обеспечения:

Меньше затрат на обслуживание, главным образом благодаря модульности.
Код легче повторно использовать за счет таких функций, как наследование, что как следствие ускоряет разработку.
Повышается надежность и гибкость кода.
Код легче понять, это обусловлено моделированием реального мира.
Лучшая абстракция на объектном уровне.
Уменьшение сложности перехода от одной стадии разработки к другой.

Подробней читайте на info.javarush: http://goo.gl/xmqwH9
 ·  Translate
6
1
Add a comment...
Story
Tagline
JavaRush - обучение программированию на Java в форме онлайн-игры
Introduction
Как насчет совсем нового подхода к изучению программирования и образованию вообще? Не похожего ни на что из того, что вы видели раньше. Как насчет обучения, где есть цель, средства и результат?

Рады представить вам новые онлайн-курсы обучения программированию на Java.

1. Обучение сделано в виде онлайн-игры

Вы берете задание, выполняете его и получаете награду. Думаем вам это и понятно и привычно. Задачи будут самые разнообразные: чтение кода, решение задач, видео-уроки, просмотр мотивирующих фильмов, исправление ошибок в коде, добавление новых фич и многое другое.

Возможно, вам даже придется писать программы для своего робота, чтобы сражаться со своими друзьями на «арене» или что-нибудь еще.

2. Только самое необходимое

Чтобы курс не растянулся на 5 лет, мы выкинули из него все полезное и оставили только самое необходимое. Мы проанализировали десятки вакансий на рынке труда. В курс включены все темы, которые нужно знать новичку Java Junior Developer, чтобы устроиться на работу.

3. Мы основательно подошли к вашему обучению

Полный курс содержит 600 мини-лекций и 1000(!) практических задач. Задачи небольшие, но их много, очень много. Как раз тот минимум, выполнив который, вы получите столь ценный опыт.

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

4. Вы не можете пройти игру до конца и не стать программистом

Курс разбит на 40 уровней. Вы можете перейти на следующий уровень, только если решили большую часть задач текущего уровня. Начиная с маленьких и легких, и заканчивая большими и очень полезными. Каждый, дошедший до конца, получит 500-1000 часов практического опыта. Серьезная заявка на победу. И на работу.

5. Задачи можно решать прямо на сайте

Это очень удобно и эффективно. Только что в лекциях вы разбирали новую задачу, а теперь прямо тут же должны сделать свою по аналогии. Для тех, кто хочет решать задачи в IDE, есть плагин, который позволяет получить задачу за два клика, а сдать на проверку - за один.

Лекция, разбор примеров, решение задач прямо на сайте, решение задач в IDE – разрыв между теорией и практикой тонок, как никогда.

6. Мгновенная проверка задач (меньше секунды)

Знакома ли вам ситуация, когда вы сдали задачу/работу на проверку, а результатов пришлось ждать неделю, т.к. проверяющий занят?

В JavaRush вы узнаете результаты компиляции и проверки задачи меньше чем через секунду, после нажатия кнопки «Выполнить/Проверить»

Contact Information
Contact info
Email