Задать вопрос
  • Как найти работу, если есть большой опыт, но всё равно не берут?

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

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    У меня есть уже 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 комментариев
  • Что выбрать - Pro 16 i9 или Pro 13 m1 (2020)?

    @D3lphi
    Только Apple Silicon, без вариантов. Макбуки на интел - устаревший хлам, который работает от батарейки 2 часа. М1 с 16 гигабайтами вам хватит с головой. По поводу размера дисплея - подключите монитор, вот серьезно. Не стоит из-за размера экрана брать устаревшую прошку.

    В качестве ответа на коммент Дмитрий могу с уверенностью сказать, что все то, что может потребоваться вам уже давно собранно под aarch64. Так что тут проблем никаких не возникнет.
    Ответ написан
    Комментировать
  • Почему в Go вакансиях требование знания PHP?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Или это просто такое количество кодовой базы на PHP накопилось, которую все дружно решили переписывать на Go

    Скорее всего.

    если да, то почему именно на Go?

    Если компания решилась вложиться в переписывание продукта на другом языке, то у неё на это точно очень веские причины, вероятнее всего - проблемы производительности. В этом случае Go - очевидный выбор. Python, Ruby и JS не дадут никакого выигрыша относительно PHP. Хоть на языках из мира jvm и .net можно писать высокопроизводительный софт, но они скорее решают проблемы сложности огромных кодовых баз. С++ и Rust очень сложны и для прикладного софта применяются только в крайнем случае. Всякая экзотика, типа Erlang, Elixir и Haskell - это вообще редкий случай в энтерпрайзе. Go же одновременно очень прост и ориентирован на высокую производительности.
    Ответ написан
    7 комментариев
  • Какие библиотеки и как использовались для создания Minecraft Bedrock?

    @maksam07
    как без UE и какого-то игрового движка

    А по вашему, игровые движки не = скелет какой-то игры?

    У вас в описании указано "Python". Вы же знаете, что такое библиотека для питон? Или фреймворк для питон (аля Django и пр.). Представьте что UE это django. А джанго это что? Просто инструмент для быстрого и удобного создания полноценного сайта. Можно ли обойтись без джанго? Конечно да! Только сайт придется реализовывать значительно дольше, продумывая весь функционал с нуля, практически с нативного кода питон, самому обрабатывать запросы, коды ответов, роутинг и кучу-кучу всего.

    Как это работает в джанго?
    from django.http import HttpResponse
    
    def hello_world(request):
        return HttpResponse("Hello, World!")

    from django.urls import path
    from myapp.views import hello_world
    
    urlpatterns = [
        path('hello/', hello_world),
    ]


    Как это работает без фреймворка:
    from http.server import BaseHTTPRequestHandler, HTTPServer
    
    class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
        def do_GET(self):
            self.send_response(200)
            self.send_header("Content-type", "text/html")
            self.end_headers()
            self.wfile.write(b"Hello, World!")
    
    httpd = HTTPServer(('localhost', 8000), SimpleHTTPRequestHandler)
    httpd.serve_forever()


    То же самое и с игровыми движками, но немного сложнее.
    Ответ написан
    3 комментария
  • Как написать мобильное приложение?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли написать бекенд для мобильного приложения на андроид и iOS на Django Python?

    Возможно.
    Если да, то что нужно для этого поизучать

    Все тоже самое, что и для разработки бэка для любого другого проекта.
    и на чем писать фронтенд для мобильного приложения?

    На чем умеете, но вот список от простого к сложному:
    - React Native.
    - Flutter.
    - Kotlin/Swift.
    Ответ написан
    1 комментарий
  • Джун QA - это про потенциал и обучаемость, или - когда нужен Мидл с низким окладом?

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

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

    Насколько быстро найти первую работу - СУГУБО индивидуально. Кто-то с первого раза, кто-то за 2 года не может. Нет никаких сроков, есть рекомендации что учить и как готовиться.

    Знание мобильного тестирования требуют там где разрабатывают мобильное приложение, а не просто потому что они хотят чтобы вы это знали. Вы когда идете трудоустраиваться в макдональдс, вы же догадываетесь, что мясо по французски там готовить не будут?

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

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

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

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

    Простите, но вы перечислили настолько базовые вещи...
    SQL базовый это маст хев
    топология сетей - ну это же блин база
    DNS кешируется - ну просто все
    веб и бэкенд мало чем отличается в 90% современных приложениях

    Ну то есть как-то ощущение, что вы хотите не на джуна, а в первый класс.

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

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