系统库的意义在于可以大幅提高你的开发效率,虽然重造轮子是程序员的一大乐趣。但是在实际工作中,我们可能更多地需要追求效率,而系统库是过去优秀的程序员的经验的结晶,往往在性能和强壮性上都做了大量的优化,一般来讲都会比我们自己的实现要好得多。正因如此,学习和掌握系统库虽然枯燥(初期要记忆大量的API细节),但是却是一笔非常值得的投资。
. ----
以下想说说关于学习曲线的问题,初学者最大的障碍可能就是遇到问题得不到解答。不过,如今的学习条件跟当年互联网不发达的时候相比已经好得多了,有这么多优秀的问答网站,学习资源,百科全书可供使用,比如:
1. 知乎
2. stackoverflow
3. wikipedia
4. 美国一流大学的开放式课程
-baidu 1point3acres
我推荐的学习方法是:
1. 选择一套优秀的学习资料,它可以是书亦可以是视频
坚持从头到尾学习下来,遇到问题通过google来寻找答案或者上问答网站提问
. 1point 3acres
部分语言的优秀的入门教材 . 1point 3acres
C: C Programming Language
JAVA: Java Programming Language, Stanford's the programming methodology
C++: C++ How to Program
Python: Dive into Python, Learn Python the Hard Way
2. Practice Makes Perfect,提高编程水平一定要勤加练习,推荐使用在线测评网站练习。
比较适合新手的在线测评网站:
USACO
Euler Project
TopCoder
当你成功地写出自己的程序并通过测试之后,停下来,想想是否还会有更好的实现方法,总结自己在实现过程中遇到的困难,并且阅读比你更聪明的那些程序员的方法,阅读优秀的代码会让你学到很多。然后再尝试用更好的方法去实现。 .--
. From 1point 3acres bbs
3. 多分享,写博客或者来知乎,SO上回答他人的问答,帮助别人不但让你感到有成就感,其实也是提升自己的手段,因为只有当你能解答他人的问题之后你才是真正地理解了这个问题。 .
C++选Bjrne Stroustrup的《Programming - Principles and Practice Using C++》,这个是专门为零基础入门者编写的,作者还讲述了很多好的编程实践,为什么要这么做,原因都说明的很清楚。个人觉得学了C++,C随便找本看看语法,注意下差异就差不多了。