Подтвердить что ты не робот

Каковы некоторые практические проекты, которые следует учитывать при попытке изучить C?

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

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

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

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

См. также

4b9b3361

Ответ 1

Вот некоторые идеи для вас:

  • Сохраните файл, содержащий хэши каждого файла в вашем музыкальном каталоге, и сообщите об изменениях.
  • Решите судоку в кратчайшие сроки.
  • Отправьте файл с помощью TCP на другой компьютер. (Напишите сервер и клиент).
  • Программа, которая передает список открытых файлов (настроенных в текстовом файле) через UDP, а затем принимает TCP-соединения для их загрузки.
  • Клиент командной строки POP3.
  • Напишите распределитель памяти и подключитесь к malloc.

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

Ответ 2

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

Кстати, я думаю, что вы на хорошем пути, и мне нравятся решения, которые вы сделали до сих пор.

Ответ 3

Способ обучения C - попробовать POSIX-совместимые образцы из любой книги операционной системы.

Ответ 4

Напишите компилятор для подмножества-C.

Ответ 5

Мой семиступенчатый справочник по поиску чего-то полезного кода:)

  • найдите то, что вам нравится или нравится (желательно связанное с ИТ)
  • найти проблему с ней или каким-то образом ее улучшить, иначе перейти к шагу 1
  • разделите проблему на логические части, они будут представлять функции и структуры, используйте листок бумаги, если это поможет вам визуализировать проблему (это то, что я иногда делаю)
  • разработайте свой план атаки, то есть: как вы реализуете то, что вы придумали на шаге 3.
  • Код, узнавать, тестировать, изучать, отлаживать, изучать, совершенствовать, изучать и кодировать и изучать еще несколько.
  • Готово, но на самом деле это не то, когда вы просматриваете то, что сделали, восхищаетесь всей своей славой и учитесь на всех своих ошибках и проблемах. какие части вам нравятся, какие части вы ненавидите и какие части вы еще можете узнать больше.
  • перейти Шаг 1, используя знания, полученные на шаге 6 (и все остальные шаги на этом пути)

Если у вас заканчиваются дела и вы хотите быть продуктивными в коммерческом смысле, посмотрите, можете ли вы разговаривать с людьми, которые работают с компьютерами/ИТ-системами/и т.д., как ежедневное появление на своей работе, и посмотреть, что с ними происходит, и попробуйте разработать идеи, которые могли бы повысить их производительность и/или легкость, с которой они могут выполнять свою задачу (задачи), кто знает, вы можете получить некоторые дополнительные знания и некоторые дополнительные деньги

Ответ 6

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

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

Например, несколько месяцев назад мне понравился вызов Google AI: http://csclub.uwaterloo.ca/contest/

Удачи и наслаждайтесь:)