• Где найти сенсея?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Ни на каких. Незачем хорошо разбирающемуся в архитектуре бесплатно тратить своё время на того, кто даже не хочет становится программистом.
    Ответ написан
    9 комментариев
  • С чего начать в 30 лет?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Фундаментальная проблема - в игрострой стоит очередь фанатов с горящими глазами. Людей, которые пишут игры, играют в игры, моддят игры, хакают игры..., начиная с возраста, когда они смогли дотянуться до клавиатуры (как ваш покорный слуга). При этом, у них столько мотивации, что они могут сами поставить себе задачу, сами нагуглить все, что нужно (Спасибо дяде Немнюгину за его учебник. Это все что нужно знать о DOS, чтобы закодить dOOm) и сами все напишут и нарисуют (работая над этим сутками. Не потому что над душей стоит босс с воплями о лишении премии, а потому что им это интересно).

    И вот теперь, Андрей, который уже устал хочет встать в очередь высоко мотивированных конкурентов и попросить себе оффер. Каковы его шансы на успех?

    В играх есть много специализаций программирования - хотите графику, придется учить одно (причем на 2d и 3d это одно будет разное), хотите игровую логику и скриптинг - это номер два, хотите системную часть и бэкенд - это будет третье.

    Для универсального развития, нужно начинать с простых фиговин вроде тетриса, арканоида, бильярда и прочего (в которых однако есть все столпы игростроя - графика + логика + системный движок, можно и добавить сеть, если подумать) и потом наращивать сложность - делать платформер или RTS.
    Ответ написан
    4 комментария
  • Как расставить точки над i, по вопросу использованию Bash и Python для DevOps?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    1. Реальные кейсы написания и использования Bash скриптов, какие задачи они решают?

    Да почти все можно на bash скриптах.
    Автоматизация рутины
    Склейка разных процессов в единый пайплайн
    Системные вещи (копирования, бэкапы, синхронизация, запуски других процессов, даже простой мониторинг)
    bash это кроме всего прочего неплохой универсальный скриптовый язык, и отсутствие библиотек восполняется готовым набором консольных утилит на все случаи жизни.

    2. Сколько часов, ориентировочно, потребуется на изучение и практику написания скриптов на Bash, как глубоко погружаться?

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

    3. Что должен уметь написать на Bash junior/middle/senior DevOps?

    Слово все тут подойдет.

    4. Возможно для на Bash скрипты стоит потратить день-другой, уметь писать базовые скрипты и переходить к изучению Python?

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

    Python:
    1. Где и для чего используется Python на практике DevOps, реальные, повседневные кейсы использования?

    Автоматизация, мониторинг, универсальные скрипты. Питон очень неплох в автоматизации вебзапросов. Все можно сделать чере curl, но многое через питон может быть удобнее. Плюс обработка исключений.

    2. Каким уровнем знаний Python должен обладать junior/middle/senior DevOps? (Знакомый middle DevOps и Python не знает от слова совсем).

    Если ты знаешь питон на уровне сеньор, то не факт что тебе будет интересно работать на позиции девопс. Можно работать девелопером на питоне.
    Поэтому знания питона на уровне джуниора обычно достаточны. Но нужно понимать, что джуниор - это не тот, кто знает две команды. Это полноценный разработчик, который знает и структуры данных и стандартные библиотеки и все конструкции. Уровень джуниор в языке программирования должен позволять устроиться на позицию джуниор разработчика.
    Девопс инженер, который знает язык программирования на уровне джуниор разработчика - полезный человек, который сам решил углубиться в питон. И в айти области часто людям что-то нравится и они этим занимаются и углубляются вне зависимости от рабочих задач.
    Поэтому у большинства именно девопс инженеров знания именно о языках программирования немного отрывочные, но их хватает для написания универсальных скриптов и небольших утилит.
    Я в свое время писал простые и не очень вещи на ANSI C/С++/java/python/perl/actionscript. Сейчас почти все делаю на bash и иногда python, и все предыдущие знания мне помогают выбрать чем воспользоваться - написать что-то свое, найти готовую реализацию на другом языке, попросить в проекте, чтобы написали задачу (это тоже вполне себе способ для рабочих нужд договориться с разработчиками о написании нужного функционала для автоматизации/тестирования). Но главное, что я сам могу оценить примерный выхлоп от того, чем делать.

    3. Сколько часов, ориентировочно, потребуется на изучение и практику под каждый уровень, как глубоко погружаться?

    Сколько часов нужно ориентировочно футболисту, чтобы стать таким как Месси?
    Сколько часов нужно музыканту, чтобы стать таким как Фредди Меркури?

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

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

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

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

    Если же нужен человек от которого хоть что-то зависит, это врядли сможет быть тот, кто в девопсы пошел с нуля. И такие вопросы как у вас (баш, питон и так далее), показатель, что вы просто изучаете инструменты и даже не углубляетесь в понимание инфраструктурных вопросов.

    Выбор инструмента - это частности. Понимание какой должен быть результат - важен.
    Те же самые вещи можно делать и башем и питоном и ансиблом и чефом и перлом и не так важно что было выбрано, разве что стоит вопрос расширения и поддержки. А вот что именно делать и как это все увязывать...
    почитайте например git flow, и важно не сам гит - это вообще базово должно быть само собой, а зачем git flow нужен и прикинуть какой вариант подойдет в нужном проекте. Это уже как раз задача которую решают совместно девопс инженер и архитектор/тимлида.
    Ответ написан
    Комментировать
  • Как расставить точки над i, по вопросу использованию Bash и Python для DevOps?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вы не годитесь в девопсы.
    Это очень частый ответ на этот очень частый вопрос.

    Девопс - это человек, который не задаёт вопросы. Он на них отвечает. Самостоятельность является для девопса одним из ключевых навыков. У вас он отсутствует.
    И это совершенно точно человек, которого НЕ пугает прочтение 326 страниц мануала.
    Девопсу приходится читать примерно в сто раз больше документации. В год. Подумайте хорошенько, а надо ли оно вам, если перспектива выучить даже самые примитивные основы вас пугает настолько, что вы пришли на тостер поторговаться?

    В девопс, как и в инфосек, очень редко можно войти с нуля.
    Надо начинать либо сисадмином (не эникейщиком), либо программистом (не вордпресс).
    И потом, уже развившись как программист/сисадмин, можно подумать о движении в сторону девопса.
    Ответ написан
    2 комментария
  • Как в си узнать какой пользователь вошёл в систему linux?

    Melkij
    @Melkij
    PostgreSQL DBA
    Если это подходит для postgresql, то, вероятно, подойдёт и для вас: https://github.com/postgres/postgres/blob/REL_13_S...

    (geteuid + getpwuid под linux)
    Ответ написан
    Комментировать
  • Стоит ли учить программирование, если в городе вакансий вообще нету связанных с программированием?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Если тебе 16, учи математику, физику, и программирование по остаточному принципу. Не фронтенд, а основы - алгоритмы, структуры данных, сложность, разные парадигмы. Поступай в хороший ВУЗ, и там уже получай фундамент. После второго-третьего курса сможешь работать. Начинать карьеру, не зная ничего, с поиска вакансий - путь в никуда.
    P/s Буду учится до 18-19

    Рассмешил. Мне 31, я закончил ВМК МГУ, 10 лет работаю (получаю деньги за разработку), и я до сих пор учусь.
    Ответ написан
    Комментировать
  • Можете подсказать сферы применения различных ЯП?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Быдлокодерами называют тех, кто что-то научился писать, но перестал развиваться и пишет без понимания архитектуры, лишь бы заработало, не меняя привычек.

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

    Ламеру легче двигаться в знакомство с гуглом, и поиском уже готовых ответов на подобные вопросы. Их тысячи. Каждую неделю задаются. Без встроенной привычки находить уже существующую в интернете информацию, выжить будет нереально, поэтому задайся целью освоить поиск.
    Ответ написан
    Комментировать
  • Стоит ли начинать изучать разработку под iOS с нуля в 36 лет?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Стоит ли начинать изучать разработку под iOS с нуля в 36 лет?

    Если нравится, и мотивацией служат не только деньги - то да.

    и работать на фриланс

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

    3. Реально ли начинающему самоучке найти работу на удалёнке?

    Зависит от ваших мозгов, если готовы уделять программированию с нуля по 5-6 часов в день, в течении года - может что нибудь получится. Но без code review - есть шанс что выучитесь так себе, а переучивать программиста - довольно дорого.

    С какими трудностями я могу столкнуться? (возраст, недоверие, стереотипы, конкуренция и т.д.)

    Возраст - на фрилансе без разницы сколько вам лет, главное прокачанное портфолио, например на Upwork.
    Недоверие - 100% пока вы новичок на фрилансе, будете сражаться с другими за копейки.
    Конкуренция - на уровне джуна - колоссальная, скорее всего вас съедят молодые, и голодные студенты, которые как раз и нашли позицию джуна в офисе, и уже качаются на 2 стороны.

    Моё субъективное мнение: изначально неправильно выбрана стратегия.
    Фриланс + джун = самый верный вариант здесь подошел бы php какой нибудь, и создание сайтов на колене. И как только у вас появились знания какого нибудь языка и общего построения архитектуры проекта. Можно учить уже swift. 2 языка в голове = это уже норма для программиста

    UPD: Если всё такие горят глаза, подойдет более дорогой вариант. Находите ментора после изучения базы языка (желательно работающий програмист на позиции Senior+), который будет делать code review и помогать. Это позволит эмулировать "офис", и дальше искать не фриланс, а удаленку по европе\снг.
    Ответ написан
    5 комментариев
  • Почему работодатели заостряют внимание на теории?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Чтобы сразу отсеивать слабых соискателей, не знающих даже элементарных основ.
    Ответ написан
    3 комментария
  • Можно ли отсудить деньги за обучение в колледже, если в нём плохая обр программа?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    За три года обучения немного изучили Pascal, Delphi.

    ЕПРСТ!
    Открой документацию и сам научись.
    НИКАКОЙ колледж тебя не научит, если за три года ты сам не можешь осилить и ждешь, пока тебя научат.
    За три года с нуля можно написать неплохой проект, просто сидя вечерами и ковыряясь в документации и гугле.

    А судиться - колледж не выпускает программистов, и вообще никакой государственный колледж не выпускает программистов уровня джуниор. Гос программы даже на стажеров не хватит.
    В том числе и потому, что в гос. учреждении работают на гос.зарплату. Если бы умели писать софт, работали бы на нормальной зарплате.
    Но в колледже ты получаешь ОБЩЕЕ образование. Как раз вот эти все - экономика, философия. Я уверен, что там тоже не очень, но это кругозор.

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

    В институт иди за вышкой и работать.
    Но ИТ и программирование - САМ.
    Ответ написан
    1 комментарий
  • Как найти работу или opensource проект начинающему разрабу?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Вот именно поэтому на собеседованиях у кандидатов я спрашиваю про их pet-projects. Если их нет, то ему программирование не интересно. До свидания.
    Ответ написан
  • Устарел ли getElementsBy* и чем лучше querrySelector?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Вот народ ушел в спор о производительности, но никто даже не попытался разобраться, а что под капотом... Производительность ведь искусственными бенчмарками меряют, ага...
    Что ж, времена сейчас такие
    многие на работу кодеров берут, которые даже интереса не имеют в глубь копать. Инженеров брать... - это устаревший подход, как выразился автор "популярного сайта", который прочел автор вопроса. Инженеры они дорогие, и найти их сложно, лучше кодер, пусть и не желающий на работе мозг включать, не говоря уж о желании в устройстве инструментов разбираться.

    Говорить о том, что некие фичи устарели - крайне глупо, если знать, что они ведут себя иначе, чем более модные альтернативы. Предлагаю немного разобраться и начать с того что на поверхности:
    - getElementById и querySelector возвращают конкретную ноду в единственном экземпляре
    - querySelectorAll и getElementsByName возвращает статичную коллекцию NodeList
    - getElementsByClassName, getElementsByTagName и getElementsByTagNameNS возвращают динамическую коллекцию HTMLCollection
    Как видим результат у разного апи различен, а значит и говорить, что некоторые из них устарели - глупо.
    Правда тут есть забавный момент
    в спеке HTMLCollection отмечен как "исторический артефакт", который не стоит использовать при проектировании нового апи. Но заметка эта не для веб-разработчиков, а для тех кто проектирует новое DOM апи.

    С устареванием вроде разобрались, но в вопросе еще есть часть "чем лучше". И тут есть теория, что getElementsBy* быстрее querySelector*. Чисто теоретически звучит логично, querySelector* должен делать полный поиск по дереву со сложностью O(n), а getElementsBy* могут использовать индексы на базе HashMap и получать данные со сложностью O(1), тут и особенности HTMLCollection будут кстати, так как можно не копировать коллекцию, а отдавать одну и ту же (и браузеры действительно так делают). Но без пруфов теория так и останется теорией.
    И бенчмарки - так себе пруф
    Хотя направлять инвесторов в нужную сторону - самое то. Проблема бенчмарков, что можно написать их так, что любая из сравниваемых сторон заметно обгонит другую. Дело техники. Например BubbleSort с O(n2) при определенных условиях в чистую уделывает MergeSort и QuickSort с их O(n×log2n), а именно при n=20 или меньше, 400 простых memswap в наглую рвут 87 рекурсивных операций с memcpy внутри
    Гораздо лучше тут выглядят исходники. И я выбрал исходники chromium, как самого распространенного:
    - getElementsBy* методы все как один обращаются к некой шаблонной функции EnsureCachedCollection, которая в свою очередь обращается к некоему NodeLists кэшу, устроенному внутри действительно как HashMap или что-то наподобие. Никакого поиска тут нет, просто берутся готовые значения, сложность у всего этого действительно константная O(1).
    - querySelector* используют абстракцию SelectorQuery, которая и в самом деле делает поиск по DOM. Но данный поиск неплохо оптимизирован и обвешан кэшами. Притом CSSOM использует абсолютно тот же алгоритм поиска DOM нод для каждого селектора в css.
    Для примера
    в подключенных на странице этого вопроса стилях более 1600 правил (некоторые из которых потенциально могут содержать несколько селекторов), полная обработка стилей из этого файла заняла на моей машине (Ryzen 3600 в стоке) чуть больше 9 мс. Если все это немного округлить, то понадобится 15000 querySelectorAll подряд, притом с разными селекторами, чтоб был промах кэша, дабы я ощутил заметную глазу задержку в ~100мс


    На этом спор думаю можно закрыть. querySelector* методы действительно могут быть медленнее, но чтоб убить ими производительность, нужно очень постараться. На фоне того, что пишут кривые ручки среднестатистического дешевого js-кодера это будет незначительной потерей измеряемой в наносекундах. Используйте то что удобнее в каждой конкретной ситуации.
    Ответ написан
    1 комментарий
  • Как еще не совсем состоявшемуся junior-у найти работу/стажировку/наставника?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Ну если и есть такие работодатели, то они явно не на тостере.
    По своему опыту скажу, что никому не нужны несостоявшиеся работники, за которыми еще нужен глаз и глаз. Есть работа, есть куратор который может подсказать что-то по мелочи. Но на работе никто не учит работать. Учишься сам, ВЫПОЛНЯЯ работу.
    Я не понимаю, откуда у современной молодежи взялся этот тренд, что на работе всему научат.
    Конечно на работе ты получишь много опыта и знания, но "минимальные навыки" - это когда ты уже знаешь и умеешь все, чтобы выполнять задачи, а не кое-кто поковырял.

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

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

    Вообще, судя по текущим трендам, лучше дорасти до неуверенного мидла, а уже потом искать работу.
    Ответ написан
    Комментировать
  • Как скопировать полностью верстку сайта?

    delphinpro
    @delphinpro
    frontend developer
    Если мы имеем дело с конструктором, то тут в большинстве случаев никакой wget не поможет.
    И вообще копирование в принципе не поможет.
    У конструкторов чаще всего ужасная верстка, иногда даже все на абсолютах сверстано.
    И единственный подход здесь — верстка с нуля по подобию. Иногда копируя некоторые отдельные элементы.

    Если же вам повезло, и конструктор выдаёт приемлемый код, то в принципе wget вам может помочь.
    Ответ написан
    Комментировать
  • Как найти новичку удаленную работу?

    @tukreb
    Новичку никак, только офис. Уже миллион раз обсуждалось, пользуйтесь поиском.
    Ответ написан
    1 комментарий
  • Как трудоустроиться начинающему тестировщику /программисту, живя в маленьком городишке?

    inoise
    @inoise Куратор тега Карьера в IT
    Solution Architect, AWS Certified, Serverless
    Даже с учётом того что пандемия внесла свои коррективы и компании чаще выбирают удаленку без опыта шансов мало. Очень. Они не нулевые, но годика попахать и пройти сотню собеседований будет недостаточно.
    Ответ написан
    5 комментариев
  • Почему меня не приглашают на собеседование?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Потому что джуны никому не нужны. Продолжайте наращивать объём знаний и искать работу.
    Ответ написан
    1 комментарий
  • Где вы учите/ли PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я могу сказать, где точно учить не надо
    руселлер и прочие видеокурсы. это реальный ад
    какой-то дятел на ютубе, который толкает RedBean - это полная жесть. новичкам этот редбин ни к чему, им надо основы учить, а основ он не даёт, его курсы для тех кто уже знает РНР и SQL. Но фокус в том что тем кто знает, его курсы даром не сдались, а новички из ничего вообще ничего не выносят, но потом со слезами и соплями пытаются что-то ваять и у них вообще ничего не выходит.
    otus . ru - я тут недавно увидел на их сайте пример кода, и чуть не поседел. Долго искал подпись что это коллекция примеров того как не надо писать, но это они всерьёз.
    твое коде муму сейчас посмотрел - написано такими же макаками на материале прошлого века. Если будешь искать работу то тебя даже на порог не пустят с таким кодом.
    В общем не знаю. скрепя сердце могу посоветовать хтмлакадемию, но там во-первых платно, а во-вторых материал тоже местами проседает. Но хотя бы менторы вроде нормальные, а не какая-то школота "с вконтакте".

    В целом я рекомендую учить не какой-то конкретный язык, а программирование в целом
    Ответ написан
    2 комментария
  • Как найти наставника для получения реального опыта?

    0xD34F
    @0xD34F
    Мои текущие знания и умения:

    Правильно будет так: "мои фантазии относительно текущих знаний и умений".

    А вот ваш реальный уровень. Во-первых - самостоятельно с задачей не справились. Во-вторых - не смогли решение нагуглить. То есть, вы вообще ничего не можете. Ну и кому вы такой нужны? Очевидно, никому. Отсюда и ответ на ваш вопрос - никак. Сперва приобретите хоть какие-то реальные навыки.
    Ответ написан
    4 комментария
  • ВЕБ студия с сотрудниками фрилансерами?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    фрилансеров под те же задачи и они будут работать фактически за бесплатно?

    Фрилансеры, которые работают фактически за бесплатно, выполняют задач почти ничего.

    Фрилансеры, которые могут закрыть все задачи вебстудии, обычно зарабатывают больше.
    Ответ написан
    Комментировать