Папочка Разработки – Telegram
Папочка Разработки
2.49K subscribers
153 photos
6 videos
1 file
110 links
Дэвдэд

Помогу найти работу — https://devdad.ru/?from=tg-h

Автор — @mccalen. С радостью пообщаюсь о том, о сём, рекламу не продаю
Download Telegram
Самые большие ошибки при "Входе в IT"

Я бы назвал две самые большие ошибки, которые я встречал чаще всего

1. Недооценивать необходимые знания. Много моих знакомых пытались стать программистами, но сдавались потому что “Это сложно и это не для меня”. Да, ты прав, будет сложно, но не только тебе, а абсолютно всем. Проходит дальше только тот, кто это принимает и учиться
2. Слишком долго не искать работу. Видел много случаев, когда кто-то уже долго учиться программированию, прошел какие-то курсы, потом погуглил что-то вроде “Что должен знать программист” и пошло поехало бесконечное обучение. И это приближает тебя к получению первой работы намного меньше, чем ты думаешь. Навык прохождений собеседований - отдельный навык, который тренируется только во время прохождения интервью. Поэтому берем и как можно раньше стараемся найти работы
👍1
Что я понял после шести лет в разработке (Часть 1?)

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

2. Если приду на собеседование в образный Яндекс, то, скорее всего, не пройду даже на джуна, так как абсолютно ничего не понимаю в алгоритмах. Мой грейд сейчас - просто удачное совпадение моего опыта с требуемым опытом в вакансии

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

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

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

6. Навык прохождения собеседований не имеет ничего общего с рабочими навыками. Ты можешь работать продуктивнее всех в команде, тебя любят и уважают, но на интервью спросят по Garbage Collector и отправят домой после фразы “Мы вам перезвоним”. Я сначала боролся и возмущался о том какие все глупцы, но не смог придумать лучшую систему найма, которая займет менее полугода на кандидата. Если твоя задача - найти работу, то придется, либо потратить полжизни на изучение всего на свете, либо отдельно готовиться конкретно к собеседованиям.

7. Невозможно не учиться и хорошо зарабатывать в IT. Любые навыки и знания устаревают гораздо быстрее, чем в любой другой сфере. Однажды я больше года работал на заводе с действительно умными специалистами, которые уже больше десяти лет пишут десктопные приложения на винформс, они профессионалы в своей области, только их технология устарела. Они зарабатывают по шестьсот долларов и считают мифами большие зарплаты в разработке.
👍41
- Как много легаси на проекте?
- Да
😁3
Топ языков программирования для начала карьеры в 2024 году

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

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

Мой личный топ, если говорим про бэкенд, то:
C#, Java, Go
Мобильные приложения:
Swift, Kotlin
Сегодня начинаю свою серию постов о вопросах к собеседованию .NET разработчика. Что-то я насобирал сам, когда ходил по куче собеседований, что-то спрашиваю сам сейчас как интервьюер.

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

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

🤓 Все вопросы в серии постов будут идти по возрастанию сложности

1️⃣ В чем разница между абстрактным классом и интерфейсом?
Давайте для начала получим представление что это вообще такое:
абстрактный класс - класс, который не может быть реализован, он может иметь реализацию по умолчанию и статические методы. Как правило представляет собой какой-то базовый класс для наследования. У интерфейсов же немного другое предназначение - они описывают контракты по которым можно будет взаимодействовать с объектами в дальнейшем. Как правило они описывают поведение объекта.

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

2️⃣ Что такое делегаты?
Это указатель на метод, делегат имеет определенную сигнатуру. В основном используется в связке с событиями. (Ну а что еще вы хотите услышать?)


#вопросы_к_собеседованию_csharp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Фиксируем 12-ого апреля 🎉

Посмотрим что будет дальше)
🎉31👍1
За месяц в комментариях к шортсам несколько раз писали что-то вроде «Зачем все это нужно, если нас всех заменит ИИ?». Сегодня выпущу шортс с моим видением этой ситуации, буду рад конструктивной критике)

UPD: вышло
В коде часто приходится сопоставлять объекты между собой, а чтобы не делать эту тупую работу в ручную есть AutoMapper - must have библиотека для .NET, которая автоматически сопоставляет поля объектов различных типов.

https://github.com/AutoMapper/AutoMapper

#смотри_какая_либа
Вся информация тут 🥰

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

Я не писал код с детства, не участвовал в школьных олимпиадах по программированию и даже не собирался строить карьеру в IT до 18 лет. Но даже с такими исходными данными получилось вполне себе неплохо и я даже снял об этом видео.

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

Чем я могу тебе помочь? 🤔

- Если ты ищешь первую работу или хочешь найти работу "под ключ", то приходи на менторство. Мы найдем твои слабые и сильные стороны, сделаем красивое резюме и подготовимся к поиску работы. В случае необходимости сделаем пет-проект и поймем как писать чистый код. 🚶‍♂️

- По подписке на бусти доступно сообщество для подготовки к собеседованиям. Там всегда актуальный список вопросов, своя база знаний и мой личный разбор твоих собеседований. [Только для активных участников, будь готов ответить на несколько вопросов после подписки] 😎

- Подпишись на бусти, там есть записи с собеседований, которые тебе точно помогут, а так же полезная информация по подготовке к технической части интервью. Еще бэкстейдж с съемок конечно же 🥣
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4💯2🔥1
Продолжаем изучать мой список вопросов к .NET Интервью)

3️⃣ Расскажи в чем разница между ссылочным и значимым типом данных?
Для ссылочных типов данных память всегда выделяется из управляемой кучи, а в стеке содержится только ссылка на объект, размещение объекта со временем инициирует Garbage Collector. Значимые типы располагаются в стеке. Объекты значимого типа существуют в двух формах: boxed и unboxed. Ссылочные только в boxed

4️⃣ Расскажи про упаковку и распаковку
Упаковка или boxing - преобразование знач. типа в объект из управляемой кучи, распаковка соответственно наоборот
Пример:

int x = 5;
Object z = x; // Упаковка, y указывает на упакованный объект
int y = z; // Распаковка


Упакованные срок жизни упакованного объекта дольше за счет нахождения в управляемой куче.
Неупакованные значимые типы легче ссылочных типов за счет:
1. Память в куче не выделяется
2. Нет дополнительных членов: указателя на типовой объект и индекса блока синхронизации

Обычно привожу в пример дженерики, которые появились для минимизации операций упаковки и распаковки, так как, в теории, мы легко можем использовать List<Object>

#ответы_к_собеседованию_csharp
👍3🔥1
Какой язык программирования выбрать?

Если бы я сейчас учился, то не стал бы отталкиваться от самых популярных языков программирования, таких как JavaScript/TypeScript или Python. Низкий порог входа стимулирует изучать именно их, поэтому на рынке куча соискателей, которые прошли те или иные курсы. Просто космическая конкуренция.

Я считаю, что самое важное - сделать программирование своей профессией, а не оставлять его в качестве хобби на долгие годы. Я бы смотрел в другую сторону - в backend (разработка серверной части) и мобильные приложения (разработка мобильных приложений). Для бэкэнда - это Java и C#, для мобильных приложений - Swift и Kotlin.

Эти языки сложнее изучать, но отсутствие непробиваемой конкуренции стоит того. Да и тяжело учиться - легко на работе.

Для любящих смотреть и слушать - https://www.youtube.com/shorts/n156vkjtxdA

#это_шорт
👍41
Я ни на что не способен в этой профессии, меня скоро уволят.

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

- На твою работу жаловались?
- Нет, даже хвалили.

- Ты постоянно срывал сроки?
- Бывает, но если была неправильная оценка, то я всегда знаю и могу объяснить, почему так произошло.

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

- Ты выполняешь свои обязанности?
- Да, выполняю.


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

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

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

Для любящих смотреть и слушать - https://www.youtube.com/shorts/QFCmoMMEdVw

#это_шорт
👍4👏1
Выпустил классный шорт про многопоточность в С#. Точно один самый полезных роликов на моем канале на данный момент, но почему-то досматриваемость хромает и просмотры совсем уж небольшие.

Бегите смотреть, если еще не видели) 👀

https://www.youtube.com/shorts/9EJWBanZypQ
👍62❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
51👏1
This media is not supported in your browser
VIEW IN TELEGRAM
👍43🔥1🥰1
У меня уже есть несколько классных и интересных тем для следующих кружочков, но в комментариях так же буду рад услышать фидбэк и предложения по темам. Обязательно постараюсь учесть 👨‍💻
3👍2😁2
[Часть 0️⃣]
Сегодня начинаю серию постов, в которой буду делиться моим списком вопросов к собеседованию .NET разработчика. По нему я сам нашел работу синьором, что-то сейчас спрашиваю на интервью у других синьоров)

Так же в этом канале часто выходят ответы и разбор этих вопросов, подписывайтесь 😉

Интерфейс/Абстрактный класс: зачем используется, в чем разница
Различия между ссылочными типами и типами значений, зачем нужны, что такое упаковка
GC: Поколения, принцип сборки, GC roots, какие бывают хипы, что такое финализатор
Порядок вызова конструкторов, конструктор статического класса
Что такое делегат
IEnumerable
Коллеции, как устроены (List, Dictionary, массив)
using, шаблон dispose

#вопросы_к_собеседованию_csharp
👍2👏1🐳1
100к просмотров на ютубе получено, двигаемся дальше)
🔥4🎉4👏1
У меня нет высшего образования, я смогу найти работу?

Такой вопрос я слышал буквально десятки раз от разных знакомых и мой ответ всегда был один - найдешь, это не проблема.
Да, вакансии, где обязателен диплом о высшем профильном образовании действительно есть, но это в основном компании старого уклада, где тебя будут называть “инженером” и именно для этого тебе обязательно предоставить диплом. Ты определенно не много потеряешь, если не станешь рассматривать такие компании к трудоустройству.

Я лично знаком с несколькими разработчиками, которые занимают руководящие места в крупнейших айти компаниях и не имеют высшего образования вовсе
👍31🍾1
На выходных выйдет видео с ответами почти на все вопросы из первых двух частей 🤫

[Часть 1️⃣]
Поток vs Процесс
В чем разница между многопоточным и асинхронным программированием? Что такое async/await?
Task: зачем нужен, в чем отличие от Thread
Примитивы синхронизации: какие знаешь, чем пользовался, чем отличаются (Monitor, Mutex, Semaphore, SemaphoreSlim и прочие)
Что такое дедлок
Задачи на примитивы синхронизации: что выведут на консоль таски, херовые паттерны (async void, отсутствие await внутри using конструкции, lock с async/await), как распараллелить множество запросов к стороннему сервису через Task.WhenAll, Task.WhenAny или как-то по-другому

Stable Diffusion говорит, что эта картинка отлично подходит посту, а я ему верю

Предыдущая часть тут
Следующие части: тык, тык

#вопросы_к_собеседованию_csharp
👍42😁2