Задать вопрос
  • Как устроиться веб-программистом инвалиду?

    Работать удалённо (можно и по договору) и никому не говорить что вы инвалид вот и всё))
    Ответ написан
    Комментировать
  • Digital Ocean. Как начать или туториалы. Как "задеплоить" проект. Как работать с NodeJS?

    Droplet на DO это обычный VPS.
    Создаете дроплет с предпочитаемой ОС, получаете на почту ip/root/password
    Заходите по ssh, устанавливаете необходимые пакеты, настраиваете свое окружение по любым туториалам из интернета. Здесь нет никакой специфики, все так же как и у любого другого хостера виртуальных серверов.
    Ответ написан
    Комментировать
  • "Запасная" профессия для программиста?

    sabramovskikh
    @sabramovskikh
    Увы, работа вам больше не понадобиться. Нужно будет делать абсолютно все, что можете и не можете. Искать еду и выживать. Просмотрите Беара Грилза
    Ответ написан
    Комментировать
  • Станет ли проблематично в будущем работать в "сером" секторе экономики, в частности во фрилансе (Россия)?

    @386DX
    В УК РФ есть статьи о незаконной предпринимательской деятельности, но пока что они применяются далеко не всегда.

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

    Государство закручивает гайки,

    Налоговики получают зарплату из "казны", они не будут искать налоговые дела на 10 рублей, если у них з.п. 20-30т.р., это не выгодно экономически
    Ответ написан
    Комментировать
  • Где можно порешать задачки по PHP?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Если вам для повышения скила: откройте нравящийся вам фреймворк, перепишите один из его компонентов так, что бы скорость выполнения была сравнима с нейтивным кодом на php, но при этом с тем же интерфейсом. Попробуйте протолкнуть вашу фичу в это фреймворк, если ее одобрят, плюс вам в карму, если не одобрят - получите стек ошибок, в чем вы ошибались))

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

    Попробуйте реализовать подобный проект (не обязательно валидатор), это может быть например логгер(PSR-3) на udp порт, система аннотаций (как в доктрине, но более быстрая, пусть и менее функциональная), минималистичный роутер, работающий с http-message, система по сбору статистики в стиле piwik, пусть и без frontend, но более настраиваемая и т.д.

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

    upd: проект переехал))
    Ответ написан
    Комментировать
  • Какие знания и умения будут полезны для работы с чужим кодом?

    EvilsInterrupt
    @EvilsInterrupt
    System programming, Reversing Engineering, C++
    Не скажу, что очень большой знаток и умелец.
    Поясню только свой опыт.
    1. Пока работает код как надо - НЕ ТРОГАЙ его. Другими словами не обязательно что-то изменять. Вместо изменения можно написать обертки, другими словами вспомнить что существует паттерн проектирования Фасад.
    2. Если же трогать нужно и в унаследованном коде бага - НАПИШИТЕ ТЕСТЫ. Не стоит на себя надеяться. Не надо из себя строить рэмбо. Подумайте как вы проверите результат своей работы после изменения? Другими словами, починив одно легко сломать что-то другое.
    3. п.1 и п.2 со временем дают набор оберток и набор тестов, которые позволят Вам планировать работы по рефакторингу. Да, его надо бросаться делать не сразу, а только после серьезного набора тестов и оберток из вами написанного кода.
    4. Чаще спрашивайте у заказчика о том, все ли фичи нужны или какие-то уже не приносят дохода? Другими словами : нет кода - нет багов и нет проблем с поддержкой!
    Ответ написан
    Комментировать
  • Какие знания и умения будут полезны для работы с чужим кодом?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Все то же самое что и для работы со своим кодом (рефакторинг нужен всем). А так же крепкие нервы.

    Почитайте книжек по рефакторингу, видео-лекции дяди Боба (Боб Мартин)...
    Ответ написан
    4 комментария
  • Для обучения python есть ли подходящие репозитории на github?

    bobrovskyserg
    @bobrovskyserg
    Небольшие репозитории где есть хороший код - это диковиный зверь.
    github - не кунсткамера.
    Идите лучше на checkio.org, там, в публикациях лучших решений задач, вы вернее найдёте дао питона )
    Ответ написан
    3 комментария
  • Как распределить время при обучении программированию?

    @danSamara
    Мой ответ будет несколько груб и не типичен, однако: "Станьте говнокодером!"
    Я не шучу - берите реальные задачи и решайте их как можете - по наитию, по кривым советам из гугла и stackoverflow, но главное - делайте законченные решения, получайте результат который работает.
    Любую задачу сначала решайте сами - нужно сделать сортировку - пишите алгоритм и радуйтесь, что он работает. А уже потом - читайте как надо сделать, и только после этого (если почувствуете потребность!) - читайте теорию.
    Все книги что вы написали безусловно волшебны и необходимы для отличного программиста, однако без практики они - пыль, которая развеется спустя неделю после прочтения. Поверьте мне, я их все читал :)
    Кстати Кнута я бы вычеркнул без раздумий - для его чтения и понимания нужен очень хороший мат-базис и опыт в программировании. Если случиться, что вы будете писать оптимизированные библиотеки для обработки данных на С - тогда и начинайте его читать, очень пригодится, отвечаю )
    Пример обучения:
    1. Ставим задачу. Пример - написать приложение, которое выводит топ-10 вопросов на Тостере.
    2. Разбиваем задачу на проблемы которые надо решить. Пример - развернуть рабочее окружение, понять как сделать "Hi world", как работать с сетью, как парсить HTML
    3. Решаем проблемы. В лоб. Задание - на скорость, всё должно быть решено в кратчайшие скроки. Для каждой проблемы используем любое решение которое попалось под руку. Буквально - первое, это важно! То есть реально ковнокодим, забивая на всё - на красоту кода, на оформление, на скорость, лишь бы работало! Девиз этого этапа - херак, херак и в продакшен! Результат этапа - рабочее приложение.
    4. Делаем поверхностный анализ. Задача решена? Есть ли косяки которые уже не нравятся? Как их можно решить, исходя из минимального опыта? Локализуем проблемные участки исходя из собственных взглядов. Результат этапа - опыт самостоятельного анализа кода.
    5. Делаем глубокий анализ. Пытаемся для каждой задачи подобрать лучшее решение из тех что есть. Читаем теорию о том, как надо делать на самом деле. Изучаем и внедряем паттерны, пытаемся сделать код, который можно переносить в другой проект. Важно не менять условия задачи, вроде "а можно же ещё вывести ответы на вопросы". Не можно, задача должна оставаться прежней. Результат этапа - хороший код и выявленные пробелы в знаниях.
    6. Отдыхаем, читая теорию в рамках решённых задача и около них. Результат - теория, подкреплённая практикой.
    7. GOTO 1.
    Ответ написан
    2 комментария
  • Недостатки Ruby on Rails?

    Тоже Рельсу люблю, но:
    1. Рельса кушает много памяти. Рельса вообще избыточна для мелких проектов. Там лучше идут всякие Синатры, Падрино и т.д.
    2. Трудности долговременной поддержки больших проектов.
    3. Проблемы для хостеров. Создать и обслуживать ПХП хостинг гораздо проще. Есть, конечно locum.ru и heroku, да и всё, пожалуй.
    4. Кадровая проблема. Найти ПХПшника или явайщика проще.
    Ответ написан
    4 комментария
  • Недостатки Ruby on Rails?

    @M1Anderson
    Ruby on Rails developer
    Сложнее в изучении, много подводных камней, в основном связанных с настройками сервера, и нюансами которые нужно один раз побороть, и больше с этим проблем не будет.

    Не сложнее, просто их надо понять и принять.

    Проблемы с хостингом. Нету по доступным ценам специализированного Rails хостинга. Приемлемый вариант это VPS/VDS, минимум я нашел 200 рублей, против php хостингов которые идут от ~1$.

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

    Относительно мало документации/how-to на русском языке.

    Она и не нужна. Без английского с фреймворками делать нечего.

    Почему еще НЕ ВСЕ сайты делают на Rails?

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

    А из минусов ничего не могу сказать. Технология, которая позволяет сделать ВСЕ, причем с изюминкой. Познавать нужно, а не минусы искать :)
    Ответ написан
    1 комментарий
  • Что должен знать middle PHP разработчик?

    @andreyqin
    Все ответы на вопросы вида "Что должен знать ..." находятся на хэдхантерских сайтах.
    Ответ написан
    Комментировать
  • Сколько будет стоить работа "по-белому" во фрилансе?

    У меня фрилансерская деятельность не основная и ИП я открывал не только для фриланса - еще так снижаем налоги в ООО.

    Советую почитать отличный цикл статей на хабре от компании "Я люблю ИП"

    Рассмотрим реальные цифры по ИП:
    1) Открытие ИП, пошлина - 800р.
    2) Открытие расчетного счета (банк Авангард) - 1000р. + 400р.(пошлина за выписку из ЕГРЮЛ, можно и бесплатно, но надо было открывать счет срочно). Банк выбран Авангард, потому что дешево и неплохой клиент интернет-банка.
    3) Ежемесячное обслуживание счета - 500р. В Авангарде взимается с третьего месяца.
    4) Налоги. (Предполагаем, что у нас УСН-6%.) - 22300р. - это будут страховые взносы за год (можно платить сразу или поквартально)+ если за год доход больше 300000р., то еще 1% от разницы между доходом и 300000р. + сами 6% налога
    Ответ написан
    1 комментарий
  • Какие знаете полезные сообщества про php и javacript?

    might
    @might
    javascript developer
    Ответ написан
    Комментировать
  • Друзья, есть ли какие задачи для практики по JavaScript?

    codewars.com

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

    @tef
    SASS, LESS и всякий остальной хуес. Когда они появились, пробежался глазами и сразу понял ту катастрофу, которую они за собой потянут. Весь этот мейнстрим от лукавого.
    Ответ написан
    1 комментарий
  • Что должен уметь backend-разработчик на сегодняшний день?

    iLeonidze
    @iLeonidze
    xbooster.ru
    PHP вечен и всегда будет к месту, Node.js еще (относительно) молод, но весьма перспективен. Знание обоих языков будет Вам двойным плюсом. Backend бывает разный, но в основной массе это PHP. Начните с PHP, изучите его вдоль и поперек, сделайте свой небольшой пробный проект, а дальше всё сами поймете куда идти дальше.

    "Хотелось бы бой между любителями PHP & Node.js" - тут Вам не бойцовский клуб. Причем существуют адекватные разрабы как на PHP, так и на node.js.
    Ответ написан
    8 комментариев
  • Какая разница между @include и include?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Собака не имеет никакого отношения к include. Это не один оператор, а два совершенно разных оператора.
    2. Увидев @ в коде ты можешь почти со стопроцентной уверенностью сказать, что его писал неграмотный пользователь, и пользоваться этим кодом не стоит.
    3. Увидев в коде @include ты можешь смело считать его автора абсолютным лохом и нубом, а сам код надо выкидывать немедленно. Потому что @include глушит не только саму ошибку включения файла, но и все ошибки в этом файле - то есть, поступает стократ хуже. Это значит, что если автор допускает такие косяки в коде, то и все остальное у него тоже ад кромешный.
    4. Самое главное. Ошибки надо не подавлять. Ошибки надо исправлять. Но опять же, делать это с умом. Начинающие программисты считают сообщения об ошибках своими личными врагами, и борются с ними всеми доступными средствами - с помощью @, error_reporting(0) и др. Получив линейкой по рукам и запомнив на всю жизнь, что так делать не надо, ониначинают с не меньшим рвением писать всякие проверки - лишь бы не допустить, не дай бог, ненавистного сообщения об ошибке. Например:

    if (file_exists($inc))
    {
        include $inc;
    } else {
        echo "Файл не найден";
    }

    Так вот, это - еще хуже. Для начала, часть ошибок этот код все равно не отловит. Но это даже не самое главное. Главное - что вот это вот "Файл не найден" не имеет ни малейшего смысла. Пользователю оно ничего не скажет. А программист о нем не узнает. А если и узнает, то ничего не поймет! Какой файл? Где не найден? По какой причине? Системное сообщение об ошибке содержит массу бесценной информации помогающей идентифицировать ошибку, сообщая нам где она произошла, какой файл не найден, по какой причине не найден. Выдавать вместо этого огрызок "файл не найден" - это мазохизм.

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

    Ошибки не надо подавлять. Ошибки не надо прятать. Ошибки надо исправлять.
    Ответ написан
    3 комментария
  • Что изучать: Ruby или Node.js?

    mr_ffloyd
    @mr_ffloyd
    Я рубист и c нодой работал мало. Гораздо больше с клиентским js'ом. Мое мнение, что лучше ruby/RoR по следующим причинам:

    1) Язык. Дизайн ruby превосходит js наголову, объективно. Просто зайдите на wtfjs.com и полистайте.

    2) Ruby ближе к функциональным языкам. А именно функциональные парадигмы сейчас все более и более актуальны в виду их эффективности в решении задач связанных с распараллеливанием и распределением нагрузки. Как пример можно привести акторы, которые получили широкое распространение в последние годы.

    2.5) Я не знаю ни одного человека успешно изучавшего haskell, который не смеялся бы над js. Может такие есть, но это редкие звери) Я это к тому, что полезнее уделять больше времени языкам, которые содержат в себе мощные и слаженные между собой идеи, вникать в эти идеи, развивать мозги. Посмотрите на Scala: мощнейший и довольно сложный язык, но изучая его просто для себя я заметил, что стал лучше писать на ruby и c/c++. Js мне такого блага не давал.

    3) В RoR среде средний уровень качества кода выше. Это мнение я слышу часто и склоняюсь к тому, что это правда. Порог входа в js сильно ниже порога входа в ruby, RoR старше и матёрее.

    4) NPM догнал rubygems количеством, но не качеством.

    5) Для большинства сайтов вполне хватит rails-based-инфраструктуры.

    6) Насчет перспективности. Технологии стремительно развиваются, но я практически уверен, что RoR будет на пике еще лет 3-5 минимум. Что будет потом - я не знаю. Но поработав с RoR вы научитесь многому у него и у самого языка. А если хочется поработать на низком уровне с сервером - я бы рекомендовал Scala/Akka, Erlang/OTP, go, clojure еще можно. После них реши вы писать код на node.js - он будет красивее и чище нежели без подобного опыта.

    In suma: RoR будет сложнее, но полезнее для мозгов. Перспективно уметь функциональщину. Главная и огромная беда node.js - в языке. Как идея он хорош.

    А вообще - главное чтобы самому хорошо было. Попробуйте ruby как язык - может несмотря на все вышесказанное он вам банально придется не по душе)
    Ответ написан
    4 комментария
  • Как распределить время при обучении программированию?

    Jeiwan
    @Jeiwan
    Никто вам точно не ответит. Никто не знает ваших обстоятельств, способностей, желания учиться. Никто не знает насколько глубоко вы будете изучать эти темы и насколько тщательно прорабатывать их. Дать точные сроки вам смогут, только если вы будете следовать какой-то отработанной учебной программе. И то даже после таких программ люди выходят с разным уровнем знаний и умений. Все зависит от вас. Да и не нужно знать все эти темы для того, чтобы начать работать.
    Главная ваша проблема (и проблема других таких же людей, которые решили научиться программировать) заключается в том, что вы почему-то считаете, что сможете обучиться программированию по книгам. Прочитал книжки и стал программистом! Это обманчивый путь, так как программирование — это чистая практика. Теория тут нужна только тогда, когда нужно решить какую-то практическую трудность. Чтобы читать книжки по алгоритмам, ООП и базам данных, нужен уже какой-то опыт, иначе всё, что там написано, пройдет мимо и забудется.
    Еще часто бывает, что задачи, с которыми сталкиваешься, не описаны в книжках, которые ты прочитал или хотел бы прочитать. Довольно часто решение задачи находится в интернете, а не в книгах. Это я к тому, что нужно начинать с практики и прорабатывать теорию под конкретные задачи. Вот вы написали что-то, вот застряли в каком-то моменте с БД, не знаете, как правильно сделать. Ищете в интернете или в книге, как решается эта проблема и решаете её. В итоге получаете и знание, и опыт, который это знание закрепляет.
    Если вы знаете, куда хотите пойти работать, узнайте, какие там задачи решают и цельтесь сразу туда: составьте себе список таких задач и попытайтесь решить их самостоятельно. И заодно сузите теоретический минимум. Умение решать конкретные задачи намного важнее горы теоретических знаний.
    Ответ написан
    2 комментария