многомерный подход к изучению Ruby (и CS в целом) - PullRequest
0 голосов
/ 03 апреля 2011

Я постараюсь не делать этот вопрос слишком персонализированным, так что мы идем.

В настоящее время я изучаю Pickaxe для изучения Ruby (это мой первый язык программирования).Цель состоит в том, чтобы развить сильные способности в Ruby, а затем изучить Rails для фриланса.

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

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

Я добавил (& CS в целом) к названию, потому что я относительно уверен, что когда-нибудь в будущем буду связываться с суперкомпьютерами, поэтому я хочу развить понимание концепций CS, которые помогут мне с Ruby, и с (предположительно)) С позже.Я пытаюсь подойти к программированию так же, как к другим своим интеллектуальным занятиям.Определите вселенную, определите аксиомы и постройте их оттуда.По сути, я пытаюсь определить аксиомы Руби.

Ответы [ 5 ]

2 голосов
/ 03 апреля 2011

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

Промыть, повторить.

1 голос
/ 04 апреля 2011

Будьте непредвзяты, преследуйте свои интересы, исследуйте то, что вам нравится, и получайте удовольствие ... :) Исследуйте проблемы, с которыми вы сталкиваетесь, и Google вокруг. Если вы не «получаете» то, что читаете сразу, по крайней мере, вы знаете, что информация доступна, что существует какая-то концепция, и что вы можете вернуться позже. Это действительно относится к чистым CS, структурам данных, алгоритмам и так далее. Не изучайте их все сразу, но используйте их, когда это необходимо ..

ИЛИ действительно заинтересовался и изучил много материала. Все зависит от того, что вам подходит, и от настроения, в котором вы находитесь.

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

MIT и Berkely предлагают хорошие теоретические курсы по КС в виде бесплатных видеолекций, на своих домашних страницах и в YouTube.

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

Не становитесь потребителем определенного языка или "правильного пути", фреймворка или API. Продолжайте переоценивать, как вы делаете вещи.

Или какое-то время быть фундаменталистом. Или навсегда. Как хочешь!

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

Путь Дао ...; P

0 голосов
/ 04 апреля 2011

Что касается изучения Ruby, вы можете рассмотреть базовый курс на RubyLearning .Я обнаружил, что многим людям нравится групповое обучение на форумах.Раскрытие: я один из наставников там.Это некоммерческий сайт, к сожалению, мы потеряли нашего спонсора, и, таким образом, теперь есть небольшая плата за курсы для серверов и т. Д.)

По книгам, я бы сказал, с «Обоснованным рубиистом»за ним следует «Eloquent Ruby» и округляется до «Ruby Best Practices» (в таком порядке), вы не ошибетесь.Очевидно, что между каждой книгой должно быть немного времени, когда вы экспериментируете на том уровне, который вы уже получили, чтобы все уладилось.

Для CS в целом, я бы порекомендовал проверить программу курса CS ивыбрать некоторые из книг (SICP, например, классика, и мне очень нравятся материалы из курсов по компиляции).

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

Когда все сказанои готово, написание кода - это то, где вы действительно учитесь.Если вы не можете придумать собственный проект, пройдитесь по катам или коанам кода, выполните тест Ruby и проверьте «вызов кода» на бирже Code Golf Stack Exchange.

0 голосов
/ 03 апреля 2011

Я могу дать вам ответ по рубиновой части вопроса

Я нашел книгу http://pragprog.com/titles/ppmetr/metaprogramming-ruby хорошим способом выучить язык ruby. Он дал мне, среди прочего, глубокое понимание поиска методов и себя в Ruby

Также https://github.com/edgecase/ruby_koans

И есть хороший интерактивный сайт рельсов

http://railsforzombies.org/

0 голосов
/ 03 апреля 2011

У меня есть опыт работы как в науке, так и в технике, и я всегда придерживался прагматического подхода к обучению инженерии (включая компьютерные языки). В частности:

1) Я думаю о чем-то, чего не знаю, а потом учусь это делать. (Что это такое, почти несущественно.)

2) Я нахожу что-то в чужом коде, в ссылке на ключевое слово и т. Д., А затем пытаюсь выяснить, что это такое.

Обычно я возвращаюсь и изучаю компьютерную "науку" после изучения прагматики.

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

(Следует отметить, что я использую аналогичный подход к изучению других дисциплин, которые сочетают практические и теоретические аспекты.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...