C语言简单易学,难以掌握,作为Java程序员,障碍将是内存和结构。并消除Java可能对产生大脑部分;)的算法造成的损害
我建议通过互联网上的教程来熟悉Linux盒子上的GCC工具链。然后阅读C编程语言,Linux应用程序开发的副本不会有什么坏处。此外,在Linux上,glib将使您免于重新发明轮子...但至少尝试创建自己的链表,哈希图,图形和其他API来学习。指针算术、数组和学习结构等元素只是二进制块中的命名偏移量都很重要。花时间与 和 和 记忆检查。使用C,您的工具和工具链非常重要,IDE在学习时不一定是您的朋友。malloc
free
我会选择C而不是C++因为C是习惯C的内存管理和指针使用的良好基础。
你能做的最好的事情就是把你学到的东西应用到一个真正的项目中。但要准备好把你的头撞在Valgrind和GDB的墙上。我已经编程C多年了,我仍然不是C僧侣。
我同意C是一门伟大的语言,它显示了一个糟糕的程序员。但请记住:
任何足够复杂的C程序都包含一个临时的,非正式指定的,错误缠身的,缓慢的实现的一半Common Lisp。
它的寓意是也学习其他语言,而不仅仅是C派生的语言!考虑一些Lisp方言,Erlang(目前很酷),Haskell等。它们将从Java的2x2单元扩展您的视野。考虑一下SICP。