好奇,我想知道你们所经历的所有程序员或新手(比如我)都做了什么。那么你写的最复杂的程序是什么?
答案 0 :(得分:33)
我在2005/6创建的应用程序让人们可以创建不同颜色的房屋/汽车等的可视化。现在,这肯定可以在Photoshop中完成,但它有很多,甚至更多。
答案 1 :(得分:20)
编译器
答案 2 :(得分:16)
我不想写的,也没有乐趣,写作。
答案 3 :(得分:10)
我曾经不得不编写一个使用BWT(Burrows Wheeler Transform)的压缩算法,并且算法中有一个步骤,您必须创建一个巨大的矩阵。我遇到了内存问题和速度问题,因为矩阵太大了。来发现,有一个非常简单的算法我可以使用并完全避免使用矩阵。
我还必须在ASM中编写一个简单的操作系统,这非常棘手。
答案 4 :(得分:8)
用于求解非线性偏微分方程的库。我们在理论物理小组中使用它来解决在非常特殊的低温环境中发生的薛定谔方程的非线性适应。
让一个简单的求解器工作相对容易,但将其概括为和使其快速是一个挑战。
它目前是谷歌代码的开源代码:fdtl
答案 5 :(得分:8)
我曾经制作了一个实时多镜头视频处理软件,在33MHz处理器和640Mb RAM上进行运动检测和累积组织学魔术。困难的部分是让它快速发展;大量的哈希,比特变换,作弊,咒骂和深夜与披萨和ephiphanies约4年。哦,我做了一个处理颜色的版本。哦,还有一个可以看到大房间蒸汽和白烟之间差异的模块(就像核反应堆一样)。哈,你试试吧!你不会在任何教科书中找到这样的例子。 :)
答案 6 :(得分:7)
使用一个代码库在windows和mac上编译和运行的应用程序。
答案 7 :(得分:6)
与加密和安全性有关的任何事情总是比它出现的难度高1000%!
答案 8 :(得分:5)
用于片状在线服务的通用调制解调器驱动程序。它还必须支持30种类型的调制解调器(在Hayes调制解调器之前)。它们都有不同的时序特征。
必须在8086和Z80汇编程序中为我们产品的CP / M和DOS版本编写。我仍然对某个半双工调制解调器做噩梦...
答案 9 :(得分:4)
使用COM实现自动化,并在整个网格中执行
答案 10 :(得分:4)
可能是一个平局:使用satisfiability modulo theories的集合的决策问题求解器和在UNIX操作系统上运行的C / ASM中的协作进程调度程序。第一个问题很简单 - 在使用SMT之前从未做过,并且将高度理论化的论文转化为不同背景下的实际实现是很困难的。第二个涉及挖掘到OS数据结构以理解它们,然后替换位和在程序中的函数之间来回跳转,就像它们是单独调度的线程一样。
答案 11 :(得分:4)
使用ffmpeg api的专有视频流类 - 在处理数据包和在适当的时间显示帧的级别,与音频同步。并不像列出的其他一些人那么难,但它踢了我的屁股已经好几个星期了!
答案 12 :(得分:3)
2件事:
1)编译器。这个语言的名字是“3-balls”(向一个朋友开球致敬)
2)没有单个宏的Windows程序集程序,所有内容都被推送到堆栈,地址都是相对的。它适用于所有Windows(没有地址编码)。基本上它是一个带有一些按钮的简单窗口。标签。但好处是,从对象和可执行文件中,我提取了操作码并从中生成了一个shellcode。所以我可以利用程序上的任何缓冲区,并在运行的程序之上创建我自己的应用程序!很高兴在远程计算机上显示一个屏幕,并且远程计算机将执行他的计算机上不存在的程序,您可以将要执行的程序发送到远程计算机。
当然这对于没有任何东西来说太多了......但它值得我输入的所有字节!
答案 13 :(得分:3)
A vector graphics library我于1998年开始撰写,广泛使用分层细分来提供O(log n)中的许多操作以及在OpenGL显示列表中记忆的各向异性细分,以维持动态场景的高帧速率。特别是,它可以流畅地放大复杂的矢量图形,因为它将它们分解成树并有效地剔除它们。多年来,它是迄今为止世界上最快的消费级矢量图形渲染器。
原始版本是200kLOC的C ++,但构成其设计基础的理论问题花了我2年的时间来解决。
答案 14 :(得分:3)
调试器
答案 15 :(得分:2)
几周前我在一次采访中被问到这个问题(还没有听说我是否得到了这份工作)。
对我来说,在我的第一个编程课程中,基本的介绍课程之后是几个作业。这是我大学第一次提供网页设计课程。由于它是新的,几个毕业的高年级学生签约,占大约一半的课程。教练习惯于教授高级课程,并且已经认识了课堂上的许多课程。基本上他是在他们的水平上教授它,而不是那个相当缺乏经验的另一半。
最困难的任务可能是编写纯文本浏览器。解析各种标签时遇到问题并寻求帮助。教练说,好吧,如果你有编译器课程,你可以写一个简单的。那时“编译器”是一个黑盒子,在程序运行之前做了一些神奇的事情。我真的不知道它是什么,更不用说我能写一个了。
让事情变得困难的事情是没有必要的工具来完成这项工作,包括理解我用Google搜索时得到的结果。 (如果你已经理解了你正在寻找的东西,那么手册页和API是很棒的,但不是教授菜鸟。)在我的合作经历中,当我有一位导师说,如果你被卡住了,我学到的最多。超过几个小时,让我知道,所以我可以让你解开并继续前进。比那些每周都不想听到我的人好多了。
答案 16 :(得分:2)
我编写了几段代码,这些代码在多个空间维度(从3到高达7维)进行建模。当您处理无法实际绘制甚至可视化的内容时,问题会变得更加困难。
但实际上,作为一个花费大部分时间为其他人创建工具包的人,我认为我所做的最复杂的程序实际上是工具箱,每个工具箱都可以使用其他一致的方式。因为它们都是一起工作的,所以你可以说几十个实用程序实际上就像一个工具一样工作。 (当然,任何模块化代码在这方面都是相似的。)在这里,我提供的通常是建模工具,用于解决颜色管理问题。
答案 17 :(得分:1)
我目前正在编写iPhone应用程序。这绝对是我写过的最艰难的项目。不是因为语言困难,代码很难或任何其他原因,而是因为设备上的所有内容都必须如此流畅。
一切都必须看起来和感觉自然。因为我是一个真正的程序员(对流畅性,平滑性或设计没有任何理解......所以看起来如此)这对我来说真的很难。该程序工作,代码明智,但用户界面明智,我有更难的时间完成任务。
线程也很糟糕; - )
答案 18 :(得分:1)
我正在研究Yet Another PHP Framework,到目前为止,这是一段有趣的旅程。
答案 19 :(得分:0)
没什么特别的,但是可以用三角形绘制“球体”的函数,n x n个点并插入两种颜色之间的三角形(所以输入是半径,细分数,color1,color2)。它工作时很难但非常有趣:)