Вкатывальщик C#
467
74
Всем привет.
Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался.
По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).
За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.
Знания по шарпу для джуна +- есть.
Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличаются addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.
Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё?
MTL сказал(а):↑Всем привет.
Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался.
По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).
За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.
Знания по шарпу для джуна +- есть.
Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличается addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.
Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё?
Нажмите, чтобы раскрыть...C#, а теперь выйди и зайди нормально, с java в руках
, и выкинь эту мерзость.
А если по факту то кем ты работать то хочешь
, c# это либо пародия на java, либо недо-говно игры
Вообще база хорошая. Однако что сейчас с вакухами хз.
Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.Nubiroed сказал(а):↑C#, а теперь выйди и зайди нормально, с java в руках
, и выкинь эту мерзость.
А если по факту то кем ты работать то хочешь
, c# это либо пародия на java, либо недо-говно игры
Нажмите, чтобы раскрыть....NET как платформа джаве за щеку дает по всем направлениям))))
Nubiroed сказал(а):↑C#, а теперь выйди и зайди нормально, с java в руках
, и выкинь эту мерзость.
А если по факту то кем ты работать то хочешь
, c# это либо пародия на java, либо недо-говно игры
Нажмите, чтобы раскрыть...Не согласен. Шарп имеет ряд преимуществ перед джавой. Поэтому и пал выбор в его сторону, когда выбирал между этими двумя, т.к. хотел разобраться в ООП.
Если заново бы заходил, то положил бы болт на ооп и начал вкатываться в Go, но на него вакансий до сих пор очень мало.
BigBadaBOOM сказал(а):↑Вообще база хорошая. Однако что сейчас с вакухами хз.
Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.
.NET как платформа джаве за щеку дает по всем направлениям))))
Нажмите, чтобы раскрыть...
, именно так, все именно так
. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важно
BigBadaBOOM сказал(а):↑Вообще база хорошая. Однако что сейчас с вакухами хз.
Советую научиться дебажить \ подключаться к процессам итд. Это очень важный навык, ибо вкат джуна в проект обычно начинается с фикса маленьких багов.
.NET как платформа джаве за щеку дает по всем направлениям))))
Нажмите, чтобы раскрыть...Дебажить тоже +- могу (на visual studio code). В райдере не пробовал.
А что за процессы? Которые в Callstack'е крутятся и к ним научиться подключаться?
MTL сказал(а):↑Дебажить тоже +- могу (на visual studio code). В райдере не пробовал.
А что за процессы? Которые в Callstack'е крутятся и к ним научиться подключаться?
Нажмите, чтобы раскрыть...На работе скорее всего ты не будешь каждый раз разворачивать все сервисы, скорее всего они у тебя будут крутится в IIS или в докерах развернуты будут. Тебе нужно будет к ним коннектится и дебажить.
Вообще код писать не сложно. Сложно вообще научиться работать. Гит там, как инфраструктура устроена, куда смотреть, как понять где проблема и тд. Советую найти чей-нибудь репо, форкнуть его, развернуть у себя и поменять функционал чего-либо, на свое усмотрение. Хорошее упражнение на работу с чужим кодом. В принципе большую часть времени джун работает с чужим кодом.
BigBadaBOOM сказал(а):↑Расскажешь когда async/await завезут.
Нажмите, чтобы раскрыть...Это одно из ключевых, почему я не стал в джаву вкатываться. Асинхронность слишком хороша, чтобы её игнорить во времена, когда данных много.
BigBadaBOOM сказал(а):↑На работе скорее всего ты не будешь каждый раз разворачивать все сервисы, скорее всего они у тебя будут крутится в IIS или в докерах развернуты будут. Тебе нужно будет к ним коннектится и дебажить.
Нажмите, чтобы раскрыть...Почитаю про то, как это делать. Спасибо.
Nubiroed сказал(а):↑C#, а теперь выйди и зайди нормально, с java в руках
, и выкинь эту мерзость.
А если по факту то кем ты работать то хочешь
, c# это либо пародия на java, либо недо-говно игры
Нажмите, чтобы раскрыть...Пхахах, чел всерьез думает что Java лучше C#
Когда указатели подвезут - позвонишь![]()
Laurarouge сказал(а):↑Пхахах, чел всерьез думает что Java лучше C#
Когда указатели подвезут - позвонишьНажмите, чтобы раскрыть...Насколько я знаю, в джаве есть указатели. Только хз, насколько они могут забустить скорость приложения.
В шарпе реф-тайп структура (Span<Т>) может забустить перебор данных в массиве раза в 4.
MTL сказал(а):↑Насколько я знаю, в джаве есть указатели. Только хз, насколько они могут забустить скорость приложения.
В шарпе реф-тайп структура (Span<Т>) может забустить перебор данных в массиве раза в 4.
Нажмите, чтобы раскрыть...Это распространенное заблуждение. В Java нет указателей, их указатели это ссылки, JVM шатает объекты по всей памяти и не может конкретно ссылаться на определенную область. Это происходит из-за говеного сборщика мусора в Джаве
OnlyAW сказал(а):↑Можно попробовать геймдев (Unity)
Тут часто много нубасов "я умею делать кубик на сцене и создавать префаб, а что там в скриптах мне пофиг гыгыгы"
На их фоне знание шарпа даже минимальное может выделить из толпы
Нажмите, чтобы раскрыть...Гейм дев это отдельная вселенная и залететь туда сложнее, чем в веб. Так что хз. Имхо.
MTL сказал(а):↑Гейм дев это отдельная вселенная и залететь туда сложнее, чем в веб. Так что хз. Имхо.
Нажмите, чтобы раскрыть...конкретно в юнити порог достаточно низкий для джуна
правда уже с мидла требования ничем не отличаются от других айти направлений
в целом, тем кто занимается и растет - везде найдется место
MTL сказал(а):↑Всем привет.
Короче, сам айтишник по образованию (Информационная безопасность), но разработкой никогда не занимался.
По основной специальности не пошло и стало уж больно скучно и перед НГ начал конкретно учить шарп и фреймфорки для разработки веб приложений (asp net core, entity).
За это время успел написать простой интернет магаз по шаблону MVC с razor-страничками (cshtml) и bootstrap 5, регистрацией пользователей, админкой для круда продуктов и изменением статуса заказа. Чуть позже подкручу загрузку картинок для товаров и администрирование учёток. Короче, для сносной работы полноценного приложения всё есть. Написал докерфайл и докеркомпоус для контейнерезации проекта. Везде всё запускается при наличии докера на системе. Приложуху выложил на гит с командами в readme-файле для демонстрации работодателю.
Знания по шарпу для джуна +- есть.
Знаю про аллокацию памяти в кучу и в стэк, что есть реф-тайп, валью-тайп. Более менее понимаю, что такое DI и чем отличается addscoped, addtransitent и addsingleton. Task, async, await тоже смогу объяснить. Структуры данных тоже не самое сложное. Рассказать про отличия интерфейса и абстрактного класса - тоже.
Высоки ли шансы быстро найти работу при такой базе, что сейчас или надо что-то ещё?
Нажмите, чтобы раскрыть...О, я как раз ищу C# бойца который сможет научить прогу на С# делать экспорт геометрии в нужный мне формат, возьмешься?)
Jeivi сказал(а):↑ну с таким портфолио ты лучше 80% вкатывальщиков ( если делал не ctrl+c , ctrl+v
Нажмите, чтобы раскрыть...Делал, но не так много, т.к. всё скопировать просто априори невозможно. Нужен свой функционал.
YoshkinKot сказал(а):↑ну хз, надо ли усложнение языка и VM ради этого?
я думаю вряд ли
с такой философией (хочу больше контроля) вам в другие места
Нажмите, чтобы раскрыть...Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах, если говорить про высокоуровневые языки. Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы.
Nubiroed сказал(а):↑
, именно так, все именно так
. Главное помнить что .net и себе за щеку дает, и создатель .net за щеку может дать, но это все не важно
Нажмите, чтобы раскрыть...почему шарпистов нет в чатак успешных 300к наносеков. зато там есть джавабояре.
заставляет задуматься
почему легаси говно мамонта написано на джава а не шарпе
единственное сейчас хайповое - это клауд платформа майкрософт.
самое смешное, что эти все вопросы гуглятся в два клика
MTL сказал(а):↑Делал, но не так много, т.к. всё скопировать просто априори невозможно. Нужен свой функционал.
Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах, если говорить про высокоуровневые языки. Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы.
Нажмите, чтобы раскрыть...как выше написал - погугли майкрософт клауд, вроде бы хайповая тема райт нау
MTL сказал(а):↑Ну, тут не про контроль, а про скорость работы. Всё-таки чем меньше GC чистит данных, тем лучше. В разумных пределах, если говорить про высокоуровневые языки. Ассемблерные вставки для SIMD-параллелизма точно не нужны, но от того, что ты напишешь две строки, чтобы перебрать массив не ссылками в кучу, а ссылками в стэк, логика не будет сильно усложнена, а скорость вырастит в разы.
Нажмите, чтобы раскрыть...ну это именно что про контроль разгон
ты именно что хочешь аллоцировать явно объектики в каких-то местах ради перформанса
java предоставляет тебе JVM и говорит, что она берет весь контроль за памятью, а ты только описывай очередность инструкций
в теории реализация JVM может быть достаточно умной, чтобы делать красивые runtime оптимизации
и все эти кэшмиссы будут не столь критичными после разогрева VM
короче, суммируя, если ты задумываешься о том, как у тебя конкретно лежат вещи в памяти, а не делегируешь это платформе, которая разберётся как тебе лучше в runtime, то возможно ты просто ошибся с выбором инструмента?
вообще идея X ⊃ Y ∴ X > Y, кажется мне не очень адекватной
больше фишек вполне себе может означать более сложную композиционную структуру
потому что помимо A ты должен думать еще и о том, как оно должно работать и скейлиться с B
Повторю: я не хожу от крайности в крайность. Если я понимаю, как это примерно работает на платформе, то почему парой строк не сделать код быстрее? ну, вот на примере того же шарпа, заменить class на struct в какой-нибудь ViewModel для счёта товаров и итоговую сумму в корзине? Всего одно слово и скорость станет выше, т.к. данные будут крутиться не в куче, а в стэке, т.к. структура - value-type. Если уж прям совсем западло бы было всем этим заниматься и принципиально не захочу это делать, то можно уйти в питон или джс, где про это точно нет смысла думать. Хоть вот асинхронность в джсе есть, а это так же часть оптимизаций и устранения бутылочных горлышек в производительности.YoshkinKot сказал(а):↑ну это именно что про контроль разгон
ты именно что хочешь аллоцировать явно объектики в каких-то местах ради перформанса
java предоставляет тебе JVM и говорит, что она берет весь контроль за памятью, а ты только описывай очередность инструкций
в теории реализация JVM может быть достаточно умной, чтобы делать красивые runtime оптимизации
и все эти кэшмиссы будут не столь критичными после разогрева VM
короче, суммируя, если ты задумываешься о том, как у тебя конкретно лежат вещи в памяти, а не делегируешь это платформе, которая разберётся как тебе лучше в runtime, то возможно ты просто ошибся с выбором инструмента?
вообще идея X ⊃ Y ∴ X > Y, кажется мне не очень адекватной
больше фишек вполне себе может означать более сложную композиционную структуру
потому что помимо A ты должен думать еще и о том, как оно должно работать и скейлиться с B
Нажмите, чтобы раскрыть...
MTL сказал(а):↑Если я понимаю, как это примерно работает на платформе, то почему парой строк не сделать код быстрее?
Нажмите, чтобы раскрыть...Потому что на этой платформе этого просто нет.
А если честно, я не знаю C# чтобы за него что-то говорить, но мне не очень ясно как вы решаете проблему доступа к данным структурки без копирования. Типа как в C++ с lvalue, rvalue ссылочками? Или вы тосаете указатели? А если тосаете указатели, то как определяете корректность ссылки (в том смысле, что время жизни объекта еще не кончилось)?
В Java этого просто нет, и все эти вещи (укладывания объектов на стек, а не в кучу) делаются для тебя платформой в рамках оптимизаций.
Ну видит JVM что можно расположить на стеке данные — ну она это попытается сделать: бдыщь.
Тебе как программисту зачем об этом знать и руками управлять?
C# понятно зачем, он вроде как язык для взаимодействия с виндой в том числе, игры на нём пишут и т.д.
Системным и околосистемным языкам оно как бы по праву полагается разбираться с этой грудой проблем.
Я когда пишу на жабе, я не хочу сидеть с циркулем, как на C++, высчитывать количество происходящих в коде копирований.
Я хочу наоборот думать, что создание объектов относительно дешевая операция не требующая детального взгляда и моих рук в этом деле, пусть JVM разбирается с этим, её работа. Я не хочу из вещей выжимать максимальную производительность.
Просто опять таки, приведу пример: вот есть в плюсах шаблоны, которые позволяют compile time вычисления делать.
Кажись круто, почему мой любимый язык X не имеет такой крутой фичи.
И вот перед дизайном очередного класса, очередной либы, ты начинаешь задумывать о том: преимущественно compile time либа, либо преимущественно runtime ориентированная либа. И начинается: я не могу определиться никак, что мне больше нравится. Есть аргументы за и против как для первого, так и для второго.
С точки зрения разработчика языка есть один замечательный способ избежать дилеммы: выбрать что-то одно и делать и хорошо. Наложенные ограничения тебе позволят делать более конкретные утверждения про происходящее в системе, а значит где-то это позволит что-то более агрессивно оптимизировать. Ну и т.д.
У наложения жестких ограничений есть ряд преимуществ перед позицией: мы стараемся включить в себя больше возможностей. И преимущества эти конечно в основном на стороне разработчика платформы, языка, но с другой стороны плюс для программиста в том, что у него тоже не будет дилемм по поводу того как и что делать.
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
Сообщений:0
Просмотров:0
-
Сообщений:2
Просмотров:1
-
Сообщений:4
Просмотров:4
-
Сообщений:5
Просмотров:5
-
Сообщений:2
Просмотров:2