• Как начинать работу над проектом на фрилансе?

    devalone
    @devalone
    ̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
    Just do it. Ты даже не описал, чем ты занимаешься, как тут можно давать советы?
    Ответ написан
    Комментировать
  • Как начинать работу над проектом на фрилансе?

    RuJet
    @RuJet
    1. Обговариваешь ТЗ. Получаешь логины, явка, пароли.
    2. Обговариваешь срок, порядок и канал оплаты. Это тоже важно.
    3. Поднимаешь копию проекта у себя на хостинге/сервере и т.д. Не рекомендую пользоваться всяческими денверами. Например поведение php под liniux может отличаться от его поведения под windows.
    4. Кодишь, кодишь, кодишь.
    5. Показываешь заказчику на своем сервере.
    6. Получаешь оплату.
    7. Переносишь изменения к заказчику. Тут пригодится вышеупомянутый GIT.
    Рекомендации:
    На рабочем месте лучше держать linux. Во-первых как выше написал родная среда для web-приложений, во-вторых проще будет админить на vps и хостингах. А админить или хотя бы диагностировать проблему приходится часто. Особенно на мелких проектах.
    Использовать VCS, например GIT.
    Держать несколько каналов для оплаты. Например банковская карта, Яндекс.деньги, Qiwi и Webmoney.
    Сразу проработать схемы перевода прибыли в доступные для траты денежные средства.
    Не лениться и не бояться.
    Все начинали с мелких проектов, всех хоть раз кидали.
    Во фрилансе учатся на ошибках. Редко получается учиться по готовым руководствам и боже упаси всяким тренингам и видеокурсам.
    Ответ написан
    Комментировать
  • Как начинать работу над проектом на фрилансе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Юзаю notepad++ и Far (всё настроено в плане подсветки и подсказок)
    2. Формирование краткого перечня работ и стоимости, предоплата от клиента 50%, составление ТЗ (если необходимо), затем уже сама работа по кодингу. (порядок следования очерёдности задач - сохранён)
    3. Делается полный бэкап текущего сайта средствами хостинга.
    4. Если есть возможность разделить логику разработки от действующего функционала (чтобы текущая работа не оказывала влияние на реальных посетителей) - правлю обычно сразу на (S)FTP. Иначе - только на своём хостинге.
    5. Бэкапы - делаю копированием файла/папки с добавлением .ORIG в полное имя файла (например, файл: index.php.ORIG или реже, директория: TEMPLATE.ORIG).
    6. В текстовик (для себя) - пишу всё, что я сделал, чтобы по нему можно было легко восстановить последовательность действий.
    7. Сдаю работу, получаю деньги, делаю полный бэкап сайта после всей работы и отдаю клиенту.

    Теперь, главное:
    1. Никогда не тяните время
    2. Клиент платит не за часы, а за конечную сделанную Вами работу (если это не так - значит не нужно работать с таким клиентом)
    3. Если клиент требует больше работы, чем вы с ним договорились до предоплаты - найдите компромисс, чтобы вариант устроил всех, закройте проект и больше не работайте с этим клиентом.
    Ответ написан
    6 комментариев
  • Переход из 1С в web-разработчики (PHP ) в 35 лет. С чего начать и реально ли?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Спасибо людям, настрочили довольно много постов поддержки, а я всё-таки настрочу ещё один))

    Насчёт веба - очень хорошая и интересная область деятельности. Единственное только не рекомендую надолго зависать в битриксе. Почему? Потому что его применение ограничивается РФ и прилежащими республиками. А чтобы хорошо зарабатывать в вебдеве, тебе придётся выходить за границы и писать для клиентов США и Европы. Если, конечно, хочешь преодолеть барьер в 2к долларов. Когда я ушёл из вебдева, я зарабатывал 4-5к в месяц, работая с клиентами из Мексики. Возможно это даже меньше, чем можно было. Но не суть.

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

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

    Удачи!
    Ответ написан
    2 комментария
  • Переход из 1С в web-разработчики (PHP ) в 35 лет. С чего начать и реально ли?

    opium
    @opium
    Просто люблю качественно работать
    у меня хороший друг в 35 лет прочитал мой блог, за два года изучил хорошо ноду+жс и уехал в 37 с семьей жить в тайланд.
    Ответ написан
    6 комментариев
  • Как повысить уровень программирования?

    Если хотите улучшить качество кода:
    1) Изучите книги "Рефакторинг" и "Совершенный код".
    2) Тренируйтесь на CodeWars - старайтесь более понятный и чистый код. А потом сравните с решениями других участников, берите на вооружение, как можно было сделать лучше.
    3) Изучите шаблоны проектирования.
    4) Берите большие опенсорс-проекты с хорошей архитектурой и пробуйте что-то в них изменить, улучшить. В процессе изучите, как они спроектированы, невольно будете учиться и перенимать эффективные методы решения многих задач.
    Ответ написан
    Комментировать
  • Как построить свой рабочий день фрилансеру?

    SuperPosan
    @SuperPosan
    Бандит
    Какая разница когда работать, главное что бы денег платили, работайте когда хочется, отдыхаете когда хочется. Это и есть смысл фриланса.

    Все надоело - пошел гулять. Встертил старого приятеля, напился с ним, вернулся в 11 вечера, заснул, проснулся в 4 утра, сел поработал 4 часа. Опять спать захотелось, лег поспал. Проснулся в 8 поел. Поработал 3 часа, сходил в бассейн. Вернулся с бассейна поработал еще 2 часа. А время только 4 а уже 8 отработал.
    Силы еще есть, поработал еще пару часов.


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

    Графики - Нах*й
    Режимы - Наx*й
    Делайте то что хочется
    Посылайте всех нах*й
    Меня тоже можете послать
    Ответ написан
    8 комментариев
  • Переход из С++ в PHP?

    ZloyHobbit
    @ZloyHobbit
    Я бы предложил, ruby/rails или python по следующим причинам:
    1) C# (.NET) и Java - лютый энтерпрайз, который лично я надух не переношу.
    2) PHP достаточно убогий язык, и на нем пишут почти все. В результате за него мало платят, и вы постоянно будете сталкиваться с проблемой: "Зачем мне платить вам, даже если вы профессионал, я лучше залачу в пять раз меньше недоученному школьнику и он как-нибудь да сговнокодит"
    3) PHP - это только web разарботка, python и ruby - универсальные языки, на ruby есть серверные приложения (puppet к примеру) на python вообще очень много всего, и на него сильно перешла обработка данных на пару с R. Надоест писать сайтики, и при должном знании математики пойдете в анализ данных.
    4) Я сам 6 лет писал на C++ в нии, но не считаю себя ни мидом ни сеньёром, поскольку самоучка без серьезных коммерческих проектов. За полтора года в рельсах стал зарабатывать весьма неплохо, и при этом получаю удовольствие от работы. Так что рекоммендую =)
    Ответ написан
    1 комментарий
  • Как не засыпать при чтении?

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

    По сути чтиво может быть разным. Если вы спросили это тут то, полагаю, речь идет о профессиональной литературе. Тут все просто, но ни кто толком не хочет разбираться. Варианта два
    • Вы действительно недосыпаете
    • Причина в мозге. При весе 2% от всей массы тела, мозг в "рабочем режиме" потребляет 30% энергии организма. Это инстинктивно не выгодно для организма (контролируется "старая кора"). Неокортекс (контролирует realtime) хочет прочесть книгу и понять, все содержимое. Возникает конфликт. Старая кора берет свое, так как она более могущественная в мире мозга, ибо имеется у нас с начала проявления мозга как органа. Следовательно, надо перебороть старую кору. Больше причин и вдохновения для чтения. Больше белков и витаминов. А непосредственно перед чтением больше сладкого. Сахар - один из самых простых источников молекул АТФ - энергетические молекулы в которых хранится запас энергии нейронов. Так же не надо забывать про важность сна. Химические реакции, проходящие в мозге, выделяют продукты жизнедеятельности нейронов которые, как не странно, выводятся из области головы только во время сна. В общем, пункт 1 выполнять в любом случае)

    Ответ написан
    3 комментария
  • Поможете разобать вирусный скрипт,который спрятан в SVG картинке?

    lazalu68
    @lazalu68
    Salmon
    Вот что он делает
    window.top.location.href = 'http://yinsewe.us/location.php';


    Функция осуществляет какое-то сложное декодирование, я не стал тратить время на разбор. Всякие даэдрические lmktar, nzbeu и ndgexl хранят в себе ключи top, location и href соответственно
    Ответ написан
    Комментировать
  • Как научиться писать самостоятельно код?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    В школах и институтах учили строить алгоритмы, еще когда рисовали блок-схемы.
    Это не зависит от языка программирования - нужно просто составить алгоритм для решения задачи. Изучая различные аспекты языка программирования, различные библиотеки, фреймворки и так далее вы просто приобретаете знания о дополнительных инструментах, которым нужно пользоваться для решения задачи.

    Но само решение придумывает программист, а не язык программирования.

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

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

    zooks
    @zooks
    Frontend
    Magento, WooCommerce, PrestaShop.
    1С Битрикс действительно только в СНГ.
    Ответ написан
    Комментировать
  • Какие плагины использовать веб разработчику в sublime text 3?

    Vampireos
    @Vampireos
    https://vk.com/axelaredz
    SpaceGray (base16-ocean dark) - самая нормальная тёмная Тема)
    BracketHightlighter - подсветка начальных скобок и заключительных)
    Sublimerge - для сравнения файлов
    CSSComb - для правильной сортировки стилей
    CSSFormat - для удобного форматирования стилей и минификации
    Animate.css - снипеты стилей анимаций
    JSFormat - для форматирования js
    MarkdownHTML preview - для просмотра .md файлов в браузере
    SideBarEnhancements - расширенные функции для сайдбара
    SyncedSideBar - синхронизация с сайдбаром файла который редактируется
    SyncedSideBarBG - синхронизация фона сайдбара с темой оформления
    HTML Minifer - для минификации HTML, CSS и JS
    Ответ написан
    Комментировать
  • Какие есть интересные блоги современных JavaScript ниндзя?

    • www.nczonline.net
    • 2ality.com
    • ponyfoo.com
    • mathiasbynens.be
    • davidwalsh.name
    • rmurphey.com/archives
    • caolan.org
    • perfectionkills.com
    • www.bennadel.com
    • addyosmani.com/blog/
    • dmitrysoshnikov.com
    • yehudakatz.com
    • ncombo.wordpress.com
    Ответ написан
    3 комментария
  • Экспресс обучение frontend разработке. Как подступиться?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Достаточно солидны список, неправда ли?


    Вы не правильно сделали декомпозицию. Дробите список и перемещайте местами пока не будет абстрактных "базовое знание mysql". Да и зачем фронтэндщику вообще базовое знание mysql или php? Вам нужно знать как с бэкэндом взаимодействовать (HTTP, принципы REST хотя бы приблизительно понимать), примерно понимать что такое базы данных (localStorage, IndexedDB). Словом никаких mysql/php. Это потом когда-нибудь освоите.

    Или например список ваших фреймворков. Выкидываем backbone - о нем можно почитать просто что он есть и что из себя представляет, но на вашем этапе толку не будет. Есть тройка лидеров - React/Angular/Ember. Затем идут небольшие фреймворки и библиотеки - Aurelia/Vue/Backbone/etc.

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

    p.s. я бы требовал еще es2015/2016, webpack/systemjs/вообще модули, препроцессоры стилей (хотя бы основы и понимание зачем нужны) и т.д.

    Ну или еще - jquery можно не изучать. Ознакомиться - да, но на уровне джуниора нужно знать как решить стандартную задачку подключения плагина и организации очереди анимаций. А так в 90% случаев jquery даже и не нужен вовсе. Ну и AJAX - разберетесь с HTTP и вы познаете AJAX.

    Ну и последнее. Джуниор это разработчик с годом опыта работы. Это человек который запросто может решать типичные задачи (можно пробежаться по фриланс биржам и составить представление о типичных задачах). Перед джуниором идет стажер.
    Ответ написан
    3 комментария
  • Для чего нужен Docker?

    @spotifi
    Внутри Docker только Linux, и, экспериментально, FreeBSD. Запускается нативно под Linux и, экспериментально, под FreeBSD. Под MacOSX, Windows - через виртуальную машину.

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

    Это почти виртуальная машина. Почти, да не совсем.


    Есть такое понятие "ад зависимостей". Любое ПО устанавливаемое на компьютер, тянет за собой зависимости (конфигурационные файлы, статические файлы называемые обычно asset, вспомогательные утилиты/сервисы, библиотеки и пр.). Ряд из этих библиотек/утилит/сервисов несовместим друг с другом. А с учетом того, что каждая из этих библиотек/утилит/сервисов имеет и свои зависимости - ситуация еще хуже.

    Например, мы используем Yandex.Cocaine, которая нормально компилируется только на Ubuntu 14.04 (и, вроде, на Debian 7). Но не под CentOS 6, 7, Debian 8, FreeBSD 9, 10, Ubuntu 15, 16 и пр. - скомпилировать его невозможно. Запускаем в этих операционных системах в Докере.

    С другой стороны, и одновременно с этим, вам необходимо установить другое, более современное ПО. И одновременно более старое. Причем речь даже не идет об серьезно отличающихся версиях Linux. Например, одно ПО требует не менее Ubuntu 14.10, а другое не более Linux 14.04.

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

    Таким образом, мы имеем бинарный файл запускаемый как бы в своей операционной системе.

    Вы можете сказать - ба, да это же давно известная виртуальная машина. Но нет, это не так. Это так называемые контейнера. Никакой виртуальной машиной там и не пахнет. За исключением Windows и MacOSX, где работа без виртуальном машины пока экспериментально возможно только, а нормой в этих ОС является использование Докера внутри полноценной виртуальной машины.

    Но виртуальные машины с Докером используются только для разработки. Для запуска в production виртуальные машины с Докер не используются.

    Докер использует контейнеры операционной системы. LXC в Linux, Jails в FreeBSD. Контейнер - это область операционной системы, изолированная от основной части операционной системы. В контейнере свое дерево каталогов (включая системные /dev, /bin, /sbin и пр.), свои сетевые порты и пр. и пр.

    Но при этом не используется полная виртуализация. Что существенно экономит ресурсы. Запустить 100 полноценных виртуальных машин вряд ли получится даже на мощном сервере. А вот запустить 100 контейнеров Docker даже на слабом домашнем компьютере - возможно.

    Правда использование не полной виртуализации ограничивает использование операционных систем внутри контейнеров. Как правило, это специально подготовленные версии Linux или FreeBSD. Именно специально подготовленные. Windows - в принципе в контейнере запустить невозможно.

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

    Зачем это используется?

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

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

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

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

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

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

    Потом плюнули на попытки упорядочить окружение в ОС - и сейчас концепция такова - устанавливать программы на сервера вместе со своими индивидуально настроенными под них операционными системами - то есть внутри контейнеров. 1 контейнер = 1 настройка ОС = 1 программа внутри.

    Другими словами:
    • Докер-контейнер нужно использовать для отладки.
    • Тот же Докер-контейнер нужно использовать и на сервере.


    Это позволяет не трудиться с настройками "под сервер" локально на машине разработчика. Это позволяет разрабатывать на машине разработчика совершенно разные программы одновременно, которые требует несовместимых настроек операционной системы. Это позволяет давать гораздо больше гарантий, что программа на сервере будет вести себя также как и на машине разработчика. Это позволяет разрабатывать под Windows/MacOSX с удобным "прозрачным" тестированием под Linux.

    Докер применим к созданию/настройке только серверного программного обеспечения под Linux (экспериментально под FreeBSD). Не для смартфонов. А если десктопов - то только программное обеспечение без GUI.

    Посколько Докер позволил одним махом упростить работу разработчикам и админам и повысить качество результата - сейчас бум на Докер. Придумано огромная гора инструментов для управления развертыванием приложений созданных с Докером. Если раньше чтобы запустить 10 000 программ на 1000 серверах нужно было как минимум 3 высококвалифицированнейших девопса, которые писали кучу описаний как это сделать на Puppet, Salt, Chef, Ansible, да и то не было гарантий, это все тестилось месяцами. То сейчас с Докер даже один квалифицированных девопс может рулить миллионами программ на десятках тысяч серверов. С куда как большей гарантией, что все это заведется нормально.

    UPD:

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

    Разработчик отдает весь свой результат в систему CI (обычно через git)
    CI на каждый новый коммит делает с помощью Docker образ для тестирования.
    Если тесты проходят успешно, то этот же самый Docker образ, отправляется на развертывание в production.
    Или, чуть иначе в компилируемых системах, где исходники не нужны в production: в Docker производится развертывание среды для компиляции, а для тестирования разворачивается второй образ с уже откомпилированным добром, который уже отправляется в production.

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

    Основная идея - что тестировали, ровно то и запускаем на боевом сервере. Один-в-один, включая те же самые файлы (не такие же, а именно те же самые).
    Ответ написан
    18 комментариев
  • Лучший способ обучения?

    @ruGuardian
    Теорию и практику следует правильно дозировать в правильное время. Всегда делал так:
    1) Начинаешь изучение новой технологии, больше читаешь, чем пишешь, но обязательно пробуешь задачи, примеры, экспериментируешь до тех пор пока суть не вобъется в голову. Именно поэтому, если я должен выучить новый язык, книгу без задач я не возьму. Здесь цель - понять, как это работает и в каких случаях применяется.
    2) Применяешь на практике новые знания, иначе не закрепится. Придумываешь себе задачу на пару вечеров (займет неделю). Больше пишешь, чем читаешь, все проблемы решаешь справкой или погуглив. Здесь цель - выполнить задачу. Не растекаясь на выяснение деталей. Если затык, goto п.1.
    3) По окончанию собираешь все мутные темы, с которыми столкнулся, все вопросы, которые решил просто погуглив не разобравшись по сути и goto с ними в п.1.
    Это решит твою проблему, когда пишешь в конспект, а не в голову.
    Ответ написан
    Комментировать