IT程序员的回忆
扫描二维码
随时随地手机看文章
在毕业之后,我成功成为了一名IT程序员,开始从事网络设备的开发。在入行的时候我只是在学校里面学过计算机网络,以及有嵌入式编程基础,但没有实际的网络方面的实践跟工作经验。
由于受到那些给我机会,培养我的高手感染,我想在此总结一下我的历程。
在学习上按照时间的先后:
1.使用xshell远程登陆linux公司的服务器。
2.将所以在学校里面学习到的终端命令使用起来,按照公司技术文档去编译一个应用程序。
3.开始通过网络学shell编程,Makefile规则,pl脚本编程以及GCC工具的使用来处理make过程中的报错。
4.当成功把源文件编译成一个可执行文件之后,我又开始由头到尾地去跟着代码去学习所需要的知识。例如:先从应用层去学习了解应用层(网页)的代码,了解他们在执行起来会做什么动作。然后我跟着动作(http数据包等),查其他应用程序代码根据这些动作都做出了什么样的处理。【在这里我学习到了javascript,html等】
5.查看每一个网络应用相关(http协议,DHCP协议,ARP等等)的概念,看RFC。
6.查看应用程序,我学会了socket编程(也就是我们行业最重要的内容)跟socket内容。然后就是各种unix环境编程,这里花费我很多的时间跟精力。
7.开始一个一个地总结每一个应用的大概流程,最终真正了解到了一个应用的上层过程。如dhclient,ping,arp等。
8.后面我根据自己学过的知识经行加深,开始在自己的linux机器上面架构samba服务器,通过source insight直接修改,查看linux机器上的源代码。
9.由于平常的测试需要开始了解cdrouter,upnp1.5认证工具等,同时也架构过dhcp服务器,wpa_supplice等测试环境。
然后等上层的东西知道了后,我就开始看linux内核,看上层的那些应用程序做了动作以后会产生什么东西,这些东西是怎么在内核中工作让我们的硬件做出反应实现人机交互的。
最终认识到整个网络交互的过程,知道数据如何由源头跑到终点,然后不断地可持续发展下去的,也只有知道了这么多,才知道某个平台上的程序应该怎么去做是可以得,怎么做才是更好的。
其实上面只是暂时记得的东西,日后想起继续补充谢谢。