作者ggg12345 (ggg)
看板Soft_Job
标题Re: [请益] 软体方面工作的一些问题...
时间Mon Apr 26 19:21:37 2010
※ 引述《walker2009 (谁人未尝自以为)》之铭言:
: 当初因为喜欢写程式加入了资工
: 到现在硕士班
: 因为想写聪明的程式而选了演算法
: 但是每次有人问起
: Q: 你是学什麽?
: A: 演算法
: Q: 什麽的演算法?
: A: ...就各领域的演算法都看
: Q: 这样不行喔, 没有一个专精的方向, 以後出去怎麽找工作
: A: ....(担心)
: Q: 那你之後要做什麽?
: A: 我比较想写软体
: Q: 怎麽样的软体?
: A: ....(担心+1)
: 就是...虽然我从来没怕过写程式
: 也很喜欢写程式, 也不担心有什麽程式会写不出来
: 但是我不知道我想写怎样的程式, 我该去写怎样的程式
有一本书的书名是 Algorithm + Data Structure = Program
这是一本用来教资料结构的书.
如果进一步再问资料结构跟Algorithm有甚麽关系? 就会发现
资料结构的书都在对着不同的资料表达形式, 讲怎麽得到同样
结果的处理动作. 资料结构课本的那些处理步骤(也就是演算
法)都是因资料的表达形式(结构)而挑出较有效率的次序方法.
也就是先有资料的表现形式後才有演算法.
演算法分析就变成是要改进不同的处理方式以找出更有效的方
法. 改进也可能改变资料的记载与表达形式, 甚至改变执行处
理的形式与数量, 譬如平行演算法与架构, 这时候就改变到执
行动作的硬体了.
程式就是给硬体去执行来解出问题找出所要的结果. 资料结构
的课本都用一个一个的小问题来提问与展示. 教科书会说电脑
里所解的问题都可以拆分成这些基本的小问题来组成. 那麽小
问题都学会了, 大问题会不会解, 解特定问题的程式会不会写?
多数是不会 !
因为不知道如何把单一的大问题分解拆分变成那堆学过的小问
题, 再将小问题的功能按某些步骤次序兜起来变成能解大问题
所要的功能.
多数人的办法就是拿个具体的大问题练它一练, 最终结果是不
是变成程式让执行的硬体跑出想要的结果, 这问题越接近业界
想要解的, 而结果越让人觉得果真神勇有效, 那找工作时把这
个练习拿出来, 一切所谓学习的能力不就全现出来了?
如果您想说, 您最专精的就是能改写出最有效的演算法.
那就要找出程式里的那一块用了那种您认为憋脚的演算法, 您
能挑出那一块接上您新写的那块(资料结构+演算法)也行, 只
要验证确实改出了惊人的效果, 有此种探囊取物, 能外科手术
式的替换改进, 那也绝不用担心无人识才.
最简单的办法就是动手写程式展示一件就很动人了.
: 我不知道之後毕业了该怎麽去找工作, 可以找怎麽样的工作
: 不知道以後怎麽跟别人说我会什麽, 想做什麽
: (您好, 我很会写程式, 我学的是演算法...就各领域的演算法都有看) <- 感觉非常怪
: 所以想请有经验的大大指引一盏明灯...
: 资工...以後出去可以做什麽???
: 想写软体...现在就要决定写什麽软体, 开始加强了吗??
: 只会写程式....之後出去会不会找不到工作没人要??
: 研究所学的是演算法....出去工作会不会让人觉得没实作经验,没专长,都是理论,没人要?
: 真的好迷惘 Orz
通常学校的老师会说:
将大功能做细部分解, 再把各小功能组合合成, 只要试误地练几次就
知道了.
会看功能组成, 能判读出其处理的演算法, 就知道效率的优劣, 就可
以找出更有效的演算法. 也就能如探囊取物地以外科手术的方式替换
出高效模组, 那就能完成高超的解题程式罗.
而某个功能模组不就是 (data structure + algorithm) 吗?
最重要的不就是要有个更有效率的演算法产生出那个高效特优模组?
只要学通 演算法 , 毕业找工作怎会有问题?
※ 编辑: ggg12345 来自: 140.115.4.12 (04/26 19:40)
1F:推 ledia:怎麽觉得这篇很不切实际, 实际一点来说, 做 multimedia, 04/26 21:37
2F:→ ledia:如果不懂得 wavelet, 不懂编码学, 演算法好像也不太有帮助 04/26 21:38
3F:→ ledia:写网路程式不懂得 OSI layers, 不懂得 socket, 又有何用? 04/26 21:40
4F:→ ledia:各个 domain knowledge 各有其眉角, 演算法虽然是根基, 但是 04/26 21:40
5F:→ ledia:只有演算法资料结构是不够的 04/26 21:41
6F:→ ggg12345:是的!不然原波也不用问啦,domain knowledge才看得懂组成! 04/27 09:33