关于学习C语言后的感悟
我学了C,C++,JAVA.还有很多的脚本语言,最后彻底留下的只有c语言,c++的许多机制忘了,JAVA就没有记住几种机制。
面对编程高手(会n种),而且很牛b的那种,我依然以我会c语言自豪,我也因为我会c语言而自信。面对什么什么技术“趋势”的时代,我只精通c语言,发现已经足够了,而且是完全足够了。当我需要学习PHP的时候,我1个星期可以说基本掌握了;当我要学B shell的时候,1个星期也够了;当我要学习JSP的时候....什么?什么是JSP?别说我学过这些垃圾。
我爱用最简单的语言机制构建出你复杂逻辑,你严谨的思维。当你发现这么简单的C语言男够构架出UNIX操作系统和大部分UNIX程序的时候,你就发现你不能轻视C。
有的人说机制少,不安全,不健全......那么安全的语言机制就失去了灵活,失去了轻便。 有的人说功能少,C库少,连界面都不能写.......那么当malloc都由自己写的时候,程序才牢牢掌握在自己手中。真正的程序员是没有界面的,程序员在text mode下能快捷,方便地做你想做的一切事情。
下面介绍一下我学习的方法,觉得特别有用。。
如果是连高数,计算机原理之类的书或是英语没有入门的人,那就不应该学习编程,不可能牛起来。
如果是C语言刚上手,最好选一本国内语言语法,语句讲得细致的书。
如果上手了,或者学习过其他的语言,那么就一定要看一本最经典的C语言书,比如《C语言程序设计》,这本书我后来又看一遍才知道有多好,眼界十分开阔。
认为都学的差不多了,最最最好的联系方法(切身体会!!!),就是自己写程序,写什么呢??两个中你挑一个:md5加密算法的实现 或者是 lzss或lzw压缩算法的实现。这两个程序接近底层又不算十分大,又有很多的数据结构和算法。资料就要自己去找了,网上有讲算法的,你来具体实现,能自己设计算法并能够在unix机器上实现那更好。
搞过这个你就能体会到自己终于入门了,因为你到时候就会发现又很多的内容还等着你去学.....并且你可以拿着你的程序炫耀了,事实证明能把这个程序彻底些出来并且些的很好的(bug少),已经有功底了,你可以把程序发布到http://doc.xuehai.net等开源社区上,招人开启你自己的工程。
当然有了功底,剩下的路你自己就应该知道怎么走了,有一条向linux工程师的方向,就是学习linux,如果你c语言足够好,可以直接学习内核,试着编写,编译内核;也可以弄弄上层的东西,shell,awk,iptable之类的.....当然经典的书《unix高级编程》是讲unix下的gcc程序开发的
还有网络工程师的路,那就要学协议,有巨他妈经典的3卷的书:《TCP/IP详解》一,二,
三。只看一也可以。然后看一看《unix网络编程》,那就足够了.....
如果想向软件工程师发展,那更不成问题。你再学什么语言,什么JAVA,C++,JSP....那是哇哇的简单,但是注意,一定要看最经典的书,你才能成为高手!!