程序人生——兼修

学习网络编程,有合适的硬件相助更为重要。

前不久有老师问过我,你觉得在Vs上面编程好玩,还是在ccs上面编程好玩?Vs偏向软件编程,而ccs是偏向硬件编程的。我当时想了想,说都好玩。

我仔细想了想的确如此,软件是建立在硬件的基础上的,所谓软件不过是让硬件实现响应的功能,其实底层都是硬件的铺垫。而另一方面,软件中的算法思想,让硬件的运行变得更为合理高效。所以在我看来,软件和硬件应当是相辅相成的,所以我们在学习编程的时候,一方面要向上层软件学习,另一方面关于底层硬件的知识也应当和前者同步,我想真正的高手一定是软硬兼修的,我期待成为那样的高手。

软件方面不外乎语法算法,语法是语言特有的,而算法的核心思想却是相同的,我们总是在一味地深究算法的奥秘,却不关注语法的微妙,熟悉语法的人必能将代码不断重构,愈加优化,在他人看来不明其意的语句中却能发现其中的内涵所在。假如你在c语言的参数中遇到[]()+函数,你会不会惊慌失措。恰恰这是你提高语法的神秘一步,经过思索,你会发现这原来是c语言中的函数指针数组作为参数的应用,而指针正是C语言的精华所在,函数指针在一般人写的程序中几乎不见,只有强大到一定地步的人才能对其灵活应用。

另一方面,硬件的学习也很重要,与其说是学习,不如说是接触。

所以后续会带来一系列硬件相关的编程文章。搞硬件编程,想必应该听过“树莓派”这个名号,的确,用它来学习编程再合适不过了,卡片般的大小,功能却堪比个人电脑,可以装上linux系统,通过远控或是显示屏控制,将其真正地变成自己学习编程地工具。

笔者听好友所说,Linux的kali系统,集成了很多有关网络渗透的工具,其中也包括wireshark,那对winpcap的学习以及深入的网络编程的学习自然是有促进作用的,那为树莓派装上kali系统自然也是值得一试的。

最后,必须隆重介绍的是esp8266模块,起初我以为他只是一个串口转wifi的小模块,直到实际应用了才发现这个模块的强大到可怕的地方,仅关于网络编程来讲,它的两个功能让我彻底被他折服,一个是通过spi flash内置文件系统,我们可以将网页放置其中,然后通过局域网访问,这无疑就是服务器的精简版,对于学习网站建设来说再合适不过了。而另一个则是这个模块内置tcp/ip协议,意味着我们可以通过tcp或是Udp和我们的计算机端口通信,而这对winsock的学习也是适用的,那么我们的网络编程路上有了这个利器的相伴,又何不能所向披靡呢?

当初老师问我哪个更好玩,注意“好玩”这个词汇,意味着我们只要投入其中就能体会到其中乐趣所在,而乐趣正是我们前进的源源不断的动力所在。

我相信软硬件是相辅相成的,在这纷乱芜杂的技术世界中,我选择软硬兼修,虽前路漫漫,吾往矣。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180126G19G2F00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券