• Java junior developer кратчайший путь с нуля до реальной работы?

    @Mikeismynick Автор вопроса
    2 месяца как работаю разработчиком ))) желаю всем дойти до своей цели, на любые вопросы с радостью отвечу.

    Перед прочтением поста прошу достать свой компас сейчас мы будем его настраивать или же решим что он все таки показывает в отличную от программирования сторону, дело в том что люди которые читают подобные статьи находятся в смятении, и прочитав очередную саксес стори пытаются замотивировать себя идти в этом направлении, это все понятно - я писал этот пост именно для вас, выше вы найдете предисторию чтобы все это “примерить на себя”, чего таить и я в свое время делал точно также, причем я больше мотивировал себя чем шел к цели.
    Будучи разработчиком сейчас я вполне отдаю себе отчет что мог им и не стать, да у меня была цель, да были мотиваторы, но реально почти до самого конца я вел себя так как будто не хотел этого - чуть что давал слабину, расслаблялся и чуть-ли не забрасывал все это дело, года 2 я просто думал что выучу все сам и по факту вообще ничего не делал, уже будучи на курсах я держался в хвосте из - за чего постоянно был в авральном режим и чуть догонял костяк как тут-же сбавлял темп и отставал, вообще процесс обучения этому занятию переодически очень сильно вымораживает и тот самый фильтр который многие не проходят, я могу посоветовать тебе читатель иметь свою философию и подход к этому занятию, в итоге у тебя все равно все “поднимется” и “победится", советую читать и перечитывать tutorials.jenkov.com/software-as-career/learning-i... с правильным мировозрением все это преодолевается намного легче.
    Внимание! Если вы хотите стать разработчиком, то уже сегодня примените весь ресурс что у вас есть. Хотите попробовать сами выучить все ? Вперед! но общайтесь активно с комьюнити, ходите на конференции, и пишите код, много кода, и главное пишите его правильно, посмотрите как устроены небольшие опенсорс проекты, почитайте про трехслоную архитектуру и дерзайте! Не получается ? или вы видите что темп черепаший, а уже начинает надоедать и руки опускаются ? ОК! все к этому приходят, вам нужен турбоБуст а это ментор или курсы.

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

    Ну если, вы и дальше ищите статьи и варианты выучить джаву за 21 день то просто перестаньте тратить свое время, это не ваше, увы и АХ!

    Как это было - много писать не буду (а получилось в итоге много И ДАЖЕ ОЧЕНЬ), могу посоветовать статьи Стаса Лазенко на dou.com, там расписан путь (на ближайший 1 - 1.5 года), не нужно учить все что там есть от корки до корки, но в конце у вас должно быть свое приложение в моем случае это https://bitbucket.org/Mikeismynick/phonebook, там написаны инструменты которыми я пользовался, все что там перечислено это технологии которые активно используются в современной веб разработке, если и не придется работать с ними в итоге то знать о них и пощупать надо, и да там не весь список технолгий которые нужно изучать, вот то что я указывал в резюме,

    Классические алгоритмы и структуры данных Java SE 7 ООП IO Collections Multithreading Concurrency Utilities JDBC JPA Hibernate(ниже написал что именно) Servlet JSP Spring Framework (IoC Container, JDBC, ORM, MVC) JavaScript jQuery Ajax JSON Twitter Bootstrap XML (DOM, SAX, StAX) JUnit Mockito IntelliJIDEA Git/Bitbucket Maven Tomcat MySQL

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

    Приложение писалось 2 месяца (и не чисто писалось а с пробой технологий и перепиской на более современные с целью глубже понять как это современное работает под копотом и зачем оно в общем то нужно если и без него тоже можно написать рабочий вариант). Сразу скажу если хотите доучиться используйте весь доступный вам ресурс, не пускайте все на самотек со словами вот ща немного посижу и потом немного, вы просто потратите время, наймите ментора или идите на курсы в группу, самостоятельно учится конечно можно, но почти наверняка вы перегорите т.к. темп будет черепаший и вам будет казатся что вы этим плотно занимаетесь, а смысл в том что плотно это когда тебе снится java )) ( но вы в общем то и будете 90% времени учится самостоятельно даже на курсах и у ментора, т.к. программирование иначе никак не выучить).

    Без ментора очень тяжело, оглядываясь могу сказать что выучить нужно много и желание учится часто будет пропадать тк. цель будет маячить где то там далеко, а процесс разработки переодически просто вымораживает особенно когда ты ищешь багу 6 часов а окозалось что просто где то по не внимательности пропустил самую тривиалную вещь.

    Я лично учился в группе getJavaJob (собственно мне это здесь и посоветовали, поклон ребят !!), чистыми учился около 6-7 месяцев, работал очень плотно, 3-4 часа в день минимум, конечно не всегда так получалось но и в выхи и в праздники я тоже учился так что назвал средние цифры. ну и у всех голова и бэкграйнд разный, считаю что быстро схватывал, но отсутствие бэкграунда и посредственный англ очень тормозили меня. На курсы пришел прочитав 150 стр. из "полного руководства" Шилдта.

    Что до конкретных курсов то очень рекомендую попробовать, курс поделен на 2 части, первая длится 2 месяца и там учат java se (алгоритмы, структуры данных) паралельно прививают правильный стиль программирования и учат работать с инструментами разработки (idea, git, debugger). Ну и организатор курсов суров, если начинаешь тупить и отставать то он быстро тебя подрежет и ты престыженный будешь дальше пилить, пилить ))

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

    Кстати в slack сидит русскоязычное комьюнити канал называется 3monthjunior, заточенное как понятно из названия на подъем до джуна и трудоустройство ))) чуть не забыл, мега важно иметь людей которые буду подсказывать и толкать вперед
    Ответ написан
    3 комментария
  • Можно ли сделать такую фишку без JS?

    svistiboshka
    @svistiboshka
    живые веб интерфейсы
    вообще легко background-attachment: fixed
    https://jsfiddle.net/s8o5hun8/1/
    Ответ написан
    9 комментариев
  • При удалении вопроса модератором теряется работа отвечающих. Можно ли это предотвратить?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Адово плюсую. Вообще давно есть мысль написать на гитаймс статейку: "Что не так с тостер.ру", много косяков, о многом писал(или другие жаловались) - результата нуль.
    Ответ написан
    3 комментария
  • При удалении вопроса модератором теряется работа отвечающих. Можно ли это предотвратить?

    @SolidMinus
    Лично мне обидно, когда спрашиваешь, отвечают, а вопрос удаляют по совершенно непонятной причине и ответы, данные тебе ты не видишь
    Ответ написан
  • При удалении вопроса модератором теряется работа отвечающих. Можно ли это предотвратить?

    alsopub
    @alsopub
    Лично мне больше обидно когда вопрос удаляют в то время пока пишешь ответ ;)
    Напишешь строк десять текста, нажмешь "Опубликовать" и облом.
    Но такова селяви.
    Ответ написан
    3 комментария
  • При удалении вопроса модератором теряется работа отвечающих. Можно ли это предотвратить?

    Sterhel
    @Sterhel
    Ранее существовал специальный раздел для подобного (/temp), куда постоянно перебрасывали вот эти вечные "Куда пойти учиться", "Какой язык выбрать", и аналогичные "Как жить дальше", но с очередным обновлением он был упразднен.
    Ответ написан
    5 комментариев
  • Как сверстать такую структуру блоков?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    https://jsfiddle.net/xqd0zerq/ так? уменьшайте до 400 пикселей блок с результатом
    Ответ написан
    Комментировать
  • Как расчитать угол поворота объекта?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    2 комментария
  • Как настроить перенаправление с https на http через .htaccess?

    BOOMER_74
    @BOOMER_74
    Full-Stack разработчик
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://...


    Более быстрый способ через virtualhost:
    <VirtualHost *:443>
    ServerName ...
    
    Redirect permanent http://...
    </VirtualHost >
    Ответ написан
    5 комментариев
  • Где найти блок схемы php js приложений?

    @sergyx
    Давай попробуем декомпозировать задачу на самом примитивном примере.

    Определим действия, которые должен совершить покупатель для покупки.
    1-Зайти на главную страницу магазина. Должна быть [Главная страница магазина]
    2-Увидеть каталог всевозможных товаров. Должна быть [Страница каталога товаров] на которой можно увидеть список доступных для покупки товаров. Также в БД должна быть [таблица товаров].
    3-Перейти к описанию конкретного товара. Должна быть [Страница описания конкретного товара]
    4-На странице описания товара нажать на кнопку "Купить"
    4.1 По нажатию на кнопку "Купить" совершается действие помещения товара в корзину покупателя.
    Здесь надо где-то хранить эту корзину (выбранные к покупке товары), например, будем добавлять в куки браузера ид только что выбранного товара.
    5-По нажатию на кнопку "Корзина" загружается страница с выбранными покупателем товарами. Должна быть страница [Корзина покупателя]
    6-По нажатию на кнопку "Оформить заказ" загружается страница со списком выбранных к покупке товаров, формой данных покупателя (адрес и т.п.) и кнопкой подтверждения заказа. Должна быть страница [Оформление заказа].
    7.1 По нажатию на кнопку "Подтвердить покупку" в системе создается новая сущность Заказ. В БД должна быть [таблица заказов]
    Владелец магазина должен иметь возможность просмотреть эту таблицу, но это уже админка, ее рассматривать не будем.

    Итого, при первом приближении имеем:
    БД:
    --таблица товаров
    --таблица заказов

    Открытая часть магазина (то, что доступно покупателю):
    1--главная страница. Содержит:
    -ссылка на каталог товаров
    -ссылка на корзину
    -ссылка на оформление заказа
    2--страница каталога товаров. Содержит:
    -список товаров, где напротив каждого товара стоит ссылка на страницу конкретного товара
    3--страница описания конкретного товара. Содержит:
    -описание товара
    -кнопку "купить"
    4--страница корзины. Содержит:
    -список выбранных для покупки товаров
    -кнопку "оформить заказ"
    5--страница оформления заказа. Содержит:
    -список выбранных для покупки товаров
    -поле адреса для доставки
    -кнопку "подтвердить заказ"
    Т.е. уже можем нарисовать структуру страниц открытой части сайта, которые можно представить в виде отдельных квадратиков, со стрелками друг на друга, например
    ---главная страница---
           каталог товаров ---> [страница каталога]
    	             корзина ---> [страница отображения корзины]	  
    			   и т.д.
    ----------------------

    Углубляемся дальше на примере 1-помещения товара в корзину и 2-отображения корзины:
    1-помещение товара в корзину.
    Находясь на странице описания товара и нажав на кнопку "купить", необходимо проделать следующее.
    (храним выбранные товары в куках)
    --прочитать куки пользователя
    --извлечь из них идешки уже имеющихся в куках товаров
    --добавить к этому списку ид выбранного товара
    --перезаписать этот список в куки
    Что для этого надо (углубляемся еще):
    На странице описания товара надо иметь ссылку типа /product.php?action=add-to-cart&id={ид-товара}, по нажатию на которую передается управление скрипту product.php c действием add-to-cart.
    product.php, определив, что задано действие add-to-cart
    --читает параметр _GET[id]
    --читает из кук пользователя уже сохраненные там идешки (их может там еще не быть)
    --добавляет к списку сохраненных идешек только что прочитанный параметр _GET[id]
    --перезаписывает в куки пользователя новый список идешек
    --отображает страницу описания этого же продукта, как-то оформляем, что товар уже добавлен в корзину.

    2-отображение корзины:
    Где-то на главной странице имеем ссылку на корзину типа /cart.php
    Скрипт cart.php:
    --читает из кук пользователя сохраненные там идешки (мы уже это делали выше, значит это можно оформить в отдельную функию)
    --делает из таблицы товаров выборку тех товаров, идешки которых записаны в куках
    --отображает страницу корзины, в которой выводятся только что выбранные из БД товары

    И т.д. и т.п. по каждому пункту.
    Т.е.
    -сначала делаем описание всех возможных действий пользователя
    -по нему формируем набор страниц, с соответствующим интерфейсом (ссылки, кнопки, формы, списки, деревья и т.д.), на которых эти действия он может реализовать.
    -для каждого действия пользователя на сервере/фронте создаем соответствующие обработчики, которые, исходя из собственно заданного действия и состояния системы на тот момент, выполняют какие-то действия: читают/записывают что-то в БД/куки, запрашивают что-то у пользователя или что-то ему отображают.
    -каждый пункт можно оформить в любую графическую схему со стрелками/алгоритм или словесное описание.
    -каждый пункт можно детализировать в подпункты, в под-подпункты и т.д.
    ps
    для начала рекомендую начать с чего-то более простого, например, с простейшего блога, гостевой книги или т.п.
    Ответ написан
    Комментировать
  • Как отсортировать два логически связанных массива?

    DeeplessHole
    @DeeplessHole
    Студент матмеха СпбГУ
    Так ведь достаточно сделать так, чтобы при каждом перемещении в первом массиве мы знали индексы участвующих в них элементов и по этим индексам делали перемещение элементов и во втором массиве.

    Еще можно хранить массив структур типа { name: "Имя", age: 999 }, тогда при сортировке возрасты будут перемещаться вместе с именами.
    Ответ написан
    Комментировать
  • В чем суть роутера на php?

    onqu
    @onqu
    weasy
    1. Здесь пугают всякими контроллерами, ларавелями. Давайте жить проще. Для начала дадим определение модному слову роутер. Это маршрутизатор. Что делает маршрутизатор? Правильно. Обрабатывает маршруты, являясь связующим звеном. Маршрутом для web сайта принято считать метод запроса [GET, POST, PUT и другие] и компоненты URI.

    например: https://ru.wikipedia.org/wiki/URI?foo=bar#title
    [схема: https] :// [источник: ru.wikipedia.org] [путь: /wiki/URI] [запрос: ?foo=bar] [фрагмент: #title]


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

    Сама работа, как правило проста: от клиента приходит запрос, маршрутизатор перебирает все заданные ему пути до первого совпадения. При совпадении вызывается определенная вами функция, которая возвращает ответ клиенту.

    2. Он необходим, если в приложении одна точка входа, когда любой запрос приходит на один файл.

    3. Простой пример
    // файл index.php
    
    // Маршруты
    // [маршрут => функция которая будет вызвана]
    $routes = [
        // срабатывает при вызове корня или /index.php
        '/' => 'hello',
        // срабатывает при вызове /about или /index.php/about
        '/about' => 'about',
        // динамические страницы
        '/page' => 'page'
    ];
    
    // возвращает путь запроса
    // вырезает index.php из пути
    function getRequestPath() {
        $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
    
        return '/' . ltrim(str_replace('index.php', '', $path), '/');
    }
    
    // наш роутер, в который передаются маршруты и запрашиваемый путь
    // возвращает функцию если маршшрут совпал с путем
    // иначе возвращает функцию notFound
    function getMethod(array $routes, $path) {
        // перебор всех маршрутов
        foreach ($routes as $route => $method) {
            // если маршрут сопадает с путем, возвращаем функцию
            if ($path === $route) {
                return $method;
            }
        }
    
        return 'notFound';
    }
    
    // функция для корня
    function hello() {
        return 'Hello, world!';
    }
    
    // функция для страницы "/about"
    function about() {
        return 'About us.';
    }
    
    // чуть более сложный пример
    // функция отобразит страницу только если
    // в запросе приходит id и этот id равен
    // 33 или 54
    // [/page?id=33]
    function page() {
    
        $pages = [
            33 => 'Сага о хомячках',
            54 => 'Мыши в тумане'
        ];
    
        if (isset($_GET['id']) && isset($pages[$_GET['id']])) {
            return $pages[$_GET['id']];
        }
    
        return notFound();
    }
    
    // метод, который отдает заголовок и содержание для маршрутов,
    // которые не существуют
    function notFound() {
        header("HTTP/1.0 404 Not Found");
    
        return 'Нет такой страницы';
    }
    
    
    // Роутер
    // получаем путь запроса
    $path = getRequestPath();
    // получаем функцию обработчик
    $method = getMethod($routes, $path);
    // отдаем данные клиенту
    echo $method();


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

    4. Обойтись без него можно. Если каждая страница в вашем приложении будет являться отдельным файлом, который отвечает за отдачу информации.
    index.php
    about.php
    contact.php
    ...


    Это олдскульная структура, в новых проектах почти не применяется.
    Ответ написан
    13 комментариев
  • Какую книгу выбрать для изучуение JS?

    @lasmaster
    Вся сила в самообразовании
    Для начала я бы посоветовал рессурс learn.javascript.ru Там и тесты знаний есть для самопроверки, что отсутствует в книгах.
    Ответ написан
    1 комментарий
  • Новые цифры создать?

    Stalker_RED
    @Stalker_RED
    Есть международные, рекомендуемые системой СИ приставки, вплоть до 1024 (они-же, на английском)

    Для бОльших чисел наверное проще написать 10n, чем выдумывать какие-то свои нестандартные обозначения.
    Ответ написан
    Комментировать
  • Flexbox vs float?

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

    В итоге, ответ на вопрос очень простой - flex нужно использовать там, где он дает конкретные преимущества. Самое очевидное - нужно автораспределение ширины блоков с подстройкой к ширине контента. Или вам нужно менять порядок блоков (свойство order).
    Если ничего этого не планируется - flex не нужен! Сейчас уже наплодили сеток и "фреймворков", где flex используется фактически для имитации float-ов! Ну типа же стильно, модно, молодежно. Я ж крутой разработчег, не хухры-мухры.

    При верстке каждого блока нужно задавать себе вопрос: "я использую flexbox, чтобы что?" Если на вопрос есть четкий ответ - да, нужно использовать. Если только бла-бла типа "ну это современно, прогрессивно и пр" - использовать старые железобетонные приёмы.
    Ответ написан
    7 комментариев
  • Как определить загрузилась ли картинка с применением JQUERY?

    @IceJOKER
    Web/Android developer
    напишите небольшой скрипт fixer.php , который возьмет все данные и с помощью file_exists() проверить есть ли данный файЛ. если нет - пускай удалит путь к файлу
    Ответ написан
    Комментировать
  • Стоит ли сейчас учить C# и .NET?

    EreminD
    @EreminD
    Кое-что умею
    Тут, конечно, можно вдариться в долгие рассуждения про важность C#, про различие сфер применения .net и питона.
    Еще можно порыть статистику и сказать, на сколько сотых процента питон (не)обгоняет .net и все такое.

    Давайте, я просто напишу, что язык точно не умирающий и сомневаться в востребованности не нужно.
    А если говорить конкретно про ASP.NET, многие полагают, что с выходом ASP.NET Core, популярность пойдет только вверх
    Ответ написан
    Комментировать
  • Как узнать, как будет выглядеть сайт на мониторах шире 1920px?

    Raxen
    @Raxen
    Lead Frontend Developer, Beeline
    Ответ написан
    Комментировать
  • Как узнать, как будет выглядеть сайт на мониторах шире 1920px?

    @frisarix
    Можно использовать онлайн сервисы, например, quirktools.com/screenfly/. Его преимущество в том что работает с localhost и можно задавать кастомные размеры.
    Ответ написан
    Комментировать