腾讯工程师教你如何学习网络编程
什么是网络编程? 当你的程序需要跟其他机器上的程序通信时,必须通过底层网络交换报文。使得你的程序具有该功能,就必须使用到网络编程的技术。举个例子讲,你在微信上给某个妹纸发送“多喝热水”这条消息,实际上是微信这个APP把“多喝热水”先发送到微信的某台服务器上,然后微信的服务器再把这条消息发送给妹纸。没有网络编程,咋发送呢需要说明的是,我们这里讲的网络编程是通过socket技术实现的报文发送,不是ASP、PHP网页编程这类东西。PS:市面上有一些不负责任的编辑老是出版什么《JSP网络编程》、《PHP网络编程》之类的垃圾书籍,而实际上它们里面讲的是用JSP、PHP来写网页,并不是真正意义上的网络编程,这一点造成了不少初学者概念上的混淆。
学习网络编程之前需要哪些基础知识 语言层面,至少应该了解一门高级语言,比如C/C++、Java、Python。
TCP/IP协议栈也应该有一些了解。TCP/IP协议栈对于初学者来讲,并不是很容易掌握。可以结合网络编程实践来加深理解
操作系统的基本概念,比如进程、文件等。
有哪些好的书籍可以推荐
语言层面的书籍,如果是C语言的话,推荐《C和指针》。这本书在真正意义上把笔者带入了编程的世界。
http://p3.pstatp.com/large/134c000805b7df5326a8?/1.jpg TCP/IP协议只有一本推荐,《TCP/IP详解》,这套书一共有三卷,初学者读第一卷就可以了。剩下两卷等你入门之后自己就可以判断是否需要读了。特别说明,不推荐其他任何关于TCP/IP协议的书籍。就目前市面上的书,阅读起来太浪费时间。http://p3.pstatp.com/large/134c00080619d4c71925?/1.jpg
网络编程,推荐《Unix网络编程》卷1,这套书分两卷,第一卷讲网络编程。这套书有一些老,但绝对属于经典中的经典。读完这套书,任何其他语言的网络编程都易如反掌。不过,这套书比较厚,读起来需要一些耐心哟。
http://p1.pstatp.com/large/135100010b6bac1ff2e0?/1.jpg
下一步该做什么 当你差不多有了上面列的基础知识,而且已经粗略读了上面列的书籍,就应该自己动手写写程序了。网上有很多检验学习效果的例子,比如说自己动手写网络爬虫。真实的网络爬虫很复杂,可以自己写一个爬取某些美女图片(知道你们最喜欢这个!)网站上的图片程序练练手。
ok,上面都完成了,我个人觉得可以算是入门了,但是走到这一步,只能算是一个普通学生的水准。
下一篇我们会接着介绍针对即将进入或已经在工作岗位、致力于成为学生中的编程大牛等朋友还应该掌握哪些东西。
预告:epoll、libevent、Nginx、Apache、高并发、Protobuf等。
页:
[1]