Подтвердить что ты не робот

Каков ваш способ изучения языка?

Я только начал изучать Java (со ссылкой на книгу Head-First).

Я просто хотел узнать, какой лучший способ узнать какой-либо язык?

Как получить большую часть книги?

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

В моем случае я обращаюсь к книге и с помощью форумов. Также я хочу знать, когда начинать отвечать здесь на Stack Overflow:) Поскольку я новичок в языке, поэтому не знаю много.

(Я просто читаю здесь другие ответы)

4b9b3361

Ответ 1

"Лучший" способ зависит от вас - мой собственный подход можно суммировать как:

  • прочитайте книгу
  • напишите код
  • повторить

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

Ответ 2

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

Ответ 3

Я сделал что-то интересное и попытался переписать мой бот IRC на новый язык. Это позволяет мне узнать несколько вещей, включая

  • Используя любую инфраструктуру графического интерфейса пользователя, язык использует
  • Использование таких вещей, как сокеты, потоки и т.д.
  • Синхронизация
  • Стиль ООП (если язык OOP)
  • Многопоточность
  • Делать вещи динамически (для плагинов)
  • Если я делаю это правильно, когда я запрашиваю обзор кода.
  • Как использовать другие фреймворки

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

Использование этого может дать вам большое представление о многих особенностях языка. Иногда это может быть весело.

Ответ 4

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

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

С более легкими языками, такими как Ruby, или даже Java, я могу сделать учебник, а затем попробую написать приложение с нуля. Когда я сталкиваюсь с любыми стенами, я просто присматриваю за ответами или спрашиваю здесь, и обучение приходит с опытом.

На самом деле делать вещи - это ключ независимо.

Ответ 5

Когда я хочу выучить язык, я поставил перед собой сложную задачу, например, Huffman Coding или Facebook Puzzles, и начните удалять ее с помощью этого сайта.

Возможно, вы захотите использовать книгу, чтобы получить основы языка, хотя...

Ответ 6

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

Важно понимать, что язык обычно очень общий, а проблема будет давать ему контекст. Например, я знаю, как разрабатывать Java-приложения, но это не значит, что я знаю, как разрабатывать приложения J2EE. Тот же язык, другой контекст; поэтому вы можете подумать об этом, придумывая учебный проект или проекты.

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

Ответ 7

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

Раньше я читал много книг, но сегодня с помощью stackoverflow и обучающих программ везде, где я нахожу, что я нуждаюсь в них все меньше и меньше.

Ответ 8

Я обычно предлагаю лучшую книгу (одна с большинством рекомендаций), и я просматриваю ее очень быстро, просто чтобы получить общее представление о языке, передовой практике и т.д. Тогда я либо думаю, либо google - программа, которая сможет охватить все, что вы можете сделать с этим языком (хорошо, а не каждый, но как можно больше). Например, когда я изучаю Java EE (JSP, Servlets, JPA), я решил написать простую игру для палача, сначала я бы сделал основы, затем добавлю базу данных и т.д. - Сначала я сделал очень базовую программу, затем я добавил все больше и больше. Конечно, я во время написания этого слова всегда буду работать с Google для хороших практик, потому что вы можете что-то закодировать, и это сработает, но, возможно, ад будет поддерживать его в будущем и т.д.

Я думаю, что писать материал на изучаемом вами языке - это самый эффективный способ, если вы выполните его правильно.

Ответ 9

У меня лично есть копия набора данных NetflixPrize, в котором я пишу алгоритмы на указанном языке, чтобы решить или просто отключиться от него в целом. К сожалению, набор данных больше не доступен для публики (по крайней мере, официально из Netflix).

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

Ответ 10

Для меня: Я изучаю язык, только начинаю проект. Я узнал С#.NET этим летом, запустив веб-проект на С#. Когда я застрял на чем-то, я либо google, либо просто получаю выгоду от stackoverflow!! Если вы не чувствуете уверенности: запустите мини-проект с Java и посмотрите, как он идет!

Ответ 11

Если вы находитесь на очень ранних этапах обучения программированию, я думаю, что более дидактично играть с тем, что вы узнали, когда вы проходите через книгу. Не ждите, пока вы закончите читать его, чтобы получить определенную практику. Вы можете понять знания, но способность применять его адекватно занимает много практики. И легко забыть то, что вы узнали неделю назад, если вы не используете его.

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

Ответ 12

Если у вас никогда не было никакого опыта программирования, я не думаю, что это хорошая идея, чтобы начать проект, где вы застряли большую часть времени и нуждаетесь в помощи google или stackoverflow.

Скорее, возьмите книгу, просмотрите каждый пример, попробуйте некоторые вопросы о конце главы, введите код из примеров и подумайте о творческих способах изменения программы в соответствии с вашими потребностями. Вы также можете дополнить свое обучение, просмотрев видео-лекции, предоставленные Stanford Engineering Everywhere или MIT OCW. В вашем случае первая серия бесплатных видеокурсов Стэнфорда начинается с Java, переходит на С++, затем глубже в MIPS и некоторые языки сценариев.

Проверьте это: http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

Что касается начала ответов на вопросы начала, вы всегда можете сказать, каковы ваши любимые TAGS и настроить его на "beginner", чтобы StackOverflow отображал больше вопросов "начинающего".

Ответ 13

Я часто делаю следующее:

  • читайте книгу, в которой говорится об одном и том же (ex Java intro, Java для начинающих, Java-head-first и т.д.)

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

  • читать коды, которые пишут другие люди.

Ищите онлайн и ищите код, который ищете, они пишут по-разному, и вы обнаружите, какой подход имеет какие-то плюсы и минусы.

  • присоединяйтесь к форумам и примите участие в обсуждении.

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

Ответ 14

Есть ли у вас компьютерная наука или программирование? Если нет, важно изучить структуры данных и алгоритмы, а также фактический язык. Есть много свободных ресурсов, и, хотя книга поможет вам, вы можете захотеть рассмотреть курс CS, чтобы помочь с некоторыми из понятий.

Если вы (или кто-либо еще читающий этот вопрос) заинтересованы, вы можете проверить Этот сайт для вступления в компьютерную науку. Есть также много других хороших курсов по opencourseware. Этот класс, в частности, представляет собой потоковое или загружаемое видео с лекциями с заданиями, тестами и опросми, все 100% и учителями MIT.

Если у вас уже есть фон CS, пожалуйста, игнорируйте меня:)

Ответ 15

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