Mohit Tomar Ответов: 4

Правильный путь, чтобы научиться кодировать.


Всем привет..!!

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

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

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

Кстати, книга, по которой я учусь, такова: "Основы программирования на C# - Наковым Электронная книга 2013" Мне нравится эта книга, и концепции тоже объясняются хорошо, но, может быть, вы, ребята, можете предложить что-то получше .

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

Глава 1. Введение в Программирование.........................................69
Глава 2. примитивные типы и переменные ......................................111
Глава 3. операторы и выражения...........................................139
Глава 4. консольный ввод и вывод ...........................................165
Глава 5. Условные Операторы..............................................195
Глава 6. Петли ..............................................................211
Глава 7. Массивы .............................................................235
Глава 8. Системы Счисления ....................................................265
Глава 9. Методы ............................................................293
Глава 10. Рекурсия .........................................................351
Глава 11. Создание и использование объектов ........................................385
Глава 12. Обработка Исключений ................................................415
Глава 13. Обработка строк и текста .......................................457
Глава 14. Определение ..........................................................499
Глава 15. Текст ..............................................................615
Глава 16. Линейные Структуры Данных ............................................641
Глава 17. Деревья и графики ..................................................681
Глава 18. Словари, хэш-таблицы и наборы ................................727
Глава 19. структуры данных и сложность алгоритмов ..........................769
Глава 20. Принципы Объектно-Ориентированного Программирования ............................807
Глава 21. Высокое Качество Программирования Кода .....................................853
Глава 22. лямбда - выражения и LINQ.........................................915
Глава 23. Методология решения проблем .....................................935
Глава 24. Пример Экзамена По Программированию – Тема #1.................................985
Глава 25. Пример Экзамена По Программированию – Тема #2................................1041
Глава 26. Пример Экзамена По Программированию – Тема #3................................1071

Я закончил до Главы 6 - й-петли. Хотя я могу хорошо объяснить эти понятия любому, но столкнусь с проблемой развития логики. Однако это происходит не во всех вопросах, а в основном в вопросах, где необходимо использовать цикл.

Я прочитал в начале книги в предисловии / введении, что после завершения глава № 19 структуры данных и сложность алгоритмов человек, читающий эту книгу, сможет развить хорошее понимание порождающей логики, но я очень сомневаюсь в этом в моем случае.

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

Пожалуйста извините мой английский так как это не мой родной язык.

Что я уже пробовал:

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

Заранее спасибо. :-) :-)

4 Ответов

Рейтинг:
2

Mohit Tomar

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

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

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

Заранее спасибо. :-)


CHill60

Избегайте публикации дальнейших вопросов в качестве "решений" - я понимаю, почему вы это сделали в данном случае, но лучше использовать ссылку "есть вопрос или комментарий" или ссылку "улучшить вопрос".
Однако...
Не все кодирование в наши дни требует глубокого знания математики-у вас, вероятно, есть достаточно, чтобы начать работу. Хотя теория множеств, вероятно, будет важна-прочтите эту статью CP, которая объясняет эту концепцию с помощью картинок, а не математических символов - Визуальное представление SQL-соединений[^]
Понимание таких вещей, как перестановки и комбинации, вероятно, также будет полезно.
Для большинства других вещей я бы предложил исследовать их по мере необходимости, иначе вы так увлекетесь изучением этого материала, что упустите удовольствие от кодирования :-)

Рейтинг:
12

Patrice T

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

Советы:
- Начните с простого/безопасного языка: VB, Java, C#, а не C или C++. Я также не рекомендую начинать с Python из-за использования отступов.
- Читайте документацию / следуйте учебникам (их очень много)
- Начните с крошечных/бесполезных проектов, цель которых-научиться программированию, а не делать что-то полезное.
- Начните с программ консольного режима (никакой причудливой графики, никакой мыши)
- Learn debugger (невероятный инструмент обучения)
Отладчик - Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
- Проблема ? Google-ваш друг.
- Изучайте алгоритмы и структуры данных.
- Учить Булевой алгебры
- Изучите один или несколько методов анализа, У. Е. сверху вниз Djikstra способ это хорошее начало.
Структурного Программирования.формат PDF[^]
https://en.wikipedia.org/wiki/Top-down_and_bottom-up_design[^]
https://en.wikipedia.org/wiki/Structured_programming[^]
https://en.wikipedia.org/wiki/Edsger_W._Dijkstra[^]
https://www.cs.utexas.edu/users/EWD/ewd03xx/EWD316.PDF[^]
- Изучайте SQL
- Изучите проектирование и Администрирование баз данных
Введение в проектирование баз данных[^]
1NF, 2NF, 3NF и BCNF в нормализации баз данных | учебник по СУБД | Studytonight[^]
- Изучайте Регулярные Выражения

Интересная ссылка:
stanford.edu: учитесь программировать[^]

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


Mohit Tomar

Спасибо за ссылки :-)

Рейтинг:
1

OriginalGriff

Многие вещи в вычислительной технике могут быть трудными для того, чтобы начать с них: вам нужно думать по-другому, более аналитически, чем вы, вероятно, привыкли (для некоторых это первый раз, когда им действительно пришлось это сделать думать и у них есть еще более серьезные проблемы, чем у вас!)

Петли довольно просты, на самом деле - это просто способ делать одно и то же много раз. Например, Вы читаете книгу, чтобы узнать о C# - так что процесс идет:

1) Open the book at the start of chapter 6
2) Read the page.
3) Turn to the next page.
4) Is that the end of the chapter?
4.1) No - go back to 2.
4.2) Yes - you have finished chapter 6, now do the exercises.


Это просто - это то, что вы делаете каждый день: читаете главу (или часть chpter, возможно).

В компьютерных терминах это одно и то же:
1) Initialize the loop - Open the book at the start of chapter 6
2) Body of the loop - Read the page.
3) Prepare for next iteration - Turn to the next page.
4) Check for completion - Is that the end of the chapter?
4.1) No - Loop round again - go back to 2.
4.2) Yes - Exit the loop - you have finished chapter 6, now do the exercises.

Мы можем записать это как C# for петля:
for (int pageNo = chapterStart[5]; pageno < chapterstart[7]; pageNo++)
   {
   ReadPage(pageNo);
   }
Или foreach петля:
foreach Page page in Chapters[6])
   {
   page.Read();
   }
Или while петля:
int pageNo = chapterStart[5]; 
while (pageno < chapterstart[7])
   {
   ReadPage(pageNo++);
   }
Или даже do ... while петля:
int pageNo = chapterStart[5];
do
   {
   ReadPage(pageNo++);
   } while (pageno < chapterstart[7]);
Подумайте об этом на мгновение, и это может быть немного яснее - попробуйте сравнить циклы с событиями "реального мира", и вы обнаружите, что они довольно хорошо подходят в большинстве случаев!


Mohit Tomar

А как насчет структур данных и алгоритмов? Изучение этого улучшит развитие логики или нет? И есть ли что-то, чему программисты следуют, например, некоторые принципы или лучшие практики, которые облегчают их работу во время программирования?

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

OriginalGriff

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

То же самое и с алгоритмами: например, существует не менее 7 основных алгоритмов сортировки значений.

Bubblesort
Selection Sort
Insertion Sort
Shellsort
Heapsort
Mergesort
Quicksort
И все они имеют также вариантов. Я думаю, вы встретите некоторых из них, когда будете проходить курс.

И "изучать структуры данных" - это тоже трудная идея, усугубляемая тем фактом, что существует больше различных структур данных, чем различных программ! :смеяться:

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

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

Mohit Tomar

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

Спасибо за вашу помощь..

OriginalGriff

Всегда пожалуйста!

Рейтинг:
0

CHill60

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

Есть несколько бесплатных ресурсов, которые могут вам помочь, например Как думать как программист — уроки решения проблем[^]

Есть также много книг: например, Как научиться думать как программист: решение задач на с недоумением: решения задачи с недоумением: Амазонка.ко.Великобритания: Павел Измеритель: 9781408065822: книги[^]

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

Однако книга, которую я нашел бесценной и могу порекомендовать, была Прагматичный Программист: Amazon.co.uk: Эндрю Хант, Дэвид Томас: 8601404321023: Книги[^]

Удачи вам в вашем путешествии


Mohit Tomar

Я проверил связь. Я нашел все ссылки полезными. Спасибо :-) :-)