После пяти лет профессионального программирования Java (и в меньшей степени, Python) и медленного ощущения моего образования в области CS, я решил, что хочу расширить свои горизонты/общую полезность для всего мира и сделать то, что больше чувствует я), как будто я действительно влияю на машину. Я решил научиться программированию на C и Unix, так как я чувствую, что многие из наиболее интересных проблем есть.
Моя конечная цель - это сделать это профессионально, если только по той причине, что мне приходится тратить 40-50 часов в неделю на работу, оплачивающую счета, так что это может быть и тип Кодирование Я хочу поправиться. Конечно, вы не нанимаетесь, чтобы делать то, что у вас не было раньше, поэтому пока я не наращиваю свои силы.
С этой целью я начал с K & R, что было большим ресурсом отчасти благодаря упражнениям, распространяемым по каждой главе. После этого я перешел к Computer Systems: перспектива программиста, а затем десять глав Расширенное программирование в среде Unix. Когда я закончите с этой книгой, я прочитаю Unix Network Programming.
То, что мне не хватает в книгах Стивенса, - отсутствие проблем с программированием; они в основном документируют функциональность и приводят примеры с несколькими вопросами, приведенными в конце главы. Я чувствую, что выиграю гораздо больше от того, чтобы оспаривать использование знаний в каждой главе ala K & R. Я мог бы написать некоторую тестовую программу для каждой функции, но это менее желательный метод, так как (1) я, вероятно, был бы менее мотивирован, чем если бы я поднимался на какой-то внешний вызов, и (2) я, естественно, буду думать только об использовании функции в том, что уже произошло со мной.
Итак, я хотел бы получить некоторые рекомендации о том, как практиковать. Очевидно, мой первый выбор - найти какой-то ресурс, который имеет проблемы с программированием Unix. Я также рассмотрел поиск и попытку внести свой вклад в какой-то проект с открытым исходным кодом С, но это немного сложно, так как в обучении использованию программного обеспечения возникнут некоторые накладные расходы, а затем изучение кода. Единственный проект C с открытым кодом, о котором я могу думать, я регулярно использую Python, и я не уверен, насколько легко начать с него.
Тем не менее, я открыт для всех предложений, потому что есть вещи, о которых я даже не думал.