• Проблема с пониманием проектирования бд, поможете?

    vabka
    @vabka
    Токсичный шарпист
    к примеру, у одного объявления в среднем 3 тега, на 1 миллион объявлений будет 3 миллиона записей в "объявления-теги", как там будет по скорости при выборке? Сильно я выиграю, если нарушу правило и буду писать теги, перечисляя их в строку через запятую?

    1. Представим, что промежуточная таблица объявление-тег - это два гуида.
    Тогда одна строчка будет занимать около 32 байт. 3*32*1000000 = 96 мегабайт (метрических)
    2. Естественно, выборка будет медленной, если не добавить индекс. Индекс по id объявления ещё примерно столько же займёт. Выборка уже будет быстрее. Для фильтров ещё надо будет добавить индекс в обратную сторону - от id тега.
    3. Ещё и фильтроваться по тегам можно будет, что, мне кажется, является одним из важнейших качеств тегов.
    4. Если 96 мегабайт тебя пугает - используй int64 или int32 - тогда будет меньше в 2 или в 4 раза соответственно
    Сильно я выиграю, если нарушу правило и буду писать теги, перечисляя их в строку через запятую?

    Как уже сказали в комментах - очень сильно обосрёшься.
    Выборка, конечно, будет очень быстрая, но
    1. Представим что тег - это 6 букв на русском языке, а храним мы строки в Utf8 кодировке.
    Тогда на каждое объявление будет тратиться 6*2*3+3+4=45 байт. Соответственно на миллион объявлений уйдёт 45 метрических мегабайт.
    2. Но тут не будет индексов, по тому и фильтроваться будет очень дорого

    PS: все прикидки по памяти взяты с потолка. В реальной БД числа будут другие, но примерно похожие.
    PPS: если не совсем понятно, что я предлагаю, то вот:
    ._________.             .______________.           .____________.
    | post    |             | post_tag     |           | tag        |
    |=========|             |==============|           |============|
    | id: int |<------------| post_id: int |           | id: int    |
    | ...     |             | tag_id: int  |---------->| name: text |
    |_________|             |______________|           |____________|
    Ответ написан
    1 комментарий
  • Как правильно создать модель данных для TableView в JavaFX?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    1. Не усложняйте себе жизнь и не используйте FXML, описывайте формы в коде
    2. в DataModelSQL надо еще добавить методы типа
      public StringProperty valProperty() { return val; }

      Смотрите справку

    3. работать с данными в контроллере не надо, особенно если операция может быть долгой. Выносите работу с БД отдельно, даже в отдельный поток. а в контроллере прилипите buttonClick.setOnAction(event -> {meDBWorker.getMyData();}
    4. свойства columnOne.setCellValueFactory.. вы задаете в цикле, не надо так, задайте их единожды при создание ui таблицы. Опять же отчасти у вас это скорее всего изза использования fxml, отсюда и не понимание
    5. свой list при запросе из БД вы не очищаете и каждый раз пихаете в него одно и тоже. Кроме того tableShow.setItems(list) вы опять же делаете в цикле и опять же это надо сделать единожды при создании UI
    6. в DataModelSQL все поля сделайте final

    Ну и еще, существует гора библиотек для работы с таблицами в javafx в т.ч. с мапингом к БД. В чистом виде на чистом jfx придется очень многое делать руками, начиная от некоторых видов ячеек для некоторых данных, заканчивания банальными редактированиями\обновлениями и т.д. Аналогично есть целый пласт технологий и библиотек для работы с БД, начиная от простых и заканчивания афигеть мощными, погуглите на тему ORM
    Ответ написан
    Комментировать
  • Как найти удаленную работу системным администратором если нет опыта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Для начала, я прочитал не только вопрос но и твои комментарии к другим ответам, и поэтому да, у тебя есть проблемы с оценкой и себя и собственных знаний и понимания что ты хочешь получить.

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

    Как в наших реалях найти работу сис админа.

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

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

    Есть огромное желание развиваться в данном направление.Опыт работы системным администратором нет.

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

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

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

    Есть опыт своего игрового сервера на esxi я не про vps а полноценный сервер.

    Этой фразой ты противоречишь сам себе. Чем VPS не полноценный сервер - непонятно - сейчас на VPS навреное живет почти все.
    Опять же игровые сервера бывают разные.
    Например у меня был опыт нескольких игровых серверов. И опыт работы с ними можно сравнить с весьма неслабым опытом и разработки и поддержки в коммерческой организации.
    А можно было просто поставить майнкрафт на домашнем компе без виртуалки - и тоже "опыт игрового сервера", при этом практически ноль технического.
    То есть твоя формулировка ну ничего не несет (ну разве что ты создавал виртуалку на esxi, но ведь это может быть и create-next-done по инструкции в инете)

    Так же знаю что нужно знать сетевые стеки tcp/ip, osi в этом не сильно силён но есть понимание настройки домашний сети.

    Домашняя сеть - в современном понятии поднимается блондинкой. Купила роутер, подключила провода, все само завелось. В крайнем случае позвонила в техподдержку, там подсказали.
    Опять твоя фраза не дает понимания что у тебя есть. Понимание OSI нужно больше для планирования архитектуры и траблшутинга.

    Так же есть опыт в сборке железа. И работы с nas synology думаю на определенной фирме не стоит заострять внимание так как примерно все они работают одинаково. Но в чем же спросить проблема?

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

    Все актуальные вакансии требуются с опытом от 2-3 лет.

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

    Ситуация в мире сильно развилась за последние 20 лет. Если 20 лет назад просто поставить винду для обычного пользователя был сложный квест, то сейчас практически любая ОС ставится легко (next-next-done).
    Не нужно компилировать софт под Линукс, не нужно ставить все драйвера руками под Windows 95 с постоянными синими экранами. Очень, очень много вещей сейчас user-friendly по сравнению с прошлым.
    Поэтому недосисадмин-эникейщик - крайне редкий вид.

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

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

    Конечно составлять sql запросы я не умею но понимание что такое БД тоже есть. Перечислять все свои знания либо понимание каких либо вещей не вижу смысла так как хочу услышать совета а не оставить здесь своё резюме))

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

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

    Суть в практических знаниях.
    2-3 года коммерческого опыта, это в первую очередь показатель, что ты наконец чему-то научился полезному для работы на позиции сисадмина.
    В современном ИТ мире существует уже не просто абстрактный "компьютерщик", а множество профессий, которые уже и не особо друг с другом сочетаются.
    Поэтому оценить что именно учить, без опыта работы - сложно.
    Зато поработав в крупной организации со развитой инфраструктурой, даже не занимаясь техническими задачами, можно примерно понять что сделано, какими инструментами и главное зачем.

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

    Именно поэтому и требуют опыт, как самый простой способ подтвердить знания еще до собеседования.

    Что можете посоветовать в данной ситуации

    Не сможешь найти работу - изучай самостоятельно.
    Без опыта тоже возьмут, если у тебя действительно есть знания и ты сможешь их подтвердить на собеседовании и испытательном сроке.
    Это сделать сложно, но все в твоих руках.

    а забыл упомянуть что есть так же оыпт работы с Linux и ssh на базавом уровне.

    Что значат эти слова?
    Для меня они обозначают, что ты очень плохо знаешь Linux и ssh, потому что... ну вот банально, давай спрошу про ssh. Как используется ssh ключ хостов? Поднимал обратный проброс портов через ssh?
    Или подожди, я конечно догадываюсь, что ты перепутал слова и хотел сказать Linux и shell.
    Но вот именно такие оговорки и подразумевают, что знания у тебя скорее всего недостаточны даже для работы стажером.

    P.s думал выбрать направление devops но там все намного сложней нужен хороший опыт сис админа пока изучаю docker но уже научился git)

    В DevOps вообще пока не лезь.
    DevOps это уже путь ИЗ сисадмина или ИЗ разработчика или ИЗ тестировщика. Но первой профессией DevOps - это звучит бредово. DevOps в проекте нужен тогда, когда проект уже сложный. Настолько сложный, что нужен отдельный человек со специфическим набором навыков. DevOps джуниор это зачастую мид или даже сеньор в другой области.

    Научился в git - опять таки слова, слова... Как ты им пользуешься? Есть что-то на гитхабе или в локальной репе? Или ты просто почитал что-то, попробовал что-то но даже не нашел как применить git в своих собственных повседневных задачах?

    В общем как-то так. Серьезнее и шире смотри на вещи и объективнее оценивай свои знания. От того, как ты формулируешь свои мысли - и идет отношение к тебе и твоим вопросам.
    Ответ написан
    5 комментариев
  • Как правильно использовать индексы PostgreSQL?

    phoinixrw
    @phoinixrw
    Архитектор информационных систем
    1. Для того что бы понять, работает индек или нет, а так же как он вообще работает в консоле базы данных следует выполнить EXPLAIN ANALYZE, в Вашем случае:
    EXPLAIN ANALYZE SELECT * FROM b WHERE a_id='123' ORDER BY time DESC;

    2. Скорее всего в Вашем случае скорость запроса зависит не сколько от работы индекса, сколько от количества записей возвращаемых запросом для разных a_id. Почему нет LIMIT ?
    Ответ написан
    7 комментариев
  • В go нету встроенного reverse метода для массива?

    Такого метода нет, потому что в языке пока нет дженериков. Где-то в феврале следующего года обещают дженерики завезти с версией go 1.18. А пока что пишем сами.
    Го это очень простой язык, но эта простота имеет свою цену.

    Поясняю, го это строго статически типизированный язык, в отличие от джаваскрипта, который является динамически типизированным. Поэтому чтобы сделать такую функцию, пришлось бы писать ее реализацию для всех возможных типов, а это невозможно. Да, можно покрыть все типы стандартной библиотеки, но это не покроет типы, которые сам пользователь может создать.
    Поэтому будет такая штука как дженерики (обобщения), это когда можешь написать функцию, которая работает со слайсом любого типа. И ей важно будет только то, что это слайс, она сможет переместить там элементы, не заглядывая в их тип.
    Ответ написан
    2 комментария
  • Где взять хорошие знания про CakePHP?

    New_Horizons
    @New_Horizons
    Бред:
    банально, но документация
    Ответ написан
    Комментировать
  • Что значат эти обозначения в ER диаграмме?

    @kalapanga
    Обозначения легко найти, например: https://www.lucidchart.com/pages/ru/erd-%D0%B4%D0%...
    Ответ написан
    Комментировать
  • Что принципиально отличает Symfony 5 от Laravel 8?

    @galliard
    1. IDE понимает Symfony без дополнительных плагинов, на Laravel без плагинов писать не удобно.
    2. Вам придется повсеместно использовать внедрение зависимостей через конструктор. Вы это и в Laravel могли делать, но там и другие варианты были (фасады, app('service_name')). В Symfony только DI и только через конструктор.
    3. В Symfony вам придется пробрасывать данные к месту использования через аргументы. В Laravel вы могли достучаться до любого компонента при помощи статических фасадов и функций, вызвав их в любом произвольном месте, например могли вызвать request() где-то в модельке. В Symfony нужно будет пробросить данные запроса из контроллера через аргументы по всему стеку вызовов.
    4. В Symfony вы перестанете наследовать свои классы от классов Symfony (за рядом исключений).
    5. Конфиги вы будите писать в yaml (в этом есть плюсы и минусы)
    6. В Symfony нет middleware (возможно есть какие-то сторонние пакеты, которые их реализуют, но обычно такой подход при разработки на Symfony не применяется)
    7. В Symfony вы перестанtте манипулировать айдишниками и начнете манипулировать сущностями. То есть код $order->user_id = $user->id; превратится в $order->setUser($user);
    8. Больше не надо писать миграции вручную, доктрина автоматически их сгенерирует.

    Ну это то, что вспомнил, так то отличий может и больше будет.
    Ответ написан
    1 комментарий
  • В чем сложность поддержки проектов на Go?

    EvgenyMamonov
    @EvgenyMamonov Куратор тега Go
    Senior software developer, system architect
    Более четырёх лет пишу на Go, лично для меня поддерживать проекты на других языках сложнее ))
    До Go много лет писал на Perl/PHP/Python/Java/C/Ruby on rails/JavaScript и "крутил" еще не мало чего.
    Сейчас пишу только на Go и Python.

    Основная сложность в Go - это то, что если вы начинаете писать "криво" - то писать так очень трудно :))
    Подход к реализации в Go достаточно непривычный для тех, кто приходит из скриптовых языков.
    Например запрет циклических импортов - это самое первое, что "взрывает" мозг :)
    Нужно время чтобы адаптироваться после скриптовых языков.

    Про обработку ошибок - это да, это, пожалуй, единственное что мне не нравится в Go.
    Для себя я решил эту проблему за 1-2 часа :) и больше меня это не беспокоит.

    По ООП - в Go оно есть, лично мне оно нравится намного больше, чем ООП в других языках ))
    Всё, что реально нужно - всё есть, но при этом ничего лишнего нет.
    Интерфейсы - просто прекрасны :)) Каналы, горутины - это просто "счастье" :))

    А если объективно - то я бы не стал говорить о сложности поддержки проекта применимо к какому то конкретному языку.

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

    А когда в таком проекте нужно что-то доработать или исправить ошибку, то почти всегда очень не просто найти то место, где нужно править, и после правок в одном месте, как правило, что-то ломается в другом :)

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

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

    Хочется добавить, что как бы не писали про Go, что он простой и т.д. - он явно сложнее Python/PHP и т.д.
    Это еще один повод сказать, что поддерживать код на Go сложно ))

    Также стоит учитывать, что проекты которые пишут на Go зачастую сложнее, чем проекты для которых выберут скриптовый язык. Go выбирают когда планируются большие нагрузки, параллельная обработка чего-либо и т.д., а это, в свою очередь, дополнительно усложняет проект.
    Ответ написан
    7 комментариев
  • Стоит ли уволняться для поиска работы java разработчиком?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Все адекватные работодатели:

    1. Задают вопрос "когда вы готовы приступить к обязанностям", и 2 недели по КЗОТ это вообще минимальный стандарт. А так могут и месяц подождать, вполне адекватно отнесясь к тому, что после увольнения вы хотите взять небольшой отпуск, например. Но это вполне обговариваемо с работодателем.

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

    3. Успешное прохождение интервью это еще не означает хороший оффер. Вам может не понравиться компания, не понравятся условия или ЗП или начальник с которым вы собеседуетесь. Не нужно думать что если пошел на собеседование то это точка невозврата. Точка невозврата это даже не подтверждение оффера. Даже увольнение еще можно откатить в некоторых случаях. Нет смысла волноваться по таким поводам.

    4. Многие ходят на собеседование даже не предполагая менять работу. Кто-то из спортивного интереса, кто-то на всякий случай посмотреть, а вдруг предложат работу мечты. В таких случаях всегда бывает, что сотрудника нужно ждать и месяц и два. Но такие варианты, конечно, встречаются в основном на уровне mid/senior и выше.
    Ответ написан
    Комментировать
  • Цель - WEB Full-stack. Сносный ли план обучения для новичка?

    @bestann
    Я училась хорошо, но из знаний тебе действительно понадобится математика (развитое логическое мышление) + английский, это отмечено правильно. В остальном много лишнего и уводящего не в ту степь. Работала в телефонии, но тоже пришлось перейти в DevOps, т.к. нет перспектив. В итоге по жизни приходилось учить кучу всего НЕНУЖНОГО (например разные телефонные станции, на что ушло много времени). Если бы сразу удалось на Linux устроиться, не потеряла бы 15 лет. Поэтому пишу тебе о том,что действительно понадобится. Не трать время не ненужное, и так учить надо ОЧЕНЬ МНОГО. Нужен широкий кругозор.

    Установи дома операционную систему Pop!_OS (на основе Ubuntu) и привыкай работать в Linux. Поставь там qemu, kvm, git, ansible, docker, docker-compose. Тебе будет достаточно виртуальных машин для изучения материала. Ansible на самой машине как контрольная управляющая нода, а настраивать им виртуалки.

    Поставь VSCode Insiders Edition. В нем хорошо работать с кодом. Там плагинов много. И для редактирования yml файлов Ansible, Kubernetes), для Dockerfile, и для программирования потом пригодится.

    Поставь Obsidian. И пиши всю документацию там, собирай там все свои знания! Приучай себя делать конспекты и переводы. Формат написания - Markdown, как раз тот, в котором программисты README.md пишут. https://obsidian.md/ (ставится на разные ОС)

    Чтобы не учить лишнее, пишу, что учить:
    Хорошо знать Linux - Уильям Шоттс - Ок, найди книгу RHCSA8 Sander van Vugt (даже на русском есть,думаю, умеешь искать), подготовься и сдай экзамен RHCSA, дает хорошую базу по Linux. Также есть его видеокурсы, я по ним готовилась. (тоже достанешь). Второй хороший автор Andrew Mallet. Практикуйся на виртуалках CentOS8 (у них проблема с поддержкой с нг, но можешь и нестабильный релиз использовать,тебе же не в продакшн). За рубежом сейчас альтернатива — Rocky Linux. На виртуалках посмотришь как работать с менеджером пакетов yum/dnf, на Pop!_OS - c apt.
    На русском по Linux курсы Кирилла Семаева на Youtube.

    Ansible — управление конфигурациями. Подготовка к экзамену RHCE8 (он после RHCSA), те же авторы (книги есть). У Andrew Mallet досконально разбирается Ansible, можно одновременно с Linux учить,потому что он там и линуксовые команды grep и прочие использует для анализа файлов конфигурации. Очень хороша родная документация на сайте Ansible. Также качай примеры ролей на Ansible Galaxy.
    На русском курсы Астахова на Youtube.

    Git — тут что найдешь. Он есть в составе Kubernetes База от Слерм, материалов достаточно. Цикл статей почитай тут https://css-tricks.com/creating-the-perfect-commit..., 7 и 8 часть скоро выложат. Но для начала поищи видеокурсы на русском (все есть). Надо видео посмотреть, чтоб нагляднее было, потому что сначала непонятно как это ты работаешь вроде в одной папке, но можешь находиться в разных ветках.

    Gitlab — Как вариант завести аккаунт на Gitlab.com и там пробовать. И смотри файлы .giltab-ci.yml и сопутствующие включаемые файлы через include самого Gitlab. Узнай как включать переменные, якоря, extends, needs, правила rules, needs (кстати сейчас можно без stage только через needs), разницу между кэшами и артефактами.
    Jenkins, teamcity используется, но Gitlab у нас чаще... Учи то что чаще используется. Ты не сможешь все инструменты освоить физически. Как устроишься, будешь осваивать имеющееся на работе.

    Docker — так же можешь изучить дома. Курсов хватает. Также попробуй в docker-compose запустить несколько контейнеров.

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

    Попробуй установить Nginx + php-fpm + mysql (или MariaDB) - например, чтоб заработала википедия простая BookStack. Локально пропиши имя сайта и проверь как работает, бэкапь базу, потом все удали и восстанови. https://www.bookstackapp.com/

    Kubernetes — сложно без базы указанной выше, но можешь подписаться на youtube канал Слерма,у них же есть периодически бесплатные курсы с возможностью практики. Дома можно только minikube, если ресурсов мало. Это факультативно, даже первые 4 пункта.

    По языкам программирования. Хотя бы освой bash в Linux. Python или Go — можно намного позже, это уже для программистов.Для тебя это будет плюсом.но в довесок. Иначе ты до профессии девопса будешь долго идти, а вернее до пенсии)) Сейчас спрос очень большой!!!

    Итак, резюмируя: Linux (+bash), Ansible, Docker, git —must have, Gitlab, SQL - желательно. Сети — очень зависит от работы. Главное, понимать что такое ip-адреса, dns, маска, шлюз, понимать как настраивать файрвол и сетевые интерфейсы в Linux, понимать что включить (какой параметр), чтобы Linux начал маршрутизировать трафик.
    Kubernetes, Terraform — это уже уровнем выше.

    Далее штудируешь вопросы к собеседованиям (тоже есть в интеренете),причем некоторые вопросы особенно часто задают на собесах (сама недавно собесы проходила). Проходишь 10-15 собеседований и прокачиваешься, записывай все задаваемые вопросы и готовься после каждого собеса к следующему. Могут дать и тестовое задание, если на джуна. Попроси время на выполнение.

    Тут расти и расти до бесконечности.

    Извини за нескромный вопрос: почему ты в 22 года только на 1 курсе колледжа заочно? Это даже не вуз.
    И что за краткий курс школьной математики? Ты в школе не учился что ли?
    DevOps — это непросто, поэтому надо хорошо понимать, какая у тебя база, потянешь ли ты.

    UDP. Только увидела.
    Если цель не DevOps, а web fullstack, то может твой план подойдет больше. Но тоже надо иметь ввиду, что FullStack — это много. Иди сначала фронтенд-разработчиком. Если хочешь учит востребованное, то JavaScript, для фронденда фреймфорк vue.js или react. Если хочешь быть бэком, надо уже хорошо знать базы данных помимо самого языка программирования. Из популярных так же JavaScript (node.js). Python и Go так же популярны. И если уж учить, то Go, а не C#.
    Ответ написан
    7 комментариев
  • Как раньше люди программировали?

    1. Статьи в журналах.
    2. Книги (помню как каждый день ходил в книжный магазин, чтобы не пропустить новых книг по ИТ тематике)
    3. Официальная документация. С некоторыми компьютерами поставлялась документация по ЯП. Обычно Basic, но иногда и по ассемблеру
    4. Встроенная помощь в IDE. Например у Turbo Pascal была не плохая справка по Pascal.
    MS вообще расспростроняла MSDN (крутая база знаний ро их ЯП и средам) на дисках (ценный был артифакт)
    Ответ написан
    Комментировать
  • Не могли бы вы разъяснить всю эту "кашу" фреймворков экосистемы .NET на 2021 год?

    vabka
    @vabka Куратор тега ASP.NET
    Токсичный шарпист
    .NET

    Это общее название всей экосистемы + название .net core после 5 версии.
    .NET Core

    Это название кроссплатформенного рантайма.
    ASP NET Core

    Фреймворк для разработки веб-приложений под .net core / .net 5+
    ASP NET Core 5

    Конкретно пятая версия этого фреймворка
    ASP NET Core 5 MVC

    То же самое + реализация паттерна MVC с использованием razor pages.
    Что к чему? Что самое свежее/актуальное сейчас?

    Самое свежее - .net 5, asp net core 5, asp net core 5 mvc
    Через месяц уже 6 версия выйдет.
    Ответ написан
    Комментировать
  • Как удалить данные за период и проверить на целостность?

    ScriptKiddo
    @ScriptKiddo
    Какими командами сделать трункейт данных и оставить данные за последний год?

    Если есть партиции - удаляете партиции

    https://docs.microsoft.com/ru-ru/sql/t-sql/stateme...

    TRUNCATE TABLE PartitionTable1   
    WITH (PARTITIONS (2, 4, 6 TO 8));  
    GO

    Если партиций нет и данных мало - удалить просто

    DELETE FROM table WHERE date <= %date%

    Если данных много - сделать задачу в SQL Agent. Количество удаляемых строк оставляете на свое усмотрение

    DELETE TOP (1000) FROM table WHERE date <= %date%

    Какими командами проверить на целостьность и оптимизировать?


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

    Если нужно проверить, не битая ли база - то используйте команду DBCC CHECKDB
    https://docs.microsoft.com/ru-ru/sql/t-sql/databas...

    P.S Не помешали бы бекапы и прочее прочее
    Ответ написан
    Комментировать
  • Где и как лучше начать изучать Python?

    @anerev
    https://qna.habr.com Хороший сайт, если в поиск скопировать заголовок вопроса вашего то парочку ответов будет
    Ответ написан
    Комментировать
  • Можно ли как-то ограничить количество одновременных сессий для пользователя в Symfony 5?

    myks92
    @myks92
    Нашёл решение — пометь вопрос ответом!
    Мне кажется, что тут не совсем вопрос про симфони, но тем не менее отвечу.

    Храните каждый сеанс пользователя в базе. Данные храните такие как ID пользователя, IP, user agent, тайм зону и т д. А в приложении проверяйте, если в пользователь зашёл с другого устройства (браузера), то говорите ему о том, что нужно завершить прошлый сеанс или этот сеанс будет автоматически удалён через 5 минут, если пользователь не будет продолжать этот сеанс.

    Думаю, что это самое простое решение.
    Ответ написан
    Комментировать
  • Где искать работу Junior'ом?

    @AndromedaStar
    .Net - monkey
    Добрый день, вот у вас же есть гитхаб с хорошими проектами? Если есть, то не вижу никаких препятствий, чтобы начать искать работу по всей России, или отправлять свой гитхаб всем HR из вашего региона.
    Вот вы ищете работу, здесь тоже сидят вполне себе люди, которые в поиске работников, но вы себя никак не рекламируете. С таким навыком поиска работы будет очень сложно куда-либо попасть.
    Ответ написан
    6 комментариев
  • Как правильно реализовать FullRestApi на yii2?

    @Mylistryx
    Наверное правильней на уровне роутов.
    'GET some' => '/site/index',
    'PUT some' => '/site/create',
    'POST some' => '/site/update'
    ....
    Ответ написан
    Комментировать
  • Как справиться с проблемами на некоторых моделях телефонов?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    К сожалению, Андроид такая штука, что на каждом телефоне есть свои крайне специфичные глюки. Например, одно из моих приложений упорно вылетает на Honor/Huawei, причем не всегда и не на всех. Но на Xiaomi, Samsung, Sony, LG, BQ, Highscreen и прочих работает стабильно. Решение пока так и не нашел, учитывая, что у меня самого Honor/Huawei нет, а используемые библиотеки более чем стандартны - из чистого Андроида, даже не GMS.

    По вопросам:
    1. Единственный вариант из-за большого зоопарка, и то не факт что на конкретной версии прошивки в конкретной стране не будет глюков.
    2. Тестируют долго и упорно, на всех устройствах, плюс анализ логов при сбоях на релизных версиях.
    3. Компоненты то есть, наверное, только это не гарантия, что в новой прошивке производитель ничего не сломает.
    4. Старайтесь максимально детально отрабатывать любые потенциальные ошибки, даже через банальное try-catch
    5. Не нужно, со временем нужный навык прокачается, а если просто так зубрить, то оно все равно без применения быстро забудется. Но это не значит что читать для себя интересные статьи про типичные ошибки не нужно.
    Ответ написан
    Комментировать