• Порядок действий для оформления самозанятого, для иностраных платежей и выбор банка?

    @falconandy
    Мой недавний опыт
    1. На сайте Альфа-банка заказал бесплатную дебетовую карту с выдачей в отделении (отделение выбрал центральное с "моментальной" выдачей). Альфа-банк, потому что в моем регионе у них есть банкоматы с приемом/выдачей валюты. Заранее установил мобильное приложение Альфа-банка. Через пару часов туда подъехал, по-моему по моей заявке еще никто ничего не делал. Поинтересовались, для чего мне их карта и выдали мне именную рублевую дебетовую карту (в заявке указывал MasterCard, но принесли Visa - мне было непринципиально), и дополнительно я попросил долларовую (собственно для этого я и забирал лично, хотя можно было заказать доставку) - выдали неименную. Мобильное приложение Альфы понадобилось, чтоб тут же активировать карты. Всё заняло минут 20-25, но мои данные у них уже были, несколько лет назад я получал через них зарплату.
    2. Зарегистрировался как самозанятый через веб-доступ налоговой (в моем регионе доступно с июля 2020 г.).
    3. Установил мобильное приложение Мой Налог. В мобильном приложении Альфа-банка зарегистрировался как уже зарегистрированный самозанятый.
    4. Добавил 2 новых счета (рублевый и долларовый), назвал их, чтоб было понятно что они для учета доходов от самозанятости.
    5. Добавил эти счета в Upwork (рублевый "Direct to Local Bank" и долларовый "Wire Transfer")
    6. С рублевым счетом проблем не было, а в долларовом не совпало моё имя (в Альфе было еще отчество и транслитерация одной буквы не совпадала) - отправил запрос в поддержку Upwork и счет в течение нескольких часов одобрили.
    7. Добавленные счета становятся доступными для вывода через 3 дня.
    8. Через 3 дня вывел в долларах через "Wire Transfer", на счет Альфы пришло на следующий день. Никакого явного валютного контоля не было, документы не просили, комиссий не снялось (только $30 снял Upwork как и положено).
    9. Самостоятельно посчитал пришедшую сумму в рублях по курсу ЦБ на дату получения денег на счет.
    10. В мобильном приложении Альфы создал новый чек от иностранной организции (Upwork Global Inc.), указал сумму в рублях. Проверил в приложении Мой Налог, что чек нормально ушел и начислился налог (по факту реального налога пока нет, т.к. действует налоговый бонус около 22000 руб. = 10000 руб + чуть больше 12000 руб.)
    11. На всякий пожарный случай: скачал шаблон Confirmation of Service, заполнил и отправил в поддержку Upwork. Полученный от них подписанный экземпляр сохранил.
    Ответ написан
  • Upwork, ИП и валютный контроль - как правильно оформить документы?

    Вообщем я, к сожалению, не нашел информации на этот вопрос, поэтому опишу здесь, что я делал.
    1. Вывел через Wire Transfer (USD)
    2. Деньги пришли, я на Tinkoff
    3. Путем мучительных попток выяснить, что же и как же заполнять выяснилось:
      1. 1. Указать код валютной операции - 21500 (платеж нерезидента резиденту)
      2. 2. Скачать User Agreement (https://www.upwork.com/legal/), распечатать, подписать последнюю страницу,
        отсканировать приложить к документам.
      3. 3. Предоставить скрин Сertificate of earnings https://www.upwork.com/reports/certificate-of-earn... здесь
        указана дата когда вы присодинились к апворк.
      4. 4. Предоставить pdf-файлы ваших инвойсов, т.е. нужно зайти в отчеты -> история транзакций. Кликнуть на ref-
        ccылку - так попадете на pdf
      5. 5. Предоставить подписанный Сonfirmation of Service. Что нужно сделать для этого:
        1. 1. Скачать: https://content-static.upwork.com/blog/uploads/sit...
        2. 2. Заполнить, распечать, отсканить.
        3. 3. Написать в поддержку - https://support.upwork.com/hc/en-us
        4. 4. Отправить скан, в ответ вы получите, то что получите и прикрепите это к заявке валютного контроля.



    Вот такая краткая инстукция у меня получилась.
    Ответ написан
    1 комментарий
  • Книги по Python для начинающих?

    zooks
    @zooks
    Frontend
    4-е издание Лутца "Изучаем Python" содержит Python 3-ей версии. Поэтому читать не только можно, но и нужно.
    Ответ написан
    8 комментариев
  • Книги по Python для начинающих?

    AgentProvocateur
    @AgentProvocateur
    На основе многих рекомендаций и отзывов.

    Начало:

    1. Сэнд "Hello World. Занимательное программирование"
    2. Доусон "Программируем на Python"
    3. Любанович "Простой Python"

    Закрепление:

    1. Лутц ("Изучаем", "Программируем", "Карманный справочник")
    2. Рамальо "Python - к вершинам мастерства"
    3. Саммерфилд "Python на практике"

    Прикладное применение:

    1. Митчелл "Скраппинг веб-сайтов на Python"
    2. Свейгарт "Автоматизация рутинных задач с помощью Python"
    3. Маккинни "Python и анализ данных"

    Django:

    1. Djangogirls
    2. Головатый "Django. Подробное руководство"
    3. Документация
    Ответ написан
    5 комментариев
  • На каком языке сейчас чаще всего программируют микроконтроллеры?

    @0x131315
    Тут чистая экономика.
    Контроллеры ставят в основном в массовые устройства.
    Это значит что каждый сэкономленный доллар - это десятки, а то и сотни миллионов прибыли на ровном месте.
    Подобные суммы с лихвой покрывают время программистов, поэтому им ставят задачу уложить функционал на самый дешёвый контроллер, который ещё хоть как-то способен потянуть этот функционал.
    Отсюда - высокая степень оптимизации кода при работе с контроллерами.
    Нужно максимально использовать все особенности конкретного контроллера - программисты много работают с даташитом.
    Язык должен позволить максимально полно использовать систему команд конкретного контроллера, и гибко управлять регистрами и памятью контроллера.
    Поэтому в ходу в основном ассемблер - с ним можно писать максимально компактный код.
    Но функционал зачастую достаточно большой, чтобы его целиком писать на ассемблере.
    Поэтому, в целях экономии времени, пишут на Си, с использованием библиотек, а самые ответственные места реализуют с помощью ассемблерных вставок.
    Благодаря этому удается реализовать почти все преимущества и ассемблера и Си: быстрая и достаточно полно контролируемая разработка, с достаточно компактным и быстрым кодом.

    С симками ситуация иная - там важно было реализовать кроссплатформенный код. Поэтому используют java, не смотря на ресурсы.

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

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

    Так что все зависит от здравого смысла и стоимости.
    Просто так везде пихать java - немного глупо.
    Ответ написан
    Комментировать
  • Как организовать подработку на зарубежном фрилансе?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Как я сам переходил с постоянной работы на Upwork:
    сначала брал небольшие заказы и делал их в свободное время. Заказов становилось всё больше. В какой-то момент подработка по вечерам стала приносить столько же денег, сколько основная работа full-time. В этот момент решил, что пора полностью уходить во фриланс.
    Уволился. Стал фрилансить фулл-тайм. Поначалу было сложно забить всё свободное время, но даже при 50% занятости по деньгам выходило лучше, к тому же полная свобода, постоянно новые задачи.

    Теперь по твоим вопросам.
    1) Первое время необязательно заморачиваться за законность. Пока не выйдешь на стабильный доход хотя бы 100к/месяц, париться особо не за что. Можешь выводить деньги на PayPal или Payoneer или другими полулегальными способами. На первых порах лучше сосредоточиться на работе.
    2) Когда появится стабильный ощутимый доход, то нужно регистрировать ИП, открывать расчётный счёт. В качестве налогообложения либо патент, либо упрощёнка 6%. Особо ничего сложного, инфы в инете в и на тостере куча.
    3) Обычный расчётный счёт для ИП. На упрощёнке платишь 6% со всех доходов, которые поступают на счёт, платить нужно в определённые даты, чтобы налоги взаимовычлись с обязательными взносами ИП.
    На патенте платишь годовую стоимость патента и обязательные годовые взносы и больше ничего. Далее только ведёшь КУДиР.
    Нужно выбрать как вести бухгалтерию: электронные системы (Эльба, Моё Дело); услуга бухгалтера от банка или стороннего сервиса; наёмный бухгалтер; или тупо самому в экселе. Я пользуюсь первым способом.

    4) В классическом фрилансе (когда делаешь заказ за заказом) действительно редко бывает энтерпрайз. Там обычно небольшие конечные проекты. Но когда долго работаешь на фрилансе, то начинает надоедать постоянный поиск клиентов и стремишься к одному большому проекту. По сути фриланс в какой-то момент перерастает в удалённую работу. И тут уже вполне может быть энтерпрайз. По технологиям это ты сам для себя решай. Нужно посмотреть, какие есть проекты, что востребовано. Возможно что-то подучить.
    Ответ написан
    1 комментарий
  • Работа самозанятым на Upwork 2020?

    @elpensador
    Эти вопросы уже обсуждались, и пока нет четкой ясности:
    Самозанятые и Upwork?
    Работа на Upwork в статусе самозанятого. Реально или нет?

    И тут еще важно отметить, что не стоит путать валютный контроль для ИП и работу самозанятых.
    Ограничений на прием валюты для самозанятых в законе не предусмотрено. В приложении "мой налог" в качестве источника поступлений предусмотрена "иностранная компания".
    То есть запрета на прием валюты нет, но как на практике будут реагировать банки, пока не совсем ясно. Хотя некоторые люди в теме по ссылке писали, что так работают.
    Ответ написан
    Комментировать
  • Как пройти верификацию на Upwork если уровень английского очень низкий?

    Zoominger
    @Zoominger
    System Integrator
    Я бы посоветовал не идти на Апворк в таком случае.
    Ну или хотя бы погуглить по Тостеру этот набивший оскомину вопрос.
    Ответ написан
  • Что нужно изучать начинающему Android программисту помимо языка программирования?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Программированием начинают заниматься потому, что это просто нравится.
    Тебе нравится это?
    Если нет, то выбирай другой путь
    Ответ написан
    Комментировать
  • Как Вы управляете проектами с удаленными заказчиками?

    coderisimo
    @coderisimo
    А что имеете ввиду, когда пишете о наборе инструментов ?
    Несколько мыслей вслух
    1) Если проект с почасовой оплатой, то ничего страшного в том, чтобы дать заказчику доступ к репозиторию с кодом. Ему спокойно, Вам не напряжно.
    2) Можно утвердить время для ежедневных (или пару раз в неделю) митингов по скайпу. Все знают точное время начала и всегда готовы. Всегда можно заранее перенести время-дату.
    3) Для небольших проектов кажется удобным трелло. Нужно только сразу договориться о правилах. Писать только по существу. Каждый тикет - одна тема. Итд итп. Для маленьких проектов бесплатного функционала хватает с головой.
    4) Трелло позволяет прикреплять к теме видео демонстрации реализации отдельных задач. Пояснения голосом помогают кратко показать что и как работает.
    5) О некоторых вещах лучше договориться на берегу. Например : выходные дни - святое))). Игнорируются только в случае серьезного форс-мажора )) итд.

    Самое главное, чтобы в процессе принимали участие адекватные люди. Остальное приложится )
    Ответ написан
    1 комментарий
  • Какие материалы можете посоветовать по архитектуре программных продуктов?

    @luna3956
    Все доступно в сети для скачивания:

    5c62e037d3c0e761976723.png5c62e0667cb67812189008.png5c62e06f1911e083548263.png5c62e0f1ed4e6305750220.png
    Ответ написан
    Комментировать
  • Основы, алгоритмы, проектирование. Как начать?

    @Zanak
    Похоже у вас в голове все смешалось.
    1. Что такое разработка программ? Думаю, ни чему не противоречит сказать, что это написание кода на избранном языке, направленное на решение задачи, поставленной перед разработчиком. Решение может использовать сколько угодно много алгоритмов, либо не использовать вовсе, кроме тех, что реализованы в стандартной библиотеке языка.
    2. Алгоритмы? Алгоритм - это формальное описание решения проблемы, как правило, не привязанное ни к одному из языков программирования, и не являющееся самостоятельной программой. Например: поиск всех подстрок в тексте - это алгоритм, который может быть использован в программе, но сам программой не является.
    3. Структуры данных? Структуры данных - это способ организации информации в памяти и/или на диске, для более оптимального ее использования, или применения к ней алгоритмов. Например: графы и алгоритмы на них.
    4. Шаблоны проектирования? Шаблоны проектирования, в оригинале design patterns - это решения типовых ситуаций при проектировании приложений. Речь идет о достаточно крупных приложениях, хотя сложно выделить четкий критерий, когда приложение можно назвать крупным. В мире web приложений самый известный шаблон - это MVC, хотя вебом его применимость не исчерпывается.

    С чего начать:
    1. Знакомство с языком. Без знания языка все остальное бессмысленно. Начать лучше с известных языков, по которым много литературы и большое комюнити: C/C++, C#, Java, php7, python, JavaScript. Не гонитесь сразу за несколькими языками. Не гонитесь за новомодными языками, вроде go, rust или elixir, они решают проблемы, которые вам еще только предстоит понять. Не гонитесь за экзотическими языками, вроде lisp, haskel, erlang или ocaml, у них есть свои почитатели, но это не самый простой способ начать программировать. Выберете, что вам ближе, компилируемые, или скриптовые, со строгой типизацией или динамической, и вперед.
    2. Потренируйтесь в реализации отдельных алгоритмов. Это позволит вам закрепить знание выбранного языка, расширит ваш кругозор и научит выделять эти алгоритмы в процессе решения более сложных задач. Здесь фундаментальный труд Дональда Кнута "Искуство программирования" вам в помощь, хотя одной этой книгой тема конечно не исчерпывается.
    3. Теперь можно браться за задачи посложнее. Один нюанс, если вы пойдете в веб разработку: с нуля системы сейчас ни кто не пишет, все используют фреймворки. Возможно, было бы не плохо, покопаться в устройстве парочки таких продуктов, а в идеале, попробовать построить свой велосипед, чтобы лучше понять что, и как устроено и работает.
    Ответ написан
    Комментировать
  • Есть ли сайт, где собраны общепринятые практики программирования?

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

    Stasgar
    @Stasgar
    Обученная макака
    Во-первых: начните изучать архитектурную часть программирования, изучите паттерны проектирования, изучите SOLID, DRY, KISS и остальные модные словечки, постарайтесь всё это осознать, или, на крайняк - зазубрить. Всё придет с опытом, изначально все не понимали зачем всё так сложно, но эта сложность обусловлена неисчислимыми литрами слёз и потраченных нервов, всё не просто так.

    Судя по всему это тестовое или учебное задание. От вас требовалось отоверинжинирить простую задачу. Давайте попробуем:

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

    Разобъем задачу на отдельные независимые этапы:
    1) Преобразование одной структуры данных (текстового файла) в другую (объект, понятный PHP, к примеру)
    2) Преобразование этой структуры данных в Json формат.
    Первый вопрос, который может возникнуть - почему сразу не преобразовать в json? Ответ - при расширении системы в будущем - нам понадобится вывести данные в виде массива, или в виде XML, или даже в виде готового файла Excel. Нам будет сложно дополнять логику изначального класса, ничего при этом не сломав и не затронув уже существующий функционал. Также ответом на этот вопрос может являться каждая буква из SOLID принципов, подробнее отвечу дальше, когда буду пояснять за реализацию, см. ниже

    Теперь рассмотрим эту задачу с точки зрения ООП, начнем думать не от конкретной реализации, а от интерфейса и абстракции (мы не парсим конкретный файл, мы парсим просто файл, мы не переводим его в конкретное представление json, мы переводим его просто в представление):
    Нам понадобится 2 класса - непосредственно класс, читающий файл и преобразующий его в простейший тип данных (например PHP array). Второй класс - преобразователь простейшего типа данных парсера в какой-то определенный тип:
    1. LogFileReaded implements/extends FileReaderContract(интерфейс, возможно абстрактный класс, если понадобится предустановленная логика)

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

    2. JsonPresenter implements/extends DataTypePresenterContract

      Абстракция содержит контракт на метод output(), а в конструкторе принимются исходные данные. В конкретной реализации JsonPresenter в output() будет банальный json_encode() (да, это нормально, нет, класс не лишний и нет, json_encode() нельзя пихать в сам парсер) А теперь к вопросу - почему не следует просто запихать это всё в парсер и вместо массива отдать json: в будущем, когда система будет расширяться - нам понадобится представить данные в виде XML - что тогда будем делать - переписывать весь код парсера ради добавления switch case "json" и т.д.? А если что-то сломается во всей системе? А если вариантов представления станет настолько много, что файл будет просто не читаем? А при данном подходе достаточно будет просто написать новый класс XMLPresenter, или даже ExcelPresenter, который на выводе не строку будет выдавать, а целый файл (опустим типизацию output пока)). Также этот класс можно реализовать в виде декоратора (паттерн), да и много еще как.



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

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

    P.S. В данной реализации опускаются и упрощаются некоторые моменты для понятности
    Ответ написан
    21 комментарий
  • Какие книги, ресурсы посоветуете для embeded программиста изучающего С++?

    veydlin
    @veydlin
    Мне никогда не жалко средств на свое любопытство
    Christopher Kormanyos
    Real-Time C++
    Ответ написан
    Комментировать
  • Какие книги, ресурсы посоветуете для embeded программиста изучающего С++?

    @vanyamba-electronics
    Могу порекомендовать знакомство с библиотекой VE_AVR, написанной на C++ для микроконтроллеров ATmega.
    Ответ написан
    Комментировать
  • Какие книги, ресурсы посоветуете для embeded программиста изучающего С++?

    myjcom
    @myjcom Куратор тега C++
    https://legacy.gitbook.com/book/arobenko/bare_meta...

    Test-Driven Development for Embedded C
    Год: 2011
    Автор: Grenning J.W.
    Издательство: Pragmatic Bookshelf
    ISBN: 978-1934356623
    Ответ написан
    1 комментарий
  • Можно ли и создать экземпляр класса (с++) с проинициализированными полями?

    maaGames
    @maaGames
    Погроммирую программы
    > поля класса не будут меняться в процессе
    значит, их нужно делать статическими константами и, возможно, вообще убрать класс, заменив на namespace.

    > "Говорят" можно через шаблон, но как не сказали)
    По сути, те же статические константы, только могут быть только целым числом и не имеют адреса.
    template< int X, int Y >
    class NAME
    {
    public:
        enum { field1 = X, field2 = Y };
    };
    
    typedef NAME<5,7> Name57;
    
    int a = Name57::field1;
    int b = Name57::field2;
    Ответ написан
    7 комментариев
  • Как создать репозиторий с подключением внешнего с которым было бы удобно работать?

    @aol-nnov
    При этом не парясь писать что-то типа: git push <_мой_оригин_> <_мой_мастер_>, а просто git push


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

    энивей, ответ на твой вопрос тут, не поленись почитать и остальные главы.
    Ответ написан
    Комментировать
  • Как сделать чтобы git не видел .idea?

    @ifqthenp
    Мой .gitignore выглядит так:
    # IntellijIdea files
    *.iml
    .idea
    out

    Все прекрасно игнорит, палочка сзади не нужна.
    Ответ написан
    Комментировать