通信之美--写在前面

真的是好久没有写博客了,最近被各种折磨,第一次感觉时间不够用了。可是,还是想写点东西记录下(就在登录的时候,发现又有好几位关注者,感谢你们的支持!)。最近看了吴军师兄的《数学之美》,收益颇多。在李开复老师的序言中,多次(《浪潮之巅》中也有)提到在科学家中善于表达真的是难能可贵。“之前就曾说过,在我认识的顶尖研究员和工程师里,吴军是极少数具有强大叙事能力和对科技、信息领域的发展变化有很深的纵向洞察力,并能有效归纳总结的人之一”


可见,一个良好的表达能力是多么重要,无论文学还是学术(莫言讲故事和Tse讲通信)。起初,自己对语言的把握自认为还算不错,可是自从牙齿复发后,我就不愿意讲话了,然后就更加不会表达了。但是生活中又有那么多美,叫我如何是好?


吴军师兄的Google黑板报追了一段时间,出书后果断都买了,喜欢书里的率真,有个性的点评,虽然有些点评自己觉得有那么点过,不过还是很喜欢!(发现国外的教科书里,感叹词出现频率很高,我想这也是作者写激动的结果吧,要的就是这种真情流露);不过师兄被腾讯挖来后,本想下一步很大的棋,来改善企鹅的搜索引擎,不过从目前的发展来看,不够理想。是不是一种过于技术的一种“大理想”观念,实现难度很大?不过这些都是后话啦!对于我这种非计算机专业出身的,短见就不可避免了。有go-agent翻翻墙,用下ipv6省点流量,也就这么点大的出息了。


在看《数学之美》过程中,萌发了自己来写本专业的东西如何,《通信之美》?如果你看过《数学之美》,便会发现吴军在搞通信的研究所里搞计算机的结果就是,很多思想都借鉴了通信中的算法:隐含马尔科夫、信息熵、维特比算法等。当然这些本源都是数学,碰巧通信专业里拿来用了,所以叫做数学之美是完全正确的。《数学之美》一句话总结下:吴军师兄以自然语言处理(他的看家本领)为载体,或生动或深刻地阐述了其中蕴含的数学知识和原理,当然也不乏鲜活的人物故事。那么,自己可否以通信专业为载体,来阐述自己对通信的理解呢?


我想,也许激进的读者可能会说:你也不瞧瞧你自己是什么水平,能驾驭这个题目吗?是的,我也十分担心。不过,仔细一想,我仍然觉得还是有写点东西的必要,能帮助人当然更好。因为:

(1)自己本科毕业的学校就是搞通信的,记得当时有老师跟我说,你离开了这,你就踏出了通信界。对此,我不怀疑,貌似更加坚定了。在本科的学习中有好几位老师给我留下了深刻的印象,包括刘杰教授不拘一格的讲法和全英文的教案,还有杨鸿文老师的博客和言传身教,都潜移默化地影响着我。

(2)既然选择了离开,来到新的环境发现:呵呵,真的跟原来不一样耶,这边的氛围不一样了。数学的威力大到什么都能干,通信问题通过各种assumption后,等同于一个优化或者数学模型。好了,这个时候你就不需要任何通信知识了,只要你线性代数+组合+优化+博弈等等学科有能力,那就可以发好多paper呢!但是但是,真正有用的是什么?如果你说你通过这些实现了自我肯定,我会支持你!(声明:没有半点立场表明这种氛围不好哈~)不过,如果你喜欢回过头来再思考思考,那么你就会发现原来正是通信这个学科给你带来了这个舞台,把原本以为学了没用的数学知识(当年学特征值的时候,真的快要崩溃了,可是MIMO的核心不就是特征值吗?),你居然能用它来解决问题(问题实际不实际再说),这不就是我们学习知识的初衷嘛!所以,为了登上这个舞台,或者为了在舞台上更加从容地表演,你必须要有些关于通信最基本的知识来过渡和铺垫。不是吗?

(3)发现还是有许多周边同学,研究生还是本科生都慢慢地忽视了通信最基本的知识,因为对于他们来说数学就够了;但是,我认为这样的认知过程是有缺陷的,如果扔掉了本源而拘泥于细节末梢,往往是只有把问题越做越复杂。当年的Space-time block coding VS. Space-time Trellis coding 两种技术就是很好的例子,搞Trellis的人问题建模成数学后,就在那里狂算,越搞越复杂。而Alamouti 却从本源出发,几乎以一种最原始最通俗的方法设计了block coding 的概念,也就是现在被广泛使用的Alamouti Transmission Diversity。这一篇文章就让JSAC的影响因子涨了不少!所以,有时候我们需要追本溯源的方式和方法。


那么到底要写些什么呢?我真的还没有构思好,现在只是萌发了这样一点思想(很强烈)。不过,我想在网上写通信的人已经很多了,家园上陈老师的连载影响就非常大,佩服陈老师的毅力,在工作之余还坚持原创写作,值得尊敬!那么,我再来写,也没有什么意思了。


我觉得《通信之美》的主要内容不是技术和原理,而是记录自己从一无所知到对通信有感觉,然后进一步热爱的过程。主要是我自己在学习某些通信知识时内心的想法和思考过程,当然人的认知都有误区,我也会尽量保持最真实的过程。当然,要写好这些内容,我不得不再回过头去看一遍《通信原理》,这就是找寻最初的美吗?

当然,如果有许多人支持,那就再好不过了,不过写这篇文章的目的,主要是一个优化问题我一直无法解决,所以我想我该停下来思考思考了。初步计划寒假开始写作,毕竟这一个月临近期末了,伤不起啊!




  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
主要讲述了计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。 本书33章,有33位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。33位大师,每个人对代码之美都 有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。 虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。 本书收录的是软件设计领域中的一组大师级作品。每一章都是由一位或几位著名程序员针对某个问题给出的完美的解决方案,并且细述了这些解决方案的巧妙之处。 本书既不是一本关于设计模式的书,也不是一本关于软件工程的书,它告诉你的不仅仅是一些正确的方式或者错误的方式。它让你站在那些优秀软件设计师的肩膀上,从他们的角度来看待问题。 本书给出了38位大师级程序员在项目设计中的思路、在开发工作中的权衡,以及一些打破成规的决策。 第1章 正则表达式匹配器 。 1.1 编程实践 1.2 实现 1.3 讨论 1.4 其他的方法 1.5 构建 1.6 小结 第2章 Subversion中的增量编辑器:像本体一样的接口 2.1 版本控制与目录树的转换 2.2 表达目录树的差异 2.3 增量编辑器接口 2.4 但这是不是艺术? 2.5 像体育比赛一样的抽象 2.6 结论 第3章 我编过的最漂亮代码 3.1 我编过的最漂亮代码 3.2事倍功半 3.3 观点 3.4 本章的中心思想是什么? 3.5 结论 3.6致谢 第4章 查找 4.1. 耗时 4.2. 问题:博客数据 4.3. 问题:时间,人物,以及对象? 4.4. 大规模尺度的搜索 4.5. 结论 第5章 正确、优美、迅速(按重要性排序):从设计XML验证器中学到的经验 5.1 XML验证器的作用 5.2 问题所在 5.3 版本1:简单的实现 5.4 版本2:模拟BNF语法——复杂度O(N) 5.5 版本3:第一个复杂度O(log N)的优化 5.6 版本4:第二次优化:避免重复验证 5.7 版本5:第三次优化:复杂度 O(1) 5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. 结论 第7章 美丽测试 7.1 讨厌的二分查找 7.2 JUnit简介 7.3将二分查找进行到底 7.4 结论 第8章 图像处理中的即时代码生成 第9章 自顶向下的运算符优先级 9.1. JavaScript 9.2. 符号表 9.3. 语素 9.4. 优先级 9.5. 表达式 9.6. 中置运算符 9.7. 前置操作符 9.8. 赋值运算符 9.9. 常数 9.10. Scope 9.11. 语句 9.12. 函数 9.13. 数组和对象字面量 9.14. 要做和要思考的事 第 10章 追求加速的种群计数 10.1. 基本方法 10.2. 分治法 10.3. 其他方法 10.4. 两个字种群计数的和与差 10.5. 两个字的种群计数比较 10.6. 数组中的1位种群计数 10.7. 应用 第11章 安全通信:自由的技术 11.1 项目启动之前 11.2剖析安全通信的复杂性 11.3 可用性是关键要素 11.4 基础 11.5 测试集 11.6 功能原型 11.7 清理,插入,继续…… 11.8 在喜马拉雅山的开发工作 11.9 看不到的改动 11.10 速度确实重要 11.11 人权中的通信隐私 11.12 程序员与文明 第12章 在BioPerl里培育漂亮代码 12.1. BioPerl和Bio::Graphics模块 12.2. Bio::Graphics的设计流程 12.3. 扩展Bio::Graphics 12.4. 结束语和教训 第13章 基因排序器的设计 13.1 基因排序器的用户界面 13.2 通过Web跟用户保持对话 13.3. 多态的威力 13.4 滤除无关的基因 13.5 大规模美丽代码理论 13.6 结论 第14章 优雅代码随硬件发展的演化 14.1. 计算机体系结构对矩阵算法的影响 14.2 一种基于分解的方法 14.3 一个简单版本 14.4 LINPACK库中的DGEFA子程序 14.5 LAPACK DGETRF 14.6递归LU 14.7 ScaLAPACK PDGETRF 14.8 针对多核系统的多线程设计 14.9 误差分析与操作计数浅析 14.10 未来的研究方向 14.11 进一步阅读 第15章 漂亮的设计会给你带来长远的好处 15.1. 对于漂亮代码的个人看法 15.2. 对于CERN库的介绍 15.3. 外在美(Outer Beauty) 15.4. 内在美(Inner Beauty ) 15.5. 结论 第16章,Linux内核驱动模型:协作的好处 16.1 简单的开始 16.2 进一步简化 16.3 扩展到上千台设备 16.4 小对象的松散结合 第17章 额外的间接层 17.1. 从直接代码操作到通过函数指针操作 17.2. 从函数参数到参数指针 17.3. 从文件系统到文件系统层 17.4. 从代码到DSL(Domain-Specific Language) 17.5. 复用与分离 17.6.分层是永恒之道? 第18章 Python的字典类:如何打造全能战士 18.1. 字典类的内部实现 18.2. 特殊调校 18.3. 冲突处理 18.4. 调整大小 18.5. 迭代和动态变化 18.6. 结论 18.7. 致谢 第19章 NumPy中的多维迭代器 19.1 N维数组操作中的关键挑战 19.2 N维数组的内存模型 19.3NumPy迭代器的起源 19.4 迭代器的设计 19.5 迭代器的接口 19.6 迭代器的使用 19.7 结束语 第20章 NASA火星漫步者任务中的高可靠企业系统 20.1 任务与CIP 20.2 任务需求 20.3 系统架构 20.4 案例分析:流服务 20.5 可靠性 20.6 稳定性 20.7 结束语 第21章 ERP5:最大可适性的设计 21.1 ERP的总体目标 21.2 ERP5 21.3 Zope基础平台 21.4 ERP5 Project中的概念 21.5 编码实现ERP5 Project 21.6 结束语 第22章 一匙污水 第23章 MapReduce分布式编程 23.1 激动人心的示例 23.2 MapReduce编程模型 23.3 其他MapReduce示例 23.4 分布式MapReduce的一种实现 23.5 模型扩展 23.6 结论 23.7 进阶阅读 23.8 致谢 23.9 附录:单词计数解决方案 第24章 美丽的并发 24.2 软件事务内存 24.3 圣诞老人问题 24.4 对Haskell的一些思考 24.6 致谢 第25章 句法抽象:syntax-case 展开器 25.1. syntax-case简介 25.2. 展开算法 25.3. 例子 25.4. 结论 第26章 节省劳动的架构:一个面向对象的网络化软件框架 26.1 示例程序:日志服务 26.2 日志服务器框架的面向对象设计 26.3 实现串行化日志服务器 26.4 实现并行日志服务器 26.5 结论 第27章 以REST方式集成业务伙伴 27.1 项目背景 27.2 把服务开放给外部客户 27.3 使用工厂模式转发服务 27.4 用电子商务协议来交换数据 27.5 结束语 第28章 漂亮的调试 28.1 对调试器进行调试 28.2 系统化的过程 28.3 关于查找的问题 28.4 自动找出故障起因 28.5 增量调试 28.6 最小化输入 28.7 查找缺陷 28.8 原型问题 28.9 结束语 28.10 致谢 28.11 进一步阅读 第29章 把代码当作文章 第30章 当你与世界的联系只有一个按钮 30.1 基本的设计模型 30.2 输入界面 30.3 用户界面的效率 30.4 下载 30.5 未来的发展方向 第31章 Emacspeak:全功能音频桌面 31.1 产生语音输出 31.2 支持语音的Emacs 31.3 对于在线信息的简单访问 31.4 小结 31.5 致谢 第32章 变动的代码 32.1 像书本一样 32.2 功能相似的代码在外观上也保持相似 32.3 缩进带来的危险 32.4 浏览代码 32.5 我们使用的工具 32.6 DiffMerge的曲折历史 32.7 结束语 32.8 致谢 32.9 进一步阅读 第33章 为“The Book”编程序 33.1 没有捷径 33.2 给Lisp初学者的提示 33.3 三点共线 33.4 不可靠的斜率 33.5 三角不等性 33.6 河道弯曲模型 33.7 “Duh!”——我的意思是“Aha!” 33.8 结束语 33.9 进一步阅读 后记

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值