• Как вернуть мотивацию к обучению?

    @FranzK
    Чувак, тут нужен системный подход.

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

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

    Основное, скажем так, мясо мотивации
    Разовый прилив гормонов счастья способен вернуть к жизни загибающуюся разочарованную душу, но далеко на этом топливе не уедешь. Эти гормоны, вообще-то, должны вырабатываться сами собой, без привлечения к себе нашего внимания. Но у многих людей механизм выработки даёт сбой, как правило, причины этого имеют психологический характер. Мысли, что ничего не получится, что тлен и мрак, что ночь темна и полна ужасов, - эти мысли повисают мертвым грузом на наших ногах и чертовски отравляют жизнь. Но, к счастью, есть ноги свободные от этих гирь - это ноги людей, которые верят в себя, которых в детстве поддерживали родители. Таким людям легко идётся по жизни, у них всё получается, потому что они не боятся, не откладывают, а делают. Кому не так повезло, и кто с гирями, им придется избавляться от неверия и низкой самооценки уже в пути. Нужно через силу заставлять себя поверить в успех, словом взять на себя ту работу, которую в жизни уверенных людей проделали их родители. Внушать, прямо вдалбливать, что у меня получится, я преодолею это, ну и всё в таком духе. И, повторюсь, поскорее переходить от теории к практике. Будет страшно, но это окупится.

    И неправы снобы, говорящие: "Не нужно себя мотивировать. Оставайтесь в жопе". Сколько достойных людей оказалось в жопе в какой-то момент, и погибло, не сумев справиться с судьбой? Есенин. Высоцкий. Кафка, вот уж кто был главный кандидат, чтобы остаться в жопе: был издан после смерти, вопреки завещанию, и оказалось - гений, да каких поискать. Или Гоголь: я бы, вот честное слово, легко променял бы Артемия Лебедева вместе с его великой студией и Татьяной Никитичной на второй том "Мёртвых душ". В общем, много их было, кто в жопе и не вернулся. И никому от этого лучше не стало.
    Ответ написан
    2 комментария
  • Где программисту искать стартап-идею?

    @volodymyrpro7
    Смотреть на примеры успешных стартапов. У них много можно подчерпнуть для себя стартап идей. А вот мотивация, что из такой идеи может получится. megamozg.ru/post/17298
    Ответ написан
    Комментировать
  • Как в SASS импортировать CSS?

    agmegadeth
    @agmegadeth
    Веб-разработчик в дизайн студии
    Переименовать style.css в _style.scss
    Подключить его через:
    @import 'style';
    Ответ написан
    3 комментария
  • Как поставить точку после первой цифры?

    Stalker_RED
    @Stalker_RED
    Делим на 100, округляем до двух знаков после запятой.
    codepad.org/PjGjP54l
    Ответ написан
    Комментировать
  • Как поставить точку после первой цифры?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    Комментировать
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Как вернуть мотивацию к обучению?

    Я не поддерживаю тех кто смеётся над вами )) Подумайте вот о чём: если ваш организм сопротивляется новым знаниям, значит вы уже знаете достаточно, значит вам надо применить то что вы узнали, поэтому просто садитесь и делайте в процессе работы вы подойдёте к своему пределу, когда новые знания реально понадобятся - там и мотивация уже будет изучать.
    Ответ написан
    1 комментарий
  • Какие задачи нужно уметь выполнять на JS начинающему?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь решать на чистом JS, перед тем как переходить к изучению библиотек и фреймворков?


    Кроме синтаксических конструкций, математических и логических выражений, нужно знать:
    • Область видимости переменных
    • Замыкания
    • Объектно-ориентированное программирование, в частности наследование через прототипы
    • Шаблон проектирования "модуль"
    • Операции над DOM
    • Понимание принципов событийно-ориентированного программирования
    Важно - нужно знать, откуда копипастить.
    Тебе нужно быть очень хорошо знакомым с одной-двумя-тремя популярными библиотеками на JavaScript. В идеале ты должен иметь представление о том, что определённый класс задач может быть решен с помощью определённых библиотек, хотя бы одной, но такие знания приходят с практикой. Вообще ты должен быть знаком с ними так близко, чтобы помнить, в какой части мануала по библиотеке можно найти описание форматов входных данных нужной тебе функции и какой будет результат, чтобы скопировать и вставить в свой код, а потом поправить, чтобы работало.

    Важно - инструменты программиста JavaScript
    У тебя должен быть удобный инструмент для разработки (IDE, Integrated Development Environment), чтобы он тебе подсвечивал код (syntax highlight) и подсказывал о синтаксических ошибках (syntax check), о формальных параметрах функций (type hinting), о стиле кодирования (code style), помогал писать код (live templates).
    Ты должен знать, как отлаживать скрипты в популярных браузерах (Firebug, Chrome Developer Tools и другое). Что такое точки останова, как управлять исполнением во время останова, как посмотреть и поменять содержимое переменных, как настроить останов по условию.

    Хотелось бы узнать что это за задачи(упомянутые вами 80%)


    Реальные задачи джунов:
    1. Возьми из сборника задач по javascript любой скрипт случайно и вслух расскажи, что он делает.
      Важно - читать и понимать чужой код намного важнее, чем писать свой. И на работе тебе это приддётся делать чаще, чем ты думаешь. Чтобы подключить к своему проекту чужую JS либу, нужно понимать что она делает, как она конфигурируется, как управлять её поведением. Скажу точно, что написать свой скрипт, который строит графики, намного сложнее, чем понять, как настраивается highcharts.

    2. Напиши скрипт на JS, который в заданном тексте удалит один или два символа, выбранных случайно
      1. Усложнение: удалять можно только буквы в словах, а знаки пунктуации и цифры удалять нельзя
      2. Усложнение: принять, что этот текст является программной на Javascript, удалить одну-две команды JS, но только если они не в строковых литерах (break как команду удалить можно, а в строке "break my heart" нельзя)
      3. Усложнение: воспользуйся этим скриптом и "попорти" код какого-нибудь другого скрипта на Javascript, а потом отладь, найди ошибку и восстанови работоспособность
      Важно - этим обычно все и занимаются - ищут баги. Только в реальной жизни они и без этого скрипта появляются. И не по одному, а прям пачками.

    3. На страницу HTML нужно встроить график курса доллара по отношению к рублю. Формат входного массива значений курса определи сам, исходя из своего скрипта для построения графиков.
      1. Усложнение: на одном графике должны быть два курса, по разным шкалам. Наприме, курс доллара к евро и курс юаня к рублю
      2. Усложнение: первоначально график вывести в детализации по месяцам, но чтобы можно было "приблизить" (drilldown) детализацию до дней
      3. Усложнение: первоначально график вывести текущем месяце, но чтобы можно было загрузить данные для предыдущего месяца без перезагрузки страницы (AJAX)

    4. При клике по картинкам, вставленным в текст HTML, показывать всплывающее окно для просмотра увеличенной картинки.
      1. Усложнение: в всплывающем окне сделать навигацию по картинкам, вперёд/назад и к нужной картинке
      2. Усложнение: в всплывающем окне вместо картинки показать видео-ролик с Youtube
      3. Усложнение: в всплывающем окне показать текст HTML

    5. По клику на кнопку "Click me" показать всплывающую форму.
      1. Усложнение: реализовать проверку данных на корректность перед отправкой формы (непустое значение, минимальное количество символов, максимальное количество символов, минимальное числовое значение, максимальное числовое значение)
      2. Усложнение: если в значении текстового поля встретилась гиперссылка, то считать её за 22 символа при любой длине этой ссылки (как в твитере)
      3. Усложнение: реализовать отправку формы на сервер через AJAX, без перезагрузки страницы
      4. Усложнение: саму форму в виде HTML загрузить с сервера через AJAX, в момент клика по кнопке "Click me", правила проверок данных должны как-нибудь "извлечься" из самой загруженной формы, например из аттрибутов полей ввода

    6. К форме ввода данных на поле ввода даты "навешать" всплывающий календарь для выбора даты.
      1. Усложнение: сделать форму календаря мультиязычной. Хотя бы через настройки на том же JavaScript
      2. Усложнение: сделать так, чтобы с помощью календаря можно было выбрать диапазон дат, чтобы она была привязана к двум полям формы "дата начала" и "дата окончания", и чтобы значение в поле "дата начала" обязательно была меньше чем в поле "дата окончания"
      3. Усложнение: сделать так, чтобы с помощью в календаре можно было видно визуально этот диапазон
      4. Усложнение: диапазон может быть открытым, но не пустым, то есть пользователь должен задать хотя бы дату начала или дату окончания.

    7. Сделать пред-просмотр веб-страницы HTML с разными темами. Тему страницы выбирать через селектор на javascript, а показывать в фрейме.
      1. Усложнение: сделать селектор "тип устройства", чтобы менять размер фрейма (например, "iPhone 5c 1136x640") и "чекбокс" для смены ориентации страницы "горизонтальная" или "вертикальная" (соответственно 1136x640 или 640x1136)
      2. Усложнение: в селекторе тем предусмотреть поиск тем по подстроке, и аналогично поиск устройств по части названия (авто-дополнение, auto-complete)
      3. Усложнение: тема страницы должна меняться без перезагрузки фрейма



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

    2. Реализовать однопользовательскую браузерную игру "змейка", "тетрис", "найди пару"
    3. Реализовать многопользовательскую браузерную игру "крестики-нолики", "морской бой" на два игрока в режиме "hot seat"
      1. Усложнение: два игрока на разных компьютерах, ходы передаются по websocket
      2. Усложнение: ограничение на ожидания окончания хода 15 секунд, по окончании ожидания автоматически делается случайный ход

    4. Реализовать todo-list. Пользователь вводит список, затем он превращается в строки с "чек-боксами". Когда "чекбокс" включен, строка зачёркивается.
      1. Усложнение: пользователь может переименовывать, удалять, добавлять строки
      2. Усложнение: список хранить в localStorage браузера, чтобы при перезагрузке страницы он восстанавливался
      3. Усложнение: пользователь может иметь несколько независимых списков todo

    5. Реализовать простой графический редактор. Пусть рисуется точка в месте, где пользователь кликнул.
      1. Усложнение: добавить переключатель режимов "точка"/"линия", в режиме "линия" рисуются линии между двумя последовательно кликнутыми точками
      2. Усложнение: можно менять толщину, цвет линий, размер точек
      3. Усложнение: последовательность кликов можно воспроизвести ещё раз с самого начала, равномерно или с реальной задержкой между кликами, с обычной скоростью или ускоренно
      4. Усложнение: можно выгрузить получившийся рисунок в формате PNG или SVG, причём SVG c анимацией воспроизведения



    Можно использовать любую существующую библиотеку.
    Например,
    для построения графиков www.highcharts.com
    для загрузки и передачи данных через AJAX: jquery.com + что-нибудь на сервере
    для всплывающих диалогов с картиками, видео и формами: fancyapps.com/fancybox и https://jqueryui.com/dialog/
    для валидации форм rickharrison.github.io/validate.js
    для календаря https://jqueryui.com/datepicker/
    для автодополнения https://jqueryui.com/autocomplete/
    для передачи данных между несколькими пользователями socket.io или обычный AJAX
    Ответ написан
    16 комментариев
  • Какие задачи нужно уметь выполнять на JS начинающему?

    sivabur
    @sivabur
    Заблокировали просто так!
    1. Валидация форм и отправка аяком на сервер+получения ответа
    2. Погрузка данных через аякс при выборе какого то пункта
    3. Слайдер както сделать.
    4. Интерфейс жосткий чтоб там заежало там выезжало со всеми свистопеределками.

    2 уровень
    писать плагины для джеквери по стандарту
    изучить какойто из фрамиворвков и на нем писать
    Ответ написан
    2 комментария
  • Проблема с Foundation Source Ordering?

    <div class="row">
        <div class="small-6 medium-4 large-4 columns">
            1
        </div>
        <div class="small-6 medium-4 medium-push-4 large-4 large-push-4 columns">
            3
        </div>
        <div class="small-12 medium-4 medium-pull-4 large-4 large-pull-4 columns">
            2
        </div> 
    </div>

    На large и medium должен быть порядок 1,2,3, на small будет 1,3 и внизу на всю ширину 2.
    Посмотреть

    Push - сдвигаем вправо (используем left: сдвиг), pull - сдвигаем влево (используем right: сдвиг)
    Ответ написан
    Комментировать
  • Cтоит ли заострять внимание на алгоритмах java?

    Arris
    @Arris
    Сапиенсы учатся, играя.
    Алгоритмы - это алгоритмы.
    Java - это язык программирования.
    Не надо путать тёплое и мягкое.
    Ответ написан
    Комментировать
  • Как распарсить строку и построить дерево категорий товаров и услуг?

    orlov0562
    @orlov0562
    I'm cool!
    Я напишу в целом, т.к. это подойдет для любого языка

    Алгоритм работы парсера довольно прост, и по большей части делится на 3и этапа:
    1) Получить данные
    2) Разобрать данные
    3) Сохранить данные

    1) Для того чтобы получить данные, надо изучить стек функций для работы с сетью. Можно гуглить по такому запросу "Как скачать веб-страницу" + твой ЯП (PHP, Java, Python и т.д.). Тут ты должен написать функцию которой на вход передашь url, а на выход получишь данные (html, json, xml и т.д.)

    2) Разобрать данные можно либо с помощью готовых библиотек под нужный формат, либо с помощью регулярных выражений, либо с помощью строковых функций. Тут на помощь придет запрос "Строковые функции" + твой ЯП или "регулярные выражения" + твой ЯП. На этом этапе ты должен написать функцию, которой на вход поступают данные, а на выходе получаешь заранее утвержденную структуру.

    3) Сохранять данные в необходимой структуре можно в файлы или в БД. Опять в гугл с запросом "Работа с бд " + твой ЯП, либо "Работа с файлами" + твой ЯП. Тут твоя задача написать функцию, на вход которой приходит заранее утвержденная структура, а на выходе ты получаешь результат "сохраненные данные"

    Ну, собственно и всё. Идешь в гугл, изучаешь матчасть и пишешь парсер.

    Если же тебя в большей степени интересуют алгоритмы разбора, тогда советую посмотреть код "калькуляторов" на твоем ЯП, погуглить можно по запросу "калькулятор со скобками", "Разбор и вычисление выражений". Это классическая задача, разбор твоего куска будет очень похож.
    Ответ написан
    6 комментариев
  • Не получаеться правильно спарсить с PHP Simple Dom Parser?

    orlov0562
    @orlov0562 Куратор тега PHP
    I'm cool!
    Не лучший источник для парсинга, но можно сделать например так:
    <?php
    	include 'simple_html_dom.php';
    	
    	$url = 'http://www.hltv.org/?pageid=179&teamid=4991&gameid=2';
    	$cacheFile = dirname(__FILE__).'/'.md5($url);
    	
    	if (!file_exists($cacheFile)) {
    		if ($html = file_get_contents($url)) {
    			file_put_contents($cacheFile, $html);
    		} else die('Can\'t get html');
    	} else {
    		$html = file_get_contents($cacheFile);
    	}
    	
    	$items = [];
    	$dom = str_get_html($html);
    	if ($domElements = $dom->find('div.covGroupBoxContent')){
    		foreach($domElements as $domBox) {
    			if (!strpos($domBox->plaintext, 'Key stats')) continue;
    			if ($domBoxElements = $domBox->find('div.covSmallHeadline')) {
    				$item = [];
    				foreach($domBoxElements as $k=>$element) {
    					if (!$k) continue;
    					$item[] = $element->plaintext;
    					if ($k%2==0) {
    						$items[] = $item;
    						$item = [];
    					}
    				}
    			}
    		}
    	}
    	
    	echo '<pre>';
    	print_r($items);
    	echo '</pre>';


    результат:

    Array
    (
        [0] => Array
            (
                [0] => Maps played
                [1] => 539
            )
    
        [1] => Array
            (
                [0] => Wins / draws / losses
                [1] => 363 / 8 / 168
            )
    
        [2] => Array
            (
                [0] => Total kills
                [1] => 50715
            )
    
        [3] => Array
            (
                [0] => Total deaths
                [1] => 45101
            )
    
        [4] => Array
            (
                [0] => Rounds played
                [1] => 14083
            )
    
        [5] => Array
            (
                [0] => K/D Ratio
                [1] => 1.12
            )
    
        [6] => Array
            (
                [0] => Best player (Average rating)
                [1] => olofmeister (1.15)
            )
    )


    P.S. Кусок с кешированием только не забудь убрать, он нужен только на время отладки, чтобы ускорить процесс и не дергать внешний сервер.
    Ответ написан
    2 комментария
  • Фрилансер, хочу открыть фирму. Ваш опыт?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    1) Не стоит снимать офис, пока нет острейшей необходимости. Острейшая необходимость - вас 4+ разработчиков и вы должны бешено что-то вместе пилить. До этого момента офис вам не нужен. Чтобы сесть в офис и уж тем более нанимать сотрудников вам нужно быть ИП или юр. лицом. Чтобы их открыть чаще всего это занимает от двух недель и не меньше 20к рублей. Сам офис будете искать, ездить, реонтировать, докупать технику туда, решать проблемы с ним постоянно возникающие - итого уже тысяч 100 для того чтобы смочь начать работать в офисе.
    2) офис почти гарантированно заставит вас нанимать сотрудников официально. Если коротко, найм сотрудника влечёт 40% налогов от его з/п.

    p.s. Попробуйте trello, он настолько простой и приятный что хочется в нем постоянно сидеть и закрывать таски)
    Ответ написан
    5 комментариев
  • Фрилансер, хочу открыть фирму. Ваш опыт?

    CrewCut
    @CrewCut
    Коплю силы на переезд в тропики
    Доброй ночи.

    1. Касаемо CRM - попробуйте разные решения, на вкус как говорится. Рекомендую обратить внимание на Мегаплан, есть еще teamer.ru/about он проще, но в принципе норм. Для старта хватит бесплатной версии CRM, а там уж видно будет

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

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

    3. Насчет бухгалтерии - попробуйте Эльбу или МоёДело, для начала бизнеса - отличные сервисы. Касаемо распределения обязанностей - идите от выгоды. Например, есть премиум-клиент, который Вам очень дорог - следите за этим проектом тщательно. Проекты проще и слабее можно передать сотруднику. Учитесь обращать внимание только на важные вещи, иначе загнетесь.

    А вообще, кризис - время действия. Удачи Вам!
    Ответ написан
    2 комментария
  • Как правильно верстать на чистом html css?

    zorro76
    @zorro76
    Плохой тон нынче это без фреймворков, препроцессоров.
    Ответ написан
    1 комментарий
  • Как вы постигали жестокое ооп в javascript?

    @sitev_ru
    sitev.ru - мой блог ...
    А я, например, считаю
    прототипное ооп js
    полнейшей ересью )))

    ООП использую только на серверной стороне, а Javascript использую, как обработчик событий и для вызовов AJAX... Для меня ООП в Javascript просто не нужны...

    Если всё-таки классы нужны, то может быть попробывать писать на TypeScript?

    Вот как выглядит на нём класс (из википедии):

    class Person {
        private name: string;
        private age: number;
        private salary: number;
    
        constructor(name: string, age: number, salary: number) {
            this.name = name;
            this.age = age;
            this.salary = salary;
        }
        
        toString(): string {
            return this.name + " (" + this.age + ")" + "(" + this.salary + ")";
        }
    }
    Ответ написан
    6 комментариев
  • Где взять ссылки на красивые анимированные лендинги для образца?

    Apathetic
    @Apathetic
    Frontend
    Реализацию фронтенда можно смотреть на сотнях примеров с themeforest.com. Выбираете понравившийся и смотрите демо.
    Ответ написан
    6 комментариев
  • CodeIngiter как приобразовать запрос в mssql запрос?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    Лошок тот, кто взял cms и не использовал query builder. Перепишите всё на query builder, чтобы впоследствии переход на другую СУБД был всего-лишь заменой строчки в конфиге. а не переписыванием запросов.
    Ответ написан
    3 комментария