52 Поста

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

По мнению основателя AngelList Навала Равиканта, вот что следует с этим делать:

  1. Что учить и как учить — важнее, чем где это учить или как долго.
  2. Лучшие учителя находятся в Интернете. Лучшие книги в Интернете. Лучшие коллеги в Интернете.
  3. Инструментов для обучения предостаточно. Желание учиться — вот чего не хватает.

1. What to study and how to study it are more important than where to study it and for how long.

2. The best teachers are on the Internet. The best books are on the Internet. The best peers are on the Internet.

3. The tools for learning are abundant. It’s the desire to learn that’s scarce.

Напомню, что Илону Маску наплевать на то, имеете ли вы высшее образование. Более развернутый пост о высшем образовании можно найти здесь.

В недавнем интервью, один из наиболее ярких и авторитетных IT-предпринимателей ответил на вопрос о значении высшего образования.

There’s no need even to have a college degree — at all. Or even high school.

If someone graduated from a great university that may be an indication that they will be capable of great things but it’s not necessarily the case.

— Elon Musk

Высшее образование не нужно вообще. Или даже законченное среднее.

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

— Илон Маск

Далее Илон напомнил о том, что Билл Гейтс и Стив Джобс не закончили колледж, но если бы у вас был шанс нанять их — это была бы отличная идея.

В этом посте я приведу пример файла config/mongoid.yml с краткими пояснениями.

Файл mongoid.yml используется для конфигурации Mongoid, который позволяет Ruby-приложениям напрямую взаимодействовать с MongoDB.

Вкратце, Mongoid можно установить добавлением в Gemfile следующей строки:


gem "mongoid", "~> 4.0.0"

Использование Mongoid требует хорошего знания Ruby и вашего фреймворка (Rails или др.), а также некоторые знания самой MongoDB.

Выше я привёл содержание файла конфигурации, которым пользуюсь сам для своих RoR-приложений.

Здесь уже настроена конфигурация для режима разработки, тестирования и production.

Если вы используете Heroku и mLab, стоит выполнить следующую команду для установки переменной среды для Heroku:


heroku config:set MLAB_URI=/url доступа к БД/

Можно использовать и другие способы развёртывания (или хостинга БД), но суть будет та же.

Пример файла config/database.yml.

Для использования в собственном Ruby on Rails приложении, стоит изменить только имена в строках database: fullstack-challenge и database: testdb на имена своей базы данных для режима разработки и для тестирования.

Здесь используется база данных PostgreSQL.

В этом посте я изложу своё мнение насчет наиболее прибыльных ниш Интернета в наше время и в обозримом будущем.

Для начала стоит разобраться откуда в Интернете берутся деньги.

Есть три основных варианта заработка на сайтах:

  • Реклама
  • Предоставление сервиса
  • Продажа услуг или товаров

Первый вариант имеет наибольшее распространение. Чем больше вы имеете трафика, тем больше ваша потенциальная прибыль.

Во второй пункт входят SaaS-платформы, различные хостинги и прочие услуги, которые выполняются на базе вашего программного обеспечения или серверов.

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

Иногда эти варианты могут совмещаться или даже иметь гибриды, но сама суть остается той же.

Как правильно зарабатывать на рекламе

Для начала, давайте посмотрим на обычных владельцев сайтов и вебмастеров.

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

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

Вебмастера

Более профессионально этим занимаются вебмастера.

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

Часто они могут иметь один-два проекта для души, а остальные для денег. Но суть не в этом.

Чтобы создать информационный сайт, вебмастер нанимает копирайтеров, рерайтеров и прочих контент-мейкеров.

Далее он всё это продвигает и старается извлечь прибыль.

Сервисы и платформы

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

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

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

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

В выиграше будут и читатели такого портала.

Большинство из наиболее известных сайтов так или иначе относятся к этой категории.

Что общего у YouTube, Хабрахабра и LiveJournal

YouTube предоставляет возможность авторам видео-контента бесплатно размещать его и делиться им.

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

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

Такие платформы как Хабрахабр и LiveJournal позволяют делиться текстовым контентом, взамен они показывают рекламу и зарабатывают на этом.

Хабрахабр интересен своей концепцией социального взаимодействия пользователей, и своей тематической направленностью. Короче, это коллективный блог IT-специалистов.

Представляете себе насколько отличаются доходы владельцев подобных платформ по сравнению с доходами обычных вебмастеров?

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

Зачем работать программистом

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

А чем занимаются стартапы и почему у них так много прибыли?

Стартапы зарабатывают на первом и втором пунктах из моего мини-списка в начале статьи.

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

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

Почему нужны программисты

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

Но чтобы разработать кастомный сервис, тебе как раз и пригодятся более глубокие знания. К примеру, отличным решением будет его создание на Ruby on Rails.

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

Так зачем работать

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

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

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

Вывод

В идеале, стоит заниматься созданием своего сервиса, на котором пользователи сами будут генерировать контент, либо сервиса предоставляющего какие-то услуги.

Как мне кажется, первый вариант гораздо перспективнее и выгоднее.

Но оба эти варианта будут лучше, чем создание обычных информационных сайтов.

В этом посте я расскажу как я искал работу в Европе (в т.ч. Германии) и что из этого вышло.

Предыстория

В течение некоторого времени я искал работу напрямую, а затем на AngelList.

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

AngelList

На AngelList я отправил довольно много заявок, затем общался с компаниями, которые также заинтересовались мной.

Было интересно посмотреть на все эти стартапы. Кто-то запустил стартап в сфере фитнеса, кто-то в сфере образования, финансов или социальных сетей.

Это были компании из Норвегии, Швеции, Швейцарии, Италии, Великобритании, Германии и других стран. Обычно они располагались в столицах.

Также пара стартапов заинтересовалась во мне самостоятельно.

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

Inkitt

В итоге, после небольшой переписки с одной из компаний, которая называлась Inkitt, они предложили мне звонок по скайпу.

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

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

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

Первым вопросом был «есть ли у меня любимая книга или автор», на который я развернуто ответил.

В принципе, учитывая то что Inkitt занимается издательским бизнесом, ничего удивительного здесь нет.

Далее от общих вопросов мы перешли к более конкретным, к примеру на какую зарплату я рассчитываю, какой опыт имею, почему я предпочитаю Ruby on Rails и т.д.

Ну и ближе к концу я сам задал несколько вопросов об их компании и команде.

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

Ruby on Rails vs AngularJS vs React

Вначале я подавал заявку на должность под названием «Full Stack Developer (Ruby & JavaScript)», которая предполагала знание Ruby on Rails + AngularJS/React.

Но меня спросили что я предпочитаю больше, бэкенд или фронтенд, и есть ли у меня опыт с React.

Я ответил, что я fullstack-разработчик, но чуть больше предпочитаю бэкенд. А с React особо не работал, хотя и наслышан; предпочитаю AngularJS.

В итоге, дальше я собеседовался на должность бэкенд Ruby on Rails разработчика, что вполне меня устраивало.

Дело в том, что вакансия fullstack-разработчика у них слегка устарела, и они искали одного на RoR и двоих на React.

Кстати, Николас говорил, что сейчас в команде у них 12 человек и сейчас они активно ее расширяют. Как я видел по их вакансиям, они также ищут аналитика данных (Data Scientist) и многих людей связанных с менеджментом и издательским бизнесом.

Кстати, из 12-ти человек только четверо говорят по-немецки, так что между собой все общаются на английском.

Будущее издательского бизнеса

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

С помощью своих алгоритмов, они хотят заранее определять будущие бестселлеры.

Немецкая рабочая виза

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

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

Он ответил, что это вообще не проблема.

Я процитирую его слова насчет этого и рабочей визы (синей карты).

In general, the blue card you speaking of is issued to skilled IT professionals with a certain amount of salary. That is right.
The easiest way is to match the salary and to show the visa office that you have a degree from a university that the german system accepts. Super easy, takes 4 weeks, sometimes even faster.

If you do not have this and especially in development self-teaching and learning by doing is the best, the visa office understands it but image this crazy example. you are a bus driver and want to come over and say you do development. Of course the government needs to check if you can code and a university degree is the safest way.

But as I said they know self teaching is the most common way in development. So they have a department called Berlin Partner and we would have to send your resume plus the coursera / John Hopkins univeristy certificate to them, so they see you worked in development for years etc., and then they write a recommendation letter for us that you are classified and that they say you should get the visa.

Then it should also be fairly easy to get the visa. Just takes maybe a bit more time and we have to prepare more papers.

All in all that all should not be a problem at all.

Вольный перевод:

В общем, синяя карта, о которой ты говоришь, выдается квалифицированным IT-профессионалам с определенным уровнем зарплаты. Это правильно.
Самый простой способ — это соответствовать зарплате и показать визовому офису диплом университета, который немецкая система принимает.
Супер легко, занимает 4 недели, иногда даже быстрее.

Если у тебя его нет, особенно в сфере разработки, где самообразование и обучение на практике лучше всего, визовый офис это понимает, но представь себе безумный пример:

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

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

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

В общем, это не должно быть проблемой вообще.


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

У них есть сотрудники из разных стран и они рады находить новых талантливых работников.

После интервью

Через пару дней после интервью, Николас прислал мне тестовое задание, которое, видимо, составил их CTO.

Нужно было сделать небольшое приложение-опросник с заданными характеристиками.

Еще через некоторое время я прислал им готовый результат.

Это приложение, конечно же, было сделано на Ruby on Rails, также там было немного JS на фронтенде. Ну и немного мелочи, например Bootstrap, куда же без него.

Также мне было предложено написать тесты на Ruby-фреймворке по выбору. Недолго думая, я выбрал RSpec.

Затем, немного более чем через 10 дней, Николас прислал мне окончательный ответ:

Dear Kirill,

The Inkitt team wants to thank you for taking the time to participate in our hiring process, we highly appreciate your interest in Inkitt. We interviewed many candidates, and it was a tough decision, but taking all the applications and coding challenges into consideration, we decided not to pursue your application at this time.

You were a great candidate for our job though and we hope that you are not discouraged by our feedback and that you will apply for openings at Inkitt for which you qualify in the future.

Again, thank you for taking the time to talk to me. I enjoyed meeting you and our discussions indicated that you’re really passionate about what you’re doing. I’d like to keep you in our database and I will reach out to you in the case of any future vacancy if that is fine with you.

I wish you personal and professional success and all the best for your future.

Best,
Nicholas

Ну что ж, Inkitt показался мне вполне неплохой компанией, условия и зарплата меня также полностью устраивали.

Но будем надеяться, отказ означает, что где-то для меня есть работа получше.

А пока что вернусь к фрилансу.

Нужно ли высшее образование в IT?

Я бы так не сказал.

Большинство работодателей относится к этому всего лишь как к формальности, если им вообще есть до этого дело.

Я смотрел множество вакансий от европейских IT-компаний и стартапов, в большинстве вакансий либо вообще нет этого требования, либо оно не является обязательным.

Иногда можно встретить «желательна степень бакалавра или магистра, но ее отсутствие может не быть недостатком, если вы изучали всё в реальном мире, а не в стенах университета».

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

Исключение могут составить известные университеты. Если вы учились в университете, который имеет широкое признание и авторитет, это стоит указать.

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

Как можно показать квалификацию без ВО

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

В резюме можно указать свои навыки, опыт работы в других компаниях, сертификаты курсов и прочее. Можно показать ссылки на свои проекты и исходный код (кстати, ссылку на Github в вакансиях спрашивают раз в 10+ чаще, чем спрашивают наличие ВО).

Если есть степень, тоже можно указать в резюме. Опять же, может иметь значение авторитетный ВУЗ и соответствующая специальность, а какое-то непрофильное образование лучше оставить за кадром.

Даже в Google можно устроиться без «корочки». Они на это даже не будут смотреть, если вы покажете им соответствующий опыт и рекомендации, и хорошо проявите себя на собеседовании.

Примерно в конце 2014 я зарегистрировался на Github. Тогда у меня было не так много опыта в программировании, но был опыт в создании сайтов, чем я и занимался.

Мои первые 20 репозиториев содержали статичные сайты, которые я пытался вывести в топ поисковых систем и монетизировать. Это были довольно качественные мини-сайты с подробным текстом и ссылками на скачивание.

Для них я использовал стандартные шаблоны Github Pages, которые должным образом переделывал и улучшал.

Но это история.

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

Но вы не можете размещать там исполняемый код, можно использовать только HTML-страницы.

Github Pages

Github Pages предоставляют вам возможность размещать свои сайты и сайты своих проектов прямо в Github-репозиториях.

На gh-pages свои сайты размещают многие известные проекты. К примеру, там хостится сайт Bootstrap, сайт Ruby и т.д.

Важно также отметить, что хотя Github Pages хостит только статичные сайты, они поощрают использование таких генераторов как jekyll.

Jekyll, кстати, написан на Ruby.

Как разместить сайт

Если вы уже зарегистрированы на Github, достаточно просто создать репозиторий и зайти в его настройки.

Это супер просто.

Сейчас можно хостить свой сайт в master-бранче, но раньше для этого нужно было обязательно создать бранч gh-pages.

Да и вообще сейчас можно добавлять файлы и папки через веб-интерфейс, раньше это можно было делать только с помощью терминала.

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

Они предложат вам красивые темы на выбор:

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

К примеру, можно добавить собственный домен.

Ах да, также там вы можете увидеть по какому адресу ваш сайт размещен на данный момент. Этот адрес имеет стандартный вид для подобных сайтов, если вы не используете кастомный домен.

Снова немного истории: раньше домен можно было добавить только созданием файла CNAME в корневой папке.

Управление сайтом

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

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

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

1. Учишь Ruby, учишь Rails. Самый первый и важный пункт.

2. Изучаешь HTML/CSS/JS. Это должно быть легче.

3. Изучаешь AngularJS. Пригодится для разработки фронтенда.

4. Делаешь свой проект. Это будет проект, который ты будешь показывать работодателям или, как часть твоего портфолио, заказчикам.
Проект не обязательно должен быть коммерчески успешным или решать реальные проблемы, достаточно сделать всё грамотно и показать свои навыки.

5. Затем еще раз зубришь Ruby on Rails от корки до корки.

Теперь программировать ты умеешь, это уже хорошо, но ты еще не зарабатываешь.

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

6. Учишь английский. Если ты этого всё ещё этого не сделал, учи английский.

На этом этапе теоретических знаний у тебя достаточно, так что можно приступать к поиску работы или фрилансу.

7(а). Отправляешь своё резюме в IT-компании. Можно искать напрямую или на сайтах типа AngelList.

7.(б). Регистрируешься на Upwork. Upwork это главная мировая фриланс-биржа. Труднее всего будет получить первые заказы, но потом пойдет как по маслу.

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

Приведу диаграмму самых ценных технологий в резюме программиста.

Самые оплачиваемые языки программирования

Первое место занимает Ruby on Rails.

Так что, самый оплачиваемый язык это Ruby.

Также в этом списке я бы отметил JavaScript. JS отстает от Ruby почти на $20,000 годовой зарплаты, но тем не менее он в топе наиболее ценных веб-технологий.

JS в комбинации с Ruby дает отличный эффект.


Диаграмма приведена для США.