Ответы пользователя по тегу IT-образование
  • Зачем нужно ООП?

    @EvgeniiR
    https://github.com/EvgeniiR
    Разберитесь с разницей между ООП и процедурным программированием для начала.
    ООП в формулировке "Инкапсуляция, Наследование и Полиморфизм" может и не нужно.
    Объектно-ориентированный дизайн как инструмент декомпозиции нужен чтобы контролировать сложность системы.

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

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

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

    Впрочем, если вам этот ответ что-то даст:
    Цель ООП - управление сложностью ПО.
    Ответ написан
    1 комментарий
  • Как получить теоретические знания, чтобы иметь возможность описывать то, что я реализую на практике?

    @EvgeniiR
    https://github.com/EvgeniiR
    Итак,
    какие конкретно стоит почитать

    1. Макконнелл, "Совершенный код". Объемная но не особо сложная книжка, можно прочитать не особо то за большее время чем такую-же книжку из художественной лит-ры.
    2. Роберт Мартин, Идеальный программист. Есть ещё "Программист прагматик", вроде тоже о чем то подобном. Книжка небольшая, в принципе можно за пару тройку недель прочитать рассуждения Дяди Боба о работе программиста.
    3 Роберт Мартин, Чистый Код. Весьма хорошая книжка, очень широко затрагивает тему написания поддерживаемого кода. Важно - особенно в этой книге, но так же и в любой другой - не зацикливайтесь на догмах аля "3 строчки на функцию", не обожествляйте SOLID, а рассматривайте, какие проблемы решают предложенные решения. Советую в каждом случае рассуждать о том, как описываемые вещи влияют на качество кода и архитектуры программы.
    4. Роберт Мартин, Чистая Архитектура - относительно новая книжка о том, что всё новое это хорошо забытое старое. Возможно вещи описываются немножко поверхностно, впрочем, углубляться в любом случае нужно самому. Книжка годная, получше объясняет SOLID, затрагивает другие принципы, затрагивает парадигмы, принципы дизайна, архитектуру, объясняет почему то, что многие горе-разработчики нынче зовут ООП им не является. Думаю эту книжку можно даже перенести на первое место.
    Дальше уж по ситуации - паттерны GoF, PoEAA, Рефакторинг Фаулера, Кента Бека про тестирование etc.

    подсознательно я продолжаю выбирать именно "правильные" подходы,

    Боюсь, что вы просто используете те подходы что знаете, а не выбираете исходя из требований и ситуации.
    Хотя бы потому что "правильных" подходов не бывает, есть подходящие в данной ситуации, и плохо подходящие, компромиссные и откровенно вредные.

    наследование — это реализовывается само собой.

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

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

    @EvgeniiR
    https://github.com/EvgeniiR
    Обычно головы на плечах хватает. Если есть то конкуренция для вас минимальна и проблем устроиться не будет.

    скажите пожалуйста, нужно ли будет в будущем учить php и mysql?

    В будущем будете исходить от требований и собственных желаний. Чтобы устроиться фронтенд-разработчиком(не верстальщиком) займитесь поплотнее js. Разберитесь с популярными инструментами(gulp, webpack), понятиями (что такое SPA, и как его реализовать? Ajax? Websocket?) и освойте какой-нибудь фремворк (react / vue / angular etc.)

    Ну и да, ориентируйтесь по вакансиям на джуна.

    p.s. ещё git и примеры кода на github.
    Ответ написан
    7 комментариев
  • Скажите, с чего начать изучение Linux?

    @EvgeniiR
    https://github.com/EvgeniiR
    Не нужно быть специалистом для пользования Линуксом. Гляньте дистрибутивы Ubuntu и Linux Mint. Советую всё же Linux Mint 18.3. Такая же OC как Windows. Поставите и сможете пользоваться. Программы ставятся через центр приложений. Если там нету, то просто скачивается с интернета (Расширение .deb - Debian package, Linux Mint основан на Debian). Драйвера в большинстве случаев работают сразу после установки. У меня даже wi-fi заработал сразу. Если что, есть центр управления драйверами. После установки советую переключиться в нём на рекомендованный драйвер для видеокарты вместо стандартного.
    Вот так он выглядит у меня(Английская версия системы. Вы при установке можете выбрать Русскую. Отличий там нету. Просто так мне более по душе ): 5acdfa7b34d0b359598302.png
    За два месяца на Mint`е ни разу не приходилось что-либо настраивать через командную строку.
    Ответ написан
    5 комментариев