查看: 8998| 回复: 49
跳转到指定楼层
上一主题 下一主题
收起左侧

[其他] 向经常编程的人请教个问题

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
现在跟的udacity and刚刚完成的coursera的算法课时候都发现了,我写程序效率好像很低下。
虽然知道要先手写大致流程,然后写code,但是纸上画的时候觉得自己清楚了,其实还是模棱两可的,结果实际写起来乱的一塌糊涂,老是在改错,当然最终经过很多frustration还是可以做出来,结果总是很简单的作业也要1-2个小时才做的出来(比如udacity 101的期末stars题),至今算法课都还有2个编程题没有做。

纸上画的步骤,是要写成跟算法导论里面那种pseudo code还是画到心里觉得可以编就开始呢?

不知道你们具体是如何编程的呢?
我的过程哪个步骤不对呢?这个过程经过实践应该能提高的吧?

上一篇:分享一个练习编程的网站
下一篇:继续土人土问:一般说编过多少行程序,是怎么统计的啊?
🔗
RehsuR 2012-5-11 05:06:52 | 只看该作者
全局:
我水平不高,随便说说吧,不一定是最好的办法。
我好像很少写pseudo code吧,最复杂的一个project是画了个flow chart,知道大概流程以及都需要什么样的object这种,也不一定需要想多全面,随着写肯定有新东西想加进去的。主要是先把框架搭起来,都有什么class什么method这种,互相之间怎么衔接的什么的,然后再一个个的填method,实现功能。
但是那个project是比较复杂的那种,不少代码,所以需要那么麻烦。平时简单的就直接写就好了吧,想到哪儿写到哪儿,写到哪儿查到哪儿,这样想完了也就写完了吧?除非复杂的数据结构在纸上划拉一下免得搞错了,其他的写起来一般都很快吧。debug肯定是要花一些时间了,写的时候小心点儿可以避免很多bug,或者用个好点儿的IDE至少可以避免变量名写错这种低级问题吧。写的时候多做一些小的test,确保每步结果比较正常,再往下走,一步一步慢慢来,后期就可以省很多debug的时间,不然代码多了起来不容易debug。很容易写起来特别快,debug花了特别多时间,所以我就尽量能test的时候就随手test一下,免得后边儿debug郁闷。感觉很多东西都是写熟了就好了吧,知道有的人用自己特别熟悉的language,简单的小程序写完了都不用debug就一次通过的。我现在肯定是不行了。。慢慢来吧~
回复

使用道具 举报

🔗
 楼主| modifiedname 2012-5-11 05:37:13 | 只看该作者
全局:
恩谢谢

我没有说清楚,我觉得我是在'debug'但是经常是流程不对,所以出错误的结果
比如udacity 101有一道题,是比较2个单词的edit distance,就是说,最少经过多少次delete, insert, or replace,第一个词就跟第二个一样了。

就这么个东西都写了很久,不知道一般这样简单的题,应该是需要多少时间做出来就算还成呢?
回复

使用道具 举报

🔗
zach 2012-5-11 07:31:18 | 只看该作者
全局:
看来我写的程序都太简单了。。。都是打好草稿写好公式,就敲进matlab了。最后做ppt给人看的时候才补流程图……
回复

使用道具 举报

🔗
RehsuR 2012-5-11 08:27:33 | 只看该作者
全局:
恩谢谢

我没有说清楚,我觉得我是在'debug'但是经常是流程不对,所以出错误的结果
比如udacity 101有一道题,是比较2个单词的edit distance,就是说,最少经过多少次delete, insert, or replace,第一个词就跟第二个一样了。

就这么个东西都写了很久,不知道一般这样简单的题,应该是需要多少时间做出来就算还成呢?
小K 发表于 2012-5-10 15:37


啥叫“我觉得我是在'debug'但是经常是流程不对,所以出错误的结果”?debug什么流程?怎么不对?
多长时间这个真不好说吧。。debug时间很随机的说。。有时候就是调不出来也没辙。。所以我觉得还是在写的时候小心点儿比较有用。。
ps,这种题懒人我貌似就找现成儿的method做了。。never reinvent the wheel...哈哈。。
回复

使用道具 举报

🔗
RehsuR 2012-5-11 08:28:20 | 只看该作者
全局:
看来我写的程序都太简单了。。。都是打好草稿写好公式,就敲进matlab了。最后做ppt给人看的时候才补流程图……
zach 发表于 2012-5-10 17:31


我的ppt从来米有流程图。。那么复杂没人会看的吧。。=。=
回复

使用道具 举报

🔗
zach 2012-5-11 08:34:05 | 只看该作者
全局:
我的ppt从来米有流程图。。那么复杂没人会看的吧。。=。=
RehsuR 发表于 2012-5-10 19:28

最简单的那种……有时候要用。或者写在report里。
回复

使用道具 举报

🔗
RehsuR 2012-5-11 08:39:19 | 只看该作者
全局:
恩谢谢

我没有说清楚,我觉得我是在'debug'但是经常是流程不对,所以出错误的结果
比如udacity 101有一道题,是比较2个单词的edit distance,就是说,最少经过多少次delete, insert, or replace,第一个词就跟第二个一样了。

就这么个东西都写了很久,不知道一般这样简单的题,应该是需要多少时间做出来就算还成呢?
小K 发表于 2012-5-10 15:37


突然想起来这个edit distance不就是一个sequence alignment的问题吗?什么算法做的应该?dynamic programming? 用递归写应该会比较简单吧?不过真让我写我还得先回顾一下dynamic programming。。都忘得差不多了。。那个课上应该讲过相关的东西吧,是不是我想复杂了。。。怎么觉着101不能这么麻烦吧。。要真这样儿那我应该去上一下。。=.=
回复

使用道具 举报

🔗
 楼主| modifiedname 2012-5-11 08:39:39 | 只看该作者
全局:
matlab不一样吧,
R我也是基本直接就写了,没有什么大问题

现在上的其他课什么的,思路不一样,头发都要揪掉一大把了

比如我一上来就觉得应该递归,递归半天不对,就改循环,然后循环还是不对,重新定义dictionary来做,dictionary不对,就list,就差没有上丑陋的global variable了
其实最终答案才寥寥几行字
郁闷死
回复

使用道具 举报

🔗
 楼主| modifiedname 2012-5-11 08:40:27 | 只看该作者
全局:
突然想起来这个edit distance不就是一个sequence alignment的问题吗?什么算法做的应该?dynamic programming? 用递归写应该会比较简单吧?不过真让我写我还得先回顾一下dynamic programming。。都忘得差不多了。。那个课上应该讲过相关的东西吧,是不是我想复杂了。。。怎么觉着101不能这么麻烦吧。。要真这样儿那我应该去上一下。。=.=
RehsuR 发表于 2012-5-11 08:39

就是递归
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表