• Онлайн-курсы по алгоритмам или маленькая, но емкая книга?

    si1n3rd
    @si1n3rd
    Начните с "Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих". А там уже поймете куда копать.
    Ответ написан
  • Что учить frontend разработчику?

    1. Сначала учим фундаментальщину (как работают компьютеры, сети и браузер, http, основы программирования).
    2. Затем изучаем как работают конкретные веб-технологии (html, js, css, как всё это парсится браузером и рендерится в веб-страницу, учимся верстать и использовать js, книжек и курсов масса).
    3. Далее изучаем технологии, которые всё это автоматизируют, упрощают и абстрагируют (фреймворки, бутстрапы, реакты, сборщики, jquery, новые стандарты, гриды итд итп).
    4. Практика, применение изученного, выбор специализации (зависит от того, что хотите далее делать во фронте - это может быть просто вёрстка, создание интерфейсов или визиуализация данных, а может быть и работа с графикой\аудио\видео, тренды (сейчас это react, bootstrap, foundation, babel, es6, d3, RxJS, функциональное программирование)), далее развиваться на протяжении жизни можно до бесконечности. Но без первых пунктов это всё ничто.
    Ответ написан
  • С чего начать изучения?

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

    @IvankoPo
    Расскажу как я изучал, но уже имея опыт от с++.
    Сначала основы : переменные, ввод-вывод, циклы, условия, функции и классы, строки и их методы, массив так называемый list, и его методы, кортежи, словари. Обработка исключений. Затем написал для себя пару алгоритмов сортировки. Затем захотелось решать реальные задачи, глянул на модуль tweepy для работы с твиттером, начал экспериментировать, вытягивать список своих фоловеров, их твиты, анализировать их как то с помощью условий искать ключевые слова, начал постить твиты при определенных условиях, затем познакомился с модулем который вытаскивал погоду о любом нужном мне городе, познакомился с его методами, как узнать влажность, температуру, облачность и т.п. Затем захотел вытащить в твиттере у своих фоловеров информацию о том где они живут, делал запрос о погоде по их городу и постил твит о погоде на сегодня в его городе, затем я захотел познакомится с серверные программированием. Там все довольно несложно, модуль socket, читал в интернете туториалы по нему, писал свои простенький эхо сервер, и клиент к нему, затем захотел сделать чат-сервер в итоге сделал, но максимум 2 клиента, потом познакомился с модулем Tkinter, с помощью него я к своему чату графический интерфейс прикрутил. Потом я задумался о том как свой чат сервер заставить обслуживать больше 2 клиентов и начал изучать многопоточность, это мой небольшой путь который ещё продолжается.
    Ответ написан
  • Как учиться новому после рабочего дня?

    @Yarrs
    Привет, тоже кину пять копеек.
    Во первых задай себе вопрос, чего ты хочешь, и чего тебе надо. С этого надо начать.
    Мы что-то делаем не просто так, а ради чего-то. Задай себе простые вопросы, кто ты, где ты находишься, в чем твои цели и предназначение. Программирование само по себе отстой, но с него можно начать. Когда то в 80 годы меня обуял восторг, когда я в классе третьем смог понять смысл a=a+1 Но с тех пор много воды утекло. Пойми чем ты хочешь на самом деле заниматься. Что является твоей настоящей целью, заработать денег, вырасти в социуме, поднять детей, прожить интересную жизнь. Как правило в жизни не выйдет получить всё, время это такой ресурс, который можно пустить либо туда, либо туда, либо еще куда. Делай всегда это с умом.

    Когда поймешь что тебе нужно, составь список целей, цели это не что-то постоянное, но вполне себе динамичное и постоянно меняющееся, мы меняемся, мир меняется. Следуй своим целям. Запомни один хороший принцип - возьми сначала себе. Работа хорошо, ты лучше. Как и где взять дело твое. Способы есть разные. Я ниже напишу немного конкретики. Каждый день нужно осознавать свой список целей и учитывать его в текущем дне. Ставить себе задачи на день и назначать самую важную. Если ты не выполнил эту задачу, считай что день неудачен. Каждый день выдели 15 минут времени вечером и делай анализ дня. Это вместе с пониманием своих ценностей и целей самое важное.

    Теперь немного конкретики.
    Вариантом отщепить время себе масса.
    1) Сними комнату рядом с работой.
    2) Вставай раньше. Ложись раньше
    3) Усталость, это усталость от схожего вида деятельности. Усталость можно легко побороть если заняться чем-то иным. Умственно / физически например переключается будь здоров.
    4) Первый час на работе посвяти только обучению. Обычно люди первый час тратят на котиков, чатики и прочую п-нь, будь не как все.
    5) Поговори с начальником, и скажи что тебе нужно развиваться и обучаться. Посмотри на реакцию. Если он не монстр вопрос можно решить.
    6) Всегда думай перед тем как делать. Решения существуют, часто не на поверхности.

    Теперь несколько вредных советов. Как стоит жить и работать.
    1) Если решил связать свою жизнь с программированием, стоит понимать, что платят те у кого есть деньги, и платят столько сколько готовы заплатить. Отсюда выводы. Больше получают узкие специалисты, которые работают с чем то редким и нужным тем у кого есть деньги. Работая на бедных ты заработаешь ровно чуть больше чем на спасибо. Это как у врачей, стоматологи, к которым захаживают сытые бюргеры с зубной болью на коне, кокой-нибудь травматолог / хирург имеют 90 процентов своей обычной клиентуры бомжей и нищебродов. Но процентов 10 попадается людей с деньгами. А вот анестезиолог вообще с клиентурой не работает, денег дополнительно ему вообще не приходит. Отсюда обилие медицинских анекдотов про бедных анестезиологов.
    2) Собственники и заинтересованные в бизнесе люди на платят просто так, а платят за решение проблем. Чем страшнее на первый взгляд проблема, тем больше за нее можно попросить денег. Сложные проблемы решаются разбиением на более мелкие задачки. Но переоценивать свои силы тоже не стоит. Если сделал что-то крутое скромничать не надо. Тебя будут оценивать в том числе по тому, сколько ты просишь.
    3) У предыдущего пункта есть небольшое следствие. Владельцу главное решение и сроки, ему похрен на красоту кода и прочий глупый перфекционизм.
    4) Лучше место работы для получения стартового опыта, какая-нибудь программисткая контора, но она же худшая в плане роста. Ты окружен людьми примерно твоего уровня и способностей, которые будут неизбежно грызться за место под солнцем, каждый твой начальник будет воспринимать тебе как угрозу своему месту. Прорваться в такой системе сложно. Кроме того работать надо на первое звено в пищевой цепочке. Пока линейному программисту что-то перепадет от базовой ставки 10 человек отщипнут по цепочке.
    5) Если ты работаешь в обычной конторе, постарайся выйти со своими идеями на руководителя бизнеса (гендира), он единственный кто заинтересован в проекте в целом, и может воспринять что-то от твоих мыслей лично. Люди ниже просто попытаются тебя использовать в своих целях.
    6) Люди если смотреть поверх бла бла бла всегда действуют в своих интересах, но только так как сами их понимают. Людей можно предсказывать и читать.
    7) Руководители нагружают тех лошадей что тянут. Идеальный работник тот, кто просит мало работает много. Повышения? Не слышали. Зачем повышать того кто хорош на своем месте.
    8) Добиваются чего-то только те, кто выходит за флажки. Есть загон для стада, где всегда будет скучно, обыденно и тухло, но жить можно, есть и другие возможности.
    9) Самая тупая ошибка людей верить, что если будешь хорошо и долго работать что-то изменится. Ничего не изменится.

    Ну хватит в общем, что-то я увлекся, всегда думай головой, вот мой совет.

    ПС: Забыл добавить. Обязательно надо выбираться из провинции в Москву Питер, лучше в Москву. Дальше уже можно как остаться, так и двигать дальше. Если возраст и прочие дела позволяют.
    Ответ написан
  • Как лучше изучить теорию JavaScript?

    @Apachaiblow
    Js тоже был первым ЯП.

    learn.javascript.ru
    Два раза пройти вместе с заданиями. Я с первого раза все не освоил

    Флэнаган уже потом по желанию. У меня даже после Кантора первая часть не очень пошла. Возможно стоило позднее читать.

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

    Вообщем уже после освоения learn.javascript.ru можно идти устраиваться на работу, а там уже легче будет.
    Ответ написан
  • Как правильно выбрать кресло?

    @DrLance
    Я бы не рекомендовал экономить на кресле, ввиду того, что возможно оно вам долго прослужит, но, спина или седалищный нерв, это куда важнее. Поэтому берите ортопедические или игровые с жестким поролоном и фиксацией спины. Возможно меня тут не поймут, я бы выбрал DxRacer(геймерские кресла) или поискать аналоги, сейчас можно найти что то подобное за меньшую цену.
    Ответ написан
  • Уроки Python + django, что посоветуете?

    @bankinobi
    Если дружите с буржуйским, то хорошие уроки есть у Джастина Митчела https://m.youtube.com/user/CodingEntrepreneurs
    Более продвинутая версия есть за деньги на udemy. Постоянно обновляет курсы на актуальную версию.
    Ответ написан
  • Где вести записи разработчику?

    @adilbekn
    CherryTree - локальная иерархическая записная книга.
    Есть подсветка для записей с исходными кодами на различных языках.
    www.giuspen.com/cherrytree
    Ответ написан
  • Должен ли back-end разработчик уметь верстать?

    @nirvimel
    А еще вы должны подметать и мыть пол на своем рабочем месте, если вы живете один, работаете дома и в одиночку беретесь решать все проблемы заказчика от удаленной настройки его операционки и браузера до смены цветовой палитры (уже запущенного!) сайта под цвет ногтей его подруги.

    Если же вы являетесь редким специалистом в своем узком секторе рынка труда, то спрос на вас со стороны работодателей/заказчиков будет стабильно высоким, вы сами сможете диктовать им свои условия (в рамках разумного), и ни одному менеджеру/директору в здравом уме не придет в голову тратить время такого специалиста (а значит - свои деньги) на то, что способен сделать любой из миллиона индусов.
    Ответ написан
  • Как развиваться начинающему web-разработчику?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Я в начале 2000-х писал приложение для учета некоммунальных услуг ЖКХ для местного МУПа. Начинался этот проект как тестовое задание для приема на работу.

    Писать можно было на чем угодно, но на тот момент для меня лучшим инструментом казался Clipper 5.x, которым я, как мне тогда казалось, более-менее владел.

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

    Забегая вперед скажу, что автоматизация, в конце концов, удалась, из режима работы 3 человека по 8 часов в день 6 дней в неделю, за 6 месяцев после начала внедрения, вышли в режим 1 человек 2 часа в день 5 дней в неделю... Т.е. 3*8*6*4 = 576 человеко-часов превратилось в 2*5*4 = 40 ч/ч, КПД был увеличен в 14.4 раза.

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

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

    Далее я реализовывал эти пути как разумел и предоставлял тётушкам.

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

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

    Первые месяцы они вели двойной учет, по старинке в своей огромной бухгалтерской книге, и в программе, и программу проверяли по книге. Через 2-3 месяца они убедились, что в программе "цифры" точнее, ошибки отлавливаются быстрее, меньшими усилиями, и стали уже свою книгу проверять по программе. Через 5-6 месяцев я написал им модуль расчета и распечатки месячного отчета, и они перестали вести свою книгу, просто печатали ее каждый месяц на огромном матричном принтере.

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

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

    Ввод/редактирование данных осуществляется посредством форм, которые, в общем случае, повторяют структуру таблицы БД, за исключением случаев, когда присоединяются поля из справочников.

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

    Первейшая проблема программ на Clipper 5.x это банальное отсутствие таблиц БД, либо слетевшие индексы. Это первое, чем я озаботился. программа при запуске проверяет наличие или отсутствие таблиц и индексов, и чего не хватает - достраивает на лету. Таким образом можно потерять данные, но программа, все равно, работать будет. Чтобы это стало возможным, потребовалось в программе прописать структуры таблиц БД и индексов.

    Вторым этапом, дико устав копипастить на 95% совпадающий код для построения форм, а, потом, когда надо что-то поменять, добавить или исправить, шариться по тоннам на 95% идентичного кода в сотне мест, я решил прибиться к стану метапрограммирования.

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

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

    Причем генератор грамотно отрабатывал множественную вложенность, и каждый вызываемый справочник имел полный функционал CRU (Create, Read, Update), включая фильтрацию по столбцам и сортировку.

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

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

    Для реализации этого функционала пришлось пропатчить стандартный грид TBrowse (он применяется для просмотра таблиц).

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

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

    P.S.: когда я мигрировал в веб, через некоторое время я снова вынужден был пройти аналогичный путь, в результате которого родился простенький AJAX-фреймворк на стеке PHP+Smarty+DBSimple+jQuery. Сегодня я всеми силами стараюсь от него уйти, хотя для своих задач он достаточно хорош. Был опыт, когда на шареном хостинге за 5 баксов проект на этом фреймворке со скрипом но держал 30-40 тысяч уников в сутки (после ряда оптимизаций) и достаточно хорошо был защищен от топорного взлома через SQL-инъекции благодаря DBSimple...
    Ответ написан
  • Экспресс обучение 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.

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

    @scrpcc1
    Судя по эмигрантским форумам в Чехии, получить ВНЖ при открытии фирмы уже не получится. Нужно доказывать, что Вы принесёте пользу Чехии, при этом нужно будет убедить, что студии нужно работать именно в Чехии. Как это сделать - непонятно. Та же история со Словакией - нужно обосновать связь бизнеса со страной.

    Италия - в 16-м году, насколько я понял, lavoro autonomo уже не получить. Законы меняются часто. Но есть возможность получить Italia startup visa.

    В UK - насколько помню, нужен определенный уровень инвестиций.

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

    Я в свое время поступал так: брал страну и сначала гуглил по ней информацию, потом шел на эмигрантские форумы, там, как правило, есть ветки про бизнес-эмиграцию. Еще можно звонить в компании-помогайки. Но к их словам надо относиться критически, так же как и к любым статьям в интернете. Информацию лучше подтверждать в нескольких источниках.
    Ответ написан
  • Что делать дальше после изучения основ javaScript + jquery?

    Rou1997
    @Rou1997
    Доброго вам времени суток, Андрей Рысь !

    Первое правило Junior Front-End разработчика, и разработчика вообще - это выполнение задач от руководства или заказчиков.
    Использование конкретных инструментов - jQuery, JavaScript, Angular, Brainf*ck - задается требованиями конкретного руководителя или заказчика, либо остается на усмотрение разработчика (если пишем с нуля), который в любом случае смотрит на задачу, и никогда не определяется числом голосов в интернет-холиварах, где всегда одни за легкое и простое, другие за глубокое, универсальное, но тяжелое, и все друг друга ненавидят!

    Поэтому, чтобы понять куда двигаться дальше, необходимо изучить эти самые требования руководства и заказчиков, никто в здравом уме не будет против того, что вы лично поинтересуетесь, чем они занимаются и как к ним устроиться, а не ограничитесь текстом вакансии или "треда" на фриланс-бирже.
    Чтобы проибрести опыт работы - необходимо работать! Первым блин - всегда комом! Удачи!!!
    Ответ написан
  • Какие еще есть блогеры вроде Sorax?

    @gram2005
    Надеюсь это не развод, но появился новый канал Sorax • Уроки WEB разработки куда сейчас заливают все видео с оригинального канала Sorax. Позадавал вопросов - получил ответы что команда проекта увеличилась до 3 человек, новые видео будут выкладывать каждое воскресение, новые подкасты - каждое второе воскресение.
    Ответ написан
  • Python. От теории к практике?

    aRegius
    @aRegius
    Python Enthusiast
    Если тянет в сторону веба - значит Django/Flask вам в руки (что касается лично меня, я работаю с Django). И оптимальный вариант своего собственного, первого, интересного, полноценного и актуального проекта - свой сайт/блог.

    Для того, чтобы нагрузить себя максимально полезно и сделать все это с нуля, более-менее презентабельно, но без готовых шаблонов а-ля Wordpress, рекомендую дополнительно изучить HTML и CSS.

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

    Книги:
    1. Django. Подробное руководство Адриан Головатый, Джейкоб Каплан-Мосс
    Да, книга реально 2009 года издания (оригинал). Но пусть вас это не смущает. Ее ценность превышает факт устаревания некоторой информации, в ней изложенной. Тем более, она написана непосредственными создателями Django - информация из первых рук.
    2. Django Girls Tutorial Django Girls non-profit organization
    Можно читать онлайн, можно скачать PDF.
    3. HTML5. Недостающее руководство Мэтью Мак-Дональд
    4. Большая книга CSS3 Дэвид Макфарланд

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

    Книга 1 познакомит вас с Django.
    Книга 2 покажет, step-by-step, как с помощью Django создать свой блог/сайт.
    Книги 3 и 4 нужны для того, чтобы привести внешний вид ресурса в более-менее благородный вид.

    Для начала вполне достаточно. В качестве оперативного справочника используйте официальное руководство (или djbook.ru - если с английским пока никак).

    P.S.
    Если ваш выбор Flask - не подскажу.
    Если вы владеете английским на уровне чтения литературы - обратите внимание на эту книгу (после первой, вместо второй).
    Ответ написан
  • Как выучить английский начинающему программисту?

    @cypselusmurarius
    Per aspera ad astra. Contra omnes res.
    Точно такая же ситуация(14 лет, учу английский, питон). Грамматику учу по мерфи, каждый день захожу и делай пару упражнений на дуолинго, прохожу курсы на codecademy.
    Отпиши мне в вк, будем учить языки и технологии вместе)vk.com/id211434484
    Ответ написан
  • Реальные задачи по js?

    ikeagold
    @ikeagold
    Ikeagold Web-Dev
    Подсели с друзьями на https://www.codingame.com/ очень хорошие задачи на алгоритмы, есть разные режимы (задачи/написаниеИИ/торнамент/клэш/оптимизация) и тут же все лидерборды/ачивки и прочее, очень большой выбор языков)
    Ответ написан