经过五年的专业Java(以及较小程度的Python)编程,慢慢地感觉到我的计算机科学教育正在流失,我决定要拓宽我的视野/对世界有普遍的用处,做一些(对我来说)更像是对这台机器真正有影响的事情.我 Select 学习C和Unix编程,因为我觉得这是许多最有趣的问题所在.
我的最终目标是能够专业地做这件事,如果没有其他原因,就是我每周必须在支付账单的工作上花费40-50个小时,所以这也可能是我想要变得更好的编码类型.当然,你不会被雇go 做你以前没有做过的事情,所以现在我要靠自己了.
To this end, I started with K&R, which was a great resource in part due to the exercises spread throughout each chapter. After that I moved on to Computer Systems: A Programmer's Perspective, followed by ten chapters of Advanced Programming in the Unix Environment. When I am done with this book, I will read Unix Network Programming.
我在Stevens的书中遗漏的是缺少编程问题;它们主要记录功能并提供示例,后面还有几个章节末尾的问题.我觉得我会从挑战使用K&;R中每一章的知识中获益更多.我可以 for each 函数编写一些测试程序,但这是一个不太可取的方法,因为(1)我可能没有那么积极地接受一些外部挑战,(2)我自然只会考虑以我已经想到的方式使用函数.(2)我可以 for each 函数编写一些测试程序,但这是一种不太理想的方法,因为(1)我可能没有那么积极主动go 迎接一些外部挑战,(2)我自然只会考虑以我已经想到的方式使用函数.
所以,我想得到一些关于如何练习的建议.显然,我的首选是找到一些有Unix编程挑战的资源.我也考虑过寻找并try 为一些开放源码的C项目做贡献,但这有点令人望而生畏,因为学习使用软件,然后学习代码库会有一些开销.我能想到的唯一经常使用的开源C项目是Python,我不确定开始使用它有多容易.
这就是说,我对各种建议都持开放态度,因为可能有一些我甚至没有想过的事情.