• Нужно ли хорошо разбираться в алгоритмах джуну?

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

    @alekcena
    Нелинейный наставник
    Ну, я когда начинал не изучал алгоритмы.
    На работу это не влияло.

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

    Когда я чуть подкачался. Для меня важным навыком оказалось
    1) Читать документацию, как не странно, в ней можно найти 99% проблем.
    2) Понимать конструкции языка программирования, бегло его читая.
    3) Не использовать крутые конструкции, если они усложняют чтение.
    Да, этим грешат все, кто познал много крутых штук.
    Но по факту они кроме как усложнение, ничего не делают.
    4) Понимание, что ты работаешь не один, следует из пункта 3.
    Код нужно писать что-бы его можно было прочесть.

    А уже потом, ты изучаешь алгоритмы, и понимаешь, что ты и так их используешь.
    Тк как что есть алгоритмы? Все есть алгоритмы.
    Ответ написан
    4 комментария
  • Какие виды и специализации Java программистов бывают?

    @Wan-Derer
    Зобанели на Хабре, волки́ ;((
    Основные направления тебе перечислили, немного дополню.
    - есть очень сложный и очень старый энтерпрайз, например, банки. Бывают написаны на очень старой Java, говорят, даже 5 встречается :) Охренеть какая сложная предметная область. Тебе могут дать задание написать или исправить класс, а ты вообще в душе не шаришь что это и зачем. И так всю жизнь :)
    - есть системы типа SAP, которые надо не писать, а адаптировать под конкретного заказчика типа Аэрофлота. Делается это путём прописывания логики работы уже готовой системы, а также написания своих плагинов, в т.ч. на Java.

    Ну а если тебе нужен универсальный совет, то вот он:
    - не знаешь что учить - учи Spring, вакансии не дадут соврать;
    - обязательно познакомься с SQL - чтобы понимать не только JPA, но и "голые" запросы и уметь хотя бы немного в их оптимизацию;
    - познакомься с фронтендом на базе фреймворка, самый популярный React, хотя бэкендерам лучше заходит Angular. Это позволит на практике понять как происходит взаимодействие бэк-фронт, ну и вообще - расширит сознание :)

    С таким стэком и (желательно) домашним проектом искать работу будет легче и веселее :)
    Удачи!
    Ответ написан
    1 комментарий