Ответы пользователя по тегу Программирование
  • Кто такой IoT разработчик?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    IoT - частный случай embedded.
    Ответ написан
    Комментировать
  • Программист в "громких" компаниях — возможно ли, и нужно ли?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Попасть в такие компании проще сейчас.

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

    Сейчас стремиться в подобные компании очень полезно в начале карьеры, поскольку крупные компании смогли стать таковыми не только из-за крутых программистов, но далеко не в последнюю очередь благодаря организации работы.
    Очень и очень многие компании рушатся, не переживя рост с 10-50 человек до хотя бы 300-500 из-за проблем управления, оказавшись недостаточно гибкими для расширения.
    Польза будет и в знакомстве с самой организацией самой работы, организацией проектов и инструментов, и множество опыта программистов вокруг.

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

    Ключевых программистов в таких компаниях не так много, как это может показаться.

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

    В дальнейшей карьере опыт работы в подобных компаниях очень заметен. И не только по восприятию девочек из HR, но и сам поймешь, что кроме программирования, в подобных компаниях приобрел опыт огромного количества различных нюансов, которые востребованы везде.
    Ответ написан
    5 комментариев
  • Header в header'е и можно ли делать игру на одних Header'ах?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Игру можно делать на одних библиотеках. Написать кучу библиотек, в каждой свое.
    И потом вызывать все функции из подключенных библиотек.

    Игру можно сделать в одном основном файле. Ничего в него не включать, написать спагеттикодом.

    Писать программы вообще можно тремя символами, просто
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++.+++++++..+++.-------------------------------------------------------------------------------.+++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++.+++.------.--------.-------------------------------------------------------------------.-----------------------.
    Ответ написан
    1 комментарий
  • Нужен ли сейчас bash, и знание unix, backend разработчику?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Конечно нужно.

    Не обязательно быть экспертом в bash, но вы должны понимать
    а) основы работы в командной строке, основные команды типа ls, cat, tail, head, tar, gzip, echo, grep
    б) понять как работают перенаправления >, >>, < и конвейер |
    б) устройство стандартной *nix файловой системы, прав доступа в ней, уметь с этим работать из командной строки.
    в) Уметь редактировать файлы (vi,vim), добавлять/править пользователей.
    г) Уметь авторизироваться по ключам, в случае чего создавать ключи и конфигурировать.
    д) Уметь пользоваться scp, ping, wget, curl, nslookup чтобы ориентироваться по минимуму в сети.
    е) Уметь пользоваться cron

    Ну и писать простейшие скриптики.
    Круто будет освоить vi/grep/sed/tr на уровне чуть выше среднего.

    P.S. На самом деле со всем вышенаписанным можно ознакомиться за неделю ленивого почитывания по вечерам, чтобы понять суть и возможности, и в случае чего знать что именно подгуглить на месте.
    Ответ написан
    3 комментария
  • Что такое битность команды?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Битность команды - это сколько бит (обычно байт) она занимает.

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

    На 8-битном "псевдопроцессоре" можно предположить например такие команды

    Поместить 16-битное значение в регистр AX (двумя командами)
    mov AX, 0xFFFF ( 3 байта)
    lea 0x1234, AX (3 байта)

    Поместить 16-битное значение по 16-битному адресу (одной командой)
    lea 0x1234, 0xFFFF (5 байт)

    1) С точки зрения логики - в первом случае 2 команды, во втором одна команда - то есть вроде как второй случай должен работать в два раза быстрее.

    2) С точки зрения 8-битного процессора, в первом случае у нас 6 тактов, во втором 5 тактов, то есть быстрее не в два раза, а на 20%.

    3) С точки зрения логики 16-битного процессора, количество тактов меньше, но
    В первом случае 3 байта - два такта + 3 байта - еще два такта, 4 такта всего
    во втором случае 5 байт - 3 такта всего. Быстрее на 25%

    4) С точки зрения логики 32-битного процессора количество тактов еще меньше, при этом
    в первом случае 3 байта + 3 байта - 2 такта
    во втором случае 5 байт - 2 такта, разницы нет.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    1. "устал я что то "
    "реально ли учить две разные технологии паралельно"
    Кто вас знает. Учить можно и 5 разных технологий, вопрос во времени и усилиях.

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

    Хотите устроиться - ищите вакансии, ходите на интервью.
    Хотите изучить что-то - учите, пишите код. Работать самостоятельно вы уже умеете, раз на фрилансе выходите в заработок выше официальной работы. Научитесь теперь самостоятельно трудоустраиваться.
    Ответ написан
    Комментировать
  • Есть ли у вас документация проекта для командной работы?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    В крупных проектах, задачи ставятся через багтрекер, в котором в тикете должен быть desigon solution, заапрувленный архитектором (или кто у вас контролирует архитектуру проекта в целом).
    Там должно было быть указание, нужно ли создавать новый метод, или есть готовый, написанное опытным сотрудником.

    P.S. Джуниорам и даже мидерам задание нужно всегда уточнять. Сеньор должен сам догадаться и уточнить как решать таск.
    Ответ написан
    Комментировать
  • Необходимые знания ит-юриста?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Хороший английский для чтений оригинальных соглашений и лицензий.

    Также крайне полезно, чтобы юрист имел продвинутый ИТ бэкграунд.
    Чтобы легко мог понять такие вещи как кеш.
    Чтобы понимал что просмотр и скачивание равносильны и понимал почему.
    Чтобы имел представление о разных операционных системах.
    Чтобы понимал чем исходный код отличается от скомпилированного или байт-кода.
    Чтобы понимал основы TCP/IP и как движется траффик.
    Ответ написан
    2 комментария
  • Где научиться правильно писать код?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Найдите опен-сорс проекты на питоне, попробуйте в них что-то улучшить, разобравшись что там написано.
    Без сравнения вы не сможете понять преимущество и недостаток разных подходов.
    Ответ написан
    Комментировать
  • В программисты или в тестировщики (идти)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Нужно понимать, что "люди с улицы", обычно подразумеваются как люди без айтишного бэкграунда, без адекватного образа мышления. Даже при всем желании, такие не смогут вырасти до хорошего специалиста в силу отсутствия таких качеств, как любопытство, умение концентрироваться на задачах, желание вообще разобраьтся как это все работает. Поэтому если такой и устроится, и даже сможет выполнять служебные обязанности, врядли будет расти как специалист.

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

    10 лет назад тестировщиком было устроиться проще, компании, которые начали специализироваться на тестировании и компании, которые вводили у себя профессиональное тестирование, находились в начале своего активного роста. Профессия, особенно в странах СНГ, как таковая была еще не очень устоявшаяся.

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Профессиональное тестирование подразумевает отдельное направление.
    Тестировщик берет ТЗ и пишет тест-кейсы - то есть описание как и что нужно протестировать, чтобы убедиться, что это соответствует тех.заданию.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Говорят некий Безос на своем сайте-аггрегаторе стал самым богатым человеком в мире.
    Так что да, вполне можно заработать.
    Ответ написан
    Комментировать
  • Как админу стать разработчиком?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Обычный путь. Гуглишь вакансии, ходишь на собеседования.

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

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    1. "но думаю, что для всего требуется знание архитектуры компьютера."
    Верно. Таненбаума в принципе хватает. А так просто берите и читайте википедию про разные устройства, интерфейсы, стандарты. Знать все - нет особого смысла, но вы можете попробовать написать программу, которая взаимодействует с каким-то устройством, потом с другим. И получите общее представление лучше, чем просто в книгах.

    2. "Так же хочется спросить про Linux. Понял, что это лучшая ОС для программиста. Следует ли изучить книги по данной ОС?"

    ОС не является лучшей или хужей для программиста. Например очень сложно, а то и почти невозможно писать под Линуксом что-то специфическое под Windows. Тот же C# он в Линукс только начинает идти. Тот же directX под Линуксом отсутствует.

    У каждой ОС есть свои плюсы и минусы. Под Линуксом удобно писать для Линукс, под Windows - для Windows. Есть и кроссплатформенные разработки, где не так важна ОС.

    Но да, знать Линукс хотя бы на базовом уровне - любому программисту более чем рекомендуется. Рекомендую просто поставить себе виртуалбокс, в нем поставить линукс и поработать. Полистать можно книжку по администрированию Линукса.
    Будет вполне неплохо, если вы сможете поднять под линуксом ftp/sshd и зайти на него со своей виндовой машины, пробросив нужные порты.

    Для веб-программеров Линукс ближе, так как почти все веб сайты (за исключением aspx), в основном хостятся на Линукс/Unix, и знание принципов работы ОС и ее файловой системы - нужны.
    Ответ написан
    1 комментарий
  • Правильно ли объясняется в тексте почему в 1 кб 1024 байт?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Нет, неправильно.
    То, что было в перфокартах для контроля четности - это оставьте перфокартам, контроль четности и кодирование данных никак не связаны с обозначением кило и 1024. И уж тем более 1025 вообще далеко от ИТ.

    Все проще.
    Берем 1 бит, можем оперировать двумя значениями 0 и 1
    2 бита - 4 значения, 0-3
    3 бита - 8, 0-7
    4 бита - 16, 0-15
    5 бит - 32, 0-31
    6 бит - 64, 0-63
    7 бит - 128, 0-127
    8 бит - 256, 0-255
    9 бит - 512, 0-511
    10 бит - 1024, 0-1023

    Нет такого набора бит, чтобы мы могли оперировать ровно 1000 значений. 9 бит мало, а 10 бит позволяют оперировать уже 1024 значениями. Ограничиваьт себя искусственно нет смысла.
    Поэтому на железном уровне в качестве адресации используются степени двойки, чтобы максимально эффективно использовать все используемые биты и память.
    Следовательно ближайшее к 1000 "компьютерное" число это 1024, отсюда в килобайте 1024 байт.

    Для бизнеса это оказалось не очень удобно. И вообще много технических моментов обычным пользователям непонятно почему и как, например с теми же жесткими дисками, когда объем неотформатированного диска и отформатированного может отличаться на заметные процентов 10-15.
    Кроме того, в системе Си, приставки кило, мега, и так далее всегда означали 1000 чего-то. Поэтому с исторически сложившимся 1024 в ИТ отрасли сложилась некомфортная ситуация. Для исправления и появились новые названия, кибибайты, мегибайты, а килобайты и мегабайты по общепринятой системе Си теперь кратны 1000. Но это важно для стандартизации, маркетинга, а не для программирования.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Запускаете сервер на своем компьютере, запускаете клиент на своем компьютере. Подключаетесь к серверу по 127.0.0.1
    Ответ написан
    Комментировать
  • Как получить такой двоичный код?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Посмотрите, совпадает ли алгоритм разработчиков с созданием символов в UTF-8

    В таком виде это совсем другой вопрос.

    Посмотрите алгоритм формирования UTF-8 символов, думаю это все оттуда:

    Подготовить старшие биты первого октета (0xxxxxxx для одного октета, 110xxxxx - два, 1110xxxx - три и т.д.). Для остальных октетов два старших бита равны 10 (10xxxxxx).
    Количество байт Значащих бит Первый байт Шаблон полностью
    1 7 0xxxxxxx 0xxxxxxx
    2 11 110xxxxx 110xxxxx 10xxxxxx
    3 16 1110xxxx 1110xxxx 10xxxxxx 10xxxxxx
    4 21 11110xxx 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    5 26 111110xx 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
    6 31 1111110x 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
    Ответ написан
  • Что такое bulk-запрос?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    get_player_by_id - обычный запрос, вернет данные про игрока по его ID
    get_players_by_ids - bulk запрос, вернет данные про несколько игроков по их ID, одним запросом.
    Ответ написан
    Комментировать
  • Си это основополагающий язык или просто популярный?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Под процессоры (точнее под архитектуру), пишут компиляторы и интерпретаторы, чтобы код программы мог быть скомпилирован под конкретную архитектуру и следовательно выполниться на ней.

    Си ОЧЕНЬ неблизкий к машинному коду, но на нем действительно меньше абстракций, чем в большинстве других популярных языков. Но различные языки появлялись в разных условиях, и часто потому, что Си вообще не подходил под решение задач. От Си развился С++. И все. Остальные языки создавались достаточно независимо.

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

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Укажите stackoverflow одним из источников.
    Укажи свой аккаунт в stackoverflow.
    Препод как антиплагиат вычисляет? Этой программой? Подойди к нему и задай этот вопрос. Тостер тут не поможет.
    Ответ написан
    Комментировать