算法和工程,你说哪个重要?

  讨论算法和工程哪个更重要,这个问题,其实比争执C++和Java哪个更“好”要用意义的多,对这个问题的理解和阐释,将给大一的计算机专业新生提供很多指点。

  以往的讨论基本上带有偏见,这回,我以一个ACMer+有两年实际项目开发经验的大三计算机专业学生的身份,试着讨论下这个问题。欢迎拍砖。

  很多搞算法的人,比如说很多的ACMer,认为做工程搞开发无非是一些API函数的调用而已,没有技术含量。其实不然,这个问题,可以从几个方面来考虑。第一,单单是调用API函数,就有很多东西需要学习,比如Windows下的TCHAR CString PWSTR wchar_t之类,有什么区别?该如何正确的安全的转换?仅此就需要好好掌握和积累好长一段时间了。第二,做开发不仅仅是API的调用,开发环境的熟悉,其实很费时间和精力,比如说Java的开发环境的配置和维护,就有很多问题要解决。第三,设计模式?这是软件开发中思维层次比较高的部分,但是显然,不是所有人的思维层次都可以达到相当的高度的。你承认么?第四,需求分析。我敢肯定,很多人不会做需求分析,或者做不好需求分析。不能很好把握用户的实际需求和软件使用习惯,这样的软件,当然算不得好软件。第五,软件的开发也是需要算法的,根本不懂算法的人,当然写不出什么好软件,etc

   很多做开发的人,很鄙视那些搞算法的。我们班就有很多人看不起做算法的,认为都是书呆子,除了数学和程序,什么都不会。客观说,有一点是必须承认的,很多认为算法极其重要,算法最重要,算法怎么样怎么样的人,其实是在掩饰自己除了算法什么都不会的尴尬局面。会写程序,但是不会写注释,变量命名随心所欲的人大有人在。

   但是,一个现实是,算法学的好的,工资很高,微软、百度的面试题,基本上都是算法类的或者智力类的。其实,很多人误解了,之所以这样是因为公司考虑到很多大学生在本科里并没有做过什么实际项目,但是基本上都有学数据结构和算法,而算法又确实重要,所以才有这样的现实。你不得不承认,现在很多人的开发不怎么需要算法,你要知道,是“很多人”,你想,能在微软拿工资的人,多么?大部分还是在二三流企业,这些开发,需要多少算法呢?园友心里清楚。图灵奖的都是搞理论的?你看有多少人获得图灵奖?

   算法为开发做了支撑,可以让程序更有效率,解决更大规模的问题。

   但是,显然算法不是全部。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值