Задать вопрос
  • Профориентация и выбор дальнейших путей развития?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Еще один важный критерий который мне сильно отсеивает количество вакансий это только аккредитованные IT-организации.

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

    Еще заметил что очень мало стало джуниорских вакансий.

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

    Вообще сейчас по моему какой-то кризис в IT

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

    Вдобавок начинает ИИ наступать нам на пятки

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

    Я начинаю, мне вроде интересно, но потом интерес угасает, потому что мне то за это никто не платит.

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

    @Everything_is_bad
    твой уровень программирования "школьник 9го класса, изучающий полгода java"
    Ответ написан
    1 комментарий
  • Зачем аннотацию применять к самой себе?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Можно много делать странных вещей, в т.ч. в джаве. Не всегда и не во всех действиях есть смысл.
    Если вы не видите в этом смысла - просто не пишите так.
    ЯП - это средство выражения какой-то мысли, какого-то намерения.
    Кому-то для этого достаточно циклов и оператора goto, а кому-то необходимы аннотации и дженерики.
    Ответ написан
    Комментировать
  • Macbook air или pro для продуктового дизайнера и работы в figma?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Если вам важна компактность - берите Air, но обязательно добавьте до максимального объема оперативной памяти. Аир легко переваривает докер на десяток-полтора контейнеров и целом отличнейшая рабочая машинка. Производительности вполне хватает на всё. Брать прошку старого поколения нет особого смысла. Лучше сейчас сразу доплатить и получить дополнительную оперативную память, чем менять на новый лет через пять или когда упрётесь в лимит. В целом же для большинства современных задач 16 гигов вполне достаточно, хоть это и минимум. Но лучше всё же иметь запас на будущее.
    Ответ написан
    Комментировать
  • Как увеличить квоту API?

    @tukreb
    Ну так скормите вашему ИИ, apk файл ютуба или его аналогов, пусть разберётся что и как там.
    Вы же не хотите учится, ну тогда пытайте ИИ.
    Ответ написан
    23 комментария
  • Как найти работу, если есть большой опыт, но всё равно не берут?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    У меня есть уже 6 лет опыта в программировании на Python, я самоучка с 13 лет (сейчас 19)

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

    CityCat4
    @CityCat4
    Дома с переломом ноги
    У меня есть уже 6 лет опыта в программировании на Python, я самоучка с 13 лет (сейчас 19) начинал со фриланса

    Вот потому и не берут, потому что прям со старта - бэмц хыру в лоб! "Шесть лет опыта" и "возраст 19 лет" не бьются друг с другом вообще, от слова совсем. Значит что? Значит кандидат врет в резюме - в корзину его.
    Ваш фриланс и пет-проекты никому не интересны. Для работодателя важен коммерческий опыт, подтвержденный трудовой. Нет трудовой - нет опыта, то есть на самом деле опыта 0 (нанять фрилансера - это значит его переучивать, работа в офисе, даже частичная - это совершенно другой порядок).
    Кроме того, я сразу вангую, что у Вас есть две проблемы, которые добивают тех хыров, которых не смутило отсутствие опыта:
    - отсутствие вышки
    - проблемы с военным билетом
    Как мне наконец найти работу по своей специальности и опыту со вменяемой зп справедливой моему опыту,

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

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

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

    Если же нужна "какая-то работа в ИТ" - звонок в саппорт городского провайдера покрупнее, "здравствуйте, можно устроиться к вам монтажником или в техподдержку?"

    JFYI: Я бы посоветовал убрать "большой опыт" из названия вопроса...
    Ответ написан
    Комментировать
  • Как найти работу, если есть большой опыт, но всё равно не берут?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    6 лет - это не большой опыт. Средний миддл примерно. Причём при условии фуллтайм работы в офисе/команде. А в 19 лет это считай вообще 0 лет реального опыта. 18 лет - окончание школы, 19 - возврат из армии. Т.е. уровень джуна примерно. Откуда возьмутся 6 лет опыта? Даже если вы все эти шесть лет занимались работой каждый день по 8-10 часов, то возникает вопрос - а на остальное образование вы забили болт? Да и кто вообще школьника возмёт на полную ставку? Это незаконно. Законно фуллтайм вы работать не могли. Так кому нужен человек без среднего образования? А если нет, то слова про "шесть лет большого опыта" - это враньё. Кому нужен человек, который уже в резюме врёт? Поэтому вас сразу заворачивают. Вот на вакансии уровня джуна и начального мидла, в лучшем случае, вам и следует нацеливаться. Тем более без ВО. Так же следует подготовить качественное резюме и CV согласно современным стандартам и рекомендациям. И без фантазий про шесть лет опыта. Отдельно указать официальные места работы и фриланс. Разработка ПО, системное администрирование, дата-инженерия, тестирование - это всё разные профессии.
    Ответ написан
    Комментировать
  • ИИ на стадии обучения программированию. Стоит ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Обучение - это формирование связей в тканях мозга, поэтому оно больше похоже на накачивание мышц, а не на загрузку файлов на флешку. И происходит это, как и с накачиванием мышц, только под нагрузкой. Нельзя нарастить бицуху, если гантели будет тягать робот. Нельзя научиться программированию, если задачи решает ИИ.
    Ответ написан
    Комментировать
  • No such file or directory django как исправить?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    А что мешает посмотреть на реальный путь файла и сравнить с текущим путём в консоли?
    6797fe2c30986221244028.png
    Ответ написан
    7 комментариев
  • Почему ошибка в SendMessageParams?

    А почему бы вам не установить курсор на "SendMessageParams" и не нажать правой кнопкой мыши на этом слове, да и не перейти к объявлению типа, чтобы просто посмотреть, а какие же там поля требуются в этой структуре?
    И, странное дело, нет такого поля ReplyToMessageID у типа SendMessageParams, о чём вам прямо и говорит компилятор.

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

    // SendMessageParams - Represents parameters of sendMessage method.
    type SendMessageParams struct {
    	// BusinessConnectionID - Optional. Unique identifier of the business connection on behalf of which the
    	// message will be sent
    	BusinessConnectionID string `json:"business_connection_id,omitempty"`
    
    	// ChatID - Unique identifier for the target chat or username of the target channel (in the format
    	// @channel_username)
    	ChatID ChatID `json:"chat_id"`
    
    	// MessageThreadID - Optional. Unique identifier for the target message thread (topic) of the forum; for
    	// forum supergroups only
    	MessageThreadID int `json:"message_thread_id,omitempty"`
    
    	// Text - Text of the message to be sent, 1-4096 characters after entities parsing
    	Text string `json:"text"`
    
    	// ParseMode - Optional. Mode for parsing entities in the message text. See formatting options
    	// (https://core.telegram.org/bots/api#formatting-options) for more details.
    	ParseMode string `json:"parse_mode,omitempty"`
    
    	// Entities - Optional. A JSON-serialized list of special entities that appear in message text, which can be
    	// specified instead of parse_mode
    	Entities []MessageEntity `json:"entities,omitempty"`
    
    	// LinkPreviewOptions - Optional. Link preview generation options for the message
    	LinkPreviewOptions *LinkPreviewOptions `json:"link_preview_options,omitempty"`
    
    	// DisableNotification - Optional. Sends the message silently
    	// (https://telegram.org/blog/channels-2-0#silent-messages). Users will receive a notification with no sound.
    	DisableNotification bool `json:"disable_notification,omitempty"`
    
    	// ProtectContent - Optional. Protects the contents of the sent message from forwarding and saving
    	ProtectContent bool `json:"protect_content,omitempty"`
    
    	// MessageEffectID - Optional. Unique identifier of the message effect to be added to the message; for
    	// private chats only
    	MessageEffectID string `json:"message_effect_id,omitempty"`
    
    	// ReplyParameters - Optional. Description of the message to reply to
    	ReplyParameters *ReplyParameters `json:"reply_parameters,omitempty"`
    
    	// ReplyMarkup - Optional. Additional interface options. A JSON-serialized object for an inline keyboard
    	// (https://core.telegram.org/bots/features#inline-keyboards), custom reply keyboard
    	// (https://core.telegram.org/bots/features#keyboards), instructions to remove a reply keyboard or to force a
    	// reply from the user
    	ReplyMarkup ReplyMarkup `json:"reply_markup,omitempty"`
    }


    А если точно так же перейти к определению типа поля ReplyParameters, то можно увидеть как раз то самое искомое вами поле MessageID

    // ReplyParameters - Describes reply parameters for the message that is being sent.
    type ReplyParameters struct {
    	// MessageID - Identifier of the message that will be replied to in the current chat, or in the chat chat_id
    	// if it is specified
    	MessageID int `json:"message_id"`
    
    	// ChatID - Optional. If the message to be replied to is from a different chat, unique identifier for the
    	// chat or username of the channel (in the format @channel_username). Not supported for messages sent on behalf
    	// of a business account.
    	ChatID ChatID `json:"chat_id,omitempty"`
    
    	// AllowSendingWithoutReply - Optional. Pass True if the message should be sent even if the specified
    	// message to be replied to is not found. Always False for replies in another chat or forum topic. Always True
    	// for messages sent on behalf of a business account.
    	AllowSendingWithoutReply bool `json:"allow_sending_without_reply,omitempty"`
    
    	// Quote - Optional. Quoted part of the message to be replied to; 0-1024 characters after entities parsing.
    	// The quote must be an exact substring of the message to be replied to, including bold, italic, underline,
    	// strikethrough, spoiler, and custom_emoji entities. The message will fail to send if the quote isn't found in
    	// the original message.
    	Quote string `json:"quote,omitempty"`
    
    	// QuoteParseMode - Optional. Mode for parsing entities in the quote. See formatting options
    	// (https://core.telegram.org/bots/api#formatting-options) for more details.
    	QuoteParseMode string `json:"quote_parse_mode,omitempty"`
    
    	// QuoteEntities - Optional. A JSON-serialized list of special entities that appear in the quote. It can be
    	// specified instead of quote_parse_mode.
    	QuoteEntities []MessageEntity `json:"quote_entities,omitempty"`
    
    	// QuotePosition - Optional. Position of the quote in the original message in UTF-16 code units
    	QuotePosition int `json:"quote_position,omitempty"`
    }


    Итого, в вашем случае будет как-то так:

    id, ticket, reply_message := db.GetTicketAndMessage(message.ReplyToMessage.MessageID, user.ID)
    	if ticket == nil {
    		_, _ = bot.SendMessage(&telego.SendMessageParams{
    			ChatID:           telego.ChatID{ID: message.Chat.ID},
    			Text:             "This ticket or message does not exist.",
    			ReplyParameters:  &telego.ReplyParameters{
                                    MessageID: message.MessageID
                            },
    			ParseMode:        "HTML",
    		})
    		return
    	}
    Ответ написан
    4 комментария
  • Так ли сложно найти место начинающему фронтенду?

    kellas
    @kellas
    веб-разработчик
    С таким подходом будет сложно и не надёжно.
    Нужно стремиться стать разработчиком ПО / программистом. Учиться программировать, а не "вкатываться". Отдавать себе отчёт что потребуется лет 5 чтобы стать прост нормальным специалистом который может решать проблемы.
    Даже те джуны что устроились на работу, это люди которым прост повезло сейчас, если они не изменят свой подход к разработке то останутся без работы , потому что в следующий раз может и не повезти и пойдут вкатываться в другую сферу снова начиная всё сначала.
    Цель должна быть не "устроиться на работу" , а "стать классным программистом" , иначе, с такими маленькими амбициями сразу после трудоустройства человек перестает развиваться как специалист, ведь он уже достиг своей цели.
    Я думаю, что если ты вообще задаёшься этим вопросом, жалеешь потраченное время, то программирование это не твоё, иди эвент-менеджером каким-нибудь за новыми людьми и ситуациями )
    Ответ написан
    2 комментария
  • Как найти работу Unity разработчиком?

    Lord_of_Rings
    @Lord_of_Rings
    Дунадан - северный странник. Злой, но очень добрый
    Весной 2023 года я устал от Python, т.к. не мог найти ни заказа, ни работы
    Плохо искали
    а ещё обнаружил у себя проблемы с фронтендом.
    И поэтому сбежали на Unity и C#?
    как может выглядеть собеседование на разработчика Unity
    Точно не так, как вы его представляете
    как быть с портфолио
    Я думаю на кликеры в Я.Играх никто смотреть не будет.
    есть ли вообще перспективы у изучения этого движка и языка C#
    Есть, это я вам точно говорю
    день, когда пишу этот вопрос, проходит бездарно.
    Ну это уж вы сами виноваты, саморазвитием можно всегда заниматься
    В такие моменты у меня возникают сомнения в идее работать с Unity дальше. Впрочем, с Python такое тоже бывало
    Ну это вам к психологу надо, а не сюда
    Ответ написан
    Комментировать
  • Как стать Middle и т.д в Gamedev Unity?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Уровни выставляются не вами, а работодателем. У каждого работодателя могут быть свои критерии, и то, о чем идет речь на рынке - это в основном нечто усредненное.
    Хотите знать свой уровень - ищите вакансии на мидла, читайте требования, пробуйте устроиться. Получится - значит мидл. Нет - значит не мидл (или поискать компании с требованиями попроще).

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Думаю простого способа нет в силу особенностей дизайна. Объект экземпляра класса, как и объект класса, оба имеют полный доступ к пространству имен объекта класса. По этому думаю решение довольно сложное и того не стоит.
    Ответ написан
    Комментировать
  • Почему LeetCode выдаёт ошибку?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому, что вопрос там задается в таком виде:
    class Solution {
        public int[] sortArray(int[] nums) {
            
        }
    }


    Вам нужно реализовать только этот метод.
    Не нужно никакой отсебятины вроде метода main и организации ввода/вывода; это все платформа сделает за вас.

    Ответ, например, может быть таким:
    class Solution {
        public int[] sortArray(int[] nums) {
              Arrays.sort(nums);
              return nums;
        }
    }
    Ответ написан
    1 комментарий
  • Отличия ios backend и web backend?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Никаких отличий.
    Ответ написан
    1 комментарий
  • В чем смысл использования Golang как веб сервер?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    А теперь возьмите не синтетический тест, а реальную задачу сложнее перекладки json'ов, например, с шифрованием, дайте серьëзную длительную нагрузку и посмотрите латентность по процентилям.
    Ответ написан
    Комментировать
  • Как стать начинающим программистом в текущих реалиях?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Куда легче всего пробиться в программирование?

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

    Мне вообще всё равно, куда идти в плане доходов (лишь бы на еду хватало)

    Почему тогда именно ИТ?

    поскольку знаю, что я не выдающийся человек ни в чём

    Бизнес выдающихся и не ищет в основном.

    - Теоретический опыт по книгам по Java,

    Подозреваю, что сейчас это знает каждый школьник.

    Школьники сейчас читать-то не умеют многие.

    Что вы мне посоветуете?

    Ещё раз хорошо подумать нужно ли вам именно ИТ. Во-первых, в силу хайпа сюда сейчас ломятся все подряд, соответственно прорваться на первое рабочее место очень непросто. Во-вторых, в отрасли довольно большая концентрация тех, кто программирование любит, с такими тяжело конкурировать, а чем выше будете забираться, тем чаще придётся. Есть множество работ, куда попасть легче и где хватать будет не только на еду.
    Ответ написан
    2 комментария
  • Нормально ли использовать var вместо явной типизации в C#?

    1. Да, это нормально. Сильно легче код писать таким образом. (а иногда и читать, тк меньше слов дублируется. Например совершенно никакой ценности не несёт User user = userRepository.GetUserById(...) или многослойный женерик)

    2.

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

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

    Ты же не задаёшься вопросом, какой тип возвращает какой-нибудь GetUser, ToString, TryParse, FirstOrDefault?

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


    Данный код достаточно сложно разобрать человеку, который не писал это всё с нуля, а был присоединён через 4-5 лет ведения проекта.

    Очень смелое заявление, которое мало чем подкреплено.


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

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

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

    Ну и помни ещё, что ты же не в блокноте код пишешь - у тебя есть всякие inlay hints, которые могут рядом с именем переменной показать её тип, а наведя мышку на слово - ты узнаёшь о нём все (имя переменной, сигнатуру метода, документацию, итд)
    Ответ написан
    7 комментариев