Пытаюсь в программирование на C#(Неделя 1)

Всем привет! Вот и подошла моя первая неделя изучения языка C# к концу. И я готов поделиться с вами моим прогрессом за это время.

Понедельник

Свободного времени в этот день у меня было достаточно. И первое с чего я начал, это поиск материалов и источников из которых я мог бы черпать полезную для меня инфу хотя бы на начальном этапе. Немного порывшись на просторах интернета, я всё-таки смог выцепить курс от известной компании (без названий) так сказать за бесплатно. Ещё при поисках материала, люди на разных форумах советовали сайт Metanit.

Так же хорошие отзывы были и о YouTube канале # SimpleCode, кой я тоже включил в свой список источников.

Так как до этого более чем полгода назад я уже пытался изучить программирование, для начала решил вспомнить, то что учил раньше:

  • Понятие переменной
  • Преобразование типов данных
  • Арифметические и логические операции

И другие базовые термины. Вот так и прошёл мой первый день.

using System; namespace Учим_сишарп { class Program { static void Main(string[] args) { Console.WriteLine("Hello World"); } } }

Вторник

Утром во время поездки в автобусе, решил зайти в Google Play и посмотреть есть ли там что-то полезно для меня. Наткнулся на такое приложение как sololearn, оно показалось мне самым нормальным из тех что там были. Оно содержит вот такой вот мини курс на русском языке. Не густо конечно, но для коротких перерывов между парами самое то.

По приезду домой я перешёл к изучение конструкций if..else ,а так циклов for и do while.

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

Среда

В среду приехав домой и отдохнув, я пошёл решать задачки на цикл for. Зашёл на первый понравившийся мне сайт и приступил к их решению.

Какие-то были сложные, какие-то настолько лёгкие, что мой мозг решал их на полном автомате. Просидев за решением задачек около 2-3 часов я пошёл спать.

Четверг

Четверг от среды не особо отличался, я всё также решал задачки только помимо for прибавились ещё и while и do...while.

Также почитал о циклах на Metanit'е и посмотрел видео у Симпл Кода.

Пятница

В пятницу у меня было ШЕСТЬ ПАР!!! ШЕСТЬ ПАР, КАРЛ. Кто вообще это расписание составляет???

Я приехал домой полудохлый и единственное на что меня хватило, это на то чтобы написать простенький консольный калькулятор(хоть что-то).

Суббота

В субботу у меня было дистанционное обучение. А для меня дистанционка = ничего, всё-равно субботние задания только на парах в понедельник показываем, а там и списать у кого-нибудь можно).

Этот день я решил сделать разгрузочным днём, чтобы быстро не перегореть от программирования. Дышал свежим воздухом, играл в LoL с друзьями, вообщем-то чиллил. А ещё на ютубчике смотрел видео по типу таких:

Чтобы не забывать то, ради чего я учу C#.

Воскресенье

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

Заключение

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

На этой приятной ноте я прощаюсь с вами, увидимся на следующей неделе.

0
46 комментариев
Написать комментарий...
Syhapod

Метанит и симпл код норм для начала
Но если даже массивы даются трудно, то тут нужно что-то ещё проще
Какой то фундамент программирования и алгоритмов, без отдачи к какому-то ЯП

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

Ответить
Развернуть ветку
Syhapod

Приложение дтф писал криворукий уебан, не будь таким.
Не дал мне отредачить сообщение и потер инфу.

Вкратце: практики должно быть очень много. Учить нужно минимум по 2 часа в день, что бы через год иметь представление как попасть на стажировку.

Ответить
Развернуть ветку
Surxnder
Автор

Спс за совет, буду по максимуму стараться.

Ответить
Развернуть ветку
Surxnder
Автор

У меня уже привычка начала появляться каждый день кодить.

Ответить
Развернуть ветку
Surxnder
Автор

)

Ответить
Развернуть ветку
Caduceus

goto забыл, чтоб у многих пердаки взорвались :)))

Ответить
Развернуть ветку
Panzer Kaiser

До сих пор используется. Главное башку имнть

Ответить
Развернуть ветку
Призрак космического рейнджера

C# Полное руководство Шилдта. Отличная книга! Разжевано там хорошо всё

Ответить
Развернуть ветку
Surxnder
Автор

Спасибо, попробую почитать

Ответить
Развернуть ветку
Panzer Kaiser

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

Ответить
Развернуть ветку
Андрей Соловьев

Есть ещё сайт ulearn от СКБ-контур, бесплатный, но ориентирован на студиозусов матмеха, то есть основная масса практики заточена на математические задачи, грубо говоря, больше формулы вспоминаешь, чем кол пишешь)

Ответить
Развернуть ветку
Вадим

Совмещать учёбу с учёбой какой то отдельный вид мазохизма. По советам больше практики богу практики. Именно ручками в ide

Ответить
Развернуть ветку
Surxnder
Автор

Я понимаю на счёт мазохизма, на пока только так

Ответить
Развернуть ветку
Jkell47

Иногда радуй себя чем-нибудь прикольным на Юнити)) Делай мелкие игрушки друзьям, добавляет мотивации))

Ответить
Развернуть ветку
Pan Stepan

А что уважаемые комментаторы скажут про приложение Stepik (не реклама!) и бесплатный курс Noob's coders? Сейчас ковыряю его, вроде норм обьясняют.

Ответить
Развернуть ветку
eq

Удачи. Надеюсь, ты хотя бы не настолько тупой, как я.

Ответить
Развернуть ветку
Surxnder
Автор

Спасибо! Я тоже не Эйнштейн, главное это стремление.

Ответить
Развернуть ветку
rar 24

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

p.s. - сложно даётся?
- да нет, там все легко
- а куда месяц всрал?
- ну там...

Ответить
Развернуть ветку
Surxnder
Автор

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

Ответить
Развернуть ветку
Panzer Kaiser

Гражданин, с namespace на кириллице в первом листинге лучше сразу завершить обучегие и не мучать ни свой тупой мозг, ни мозг читателей

Ответить
Развернуть ветку
Surxnder
Автор

Хахаха, прям так и сделаю.

Ответить
Развернуть ветку
Panzer Kaiser

Вы реально не представляете себе масштаб проблем вызываемых кириллицей в Яп и системном администрировании?

Ответить
Развернуть ветку
Алексей К

Если хочешь понять программирование то лучше начать с чего-то более низкоуровневого C или Rust

Ответить
Развернуть ветку
Вадим

Может наоборот? Освоить верх и постепенно погружаться.

Ответить
Развернуть ветку
Алексей К

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

Ответить
Развернуть ветку
Syhapod

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

Захочет пойти на работу реальную, возьмёт книжку и прочитает все это за месяц.

Ответить
Развернуть ветку
Алексей К

Такой подход и породил тысячи говнокодеров которые не понимают базовых вещей.
И в C# необходимо знать особенности работы gc иначе можешь напороться на непонятные и трудноисправляемые проблемы с производительностью и потреблением памяти. Надо понимать что на неиспользуемые объекты могут быть ссылки, которые помешают их удалить сборщику. Надо знать что такое фрагментация кучи, к чему она может привести и как с ней бороться. Надо знать про режимы работы сборщика и правильно их выбирать. И это проблемы, которые лежат на поверхности, а если копнуть глубже, то можно много чего ещё накопать. Автоматическая сборка мусора конечно хорошо, но она не избавит от необходимости планировать и думать, а для этого надо понимать что творится внутри программы.

Ответить
Развернуть ветку
Syhapod

Человеку не работавшему ни одного дня этого знать не нужно, максимум разобраться с ссылками. Все, что ты сейчас описал, по факту читается перед собеседованиями на джуна за месяц. А на практике применяется на первой работе с первым живым кодом коллег.
Да и то джуну это не нужно.
Мое имхо.

Ответить
Развернуть ветку
Алексей К

Не нужно думать?

Ответить
Развернуть ветку
Syhapod

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

Ответить
Развернуть ветку
Алексей К

Так я и не говорю что ты должен стать сначала спецом по C и написать своё собственное ядро операционной системы. Но просто взять книжку по нему освоить базовый синтаксис и обкатать на нём школьные задачи на алгоритмизацию. Это поможет уложить в голове базовые понятия программирования, и базовые алгоритмы. Можно взять для этих целей паскаль, но большинство современных языков имеют с-подобный синтаксис поэтому лучше с него начинать. И когда будешь изучать C# ты хотя бы будешь понимать что примерно net делает под капотом и для чего вообще нужна сборка мусора.

Ответить
Развернуть ветку
Panzer Kaiser

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

Ответить
Развернуть ветку
Panzer Kaiser

Пока не начал писать рпбочий код всё, вами перечисленное - нафиг не нужно. Нельзя внедрять дорожные правила ДО постройки дороги

Ответить
Развернуть ветку
Lilith

Гспд, автор, ну метанит ты за шо ты взял? Есть столько прекрасных ресурсов. Это просто текст Гоши Дударя. Да даже на офф сайте юньки есть очень полезные уроки нежели вот этот кал.

Ответить
Развернуть ветку
Syhapod

Что есть лучше метанита для человека, который массивы ещё не знает? Русскоязычного, конечно же.
Я часто рекомендую его всем до первой стажировки, там же разжевано все проще некуда, и ошибки появляются только ближе к углублению в фреймворк.

Ответить
Развернуть ветку
Lilith

Я уже привёл весьма хороший ресурс. Но даже так, у майков оочень хорошая документация, и (внезапно) на русском! Разница в том, что метанит - справочный материал. То есть, быстро зайти посмотреть как создать те же самые массивы. Ну вот знает новичок что такое массив, и что ему это даёт? Да ничего. Такой подход к обучению сегодня очень долгий, и пока он дойдёт до реальных практических применений, будущий ученик уже 1000 раз бросит и начнёт заново.

Ответить
Развернуть ветку
Syhapod

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

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

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

Ответить
Развернуть ветку
Lilith

Ну не знаю как у Вас не открывается, без каких либо проблем открываю и смотрю. Опять же, Метанит по большей части является исключительно справочным материалом, не более. Такими темпами можно посоветовать автору книгу по Си шарп от автора Филиппа Джепикса. Там тоже более чем исчерпывающий материал по языку. Но, извините, 1,5к страниц прочесть ему ничем не поможет. Потому что он будет знать только механику самого языка, а практических применений - ноль. Еще, я более чем уверен, многие уже на стадии прочтения таких вот справочников просто забьют на изучение.
Если использовать как "карманный справочник" сам метанит - еще допустимо. Опять же, сам майковский ресурс предоставляет куда более структурированную и исчерпывающую инфу.
В завершении хочу сказать, что изучать язык при помощи метанит - это не смертный приговор. Просто это менее эффективно сегодня. Как я уже писал, чертов текст Гоши Дударя.

Ответить
Развернуть ветку
Viktor

Какой то не тот курс ты нашел в SoloLearn, посмотри получше))))там большой курс по C# с задачами и тд.

Ответить
Развернуть ветку
Surxnder
Автор

Ооо! Спасибо! Я бы сам никогда бы не догадался, что там другие курсы во вкладке "Сообщества" есть.

Ответить
Развернуть ветку
ChubaKabra

А где именно они находятся?

Ответить
Развернуть ветку
Protoconstructor

Для программистов на .net есть скажем так, Библия, это книга Рихтера CLR via C#. Прочитать ее просто необходимо, поскольку она поможет понять как именно работает Фреймворк. Книга сложная но она того стоит.
Я знаю о чем говорю, мой стаж 16 лет.

Ответить
Развернуть ветку
hrrrrustic

Рихтер морально устарел уже, весь первый раздел смысла читать практически нет. Во втором уже тоже много чисто фреймворковской темы, которая неактуальна. Читал где-то в 2020, уже тогда приходилось практически каждое пятое предложение пропускать. Не вижу никакого смысла делать это в 2023

Ответить
Развернуть ветку
Protoconstructor

Простите, какую конкретно версию книги вы читали? У книги есть ревизии практически под все версии clr. К тому же не совсем понимаю что именно там морально устарело? Давайте обсудим.

Ответить
Развернуть ветку
hrrrrustic

Я читал 4 версию и не слышал, чтобы выходили еще. Под все версии Clr времен до неткора? Очень многое уже после изменилось. Я не хочу сказать, что Рихтер это пустая трата времени и вообще не стоит его читать, но... просто есть книги новее, которые "выгоднее" по времени прочитать как минимум уж для новичка.

Пойду с конца:
Часть 5 (многопоточность) - в целом неплохо, но есть просто отдельные книги про все это, которые покрывают лучше тематику. Из минусов только слишком много windows-специфичных вещей и местами уже исправленные/деприкейтед вещи + какая-то слишком навящивая реклама своей библиотеки

Часть 4 (ключевые механизмы) - WinRT, апдомены, сериализация - слишком сильно уже изменилось или совсем неактуально. GC база несоменнено есть, но и там уже с тех времен добавилось как минимум 2 новых типа кучи

Часть 3 (Основные типы данных) - Много базовой информации, но очень уж очень сильно она растянута, сверху присыпанная вбросами вроде "проперти не нужны". Не знаю, вроде и претензий каких-то нет, но вроде и проще пойти просто документацию по конкретным типам посмотреть. + API постоянно развивается, местами вещи делаются уже по-другому

Часть 2 (Проектирование типов) - Наверно та самая "классика", которую все еще можно почитать. Но блин, это одна глава из 5!

Часть 1 (Основы CLR) - Ну тут просто очень много совсем умерших вещей вроде CTS/CLS/GAC. Много полезного все еще есть, но это очень тяжело вычитывать сквозь кучу устаревшей информации

Ответить
Развернуть ветку
Protoconstructor

Понял вас. В этом я могу с вами согласиться, однако нужно понимать что речь об общем понимании функционирования Фреймворка. Различия есть, тем более если мы говорим о .net core, однако общий принцип остался примерно тем же. Я рекомендую эту книгу именно для того чтобы разобраться как все это работает, а не для того чтобы разобраться во всех аспектах текущей версии clr. Последняя мне известная версия CLR о которой писал Рихтер это 4.5, и есть ревизия 20го года, с многочисленным правками автора. Ещё раз, вы рассматриваете книгу как руководство по тому как писать код сейчас, и здесь вы правы, многие вещи не актуальны, я же говорю об общем понимании того с чем работаешь, и в этом плане Рихтер по прежнему актуален. К стати по кору все ещё не видел достойных книг, может у вас есть на примете? Ещё момент, для новичка Рихтер наверное действительно будет сложен, возможно я поторопился с советом. Просто у меня лично отторжение к книгам вроде Троелсена.

Ответить
Развернуть ветку
Читать все 46 комментариев
null