• Какими онлайн-курсами по программированию кто пользовался (если пользовался)?

    Stac
    @Stac
    Мне нравятся курсы от Lynda.com и Tuts+ (Envato). Их много по разным темам, в т.ч. узким и конкретным.

    А вот курсы на Udemy разочаровали - мне попались бесплатные видеоролики, упакованные как платный курс без малейшей адаптации.

    Кстати, о бесплатном. Видеоканал этого парня просто поражает широтой охвата тем (от Си до Фотошопа) и количеством роликом: https://www.youtube.com/user/thenewboston/playlists
    Ответ написан
    Комментировать
  • Как имитировать действия браузера на PHP или Java(Jquery)?

    Stac
    @Stac
    Human Emulator.
    Платный.
    Работает на Windows сервере.
    Программируется на PHP (есть клиентская библиотека) или череp HTTP API.
    Ваш PHP-скрипт может выполняться совсем на другом сервере (на любой ОС).

    Т.е. вы из своего скрипта удаленно управляете удаленным же браузером.
    Ответ написан
  • Как вникнуть в тонкости back end разработки?

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

    Они принимают данные на вход через заголовки и тело HTTP-запроса, что-то быстро делают и выводят результат [в браузер].

    PHP или CGI-скрипт вызывается вебсервером (программой) в процессе отбработки входящего запроса (request) . Он же получает результат работы скрипта и фактичеки возвращает браузеру в ответном HTTP-запросе (response).

    HTTP-запросы это чистый текст с минимальной структурой, с которой имеет смысл ознакомиться.

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

    Прикладная среда выполнения (вебсервер или фреймфорк), приняв запрос, дает программисту доступ к его элементам через глобальные переменные или объекты, в зависимости от того, как принято в конкретном языке программирования.
    Для PHP это глобальные переменные (ассоциативные массивы) $_SERVER, $_REQUEST и др. В первой можно найти некоторые HTTP-заголовки, кое-какие данные о сервере и удаленном клиенте (IP адрес, например). Во второй собраны все входные данные, переданные через URL (site.ru/page.php?key=value&key2=value2), в теле POST запроса, через куки (фактически HTTP-заголовки специального формата) и переменные окружения [операционной системы].

    Различные фреймворки могут иметь классы и объекты с именами типа Request.

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

    Если данных очень много и их не просто надо читать, но для начала найти какие-то фрагменты (конкретные строки таблицы, поля объекта) по каким-то критериям, а потом, возможно, как-то обработать, то можно использовать СУБД.

    СУБД бывают встроенные и клиент-серврные.
    Пример встроенной это SQLITE, которая встроена в PHP как модуль расширения. Она также используется в iOS, Android, браузерах Firefox, Chrome и многих-многих других программах.

    Клиент-серверные чаще всего это MySQL (даже чаще чем надо), PostreSQL, MS SQL Server, Mongo DB, есть куча других.

    Серверная часть такой СУБД работает как отдельный сервер (программа), возможно на отдельном сервере (компьютере). Клиентская часть это модуль в среде исполнения (расшириние PHP, библиотека функций) или может условно отсутствовать, если СУБД имеет HTTP API. В этом случае клиентскую часть пишет прикладной программист на своем языке.

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

    В PHP-практике, наоборот, самый популярный сценарий это "один сервер - один клиент" и на одном компьютере. Так сложилось исторически.
    Так работают самые популярные CMS, так пишутся книги, проводятся курсы.

    Все операции на сервере происходят по необходимости, мы открываем соединение с БД по необходимости, принимаем запрос по необходимости, говорим что переменая имеет тип int unsigned исходя из необходимости.


    Нет какой-то абстрактной необходимости. Первопричина всего (на прикладном уровне) - входящий запрос. Вебсервер ожидает постоянно входящие запросы (слушает TCP-порт).
    Вот запрос пришел. Сервер согласно своим настройкам определяет, может ли он сам его обработать (например, "отдать статику") или он должен передать запрос другому обработчику по цепочке. Таким обработчиком может быть, например, PHP.
    Вебсервер запускает интерпретатор PHP и передает запрос ему.
    PHP определяет (в общем, по ссылке, которая есть в параметрах запроса), какой PHP-скрипт надо выполнить, ищет его и выполняет. Результат работы скрипта - HTTP-response (фактичеки это plain text, содержащий служебные заголовки, в т.ч. куки и тело с HTML / XML / JSON, etc. ) - отдается обратно вебсерверу, он возвращает его туда, откуда пришел запрос (на IP адрес и порт), часто в браузер.

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

    Мы, прикладные программисты, не опускаемся ниже HTTP-протокола. А используя фреймворки, даже HTTP можем не касаться, хотя знать и понимать его надо.
    Т.е. до всех этих TCP-портов и настроек сервера нам, как праивило, дела нет (пока все работает).
    Первое - удел скорее системных программистов, второе - сисадминов или модных ныне девопсов.

    Что почитать, чтобы лучше понять операции на бэке, которые не поймешь сразу ...


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

    Сейчас PHP все еще самый простой путь в back-end разработку. А раз вы упоминаете про int unsigned, то вам будет привычен и его Си-подобный синтаксис. Типа данных такого, однако, в PHP нет.
    Ответ написан
    2 комментария
  • Web-разработка. Уровень погружения в язык программирования: PHP vs JavaScript. Где "глубже"?

    Stac
    @Stac
    Самое смешное, что знания чистого PHP вам скорее всего хватит, учитывая ваше знание JS.

    Нужно принимать запросы, читать данные из файлов или БД, писать туда же и отдавать HTML (или более интересный для вас JSON) в браузер.

    Дополнительно можете посмотреть т.н. микрофреймворки (slim,...) и что-то для работы с БД (redbean, notorm), хотя в PHP есть встроенный PDO, которого хватит для работы с mySQL и SQLITE.

    Имейте в виду, что SQL хотя и стандартизирован, реально отличается от СУБД к СУБД.

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

    Stac
    @Stac
    Это не неуважение своего труда. Вы любите свою работу, получаете от нее удовольстве и не понимаете, как можно еще и брать за нее деньги.

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

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

    Пусть Клиент сам перемножат трудозатраты на часоввую ставку. Некоторым можно и помочь - написать, например: "Трудозатраты: 6 часов (6,6 тыс.руб.)."

    Считайте время это главное.
    Ответ написан
    Комментировать
  • В чем польза изучения PHP сегодня?

    Stac
    @Stac
    PHP идеален для начала:
    1) легко найти практическое применение, т.к все, кроме крупных компаний (которые, в основном и ругают PHP) используют именно его. Туда, где ругают PHP без 3-5 летнего практического опыта не возьмут.
    2) на PHP можно писать без ООП и зарабатывать, решая бизнес-задачи (ООП это жутко непонятная, граничащая с бредом, концепция пока нет реального опыта больших или командных проектов).

    Судя по вакансиям этого года, то кроме PHP стоит учить node.js. Он почему-то всем нужен. Про Python с Ruby уже кричат не так сильно.

    Из списка книг по Си стоит оставить только Кернигана и Ричи ибо классика и дает хорошее понимание, что и как происходит в этот мире.

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

    p.s. Я проходил путь смены профессии 6 лет назад (тоже в 30) с менеджера по продажам.
    Ответ написан
    2 комментария
  • Есть ли у вас советы для начинающих фрилансеров?

    Stac
    @Stac
    1. Реализовывал логику сложного "попапа" с формой в уже готовом UI. 500 руб./час (низкая цена, думаю, помогла в тот раз). В итоге ~4К (ушло несколько часов + бонусы).
    2. Если работа предполагает обмен данными с сервром, лучше использовать реальный (тестовый или даже боевой) сервер Клиента. Я, бывало, просил Клиента подключить для тестового сервера CSS/JS с моего сервера.
    3. См. ответ Александр Таратин
    4. Решайте проблемы Клиента, а не свои.
    Работайте с Клиентами, которым не важны конкретные фреймворки, библиотеки, ... . Сможете использоват то, чем владеете.
    Ответ написан
    Комментировать
  • Как создать календарь событий в Datepicker и брать данные автоматически с базы?

    Stac
    @Stac
    datapicker разве не для выбора дат?

    Для календаря событий лучше использовать контрол календаря, например, fullcalendar.io
    Там события (со ссылками) легко подгружаются по akax в json формате или с гугл-календаря.
    Ответ написан
    Комментировать
  • Нагрузка когда с sqlite нужно уходить?

    Stac
    @Stac
    У SQLITE проблемы могут быть только с записью. Там ведется специальный журнал, что может тормозить. Но его можно отключить. Наверняка есть еще куча настроек.
    Еще можно использовать очереди на запись, если это приемлемо.

    Я делал системы учета трафика, где по 10-20 тыс. переходов в день (с тизерных сетей) записывалось в базу нормально. Правда длился это эксперимент всего неделю.

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

    Не знаю, насколько вам будет это полезно.

    И да, SQLITE это полноценная СУБД, только встраиваемая, а не клиент-серверная. Хотя есть и сервера для SQLITE, да и свой сервер можно написать под конкретную задачу, если приспичит.
    Ответ написан
    Комментировать
  • Как фрилансеру на первых порах принимать оплату от иностранных заказчиков?

    Stac
    @Stac
    Гипотетически.. (сам не проверял) - robokassa. Работает с физ. лицами, принимает к оплате банковские карты.

    Сам получал деньги через какую-то систему переводов типа moneygram.
    Но от одного Клиента, да и наши это были люди, потрудились сходить куда надо и со второго раза деньги дошли :)
    Ответ написан
    Комментировать
  • Где можно заработать начинающему веб программисту?

    Stac
    @Stac
    Имеются знания PHP, JavaScript, jQuery, Ajax, MySQL, SQLite, HTML, CSS и еще работаю с Framework'ами Laravel и Phalcon.


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

    Для начала измените свое (само)описание.
    Пример:
    Имеются знания и опыт в разработке личных кабинетов для сайтов, в т.ч и-магазинов, систем лидогенерации, учета и перераспределения трафика. Делал с нуля системы управления партнерскими программами, интегрировался с банками и МФО (в обе стороны).


    Это мой пример.. описывайте свой опыт.
    Я вот пока не знаю Laravel и Phalcon, но это ни кому не интересно (как и то, что я знаю), если мне можно поручить задачу и она будет сделана.
    Во фрилансе и при работе в маленьких кампаниях это важнее, чем знание конкретных технологий, кторые кроме вас никто там знать не будет.
    Ответ написан
    Комментировать
  • Как ухватить заказ с фриланса?

    Stac
    @Stac
    Есть два типа Клиентов, условно "профи" и обычные люди.

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

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

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

    Найдите в пару серверного разработчика, для двоих заказов будет больше. А этим (серверным) ребятам тоже сложно - чисто серверные разработки заказывают Клиенты первой группы в основном.. .
    Ответ написан
    Комментировать
  • Какие хорошие книги и материалы по проектированию интерфейсов и сайтов можно изучить?

    Stac
    @Stac
    Книгу Якоба Нильсена я бы поставил в один ряд с "Психбольницей" Купера:

    Книги Якоба Нильсена на books.ru

    Я лично читал и перечитывал какое-то ранне издание "Веб дизайн Якоба Нильсена", чуть ли не 1997 года, в общем оно до сих пор актуально.

    Также хорошо подписаться на его рассылку alertbox или полистать архив - каждый выпуск посвящен какой-то узкой конкретной теме.
    Ответ написан
    Комментировать
  • Стоит ли сегодня переплачивать за сайт на ruby? Или сэкономить на php?

    Stac
    @Stac
    Осторожно! Не традиционный взгляд на вопрос.

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

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

    Затем ищите ответственных людей и даете им на проработку и реализацию те или иные части проекта.

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

    Что-то может обсчитывать Руби, другой функционал может быть сделан на PHP, потому что его можно сделать за 2 дня. Что-то вообще будет отдаваться как статика.

    Главное - это хороший проект (персонажи, сценарии, экраны, ТЗ) и люди на участках, будь это один человек или десять.
    Ответ написан
    Комментировать
  • Связка HTML/CSS + Python?

    Stac
    @Stac
    С PHP будет проще и быстрее найти работу. Но могут потребовать знания фреймворков и прочего, отчего "сразу отворачивает".

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

    PHP очень распространен, а значит ваши приложения можно будет использовать везде. Можно будет зарабатывать на биржах фриланса - там полно всяких практических задач, а у заказчиков обычный виртуальный хостинг (где PHP есть 100%).
    Ответ написан
    Комментировать
  • Что должно быть в портфолио веб-разработчика?

    Stac
    @Stac
    В портфолио должны быть картинки и всякие движущиеся ужасные штуки на JS.
    К Питону это относится слабо, поэтому и портфолио для начала фриланса не обязательно.

    У меня, например, его нет. Но я всего 5 лет на фрилансе, может еще передумаю и заведу портфолио позже.

    А что есть:
    1) внятные, четкие и подробные ответы на размещенные задания
    2) кучка сайтов, которые я сделал. Даю ссылки на них прямо в ответе на проект, чтобы были к месту ("вот эту функцию, которая вам так нужна, я реализовал тут")
    3) Несколько скриншотов тех же сайтов. Подходящие по смыслу к проекту можно прикладывать к ответу на проект.

    Короче, заказчики в основном в программировании не разбираются, поэтому им нужно описание решения их проблемы и красивые картинки. Если картинок нет, описания достаточно.
    Ответ написан
    2 комментария
  • Есть ли в природе обширная книга по front end разработке?

    Stac
    @Stac
    Enterprise Web Development Building HTML5 Applicat... By Yakov Fain, Victor Rasputnis, Anatole Tartakovsky, Viktor Gamov
    Ответ написан
    Комментировать
  • Удаленный рабочий стол на винде на сервере, ищу самый дешевый вариант в аренду

    Stac
    @Stac
    Вот еще решение — www.onlive.com/ Там два сервиса «игры» и «десктоп». (лично пользовался только «играми»).
    Десктоп пока ориентирован на планшеты, хотя заявлена поддержка PC и MAC в перспективе.
    Цены меньше, чем у наших daas.
    Ответ написан
    Комментировать
  • выделение общего HTML кода для всех страниц

    Stac
    @Stac
    А еще могу посоветовать простую CMS Kandidat.
    Она очень простая, даже примитивная, особенно если не использовать админку. Примитивная в том смысле, что в ней легко разобраться, вникнуть в суть.
    Ответ написан
    Комментировать