GitHub – крупнейшая библиотека, созданная разработчиками для разработчиков. Главная прелесть хостинга в его идеологии: отдавать также легко, как и получать. Здесь можно найти самые разные IT-проекты как легальные, так и не совсем. Пользуясь открытостью, кто-то роется в исходниках в корыстных целях – чтобы потом использовать их уязвимости для банального шантажа, а кто-то с помощью репозиториев прокачивает свои профессиональные скилы. Давайте разберемся, как не закопаться в миллионах источников и какие перки можно заполучить.
То, что знания не принадлежат лишь узкому кругу избранных, уже признают и транснациональные корпорации. На основе одного исходного кода вырастает несколько новых – так и развиваются технологии, которыми в итоге начинает пользоваться весь мир. Такие гиганты, как Apple, Google, Facebook, Microsoft – разместили и продолжают постоянно обновлять свои репозитории на GitHub. Да что уж, если даже Министерство обороны США заводит хранилище на хостинге https://github.com/Code-dot-mil/code.mil с лозунгом «Помогите нам стать лучше». И каждое новое предложенное полезное решение – это очередной выученный урок в карьере разработчика.
Формат open-source проектов хорош тем, что позволяет участникам общаться также, как мы делаем это в социальных сетях. Помните про принцип соревновательности! К примеру, некто постит вариант реализации идеи. Другие участники, на интересе, либо желая покуражиться предлагают хаки. В итоге – сообщество плюсует авторам лучших решений.
Поэтому чтобы попрактиковаться и проверить свои способности периодически стоит закидывать pull requests – предложения на изменения кода – разработчику, открывшему приглянувшийся вам репозиторий. Владелец в свою очередь может как отклонить, так и принять запрос. Это и будет оценкой выполненной работы. Плюс – таким образом можно понять нуждается ли проект в доработках.
В ноябре 2018-го GitHub отчитался, что количество созданных репозиториев на хостинге превысило 100 миллионов. Чтобы не запутаться в этом многообразии и научиться находить нужную информацию, в первую очередь точно формулируйте запрос в строке поиска. Например, желая узнать о том, как заставить систему быть самостоятельнее в разработке решений, так и пишите: «machine learning».
Копаться в репозиториях определенно стоит. Хотя бы для того, чтобы быть в курсе последних тенденций и понимать, почему те, или иные библиотеки, или подходы становятся популярными. Понятно, что каждая специализация – это отдельный клондайк знаний. Но есть разделы, на которые стоит обратить внимание каждому разработчику. Сейчас в топе front-end и back-end JavaScript, создание ПО для машинного обучения и мобильных приложений. Среди лучших open-source проектов – тех, в которых участвуют наибольшее количество разработчиков – то, что облегчает жизнь программиста путём редактирования кода, автоматизации, контейнеризации или документации. Среди них Visual Studio Code (19 тыс. контрибьюторов), React Native (10 тыс.) и TensorFlow (9,3 тыс.).
На GitHub можно найти интересные, или вернее сказать – красивые – реализации криптографических решений. Кроме того, хостинг помогает разобраться в работе с Solidity – руководства пользования и подробная документация этого языка доступна в том числе и на русском. Плюс – полезно было ознакомиться с примерами смарт-контрактов, чтобы понять, как это выглядит на практике. «Подсмотрев» что-то у коллег, и, вдохновившись несколькими проектами, ваш мозг наверняка сможет родить собственную оригинальную идею.
Преподаватели школы HackerU подобрали исходники, изучение которых положительно скажется на вашей карме:
https://github.com/infoslack/awesome-web-hacking – Этот репозиторий предназначен для желающих разобраться в веб-безопасности, но не знает, с чего начать. Здесь вы найдёте не только ссылки на документацию, лабы и книги по теме, но и достойный набор инструментов: методологию аудита приложений, пентестеры и сканеры уязвимостей. Материал познакомит вас с распространенными типами атак на веб-системы, такими как XSS, SQL инъекции, DNS-спуфинг.
https://github.com/FabioBaroni/awesome-exploit-development/blob/master/README.md – Библиотека по разработке эксплойтов. В собранных ресурсах содержится разбор бинарных уязвимостей, а также советы, как найти слабые места в ПО и сделать код защищённее. Например, избежать страшного сна для каждого программиста – переполнения буфера. Незаменимый материал для специалистов по безопасности. Ведь чтобы выстроить неприступную стену, нужно знать, какими лазейками злоумышленники пользовались до этого.
https://github.com/nebgnahz/awesome-iot-hacks – По сути это сборник хаков обо всём, что подпадает под определение «интернет вещей». Истории о том, как легко можно взломать практически всё в современном мире: от наручного браслета и переносной колонки, до автомобиля и «умного дома». Здесь вы найдёте описания bluetooth-атак, которые получили распространение как раз из-за возросшей популярности носимых IoT-устройств. Кстати, на заметку поклонникам подобных гаджетов – с их помощью хакеры могут собрать неплохое досье на владельцев. Авторы репозитория надеются, что он послужит во благо, и производители техники, ознакомившись с материалом, начнут устранять уязвимости.
https://github.com/sobolevn/awesome-cryptography – Подборка ресурсов для работы с криптографией и организации приложений. Незаменимо для тех, кто постоянно работает с разными языками программирования. Блоги, исследования, руководства и инструкции расскажут, как грамотно выстроить доступ к собственным ресурсам и научат искусству написания оригинальной логики шифрования в проектах. Будет полезно добавить в закладки и ознакомиться, даже если это не совсем ваша специальность. Знания основ криптографии ни для кого лишними не будут.
Кстати, путешествие по репозиториям в GitHub будет интересно и увлекательно не только для «фанатов» и начинающих. Известно, что дети лучше усваивают новую информацию в игровой форме. Думаю, что и разработчики – не исключение. Доказательство тому – вот этот квест для изучения JavaScript – https://alexnisnevich.github.io/untrusted/ – сделанный в формате видеоигры.
Профиль и активность разработчика на GitHub сегодня стали самым наглядным резюме. И в 90 процентах случаев потенциальные работодатели будут смотреть ваши на звёздочки и количество фолловеров на хостинге. Были случаи, когда программистам отказывали в участии в хакатоне из-за пустой страницы на GitHub.
Но не стоит расценивать этот сервер как священную корову. После того, как в июле сервис купила Microsoft, десятки тысяч особо суеверных разработчиков перевели проекты на другие хостинги: GitLab, BitBucket, SourceForge и другие.
То, что знания не принадлежат лишь узкому кругу избранных, уже признают и транснациональные корпорации. На основе одного исходного кода вырастает несколько новых – так и развиваются технологии, которыми в итоге начинает пользоваться весь мир. Такие гиганты, как Apple, Google, Facebook, Microsoft – разместили и продолжают постоянно обновлять свои репозитории на GitHub. Да что уж, если даже Министерство обороны США заводит хранилище на хостинге https://github.com/Code-dot-mil/code.mil с лозунгом «Помогите нам стать лучше». И каждое новое предложенное полезное решение – это очередной выученный урок в карьере разработчика.
Формат open-source проектов хорош тем, что позволяет участникам общаться также, как мы делаем это в социальных сетях. Помните про принцип соревновательности! К примеру, некто постит вариант реализации идеи. Другие участники, на интересе, либо желая покуражиться предлагают хаки. В итоге – сообщество плюсует авторам лучших решений.
Поэтому чтобы попрактиковаться и проверить свои способности периодически стоит закидывать pull requests – предложения на изменения кода – разработчику, открывшему приглянувшийся вам репозиторий. Владелец в свою очередь может как отклонить, так и принять запрос. Это и будет оценкой выполненной работы. Плюс – таким образом можно понять нуждается ли проект в доработках.
В ноябре 2018-го GitHub отчитался, что количество созданных репозиториев на хостинге превысило 100 миллионов. Чтобы не запутаться в этом многообразии и научиться находить нужную информацию, в первую очередь точно формулируйте запрос в строке поиска. Например, желая узнать о том, как заставить систему быть самостоятельнее в разработке решений, так и пишите: «machine learning».
Копаться в репозиториях определенно стоит. Хотя бы для того, чтобы быть в курсе последних тенденций и понимать, почему те, или иные библиотеки, или подходы становятся популярными. Понятно, что каждая специализация – это отдельный клондайк знаний. Но есть разделы, на которые стоит обратить внимание каждому разработчику. Сейчас в топе front-end и back-end JavaScript, создание ПО для машинного обучения и мобильных приложений. Среди лучших open-source проектов – тех, в которых участвуют наибольшее количество разработчиков – то, что облегчает жизнь программиста путём редактирования кода, автоматизации, контейнеризации или документации. Среди них Visual Studio Code (19 тыс. контрибьюторов), React Native (10 тыс.) и TensorFlow (9,3 тыс.).
На GitHub можно найти интересные, или вернее сказать – красивые – реализации криптографических решений. Кроме того, хостинг помогает разобраться в работе с Solidity – руководства пользования и подробная документация этого языка доступна в том числе и на русском. Плюс – полезно было ознакомиться с примерами смарт-контрактов, чтобы понять, как это выглядит на практике. «Подсмотрев» что-то у коллег, и, вдохновившись несколькими проектами, ваш мозг наверняка сможет родить собственную оригинальную идею.
Преподаватели школы HackerU подобрали исходники, изучение которых положительно скажется на вашей карме:
https://github.com/infoslack/awesome-web-hacking – Этот репозиторий предназначен для желающих разобраться в веб-безопасности, но не знает, с чего начать. Здесь вы найдёте не только ссылки на документацию, лабы и книги по теме, но и достойный набор инструментов: методологию аудита приложений, пентестеры и сканеры уязвимостей. Материал познакомит вас с распространенными типами атак на веб-системы, такими как XSS, SQL инъекции, DNS-спуфинг.
https://github.com/FabioBaroni/awesome-exploit-development/blob/master/README.md – Библиотека по разработке эксплойтов. В собранных ресурсах содержится разбор бинарных уязвимостей, а также советы, как найти слабые места в ПО и сделать код защищённее. Например, избежать страшного сна для каждого программиста – переполнения буфера. Незаменимый материал для специалистов по безопасности. Ведь чтобы выстроить неприступную стену, нужно знать, какими лазейками злоумышленники пользовались до этого.
https://github.com/nebgnahz/awesome-iot-hacks – По сути это сборник хаков обо всём, что подпадает под определение «интернет вещей». Истории о том, как легко можно взломать практически всё в современном мире: от наручного браслета и переносной колонки, до автомобиля и «умного дома». Здесь вы найдёте описания bluetooth-атак, которые получили распространение как раз из-за возросшей популярности носимых IoT-устройств. Кстати, на заметку поклонникам подобных гаджетов – с их помощью хакеры могут собрать неплохое досье на владельцев. Авторы репозитория надеются, что он послужит во благо, и производители техники, ознакомившись с материалом, начнут устранять уязвимости.
https://github.com/sobolevn/awesome-cryptography – Подборка ресурсов для работы с криптографией и организации приложений. Незаменимо для тех, кто постоянно работает с разными языками программирования. Блоги, исследования, руководства и инструкции расскажут, как грамотно выстроить доступ к собственным ресурсам и научат искусству написания оригинальной логики шифрования в проектах. Будет полезно добавить в закладки и ознакомиться, даже если это не совсем ваша специальность. Знания основ криптографии ни для кого лишними не будут.
Кстати, путешествие по репозиториям в GitHub будет интересно и увлекательно не только для «фанатов» и начинающих. Известно, что дети лучше усваивают новую информацию в игровой форме. Думаю, что и разработчики – не исключение. Доказательство тому – вот этот квест для изучения JavaScript – https://alexnisnevich.github.io/untrusted/ – сделанный в формате видеоигры.
Профиль и активность разработчика на GitHub сегодня стали самым наглядным резюме. И в 90 процентах случаев потенциальные работодатели будут смотреть ваши на звёздочки и количество фолловеров на хостинге. Были случаи, когда программистам отказывали в участии в хакатоне из-за пустой страницы на GitHub.
Но не стоит расценивать этот сервер как священную корову. После того, как в июле сервис купила Microsoft, десятки тысяч особо суеверных разработчиков перевели проекты на другие хостинги: GitLab, BitBucket, SourceForge и другие.