您认为计算机科学中的哪些概念使您成为更好的程序员?
我的学位是机械工程,所以最终成为一名程序员,我有点缺乏基础知识.我最近学到了一些标准的CS概念,让我对我正在做的事情有了更深刻的理解,特别是:
语言特色
数据结构
算法
显然,目前这个名单有点短,所以我希望得到以下建议:
我tar在目录中有一堆文件,我想立即从中提取所有文件.但这似乎没有做任何事情:
$ tar xf *.tar
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?如何一次解压缩一堆文件?
删除指针,将其设置为null并释放它有什么区别.
delete ptr;
Run Code Online (Sandbox Code Playgroud)
与
ptr=NULL;
Run Code Online (Sandbox Code Playgroud)
与
free(ptr);
Run Code Online (Sandbox Code Playgroud) 虽然单元测试似乎对API需要具有工业实力的大型项目(例如.Net框架API的开发等)有效,但似乎可能对小型项目有点过分.
什么时候自动TDD方法是最好的方式,什么时候可以更好地使用手动测试技术,记录错误,分类,修复它们等.
另一个问题 - 当我在微软的测试人员时,向我们强调,让开发人员和测试人员成为不同的人是有价值的,并且这两个群体之间的紧张关系有助于最终创造出一个伟大的产品.TDD可以打破这个想法并创造一种情况,开发人员可能不是严格找到自己错误的合适人选吗?它可能是自动化的,但似乎有很多方法可以编写测试,并且一组给定的测试是否"证明"质量是否可接受是值得怀疑的.
有没有人去创建一个对集合进行排序的视图?ICollectionView接口存在,它声称与WPF/SL对应(排序,分页,过滤)具有相同的职责,但是,除非我遗漏了某些内容,否则接口上没有排序方法/属性.
我有兴趣了解如何获取项目集合,然后通过WinRT中的视图对它们进行排序.
注意,我知道我可以手动执行此操作,但是,我想看看排序集合如何与WinRT主题转换交互,这些转换似乎在执行排序时添加了视觉效果.
好的,所以我对另一个列表感到很兴奋.我得到了一份beta Clojure编程书的副本......
我注意到的最重要的一点就是假设我知道......就像所有主要的java类一样.
除此之外,一般来说,我并不关心Java.我只是想要足够的知识,让Clojure成为我的选择.
关于如何学习我需要的所有内容的任何建议?
当我即将在VS2005中调试C++程序时,该程序并未在断点处停止.
VS说"没有为任何调用堆栈帧加载符号.源代码无法显示".
我能做什么?
据我所知,=和!=应该用于OCaml中的字符串.我看到了奇怪的结果,虽然我想更好地理解.
当我用=比较两个字符串时,我得到了我期望的结果:
# "steve" = "steve";;
- : bool = true
# "steve" = "rowe";;
- : bool = false
Run Code Online (Sandbox Code Playgroud)
但是当我尝试的时候!=我没有:
# "steve" != "rowe";;
- : bool = true
# "steve" != "steve";; (* unexpected - shouldn't this be false? *)
- : bool = true
Run Code Online (Sandbox Code Playgroud)
谁能解释一下?有一个更好的方法吗?

我不太了解这张照片.在Metro风格的应用程序中,C/C++意味着什么?原生C/C++?或者它是托管C++?他们(Metro风格的应用程序)甚至没有Win32层!
要创建一个兼容Metro风格和桌面的应用程序,我们应该只使用.NET代码吗?旧的本机应用程序可以在Windows8 Tablet上运行吗?
我正在阅读Practical Common Lisp.这本书很棒,语言很有趣,但我并不喜欢学习Emacs.我已经学会了Vim,这对于一个大脑来说已经是足够的文本模式编辑器了.我不想学习另一个.双控制命令伤害了我的头脑.在Windows上编写Lisp的最佳非Emacs解决方案是什么?