• Счего начать изучение DevOps?

    @yellowmew
    Cloud infrastructure, monitoring engineer. SRE
    Saboteur неплохо ответил(что не отменяет того что все остальные ответившие тоже правы)
    Девопс - это практики. Это не набор инструментов( инструменты используются на определенных этапах, реализация которых необходима для приближения к идеалу), однако определенные необходимые инструменты опять же есть.
    Про девопс можно прочитать очень много информации, но я, как админ (win-админ :D) вижу ситуацию для вас, как и любого, с опсовой основой, примерно так:
    1. Жирным вы выделили вопросы который для вас вот конкретно сейчас не играют ни малейшей роли. Дмитрий Шицков и Saboteur написали почему: зависит от проекта.
    2. Завет любого ops-а: автоматизируй всё что можно
      Если выбор между configuration management (chef, ansible, puppet и тд) и скриптами - то лучше первое. Хотя и тут можно поспорить, у меня в проекте chef-ом автоматизированное не очень-то используется на последнем этапе доставки в прод, поскольку мы все равно запечатываем машину и запускаем в AWS с asg без пост-конфигурации. Тут можно до посинения спорить хорошо это или нет, но скрипты в идеальном мире проигрывают DSL
    3. Вы пишете код для автоматизации
      Вам понадобится git (который тянет за собой git-хостинг: bitbucket, github, gitlab и тп.) и навыки правильной работы с гитом. Для отслеживания и планирования изменений - понадобится какой-нибудь таск трекер (jira, таск трекер встроенный в gitlab, что-то другое).
    4. Инфраструктура как код
      Автоматизируй всё означает автоматизацию развертывания инфраструктуры
      Здесь уже вступают в силу особенности вашего окружения - в облаках вы скорее всего захочете использовать terraform или, например, CloudFormation в AWS - встроенное средство оркестрации, или же будете сразу все запускать в контейнерах - docker , kubernetes используя соответствующие инструменты.
    5. Мониторинг
      Без правильного и подходящего вашему продукту мониторинга(+логирования) жить нельзя. И это было еще до DevOps тренда - это классика администрирования. Здесь ничего не посоветую, с Zabbix-ом сам не ужился, переехал на influx и прилегающие (TICK stack). Для логирования - graylog, ELK. В некоторых частях используется prometheus который в том числе и для кубера удобен. В общем - с чем подружитесь.


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

    Для примерного осознания всего цикла можно посмотреть на (картинка относительно рандомная,таких много, два года назад я ориентировался по другой, с более подходящим мне списком инструментов, но найти не могу =( )
    Slide1.jpeg

    P.S. Еще раз хочу отметить что описанное выше основано на личном опыте и это - движение в devops со стороны ops. Есть те, кто сразу пытаются строить все по девопсу параллельно обучаясь опсовой части и девелоперской( видел таких, не у всех получалось ). Есть те, кто двигается в девопс со стороны Dev. Все будут иметь разные мнения что важно для того, чтобы начать
    Ответ написан
    1 комментарий
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    @asd111
    Из языков строго python. Он похож чем то на Golang и на javascript так что сложностей в использовании не возникнет. С++ и R сразу нет. Потому что на С++ пишут в основном только сами библиотеки для ML либо что то очень быстрое наподобие анализа видеопотока в автопилотах и даже тогда прототип пишут на python, а R практически не развивается по сравнению с python и имеет более узкую сферу применения чем python.
    В плане обучения можно сделать так:
    1. Прочесть хорошую книгу по теме, потому что нужно знать термины и основные алгоритмы. Ну или хотя бы посмотреть курсы Andrew Ng Machine Learning. Для применения чужих библиотек на простых задачах этого в принципе достаточно.
    2. Глянуть scipy, numpy и jupyter notebook. У scikit есть scikit learn, в котором реализованы некоторые популярные алгоритмы. Например SVM, decision trees и т.д. и есть доки под это дело для начинающих scikit-learn.org/stable
    3. Зарегистрироваться на kaggle.com и найти задачу про титаник. Вот она https://www.kaggle.com/c/titanic Делаете решение как умеете. Можно взять простой gradient boost. Yandex как раз недавно выложил либу под это дело называется cat boost https://tech.yandex.ru/catboost/ Банальное использование этой библиотеки может дать около 80% точности. Вот туториал https://github.com/catboost/catboost/blob/master/c...
    4. Прочитать про keras. Взять готовую модель для смешивания стилей изображений и сделать сайт наподобие ostagram.ru для смешивания изображений. https://github.com/fchollet/keras/blob/master/exam...

    5. Дальше всё зависит от вас, поскольку заработать в области ML непросто :) Когда прочтете хотя бы одну книгу по ML, регистрируйтесь здесь ods.ai - это сообщество русскоговорящих специалистов в данной области.
    Ответ написан
    Комментировать
  • Как быстро начать изучать python?

    @arciomau
    Вообще первое, что я посоветую - забыть на время про программирование и учить английский. Для понимания большинства книг тебе будет достаточно уровня Intermediate (B1, словарный запас 2-3 тысячи слов + общее понимание грамматики). Ибо все равно без английского ты достаточно быстро замучаешься. Точнее скажу, ты замучаешься при первой попытке погуглить любое нетривиальное решение возникшей проблемы (ибо многие подходящие решения будут объяснены по-английски на StackOverflow и подобных сайтах). Ну и при возникновении ошибок в ходе выполнения программы интерпретатор тоже будет "ругаться" по-английски. Если ты никогда не учил английский, пару лет на это уйдет, если заниматься не слишком интенсивно. Если взяться интенсивно, можно и за год, в принципе, достичь этого. Это не совсем просто. Но оно того стоит, 100%.

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

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

    Разумеется, можно параллельно учить английский и читать книги по питону. На этот случай тебе уже присоветовали книги. Я бы рекомендовал начать с Доусона. Книга Лутца, конечно, более универсальная, но уж очень она подробная для начала: можно и запутаться в таком объеме информации (хотя ничего действительно сложного там нет). Еще для быстрого старта подойдет эта книга. Но английский все равно в первую очередь учить, без него беда.

    Ну и в качестве лирического отступления. Я бы лично задумался на твоем месте: а нужно ли мне вообще программирование (безотносительно к питону)? Ибо если тебе быстро становится скучно уже во время изучения основ и хочется убыстрить процесс обучения... Ну вряд ли дальнейшее обучение будет в радость. Программирование вообще-то не самый веселый и разнообразный процесс. Особенно нудно проходит отладка, вылавливание ошибок в программах. Я сам, хоть и не программист по образованию, неоднократно тратил долгие часы и дни в поиске трудноуловимых ошибок в уже написанной программе. Нередко бывало, что процесс тестирования программы занимал в разы больше времени, чем, собственно, написание кода. И это вполне типичная ситуация, независимо от ЯП. А уж когда ты выучишь, наконец, более-менее синтаксис любого языка и начнешь углубляться в алгоритмы - тут уже веселья вообще будет минимум. А вот внимательности, педантичности и настойчивости потребуется немало.

    Поэтому если уж ни в какую не хочется тратить долгие месяцы на изучение английского и одновременное изучение синтаксиса языка программирования, введения в алгоритмы и т.п. - займись чем-то другим.
    Ответ написан
    2 комментария
  • Как начать познание информационной безопасности?

    ranebull
    @ranebull
    Можно начать с просмотра тех же видео от Яндекс КИТ (Курсы Информационных Технологий):
    Безопасность Unix-подобных ОС
    Криптография, шифрование
    Обзорная лекция по безопасности
    Сетевая безопасность
    Информационная безопасность
    Безопасность информационных систем
    Информационная безопасность
    Безопасность информационных систем
    Из книжек можно прочитать Андрей Бирюков: Информационная безопасность: защит...
    На том же Хабре можно пролистать раздел ИБ, чтобы понять, что можно выбрать
    InfoSecurity
    Из общего, думаю, уже можно будет понять, какими прикладными вещами заниматься.
    Ответ написан
    5 комментариев
  • Как развиваться в программировании, если мотивируют только деньги?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Могу посоветовать, как я выбрался из состояния "перегорел".
    1. Начал делать зарядку и отжиматься по утрам. Даже если заболел и нет сил, на 1 раз все равно хватает. Ошибка многих в том, что они пытаются сразу много, а потом их это страшит и они откладывают. А если мозг понимает: 1 раз не много, то им проще выполнить.
    Начните отжиматься, с 1 раза и каждую неделю увеличивайте на 1.
    2. Меняйте пути прихода домой. Если всегда ходите дворами, сегодня пойдите по главной.
    Глаз не должен замуссоливаться.

    Начните с этих двух, если что через 2-3 недели напишите в комментарий и скажу далее что сделать. Пока начнем с малого
    Ответ написан
    2 комментария
  • Как не заплыть жиром, работая удаленно программистом?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    Я уже более 2-х лет активно тренируюсь и могу поделиться опытом.

    Спортзал - штука очень спорная. Я не верю в то, что можно заниматься бесконечно долго по одной и той же схеме без утомления. В моём случае получался такой расклад, чтобы пойти потренироваться:
    - собрать сумку с необходимыми вещами для тренировки
    - добраться до спортзала
    - переодеться
    Только на этот этап можно потратить порядка часа.
    Далее сама тренировка около 1 часа.
    Затем душ, переодевание и обратный путь и вынуть просушиться вещи - ещё час.

    Итого: чтобы потренироваться пойти в спортзал нужно заложить 3 часа времени. А если ещё график не очень гибкий, то можно и в час пик попасть, когда зал переполнен и это вызывает неудобства из-за плотного графика упражнений.

    Лучше всего ориентироваться на домашние и уличные тренировки. Плюс тут несомненный в том, что как только появилось желание подвигаться - пошёл и поделал упражнения. Ещё один: можно делать несколько тренировок в день с минимальными затратами времени.

    Главный секрет поддержания интереса к тренировкам - научиться получать удовольствие от них. Для этого нужна непринужденная атмосфера и медленное сосредоточенное выполнение.

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

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

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

    Что касается питания. На мой взгляд самой прогрессивной диетой сегодня является LCHF. Суть сводится к уменьшению потребления быстрых и медленных углеводов до нуля, а калорийность обеспечивать жиром. Соответственно, белок само собой тоже нужен. Хороша она тем, что организм не ощущает каких-то лишений, голода нет. Жиры очень долго расщепляются, а без углеводов излишки будут выводиться организмом, вместо переноса в жировую ткань.
    Градации потребления пищи в зависимости от времени суток считаю профанацией. Можно разве что избегать питания тяжелой пищей менее, чем за 2 часа до сна.
    Ответ написан
    9 комментариев