Пытаюсь в программирование на C#(Неделя 1)
Всем привет! Вот и подошла моя первая неделя изучения языка C# к концу. И я готов поделиться с вами моим прогрессом за это время.
Понедельник
Свободного времени в этот день у меня было достаточно. И первое с чего я начал, это поиск материалов и источников из которых я мог бы черпать полезную для меня инфу хотя бы на начальном этапе. Немного порывшись на просторах интернета, я всё-таки смог выцепить курс от известной компании (без названий) так сказать за бесплатно. Ещё при поисках материала, люди на разных форумах советовали сайт Metanit.
Так же хорошие отзывы были и о YouTube канале # SimpleCode, кой я тоже включил в свой список источников.
Так как до этого более чем полгода назад я уже пытался изучить программирование, для начала решил вспомнить, то что учил раньше:
- Понятие переменной
- Преобразование типов данных
- Арифметические и логические операции
И другие базовые термины. Вот так и прошёл мой первый день.
Вторник
Утром во время поездки в автобусе, решил зайти в Google Play и посмотреть есть ли там что-то полезно для меня. Наткнулся на такое приложение как sololearn, оно показалось мне самым нормальным из тех что там были. Оно содержит вот такой вот мини курс на русском языке. Не густо конечно, но для коротких перерывов между парами самое то.
По приезду домой я перешёл к изучение конструкций if..else ,а так циклов for и do while.
После просмотра серий видео по данной теме, я ринулся решать домашнее задание которое было в папке вместе с видео. И тут то я понял, что мои навыки работы с циклом for недостаточно хороши, чтобы решить задание. Тогда я решил что нужно посвятить несколько дней решению задачек по нему, дабы улучшить и закрепить свои знания. С этой мыслью, я и пошёл спать.
Среда
В среду приехав домой и отдохнув, я пошёл решать задачки на цикл for. Зашёл на первый понравившийся мне сайт и приступил к их решению.
Какие-то были сложные, какие-то настолько лёгкие, что мой мозг решал их на полном автомате. Просидев за решением задачек около 2-3 часов я пошёл спать.
Четверг
Четверг от среды не особо отличался, я всё также решал задачки только помимо for прибавились ещё и while и do...while.
Также почитал о циклах на Metanit'е и посмотрел видео у Симпл Кода.
Пятница
В пятницу у меня было ШЕСТЬ ПАР!!! ШЕСТЬ ПАР, КАРЛ. Кто вообще это расписание составляет???
Я приехал домой полудохлый и единственное на что меня хватило, это на то чтобы написать простенький консольный калькулятор(хоть что-то).
Суббота
В субботу у меня было дистанционное обучение. А для меня дистанционка = ничего, всё-равно субботние задания только на парах в понедельник показываем, а там и списать у кого-нибудь можно).
Этот день я решил сделать разгрузочным днём, чтобы быстро не перегореть от программирования. Дышал свежим воздухом, играл в LoL с друзьями, вообщем-то чиллил. А ещё на ютубчике смотрел видео по типу таких:
Чтобы не забывать то, ради чего я учу C#.
Воскресенье
Сегодня я решил начать изучать массивы, хотя хотел с понедельника (не дотерпел). Посмотрел несколько видео, до задачек ещё не дошёл. На своем опыте знаю, что тема не из простых, так как я и забросил на массивах свою прошлую попытку изучить С#. Слишком уж сложными и непонятными показались мне тогда они.
Заключение
Спасибо за то, что дочитали мою статью до конца. Хочу сказать что меня очень сильно мотивирует, когда вы даёте мне свои советы в комментариях. Когда я выкладывал свою первую статью, я и подумать не мог, что хоть кто-то напишет комментарий или лайкнет статью и тем более не думал, что на меня кто-то подпишется.
На этой приятной ноте я прощаюсь с вами, увидимся на следующей неделе.
Метанит и симпл код норм для начала
Но если даже массивы даются трудно, то тут нужно что-то ещё проще
Какой то фундамент программирования и алгоритмов, без отдачи к какому-то ЯП
Ну и сразу скажу, что первое время нужно много времени отдать на теорию, и когда весь фундамент будет в голове, тогда приступать к практике. Практики должно быть много, пускай это будут миллионные велисипеды, ро ты должен сделать из своими мозгами. Кроме практики ничего не даст тебе существенного буста.
Приложение дтф писал криворукий уебан, не будь таким.
Не дал мне отредачить сообщение и потер инфу.
Вкратце: практики должно быть очень много. Учить нужно минимум по 2 часа в день, что бы через год иметь представление как попасть на стажировку.
Спс за совет, буду по максимуму стараться.
У меня уже привычка начала появляться каждый день кодить.
)
goto забыл, чтоб у многих пердаки взорвались :)))
До сих пор используется. Главное башку имнть
C# Полное руководство Шилдта. Отличная книга! Разжевано там хорошо всё
Спасибо, попробую почитать
Не пробуй, - это справочник. Выбери книгу с практикой здесь и сейчас видимый результат
Есть ещё сайт ulearn от СКБ-контур, бесплатный, но ориентирован на студиозусов матмеха, то есть основная масса практики заточена на математические задачи, грубо говоря, больше формулы вспоминаешь, чем кол пишешь)
Совмещать учёбу с учёбой какой то отдельный вид мазохизма. По советам больше практики богу практики. Именно ручками в ide
Я понимаю на счёт мазохизма, на пока только так
Иногда радуй себя чем-нибудь прикольным на Юнити)) Делай мелкие игрушки друзьям, добавляет мотивации))
А что уважаемые комментаторы скажут про приложение Stepik (не реклама!) и бесплатный курс Noob's coders? Сейчас ковыряю его, вроде норм обьясняют.
Удачи. Надеюсь, ты хотя бы не настолько тупой, как я.
Спасибо! Я тоже не Эйнштейн, главное это стремление.
Не отчитывайся в дневнике так часто и подробно, 2 раза с подведением итогов каждой недели в месяц хватит. Иначе забросишь, т.к. неделю можно спокойно убить на "простецкую" вещь и "красиво" отчитаться в дневничке уже не получится, что очень демотивирует
p.s. - сложно даётся?
- да нет, там все легко
- а куда месяц всрал?
- ну там...
Я крч тоже над этим думал. Решил, что первый месяц буду каждую неделю отчитываться, а начиная со второго уже так как ты написал.
Гражданин, с namespace на кириллице в первом листинге лучше сразу завершить обучегие и не мучать ни свой тупой мозг, ни мозг читателей
Хахаха, прям так и сделаю.
Вы реально не представляете себе масштаб проблем вызываемых кириллицей в Яп и системном администрировании?
Если хочешь понять программирование то лучше начать с чего-то более низкоуровневого C или Rust
Может наоборот? Освоить верх и постепенно погружаться.
Большинство не будет погружаться, просто принимают определенные удобства высокоуровневых языков как данность, зачастую не понимая что происходит под капотом и как работает эта "магия". Поэтому для понимания простые алгоритмические задачи лучше всего погонять на том языке который не ведет тебя за ручку.
Считаю, что на начальных этапах и не важно знать, как конкретно работает под капотом какое-то упрощение и абстракция над чем-то
Работает? Писать код можешь? Общее понимание написанного есть? Вот и славно. Сиди и практикуйся. Не нужно ему знать, как gc работает, во что компилируется код, где и как хранятся данные и т.п.
Лучше пускай с особенностями фреймворка разбирается.
Захочет пойти на работу реальную, возьмёт книжку и прочитает все это за месяц.
Такой подход и породил тысячи говнокодеров которые не понимают базовых вещей.
И в C# необходимо знать особенности работы gc иначе можешь напороться на непонятные и трудноисправляемые проблемы с производительностью и потреблением памяти. Надо понимать что на неиспользуемые объекты могут быть ссылки, которые помешают их удалить сборщику. Надо знать что такое фрагментация кучи, к чему она может привести и как с ней бороться. Надо знать про режимы работы сборщика и правильно их выбирать. И это проблемы, которые лежат на поверхности, а если копнуть глубже, то можно много чего ещё накопать. Автоматическая сборка мусора конечно хорошо, но она не избавит от необходимости планировать и думать, а для этого надо понимать что творится внутри программы.
Человеку не работавшему ни одного дня этого знать не нужно, максимум разобраться с ссылками. Все, что ты сейчас описал, по факту читается перед собеседованиями на джуна за месяц. А на практике применяется на первой работе с первым живым кодом коллег.
Да и то джуну это не нужно.
Мое имхо.
Не нужно думать?
Не нужно думать обо всём.
Ну серьезно, давай заставим человека идущего на стажировку описать, во что компилируется тот или иной участок кода, как будет аллоцироваться в памяти и т.п.
Для этого и сделаны границы опыта, что бы каждый изучал то, что от него требуется в данный момент. Научится позже, это не составит никаких проблем.
Ныряние в котел ещё никого не приводило ни к чему хорошему, я более чем уверен, что ты разработчик старой закалки и у тебя не было других вариантов обучения, а у него есть и пускай пользуется, хуже тебя он не станет через одинаковый опыт.
Так я и не говорю что ты должен стать сначала спецом по C и написать своё собственное ядро операционной системы. Но просто взять книжку по нему освоить базовый синтаксис и обкатать на нём школьные задачи на алгоритмизацию. Это поможет уложить в голове базовые понятия программирования, и базовые алгоритмы. Можно взять для этих целей паскаль, но большинство современных языков имеют с-подобный синтаксис поэтому лучше с него начинать. И когда будешь изучать C# ты хотя бы будешь понимать что примерно net делает под капотом и для чего вообще нужна сборка мусора.
Очень вредный и дезовый совет. Чем раньше перейдет к практике, тем лучше. Не хватало ему еще до этого подкопотье яп на котором написан изучаемый яп изучать. Вы больны?
Пока не начал писать рпбочий код всё, вами перечисленное - нафиг не нужно. Нельзя внедрять дорожные правила ДО постройки дороги
Гспд, автор, ну метанит ты за шо ты взял? Есть столько прекрасных ресурсов. Это просто текст Гоши Дударя. Да даже на офф сайте юньки есть очень полезные уроки нежели вот этот кал.
Что есть лучше метанита для человека, который массивы ещё не знает? Русскоязычного, конечно же.
Я часто рекомендую его всем до первой стажировки, там же разжевано все проще некуда, и ошибки появляются только ближе к углублению в фреймворк.
Я уже привёл весьма хороший ресурс. Но даже так, у майков оочень хорошая документация, и (внезапно) на русском! Разница в том, что метанит - справочный материал. То есть, быстро зайти посмотреть как создать те же самые массивы. Ну вот знает новичок что такое массив, и что ему это даёт? Да ничего. Такой подход к обучению сегодня очень долгий, и пока он дойдёт до реальных практических применений, будущий ученик уже 1000 раз бросит и начнёт заново.
Курс юнити уже более глубокий, чем знакомство с шарпом. Кстати, я перешёл сейчас на их сайт, а там 404 на редирект к первым урокам по шарпу, остальное мельком глянул - на англе. Но может не туда смотрю, я не геймдев, а веб и никогда не интересовался юнити. Все же я больше про сам шарп сейчас говорю, чем про ответвления.
Никогда не советуй новичку документацию, если он тебе прямым текстом говорит, что массивы вызывают у него сложности. Она ему ничего не даст, кроме желания все бросить через пол часа из-за трудного описания. Я понимаю, что с практической точки зрения кажется, что нужно сразу идти по тому самому правильному пути, но зачастую игнорируются человеческие слабости, нужно и их учитывать.
Я собеседую часто и даю наставления новичкам, при всей нелюбви к современному метаниту, не смог найти русскоязычной справки лучше, чем его старые вводные статьи.
Ну не знаю как у Вас не открывается, без каких либо проблем открываю и смотрю. Опять же, Метанит по большей части является исключительно справочным материалом, не более. Такими темпами можно посоветовать автору книгу по Си шарп от автора Филиппа Джепикса. Там тоже более чем исчерпывающий материал по языку. Но, извините, 1,5к страниц прочесть ему ничем не поможет. Потому что он будет знать только механику самого языка, а практических применений - ноль. Еще, я более чем уверен, многие уже на стадии прочтения таких вот справочников просто забьют на изучение.
Если использовать как "карманный справочник" сам метанит - еще допустимо. Опять же, сам майковский ресурс предоставляет куда более структурированную и исчерпывающую инфу.
В завершении хочу сказать, что изучать язык при помощи метанит - это не смертный приговор. Просто это менее эффективно сегодня. Как я уже писал, чертов текст Гоши Дударя.
Какой то не тот курс ты нашел в SoloLearn, посмотри получше))))там большой курс по C# с задачами и тд.
Ооо! Спасибо! Я бы сам никогда бы не догадался, что там другие курсы во вкладке "Сообщества" есть.
А где именно они находятся?
Для программистов на .net есть скажем так, Библия, это книга Рихтера CLR via C#. Прочитать ее просто необходимо, поскольку она поможет понять как именно работает Фреймворк. Книга сложная но она того стоит.
Я знаю о чем говорю, мой стаж 16 лет.
Рихтер морально устарел уже, весь первый раздел смысла читать практически нет. Во втором уже тоже много чисто фреймворковской темы, которая неактуальна. Читал где-то в 2020, уже тогда приходилось практически каждое пятое предложение пропускать. Не вижу никакого смысла делать это в 2023
Простите, какую конкретно версию книги вы читали? У книги есть ревизии практически под все версии clr. К тому же не совсем понимаю что именно там морально устарело? Давайте обсудим.
Я читал 4 версию и не слышал, чтобы выходили еще. Под все версии Clr времен до неткора? Очень многое уже после изменилось. Я не хочу сказать, что Рихтер это пустая трата времени и вообще не стоит его читать, но... просто есть книги новее, которые "выгоднее" по времени прочитать как минимум уж для новичка.
Пойду с конца:
Часть 5 (многопоточность) - в целом неплохо, но есть просто отдельные книги про все это, которые покрывают лучше тематику. Из минусов только слишком много windows-специфичных вещей и местами уже исправленные/деприкейтед вещи + какая-то слишком навящивая реклама своей библиотеки
Часть 4 (ключевые механизмы) - WinRT, апдомены, сериализация - слишком сильно уже изменилось или совсем неактуально. GC база несоменнено есть, но и там уже с тех времен добавилось как минимум 2 новых типа кучи
Часть 3 (Основные типы данных) - Много базовой информации, но очень уж очень сильно она растянута, сверху присыпанная вбросами вроде "проперти не нужны". Не знаю, вроде и претензий каких-то нет, но вроде и проще пойти просто документацию по конкретным типам посмотреть. + API постоянно развивается, местами вещи делаются уже по-другому
Часть 2 (Проектирование типов) - Наверно та самая "классика", которую все еще можно почитать. Но блин, это одна глава из 5!
Часть 1 (Основы CLR) - Ну тут просто очень много совсем умерших вещей вроде CTS/CLS/GAC. Много полезного все еще есть, но это очень тяжело вычитывать сквозь кучу устаревшей информации
Понял вас. В этом я могу с вами согласиться, однако нужно понимать что речь об общем понимании функционирования Фреймворка. Различия есть, тем более если мы говорим о .net core, однако общий принцип остался примерно тем же. Я рекомендую эту книгу именно для того чтобы разобраться как все это работает, а не для того чтобы разобраться во всех аспектах текущей версии clr. Последняя мне известная версия CLR о которой писал Рихтер это 4.5, и есть ревизия 20го года, с многочисленным правками автора. Ещё раз, вы рассматриваете книгу как руководство по тому как писать код сейчас, и здесь вы правы, многие вещи не актуальны, я же говорю об общем понимании того с чем работаешь, и в этом плане Рихтер по прежнему актуален. К стати по кору все ещё не видел достойных книг, может у вас есть на примете? Ещё момент, для новичка Рихтер наверное действительно будет сложен, возможно я поторопился с советом. Просто у меня лично отторжение к книгам вроде Троелсена.