Это копия, сохраненная 26 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Отвечаю на вопросы, делаю код-ревью, могу набросать примерный план обучения. Могу рассказать что-нибудь из опыта работы с отечественными и зарубежными заказчиками, если интересно.
Почта/гтолк, если кому-то вдруг понадобится: dF|"jinn2chhkANUSgmai$onlPUNCTUMa[wcom
Работы довольно много, особенно если зарплатные ожидания не очень высоки. На том же рубиджобсе довольно много вакансий проскакивает. Другое дело, что в резюме дырка от бублика.
В этом случае, полезным и благоугодным делом было бы поконтрибьютить в опен-сорсные проекты. На гитхабе таковых полно. После этого и в резюме не стыдно будет писать "участвовал в опенсорсе там-то и там-то".
ОП пост несколько отличается от >>658091?
1. Насколько актуальна картинка про компетенции?
После становления WWW SQL IDE GIT можно наконец переходить к делу? Или на JS не обязательно останавливаться?
2. Я тут скачал и разложил книжки в порядке приоритета (из руби-шапки). Есть что-то явно лишнее или то, чего явно не хватает?
>могу набросать примерный план обучения
помимо руби-компетенций нужны еще алгоритмы, что-то еще?
>А меня теорими графов нагрузили, и о криптографии, ширфовании, закрытый ключ - открытый ключ, и другое. позиция ruby on rails junior
>про графо ориентированые базы данных, про то что такое графы, ибо проект будет заточен под базу построенную на графах. Потом уже загуглил, увидел знакомое слово neo4j даже, интересно стало. Про ключи, открытые и закрытые
https://www.coursera.org/specializations/ruby-on-rails
нормальный бесплатный курс?
слишком много платных курсов сейчас — можно ли им доверять или это выброшенные на ветер деньги и всему можно научиться самому?
какие варианты с быстрым ростом как програмиста в городах где нет потребности в руби-специалистах?
Довольно уверенно чувствую себя в рельсах, в принципе, даже любая задача по плечу, но вот с работой совсем ничего не получается. Опыта работы на кого-либо у меня нет, только проекты для себя и кое-какие контрибьюты в oss. Код пишу грамотно, без велосипедов(поработать над этим помогли опытные люди), пилю свои гемчики. Но работодатель даже не смотрит гитхаб. Устраиваться на джуниора, как я понимаю, не вариант, мне уже 30 лет и на джуновакансиях меня сразу шлют нахуй, да и уровень свой я оцениваю как мидл. На мидла без "коммерческого опыта" тоже смотрят как на говно. Да и вообще ощущение, что перекат в IT без связей невозможен. На рубиджобс дофига днище-вакансий, типа делать сайтики по удаленочке в каких-то колхозных веб-студиях, такие я сразу отбрасываю. А на других мной не интересуются. Какой путь развития можешь посоветовать? Мне пока приходит на ум только такое: зарабатывать на жизнь на апворке, а опыт получать в опенсорс.
> ОП пост несколько отличается от >>658091?
Мне подумалось, что поскольку педагогического опыта у меня нет, то обучение превратится в не очень понятную процедуру, где я накидываю список глав из книг для прочтения и упражнения. Поэтому вот такой формат.
В любом случае, почта в шапке есть.
> 1. Насколько актуальна картинка про компетенции?
Зависит. Конечно, много где любят нанимать рубистов фулл-стековых, чтобы они делали всё: деплой, бэкенд, вёрстку и чуть ли даже не дизайн — но в моём опыте обычно есть некоторое разделение на бэкендщиков и фронтэндщиков.
Для бэкенда стандартный набор крудошлёпа это рельсы и какая-то rdbms.
> 2. Я тут скачал и разложил книжки в порядке приоритета (из руби-шапки). Есть что-то явно лишнее или то, чего явно не хватает?
Книжки много где дублируют друг друга. Я сам обучался по кирке (она же programming ruby the pragmatic programmer's guide) но там много чисто референсного материала, ну и оно в принципе для уже знающего какой-то язык больше полезна, чем для совсем новичка.
По содержанию курс выглядит нормально, но он же не бесплатный. 20к рублей это довольно дофига.
> слишком много платных курсов сейчас — можно ли им доверять или это выброшенные на ветер деньги и всему можно научиться самому?
Не могу сказать насчёт "на ветер", но самому обучиться 100% можно.
План я бы взял примерно такой:
1. Владение текстовым редактором, командной строкой и гитом обязательно, ну это быстро всё хотя бы на базовом уровне осваивается.
2. Руби (без фреймворков) как язык, стандартная библиотека
3. Какой-нибудь совсем простой фреймворк типа синатры
3.5. Между делом надо изучить основы html, css
4. Рельсы
5. JS фреймворки
> помимо руби-компетенций нужны еще алгоритмы, что-то еще?
Если реалистично говорить, то мне знание алгоритмов кроме как на вступительные интервью отвечать особо не пригодилось. Единственная вещь из CS, которая реально постоянно нужна — это O-нотация и умение оценить асимптотику алгоритма.
> какие варианты с быстрым ростом как програмиста в городах где нет потребности в руби-специалистах?
Надо удалёнку искать. Я живу в довольно небольшом городе и работаю удалённо всю жизнь. Диапазон зарплат на среднего рубиста на удалёнке сейчас 75-150к рублей в месяц. Я сам стал работать на западных заказчиков, ну сами понимаете почему.
>>659782
Я не очень из твоего поста понял про опыт программирования в других языках. Если он есть, то просто указываешь его.
Если нет, то сложно всё. Ты одновременно хочешь работу и зарплату выше входной, но при этом ничто в твоём резюме не говорит как о ценном кадре. Если особо не стесняешься, скидывай на почту гитхаб, посмотрим вместе, что ты умеешь.
Ну а вообще, к сожалению, вопросы найма как такового не совсем в моей компетенции, я могу поделиться своим личным опытом, но не обязательно он окажется полезным.
> ОП пост несколько отличается от >>658091?
Мне подумалось, что поскольку педагогического опыта у меня нет, то обучение превратится в не очень понятную процедуру, где я накидываю список глав из книг для прочтения и упражнения. Поэтому вот такой формат.
В любом случае, почта в шапке есть.
> 1. Насколько актуальна картинка про компетенции?
Зависит. Конечно, много где любят нанимать рубистов фулл-стековых, чтобы они делали всё: деплой, бэкенд, вёрстку и чуть ли даже не дизайн — но в моём опыте обычно есть некоторое разделение на бэкендщиков и фронтэндщиков.
Для бэкенда стандартный набор крудошлёпа это рельсы и какая-то rdbms.
> 2. Я тут скачал и разложил книжки в порядке приоритета (из руби-шапки). Есть что-то явно лишнее или то, чего явно не хватает?
Книжки много где дублируют друг друга. Я сам обучался по кирке (она же programming ruby the pragmatic programmer's guide) но там много чисто референсного материала, ну и оно в принципе для уже знающего какой-то язык больше полезна, чем для совсем новичка.
По содержанию курс выглядит нормально, но он же не бесплатный. 20к рублей это довольно дофига.
> слишком много платных курсов сейчас — можно ли им доверять или это выброшенные на ветер деньги и всему можно научиться самому?
Не могу сказать насчёт "на ветер", но самому обучиться 100% можно.
План я бы взял примерно такой:
1. Владение текстовым редактором, командной строкой и гитом обязательно, ну это быстро всё хотя бы на базовом уровне осваивается.
2. Руби (без фреймворков) как язык, стандартная библиотека
3. Какой-нибудь совсем простой фреймворк типа синатры
3.5. Между делом надо изучить основы html, css
4. Рельсы
5. JS фреймворки
> помимо руби-компетенций нужны еще алгоритмы, что-то еще?
Если реалистично говорить, то мне знание алгоритмов кроме как на вступительные интервью отвечать особо не пригодилось. Единственная вещь из CS, которая реально постоянно нужна — это O-нотация и умение оценить асимптотику алгоритма.
> какие варианты с быстрым ростом как програмиста в городах где нет потребности в руби-специалистах?
Надо удалёнку искать. Я живу в довольно небольшом городе и работаю удалённо всю жизнь. Диапазон зарплат на среднего рубиста на удалёнке сейчас 75-150к рублей в месяц. Я сам стал работать на западных заказчиков, ну сами понимаете почему.
>>659782
Я не очень из твоего поста понял про опыт программирования в других языках. Если он есть, то просто указываешь его.
Если нет, то сложно всё. Ты одновременно хочешь работу и зарплату выше входной, но при этом ничто в твоём резюме не говорит как о ценном кадре. Если особо не стесняешься, скидывай на почту гитхаб, посмотрим вместе, что ты умеешь.
Ну а вообще, к сожалению, вопросы найма как такового не совсем в моей компетенции, я могу поделиться своим личным опытом, но не обязательно он окажется полезным.
>Опытный рубист (8+ лет индустриального опыта) наставит неофитов.
Какой Доширак вкуснее - грибной или мясной? Или ты больше по борщам?
Что касается еды, могу только посетовать на то, что нормальное мясо и сыры из продажи пропали.
Это временно.
Ну и справедливости ради отмечу, что налоги у нас получаются одни из самых низких. Я в белую заплачу меньше десяти процентов с получаемых денег.
rubyjobs.ru/vacancies/4061
>не очень понятную процедуру, где я накидываю список глав из книг для прочтения и упражнения
О каких именно упражнениях идет речь? Что-то такое https://2ch.pm/pr/src/657174/14559013194840.jpg? (М) Или простейшие веб-сервисы?
>По содержанию курс выглядит нормально, но он же не бесплатный. 20к рублей это довольно дофига.
Ну, там хотя бы открытый доступ к содержанию курса есть. И я думал что 20к надо платить, если я сертификат получить хочу, а если без сертификата то можно бесплатно.
Ruby → Sinatra → Rails + Angular?
>Надо удалёнку искать.
Выглядит немного прохладно для 2016. Мне кажется твой опыт релевантен больше к 2008, когда руби-джуниоров (да и вообще программистов) поменьше было.
С какого момента можно начинать искать работу? Я закрываю все пробелы в компетенциях и уже можно начинать? Но даже у товарища старше меня и опытнее меня не получается >>659782
Как решить проблему с ревью своего говнокода, когда тебя еще не берут на работу, но уже нужно писать по-людски?
4к после восьми лет опыта - это как то мало. Обычно столько получает человек с 5+ годами. С почти десятком лет обычно уже больше восьми получают.
Ну 500к в рублях с восемью годами опыта можно делать спокойно, если есть вышка и знание нескольких языков.
Да хер поймёшь по объявлению этому куцему.
Испытательный срок месяц — много. Если он бесплатный, то скорее всего нахуй.
Стек стандартный.
50-80к вилка для новичка нормально, для "мидла" звучит как маловато.
Я бы пытался договориться на то, что по истечении двух недель либо выгоняете нахуй, либо берете на полноценную ставку, включая эти две недели.
Для первой работы — заурядно.
>>659841
Я имею в виду более практичные и приземлённые вещи. Ну я хз, например, запилить аналог zenrus.
> Ruby → Sinatra → Rails + Angular?
За ангуляр не скажу, коллеги сейчас на реакте все.
>>659845
>>659857
Согласен, что хочется больше. И главное можно делать больше. Но я в общем-то не из тех, кто от пятерки откажется.
>Как решить проблему с ревью своего говнокода, когда тебя еще не берут на работу, но уже нужно писать по-людски?
Могу поревьюить, в принципе, если не слишком дохера. Почта в оп-посте.
В целом, это всё мне видится вопросом опыта и привычки. Разгребая чужой говнокод, а затем и свой говнокод, быстро осваиваешь что работает, а что нет.
Бля. Что надо делать чтобы столько получать? Как разводить заказчика на полтинник баксов в час?
У ОПа 8 лет работы, даже разводить не надо
>«У Михаила Булгакова есть прекрасная фраза в книге «Мастер и Маргарита», когда Воланд говорит о том, что никогда ничего не просите, сами предложат и сами все дадут.
Как верно заметил >>659845, это не очень большие деньги для американцев (сами американцы в своих консалтингах биллят и по 50, и по 70, и по 100, и по 200 долларов в час). Проблемы будут в другом: надо их убедить, что ты не какой-то там злой русский иван с разницей в часовых поясах в полдня, а профессионал, который решит их проблемы.
Но я в общем тред не похвастаться создал (особо нечем), а оказать посильную помощь новичкам.
Ну это если ты Воланд, а если хуй простой, то еще доказать надо.
>надо их убедить, что ты не какой-то там злой русский иван с разницей в часовых поясах в полдня, а профессионал, который решит их проблемы.
это с кавер леттера начивается?
Ну у меня тоже почти уже 8. Только я на борщах. Дохуя разного пробовал, веб хорошо знаю. Оно-то в принципе ясно, что надо hourly rate проекты брать, потом хуярить весь день чтобы набегало нормально, и обычно вряд ли кто что-то против скажет. Только у меня сплошные fixprice предложения решил заняться скрейпингом, сайтики доебали в конец и аккаунт пока ещё свежий, надо было года 4 назад туда щимиться, я всё с английским тупил.
Я рубист с 3 годами опыта, куда мне писать этим буржуинам?
Тут помочь ничем не могу. Если на пхп всё устраивает --- ради бога, лично я сбежал с пхп и не оглядывался.
>>660312
Не очень хочу их рекламировать, но я через toptal.com устраивался.
Минусы:
- Судя по всему, они приплюсовывают 25-50% к твоим заявленным рейтам своей комиссии (достоверно это неизвестно, т.к. согласно договору с клиентами рейты обсуждать нельзя)
- В конечном счёте все равно всё упирается в работодателей и они могут долго не отвечать
Плюсы:
- По ощущениям, нет конкуренции со стороны совсем дешевых индусов
- Не надо ебать себе мозг по поводу выбивания денег из клиента
- Процесс взаимодействия более-менее отлажен
>По ощущениям, нет конкуренции со стороны совсем дешевых индусов
Это потому что туда хрен попадешь, с восемью годами опыта попроще наверное.
Видел этих, читал что у них какой то контракт зашкварный по которому ты можешь поработать неделю или две бесплатно если не понравишся работодателю, сталкивался с таким?
Ещё вопрос, вот ты на собесе кодилити дрюкал или просто про алгоритмы расказывал, правильно я понимаю?
Расскажи про собес с ними, они мне пишут часто но я их заворачиваю так как считаю зашкваром, вполне вероятно что зря.
Через топтал говоришь? Какая там вообще система работы, какие требования, как и куда оплачиваются? ко мне чел с топтала добавился и типа надо с ним голосом говорить, но я чот ссусь.
> Видел этих, читал что у них какой то контракт зашкварный по которому ты можешь поработать неделю или две бесплатно если не понравишся работодателю, сталкивался с таким?
Неправда, все тестовые задания и тестовые сроки от работодателей оплачиваются.
> Ещё вопрос, вот ты на собесе кодилити дрюкал или просто про алгоритмы расказывал, правильно я понимаю?
Этапы были такие:
1. Просто разговор (оценивают знание языка и вообще вменяемость общую)
2. Решаешь алгоритмы, вроде на кодилити, да. Задачки не очень простые, но и не очень сложные. Я в итоге что-то типа 190 из 300 набрал и был собой очень недоволен, но мне рекрутёр сказал, что это вполне нормально.
2.5. Созваниваешься с техническим чуваком, он хвалит твои решения, ну или наоборот ругает и даёт...
3. Тестовое по рельсам (в общем стандартная хуйня крудовая, работы дня на два-три, дают две недели)
На всё про всё уходит около месяца (длинные перерывы между этапами).
Затем приходит договор, ты его мышкой подписываешь, ну и збс.
>>660365
> Какая там вообще система работы, какие требования
Прежде чем тебя допускают до сайта, ты проходишь интервью с ними (см. выше), затем у тебя появляется доступ к их платформе. Ну там в общем довольно похоже на все остальные сайты по поиску работы, жмёшь apply к подходящим позициям и ждёшь пока ответят. Процесс обычно относительно отработанный: apply -> interview -> profit
У меня в одной конторе было тестовое на два дня, в другой тестовая неделя, в обоих случаях всё оплачивалось по полной ставке.
> как и куда оплачиваются
Оплата у них через payoneer, bank wire или paypal.
Я в белую оформлялся как ип, после довольно долгой ебли с валютным контролем банка (пришлось переводить и заверять перевод договора у нотариуса) они почти перестали придираться.
Через payoneer скорее всего попроще (где-то в течение месяца тебе приходит карта), но там повыше комиссии на снятие. Но зато налогов платить не надо. Короче, на любителя.
Через палку я понятия не имею как выводить бабло, так что не рассматривал.
> Видел этих, читал что у них какой то контракт зашкварный по которому ты можешь поработать неделю или две бесплатно если не понравишся работодателю, сталкивался с таким?
Неправда, все тестовые задания и тестовые сроки от работодателей оплачиваются.
> Ещё вопрос, вот ты на собесе кодилити дрюкал или просто про алгоритмы расказывал, правильно я понимаю?
Этапы были такие:
1. Просто разговор (оценивают знание языка и вообще вменяемость общую)
2. Решаешь алгоритмы, вроде на кодилити, да. Задачки не очень простые, но и не очень сложные. Я в итоге что-то типа 190 из 300 набрал и был собой очень недоволен, но мне рекрутёр сказал, что это вполне нормально.
2.5. Созваниваешься с техническим чуваком, он хвалит твои решения, ну или наоборот ругает и даёт...
3. Тестовое по рельсам (в общем стандартная хуйня крудовая, работы дня на два-три, дают две недели)
На всё про всё уходит около месяца (длинные перерывы между этапами).
Затем приходит договор, ты его мышкой подписываешь, ну и збс.
>>660365
> Какая там вообще система работы, какие требования
Прежде чем тебя допускают до сайта, ты проходишь интервью с ними (см. выше), затем у тебя появляется доступ к их платформе. Ну там в общем довольно похоже на все остальные сайты по поиску работы, жмёшь apply к подходящим позициям и ждёшь пока ответят. Процесс обычно относительно отработанный: apply -> interview -> profit
У меня в одной конторе было тестовое на два дня, в другой тестовая неделя, в обоих случаях всё оплачивалось по полной ставке.
> как и куда оплачиваются
Оплата у них через payoneer, bank wire или paypal.
Я в белую оформлялся как ип, после довольно долгой ебли с валютным контролем банка (пришлось переводить и заверять перевод договора у нотариуса) они почти перестали придираться.
Через payoneer скорее всего попроще (где-то в течение месяца тебе приходит карта), но там повыше комиссии на снятие. Но зато налогов платить не надо. Короче, на любителя.
Через палку я понятия не имею как выводить бабло, так что не рассматривал.
Вот это вот первый этап нужно пройти только чтобы иметь возможность потом апплаиться на задания, как на апворке?
Да.
Вкатывальщики в руби, ищущие ментора или код ревью, почта в шапке. Пока что только двое мне решили написать, остальные стесняются, видимо.
Блядь, вот же время летит
таким >>661094 ребятам, это же харкач. Я так понимаю, по-английски ты свободно говоришь? Алсо охуел от зарплаты, я сам только стипендию 6k получаю, в мелкой студии платили 15k
Хочу устраиваться на работу, дали задание сделать файловый менеджер с функциями: просмотр список файлов, переход по папкам. Корень папку - public. Сказали юзать Рекат.жс и Рельсы. Покажи путь.
Так задай вопрос или скинь код на ревью, не хочешь же ты, чтобы за тебя всё написали?
На какую позицию такие тестовые дают? Вроде посложнее крудошлепства.
Сколько тебе лет?
>Вкатывальщики в руби, ищущие ментора или код ревью, почта в шапке. Пока что только двое мне решили написать, остальные стесняются, видимо.
Тебе наверное написали те кто уже что-то может (и имеет некоторые проблемы), я вот пока ничего не умею так как только начал, поэтому стесняюсь. Ну вернее смысла пока нет, ведь на данном этапе это больше самостоятельная работа с книгами и кодом. Про книжки ты мне ответил, план набросал — уже неплохо, хоть и несколько лаконично. И на том спасибо :)
>>659739-анон
>план набросал — уже неплохо
Тут я виноват, конечно, что не слишком понятно пишу. Опыт работы у меня большой, а вот педагогического ноль целых, хуй десятых.
Вообще в плане обучения языкам программирования, как мне кажется, книги без упражнений довольно бесполезны. Поэтому как соберусь, накидаю список упражнений, практический минимум рубиста.
Напиши подробнее про
>было бы поконтрибьютить в опен-сорсные проекты. На гитхабе таковых полно.
Как искать? Как контрибьютить? Пили гайд.
>Поэтому как соберусь, накидаю список упражнений, практический минимум рубиста.
Было бы неплохо.
IDE? OS? Что-нибудь еще в качестве проверенного решения для разработки?
плюсанусь к вопросу, и еще - участвовать в опенсорсе, это нужно обратиться к мейнтейнеру проекта, типа "я такой-то и такой-то, можно я на вас поработаю забесплатно", или просто берешь и закрываешь рандомные issues на гитхабе?
Кем вы видите себя через 5 лет?
Поглядел, действительно, неплохой курс.
>>661298
> IDE? OS? Что-нибудь еще в качестве проверенного решения для разработки?
У меня довольно стандартный набор: os x, sublime text 2, iterm2
Когда на линуксе сижу, то же самое, не знаю, что ещё добавить.
>>661305
>>661286
> Как искать? Как контрибьютить? Пили гайд.
Как вы, наверное, понимаете, отнюдь не боги обжигают горшки опенсорсных проектов, большая часть из которых напичкана багами:
https://github.com/rails/rails/issues --- 411, мать их, issues!
https://github.com/sinatra/sinatra/issues
https://github.com/bundler/bundler/issues
https://github.com/rspec/rspec-core/issues
https://github.com/intridea/hashie/issues
https://github.com/rom-rb/rom/issues
Процесс "как мне добавить себе звездочку контрибутора в опен-сорс" как правило очень простой:
0. Читаете CONTRIBUTING.md, если он имеется в наличии, но если нет, то:
1. Клонируете проект
2. Прогоняете тесты, чтобы убедиться, что всё работает
3. Отбранчиваетесь в свою ветку
4. Пишете тест, который воспроизводит баг
5. Чините баг
6. Шлёте пулл-реквест с указанием бага, который вы починили
7. ?????
8. Вы восхитительны
Если проект относительно маленький, то обычно есть смысл предварительно связаться с автором, чтобы узнать, а нужна ли ему ваша помощь ваще. Если у проекта есть ирц канал --- ваще ништяк, спешим туда, спрашиваем есть ли какие-нибудь легкие баги для начинающих контрибьюторов, ну и ваще возможные советы.
> я такой-то и такой-то, можно я на вас поработаю забесплатно
По-хорошему, лучше связаться с автором, прежде чем что-то делать, потому что будет просто обидно, если он сам свои баги починит, а вы впустую время потратите.
Но большие проекты, типа тех же рельс, с удовольствием принимают пулл-реквесты от любых разработчиков.
Поглядел, действительно, неплохой курс.
>>661298
> IDE? OS? Что-нибудь еще в качестве проверенного решения для разработки?
У меня довольно стандартный набор: os x, sublime text 2, iterm2
Когда на линуксе сижу, то же самое, не знаю, что ещё добавить.
>>661305
>>661286
> Как искать? Как контрибьютить? Пили гайд.
Как вы, наверное, понимаете, отнюдь не боги обжигают горшки опенсорсных проектов, большая часть из которых напичкана багами:
https://github.com/rails/rails/issues --- 411, мать их, issues!
https://github.com/sinatra/sinatra/issues
https://github.com/bundler/bundler/issues
https://github.com/rspec/rspec-core/issues
https://github.com/intridea/hashie/issues
https://github.com/rom-rb/rom/issues
Процесс "как мне добавить себе звездочку контрибутора в опен-сорс" как правило очень простой:
0. Читаете CONTRIBUTING.md, если он имеется в наличии, но если нет, то:
1. Клонируете проект
2. Прогоняете тесты, чтобы убедиться, что всё работает
3. Отбранчиваетесь в свою ветку
4. Пишете тест, который воспроизводит баг
5. Чините баг
6. Шлёте пулл-реквест с указанием бага, который вы починили
7. ?????
8. Вы восхитительны
Если проект относительно маленький, то обычно есть смысл предварительно связаться с автором, чтобы узнать, а нужна ли ему ваша помощь ваще. Если у проекта есть ирц канал --- ваще ништяк, спешим туда, спрашиваем есть ли какие-нибудь легкие баги для начинающих контрибьюторов, ну и ваще возможные советы.
> я такой-то и такой-то, можно я на вас поработаю забесплатно
По-хорошему, лучше связаться с автором, прежде чем что-то делать, потому что будет просто обидно, если он сам свои баги починит, а вы впустую время потратите.
Но большие проекты, типа тех же рельс, с удовольствием принимают пулл-реквесты от любых разработчиков.
Я (не ОП) попробовал бы решить так:
- на рельсах типа api, всего 1 точка api, при обращении на которую происходит загрузка списка файлов в заданном каталоге. Это закрывает функции просмотра списка файлов и перехода по папкам.
- на реакте морда к этому делу.
Рейт май солюшен.
>>661338
>theodinproject.com
>Поглядел, действительно, неплохой курс.
Раз уж рекомендуете, для тех кто не может в английский (или пока не может) есть русский перевод (идентичность я не сравнивал) http://codenamecrud.ru/
Но лучше конечно подтянуть английский
>sublime text 2
>>661350
>Классно, что не пишешь в рубимайне
Это какой-то сложный прикол? Объясните.
Никакого смысла переизобретать колесо я не вижу.
Курс, конечно, специализирован на рельсах, но это легко исправить самым простым способом --- практикой. Я запилю список упражнений, более специализированный на изучении собственно руби и полезных в работе навыков, чтобы совсем в облаках не летать, но в плане теории лучше чем в линках выше я вряд ли смогу изложить. С другой стороны, если у вас по ходу возникают конкретные вопросы, то не стесняйтесь писать в тред или в почту.
Вот хорошо отформатированная версия:
https://gist.github.com/djinn2chhk/d4889f9fbc0ecf1ec7ba
Текстовая копия:
Задания разделены на несколько уровней с возрастающей сложностью.
Если на каком-то из первых уровней недостаточно заданий, то дополнить их можно сайтами
http://www.codewars.com/?language=ruby
https://rubymonk.com/
Я старался не повторяться с theodinproject и другими курсами, но всего не предусмотришь. Список будет дополняться.
Важное замечание: старайтесь к каждому из этих заданий написать тесты на rspec или minitest, что больше нравится. Предусмотрите все частные случае и проблемы, которые могут возникнуть.
Замечание по вводу-выводу: везде, где не указано иное, подразумевается интерфейс командной строки. Посмотрите на библиотеку slop для случаев, когда аргументов больше двух.
Поехали:
# A. Базовое владение языком (io, стадартная библиотека)
1. Fib v2: назовем fib(k, n) функцию, которая возвращает n число в последовательности, каждое следующее число в которой является суммой k предыдущих. Считать первым числом последовательности 1, а предыдущие нулями.
2. Random names: посмотрите на http://www.nrscotland.gov.uk/files/statistics/pop-names-07-t4.csv. В этом датасете содержится список имён с количеством людей, получивших каждое имя. Напишите функцию, которая будет возвращать случайное имя, которое бы соответствовало распределению. Ну, например, если в списке 100 вань 70 вась и 30 петь, то с 15% шансом должен возвращаться петя, с 35% вася и с 50% ваня.
3. Conway's game of life: прочитайте правила в википедии https://ru.wikipedia.org/wiki/Жизнь_(игра) и постройте симуляцию. Поле бесконечным делать не надо, достаточно очень большим. Стартовое поле сделайте просто файлом.
# B: взаимодействие с внешним миром
1. CBR scraper: на сайте центробанка ежедневно публикуются курсы валют, например: http://cbr.ru/currency_base/daily.aspx?date_req=05.02.2016 Постройте программу, которая на вход будет получать две даты и код валюты, а в ответ соберет курсы по этой валюте на заданном интервале и сохранит их в csv.
2. Twitter mini-client: заведите себе аккаунт на твиттере, если ещё не, зафолловьте людей и пройдите в раздел разработчиков. https://dev.twitter.com/rest/public При помощи их REST API постройте аналог собственной ленты (не используя home_timeline, разумеется). Покажите топ-5 самых ретвиченных твитов.
# C: Now we're getting somewhere
1. 2ch.hk scraper: напишите две программы, первая будет периодически (раз в 15 секунд, например) обновлять https://2ch.hk/pr/, (М) собирать оттуда треды и их последние посты и сохранять в sqlite3 базу. Вторая программа будет показывать последние десять тредов и последние пять постов в каждом. Затем распространить это на любые интересующие борды.
2. Bayes classifier: используя датасет из http://www.aueb.gr/users/ion/data/enron-spam/, нужно построить наивный байесовский классификатор спама. https://ru.wikipedia.org/wiki/Байесовская_фильтрация_спама вот тут примерная постановка. Полученную модель нужно куда-то сохранить, по желанию либо просто сериализовать в файл, либо в дб, на ваше усмотрение. Ну и разумеется нужен некий интерфейс к этому классификатору, который позволит на вход давать письмо, а на выход получать ответ, спам это или хам.
3. После выполнения 1 и 2, постройте к каждому из них хтмл-интерфейс, используя sinatra
# D: Было слишком просто.
Пока что в этой категории будет только одно задание:
Общее описание: Строим мини-гугл. Получив на вход список сайтов из alexa top-500, ну или свой собственный, отправляемся кравлить всё это. На скравленных страницах выделяем ссылки и ходим уже по ним и так до бесконечности. Из скравленного контента строим индекс на elasticsearch. К этому индексу приделываем небольшую форму поиска.
Теперь важные соображения:
1. Кравлить надо в много потоков или процессов
2. Не нужно ходить по одним и тем же урлам больше одного раза
3. Нужно уважать robots.txt и не лезть чаще положенного (ограничить сверху максимальное количество запросов на домен это в любом случае хорошая идея; подумайте о синхронизации этих рейт-лимитов между рабочими процессами)
4. Рекомендую пока разделить процессы кравлинга и парсинга. То есть паук тупо качает страницы, а уже другой процесс выкусывает оттуда ссылки
5. Ранжир страниц: возьмите страницу из учебника гугла и выдайте наибольший вес тексту ссылок, которые ведут на урл (не учитывайте в ранжире ссылки с самого домена; например example.com ссылающийся на google.com со словами "лучший поисковик мира" даст веса google.com по запросам "лучший поисковик", а если ссылка будет откуда-то с google.com, то нет
6. Ошибки будут: сайты будут слать непонятные хттп-коды, некорректно сформированный хтмл, вешаться по таймауту, и так далее. Вы строите внедорожник, а не паркетник для идеальных условий
7. Не нужно ходить по одному сайту всё время. Какой-нибудь ютуб вас может продержать бесконечно. Нужно ввести какой-то жесткий лимит на посещения страниц с одного домена в течение часа, например
Когда основа будет готова, подумайте о деплое. Найдите и прочитайте гайд по chef. Заведите пять виртуальных машины, на одну из них задеплойте веб-интерфейс и демона, который пихает задачи для пауков, на другую парсер, на три остальных пауков.
Вот хорошо отформатированная версия:
https://gist.github.com/djinn2chhk/d4889f9fbc0ecf1ec7ba
Текстовая копия:
Задания разделены на несколько уровней с возрастающей сложностью.
Если на каком-то из первых уровней недостаточно заданий, то дополнить их можно сайтами
http://www.codewars.com/?language=ruby
https://rubymonk.com/
Я старался не повторяться с theodinproject и другими курсами, но всего не предусмотришь. Список будет дополняться.
Важное замечание: старайтесь к каждому из этих заданий написать тесты на rspec или minitest, что больше нравится. Предусмотрите все частные случае и проблемы, которые могут возникнуть.
Замечание по вводу-выводу: везде, где не указано иное, подразумевается интерфейс командной строки. Посмотрите на библиотеку slop для случаев, когда аргументов больше двух.
Поехали:
# A. Базовое владение языком (io, стадартная библиотека)
1. Fib v2: назовем fib(k, n) функцию, которая возвращает n число в последовательности, каждое следующее число в которой является суммой k предыдущих. Считать первым числом последовательности 1, а предыдущие нулями.
2. Random names: посмотрите на http://www.nrscotland.gov.uk/files/statistics/pop-names-07-t4.csv. В этом датасете содержится список имён с количеством людей, получивших каждое имя. Напишите функцию, которая будет возвращать случайное имя, которое бы соответствовало распределению. Ну, например, если в списке 100 вань 70 вась и 30 петь, то с 15% шансом должен возвращаться петя, с 35% вася и с 50% ваня.
3. Conway's game of life: прочитайте правила в википедии https://ru.wikipedia.org/wiki/Жизнь_(игра) и постройте симуляцию. Поле бесконечным делать не надо, достаточно очень большим. Стартовое поле сделайте просто файлом.
# B: взаимодействие с внешним миром
1. CBR scraper: на сайте центробанка ежедневно публикуются курсы валют, например: http://cbr.ru/currency_base/daily.aspx?date_req=05.02.2016 Постройте программу, которая на вход будет получать две даты и код валюты, а в ответ соберет курсы по этой валюте на заданном интервале и сохранит их в csv.
2. Twitter mini-client: заведите себе аккаунт на твиттере, если ещё не, зафолловьте людей и пройдите в раздел разработчиков. https://dev.twitter.com/rest/public При помощи их REST API постройте аналог собственной ленты (не используя home_timeline, разумеется). Покажите топ-5 самых ретвиченных твитов.
# C: Now we're getting somewhere
1. 2ch.hk scraper: напишите две программы, первая будет периодически (раз в 15 секунд, например) обновлять https://2ch.hk/pr/, (М) собирать оттуда треды и их последние посты и сохранять в sqlite3 базу. Вторая программа будет показывать последние десять тредов и последние пять постов в каждом. Затем распространить это на любые интересующие борды.
2. Bayes classifier: используя датасет из http://www.aueb.gr/users/ion/data/enron-spam/, нужно построить наивный байесовский классификатор спама. https://ru.wikipedia.org/wiki/Байесовская_фильтрация_спама вот тут примерная постановка. Полученную модель нужно куда-то сохранить, по желанию либо просто сериализовать в файл, либо в дб, на ваше усмотрение. Ну и разумеется нужен некий интерфейс к этому классификатору, который позволит на вход давать письмо, а на выход получать ответ, спам это или хам.
3. После выполнения 1 и 2, постройте к каждому из них хтмл-интерфейс, используя sinatra
# D: Было слишком просто.
Пока что в этой категории будет только одно задание:
Общее описание: Строим мини-гугл. Получив на вход список сайтов из alexa top-500, ну или свой собственный, отправляемся кравлить всё это. На скравленных страницах выделяем ссылки и ходим уже по ним и так до бесконечности. Из скравленного контента строим индекс на elasticsearch. К этому индексу приделываем небольшую форму поиска.
Теперь важные соображения:
1. Кравлить надо в много потоков или процессов
2. Не нужно ходить по одним и тем же урлам больше одного раза
3. Нужно уважать robots.txt и не лезть чаще положенного (ограничить сверху максимальное количество запросов на домен это в любом случае хорошая идея; подумайте о синхронизации этих рейт-лимитов между рабочими процессами)
4. Рекомендую пока разделить процессы кравлинга и парсинга. То есть паук тупо качает страницы, а уже другой процесс выкусывает оттуда ссылки
5. Ранжир страниц: возьмите страницу из учебника гугла и выдайте наибольший вес тексту ссылок, которые ведут на урл (не учитывайте в ранжире ссылки с самого домена; например example.com ссылающийся на google.com со словами "лучший поисковик мира" даст веса google.com по запросам "лучший поисковик", а если ссылка будет откуда-то с google.com, то нет
6. Ошибки будут: сайты будут слать непонятные хттп-коды, некорректно сформированный хтмл, вешаться по таймауту, и так далее. Вы строите внедорожник, а не паркетник для идеальных условий
7. Не нужно ходить по одному сайту всё время. Какой-нибудь ютуб вас может продержать бесконечно. Нужно ввести какой-то жесткий лимит на посещения страниц с одного домена в течение часа, например
Когда основа будет готова, подумайте о деплое. Найдите и прочитайте гайд по chef. Заведите пять виртуальных машины, на одну из них задеплойте веб-интерфейс и демона, который пихает задачи для пауков, на другую парсер, на три остальных пауков.
>1. 2ch.hk scraper: напишите две программы, первая будет периодически (раз в 15 секунд, например) обновлять https://2ch.hk/pr/, (М) собирать оттуда треды и их последние посты и сохранять в sqlite3 базу. Вторая программа будет показывать последние десять тредов и последние пять постов в каждом. Затем распространить это на любые интересующие борды.
Вот это уже явно спизженная у меня идея. И как ты собрался "распространять" без обхода капчи?
Если где-то кого-то повторил, то приношу извинения, писал в общем то, что в голову придёт.
> И как ты собрался "распространять" без обхода капчи?
Окей, это важный момент, я его отдельно распишу.
В гисте про капчу расписал. Вообще это сильно ортогональная основной задаче проблема. Двач вроде бы не показывает капчу, если в него не лупиться чаще определенного количества запросов в минуту, но тут я, конечно, не продумал задание.
В принципе 4чан в отличие от двача этим не страдает вроде как.
на форчане тем более капча нужна. я считаю ботов что-то отправляющих лучше писать для систем с регистрацией. вот у меня в планах написать бота, чтобы находил и отправлял отклики на апворке.
>Отвечаю на вопросы
Привет, я неофит, ответь пожалуйста.
Хочу сделать паука. Есть url откуда я хочу копировать и разбивать на кусочки таблицу http://egb.com/tables. Не получилось ничего копировать средствами Nokogiri, я так понял что этот сайт работает на angularjs и ajax. И типа поэтому мой паук читает раньше времени, бля не понимаю что делать. Пишут что нужен phantomjs, но я не нашел где научится создавать скраперы этой связкой. Помоги пожалуйста.
Небольшое дополнение: в таблице не палится id матча, как мне быть если я хочу все эти данные из таблицы копировать в мою бд?
Таблица выгдлядит пикрилейтед.
Хочу что бы паук возвращал что-то вроде такого вывода:
{
match_id => 13234
date => 21.02 10:51
match => dota
player_1 => MVP Phoenix
odds_p_1 => 1.480
player_2 => First Departure
odds_p_2 => 2.386
draw => none
event => WePlay
}
И так по всем строкам (матчам)
Ищи где приходит json с данными, которыми заполняется таблица и используй ее, хуле ты как маленький.
А там точно приходит json с данными? Может быть там все заполняется специальными функциями? Там же повсюду функции вида ng-repeat, ng-if, ng- etc
я знаю, как джейсон на жаве парсится, хз как на твоем инструменте.
ну и нахуй ты нужен когда есть божественная джава?
Джава отличный язык для своих задач.
Спасибо, заценю сейчас.
Ахахаах! Он действительно там есть, какой-то файл! Извините что я такой неофит
Хорошие задания, лойс тебе за chef. Вообще, судя по постам, ты хороший человек, добра тебе.
Посоветуй чего почитать по стилю архитектуры.
Например есть кусок бизнес логики, его можно пихнуть в одно место. но того будет много таких кусов
функция _do_some_thing
.... Вызов другого метода в котром уже все есть, и все.
end
зато они все будут в одном месте, и будем вызывать из этого модуля одну функцию где будет его дерьгать эту логику.
второй стул, это распилить этот модуль, и его части раскидать по разным частям программы. А основной кусок логики пихнуть прямо туда где он нужен.
И не понятно какой кусок лучше.
Второй вроде меньше писать надо, но код будет превращаться в кашу я думаю у всего проекта.
или первый, код в одном месте, Но много врапперов, и наверно есть дублирование кода, но вроде красивше выглядит.
Вообщем надеюсь моя проблема понятно, чо почитать поэтому поводу.
Что на счет этой книги
http://rutracker.org/forum/viewtopic.php?t=4910665
Я 2 года проработал бекендером на Scala/Play2.0/mongo. В конце второго года сгонял на профильную конфу, посмотрел на 30-40 летних дядь, занимающихся этой галиматьей и меня затошнило. Смахнув пыль с диплома математика ушел в machine learning.
дело не в
>роликов, википедии, статей, бесплатных частей платных курсов
а в плане обучения, пути, который можно позаимствовать из этого курса. Плюс можно выполнять задания оттуда. Ссылки по теории и туториалы там устаревшие, это факт.
Ну он про веб не сказал, он сказал руби
Читал эту книжку в офлайн варианте, там про nodejs, vagrant, jquery. Какой-то особенно ценной информации не замечено. Можно заменить курсами по css-html-jquery на codeacademy и codeschool, ноду догнать по nodeschool.io
Книжки (думаю, что по торрентам всё есть, но :
Sandi Metz: Practical Object-Oriented Design in Ruby: An Agile Primer
Avdi Grimm: Confident Ruby
Jim Gay: Clean Ruby (но с этой книжкой надо поосторожнее быть, иначе можно и в космос улететь)
Скринкасты destroy all software
Скринкасты rubytapas (но там всякие советики по мелочи)
Скринкасты railscasts
> И не понятно какой кусок лучше.
> Второй вроде меньше писать надо, но код будет превращаться в кашу я думаю у всего проекта.
или первый, код в одном месте, Но много врапперов, и наверно есть дублирование кода, но вроде красивше выглядит.
Не уверен, что до конца тебя понял, но в целом обычно стремятся к уменьшению каждого отдельного класса и увеличению их количества. Идея в том, чтобы минимизировать область ответственности каждого объекта. Но переусердствовать тоже не стоит, иначе приходим к джавизмам.
>>662243
К сожалению, не знаю этой книги.
>>662272
У меня собственно крудошлёпства минимальное количество было. В основном бэкенды разные. Не надоело, даже скорее наоборот.
>>662171
>Можно как-нибудь сымитировать логин на сайте без phantomjs
Зависит от того, что ты подразумеваешь под логином. С capybara-webkit в комплекте идёт полновесный хром без головы. Но зачастую достаточно просто куку прокидывать с авторизацией.
> Книжки (думаю, что по торрентам всё есть, но :
... но каждая из них не дороже $30.
Многие программерские книги проще покупать чем искать на торрентах.
>Не уверен, что до конца тебя понял, но в целом обычно стремятся к уменьшению каждого отдельного класса и увеличению их количества. Идея в том, чтобы минимизировать область ответственности каждого объекта. Но переусердствовать тоже не стоит, иначе приходим к джавизмам.
забрал пуудр, судя по описанию то что мне надо.
Я новичок, поэтому не понимаю как нужно. а коллег с 8 годами правильной практики нету.
ебать ты тупенький
Вроде бабло можно указывать как полученные с инвестиций, и платить ваще 9 процентов. и в пенсионный ничего не надо отчислять
Можешь блог Гея почитать
Это копия, сохраненная 26 марта 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.