Pull to refresh
11
0
Владимир Номхоев @nomhoi

Программист

Send message

Как проводить собеседования разработчиков

Reading time3 min
Views8.6K

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

Читать далее

Советы от HR: как пройти собеседование для релокейта в заграничную компанию

Reading time8 min
Views11K
В прошлый раз редакция Нетологии рассказала истории двух разработчиков, которые решили переехать за границу и найти там работу. А сегодня мы узнали у Анастасии Шамгуновой, HR director APAC and META (Asia Pacific, Middle East, Turkey and Africa) компании Kaspersky, чего ожидать от собеседований в компанию, которая находится за рубежом. 
Читать дальше →

Можно ли сэкономить, набирая junior специалистов?

Reading time7 min
Views20K

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


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

Читать дальше →

О C++ и объектно-ориентированном программировании

Reading time7 min
Views17K
Привет, Хабр!

Вашему вниманию предлагается статья, автор которой не одобряет сугубо объектно-ориентированного подхода при работе с языком С++. Просим вас по возможности оценить не только авторскую аргументацию, но и логику, и стиль.
Читать дальше →

Работа с файлами в C++ с использованием Boost

Reading time9 min
Views40K
Привет! Я время от времени рассказываю на Хабре о решениях распространённых задач на C++ и вообще люблю делиться опытом. Поэтому даже написал целую книгу, которая называется «Разработка приложений на С++ с использованием Boost». Она может быть интересна разработчикам, которые уже немного знакомы со стандартной библиотекой языка, хотят глубже изучить Boost, упростить и повысить качество разработки приложений. Уверен, что информация, которую я собрал в книге, будет полезна — всё больше библиотек Boost становятся частью стандарта. Сегодня предлагаю прочитать главу, посвящённую работе с файлами. В ней я рассказываю о перечислении файлов в каталоге, стирании и создании файлов и каталогов, а также о самом быстром способе чтения. Надеюсь, будет интересно. И, пожалуйста, не забывайте делиться впечатлениями в комментариях.

UPD: добавил в конец поста бонус для читателей Хабра.
Читать дальше →

Пока смерть не разлучит нас или всё о static в C++

Reading time8 min
Views220K


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

Читать дальше →

Начать заниматься роботами должно быть просто

Level of difficultyEasy
Reading time9 min
Views14K

Введение


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

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

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



Интересно? Тогда начнём.
Читать дальше →

Ричард Столлман и будущее инноваций в ПО

Reading time7 min
Views5.4K

Проблема инноваций в ПО: из прошлого в настоящее


image

Давным-давно основным препятствием для инноваций в разработке ПО был доступ к компьютерам.

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

Такие люди как Ричард Столлман начали с этим бороться.

Ричард Столлман возглавляет движение Free Software Movement, которое показывает, как разработчики проприетарного ПО ограничивают свободу пользователей, а также выявляет слежку и манипулирование в таком ПО и проводит кампании, призывающие заменить проприетарное ПО свободным.

В статье на тему «Почему ПО должно быть свободным» Ричард Столлман утверждает, что разработка ПО должна рассматриваться отдельно от распространения или модификации ПО. Он приводит несколько примеров того как препятствование распространению или модификации ПО наносит вред обществу: меньше людей могут его использовать, никто из пользователей не может его адаптировать или исправить, а другие разработчики не могут учиться на этом ПО или создавать новые проекты на его основе.
Читать дальше →

Разбираемся с системными вызовами в Linux с помощью strace

Reading time10 min
Views47K
Перевод статьи подготовлен специально для студентов базового и продвинутого курсов Administrator Linux.





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

В операционной системе можно выделить два режима работы:

  • Режим ядра (kernel mode) — привилегированный режим, используемый ядром операционной системы.
  • Пользовательский режим (user mode) — режим, в котором выполняется большинство пользовательских приложений.

Пользователи при повседневной работе обычно используют утилиты командной строки и графический интерфейс (GUI). При этом в фоне незаметно работают системные вызовы, обращаясь к ядру для выполнения работы.
Читать дальше →

Удалёнка за доллары: а меня возьмут?

Reading time6 min
Views72K

Удалёнка за доллары: а меня возьмут?


Удалёнка в хорошей зарубежной компании — крутая штука. Сидя даже где-то далеко в провинции, можно зарабатывать большие деньги: от $3,000 в месяц на средненькой позиции в неизвестной компании до $186,000 в год на позиции senior programmer в Basecamp.


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


У меня получилось так же: спустя почти два года тимлидерства в американской компании, я уехал в другую страну — но по-прежнему считаю удалёнку «за доллары» очень крутым вариантом занятости, по многим пунктам даже существенно лучше переезда за границу.


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

Читать дальше →

Краткое руководство по Node.js для начинающих (SPA, PWA, mobile first)

Reading time3 min
Views9.3K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод Руководства по Node.js в формате одностраничного прогрессивного адаптированного приложения.

Данный формат означает следующее:

  • SPA — новые данные (разделы или главы руководства) загружаются без перезагрузки страницы — реализовано с помощью динамического импорта
  • PWA — приложение можно установить на мобильный телефон или компьютер; приложение работает даже при отсутствии подключения к сети — реализовано с помощью сервис-воркера и кэширования
  • mobile-first — приложение предназначено для использования, в первую очередь, на смартфонах, но хорошо выглядит и на широких экранах

Посмотреть и установить приложение можно ЗДЕСЬ.

Код проекта на GitHub
Читать дальше →

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон

Reading time12 min
Views156K

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


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


Ожидаемый уровень читателя — уже написано несколько тысяч строк ямла, уже что-то в продакшене, но "как-то всё криво".

Читать дальше →

Django ORM для начинающих | Оптимизируем запросы

Reading time8 min
Views92K


Django ORM (Object Relational Mapping) является одной из самых мощных особенностей Django. Это позволяет нам взаимодействовать с базой данных, используя код Python, а не SQL.
Based on schegel.net

Для демонстрации опишу такую модель:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=250)
    url = models.URLField()

    def __str__(self):
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=250)

    def __str__(self):
        return self.name

class Post(models.Model):
    title = models.CharField(max_length=250)
    content = models.TextField()
    published = models.BooleanField(default=True)
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    authors = models.ManyToManyField(Author, related_name="posts")
Читать дальше →

На чём стоит экономить в облаке

Reading time8 min
Views8.5K


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

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

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

Рассмотрим ситуации, когда выгоднее фиксированные тарифы, а когда — pay-as-you-go-концепция (PAYG). Плюс рассмотрим, что можно выключить лишнего, и где чаще всего впустую расходуются ресурсы. Пройдёмся по основным видам ресурсов: CPU, RAM, виртуальным дискам, сети и бэкапам.
Читать дальше →

Ключевые навыки Python-программиста

Reading time5 min
Views14K
В наше динамичное время программисту необходимо держать руку на пульсе и постоянно осваивать новые навыки, чтобы оставаться востребованным специалистом.

Я уже около двух лет программирую на Python, и сейчас наступил момент осознанно подойти к освоению новых навыков. Для этого я решил проанализировать вакансии и представить востребованные навыки в виде графа. Я ожидал увидеть, что навыки будут образовывать кластеры, соответствующие разным специальностям: backend разработке, data science и др. А как же обстоят дела на самом деле? Обо всём по порядку.
Читать дальше →

41 вопрос о работе со строками в Python

Reading time9 min
Views173K
Я начал вести список наиболее часто используемых функций, решая алгоритмические задачи на LeetCode и HackerRank.

Быть хорошим программистом — это не значит помнить все встроенные функции некоего языка. Но это не означает и того, что их запоминание — бесполезное дело. Особенно — если речь идёт о подготовке к собеседованию.

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


Читать дальше →

Управлять правами на уровне объектов

Reading time15 min
Views13K

Рано или поздно, разработчик на Django встречается с проблемой: как сделать так, чтобы пользователи не могли изменять или удалять, а то и вовсе не видели разные объекты одного и того же типа.


Допустим, ваш проект касается хранения информации о проектах. Разные пользователи входят в разные проекты и не должны видеть информацию о другом проекте. Один и тот же пользователь может входить в несколько проектов и иметь разный статус в разных проектах — где-то он может только просматривать информацию, а в других — править данные. В каком-то проекте пользователь зарегистрирован как персонал проекта, а в другом — только как потребитель его услуг. Уровень доступа соответственно, должен быть совершенно разным.


Этими вопросами занимаются несколько пакетов, мы рассмотрим один из них — Django-Access. Все, кому это интересно, приглашаются под кат.

Читать дальше →

Практическое руководство по разработке бэкенд-сервиса на Python

Reading time57 min
Views188K
Привет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.



TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать дальше →

Как сохранить здоровье глаз: руководство для программистов

Reading time5 min
Views22K
Перед вами перевод статьи Shafi Rizvi, опубликованной на сайте medium.com. Автор дает 7 советов, как защитить глаза от воздействия компьютерного экрана.


Фото с ресурса Unsplash. Автор: Daniil Kuželev
Читать дальше →

Что нового в Ubuntu 20.04

Reading time5 min
Views158K

23 апреля состоялся релиз Ubuntu версии 20.04 с кодовым названием Focal Fossa, являющимся следующим выпуском Ubuntu для долгосрочной поддержки (LTS) и является продолжением Ubuntu 18.04 LTS, выпущенной в 2018 году.

Немного про кодовое имя. Слово «Focal» означает «центральная точка» или «самая важная часть», то есть связано с понятием средоточия, центром каких-либо свойств, явлений, событий, а «Fossa» имеет корень «FOSS» (Free and Open-Source Software — свободное и открытое программное обеспечение) и по традиции именования версий Ubuntu названиями животных означает Фосса — самое крупное хищное млекопитающее из семейства виверровых с острова Мадагаскар.
Читать дальше →

Information

Rating
6,226-th
Registered
Activity