我正在重新阅读我的一些Steve McConnell书籍,这句话让我想到"科学家为了学习而建造,工程师为了建造而学习".在"为了建立而学习"的脉络中,我想知道:
软件工程师如何跟上最新技术和研究的最新进展?
通过ACM或IEEE的出版物似乎是研究人员发表的主要途径,但考虑到这些信息的封闭性,是否有人在研究界之外实际使用它?这种形式的研究也很新,风险很大,所以另外一个问题是你在哪里划出风险线?是值得研究前沿研究还是更好地等到它能够平装书.
编辑:我不是一个总菜鸟.我刚刚注意到(一些)老开发人员完全没有意识到新技术,甚至可能对新技术产生敌意.健康的怀疑总是有用的,但故意无知是危险的.为了防止这种情况发生在我自己身上,我对开发人员如何及时了解新趋势感兴趣.
计算机科学家和计算机程序员之间有什么区别?他们在工业界的实际工作有何不同?(不是在学术界)你能提供一些真实世界的例子吗?
在对算法进行一些研究之后,我发现了两个令我困惑的术语.我已经阅读了至少20篇论文,然而,两者都没有明确的定义.我希望有人可以帮助我区分启发式算法和元启发式算法.如果可能,添加它的来源.
ps:我已经知道这些词的含义是什么,但我不知道它们在计算机科学中究竟有什么区别.
提前致谢
我在一本书中读过这句话:
计算机科学中没有任何问题无法使用另一层次的间接解决.
有人可以解释一下吗?"间接水平"是什么意思?
根据我的理解,间接是使用值的指针而不是值本身的奇特名称.请为我澄清一下.
根据我的理解,所有NP完全问题都是NP难的,但已知一些NP难问题不是NP完全的,NP难问题至少与NP完全问题一样难.
这是否意味着非NP完全的NP难问题更难?它是如何变得更难?
我一直在阅读有关浮点数和计算机处理的浮点运算的很多内容.我在阅读它们时看到的最大问题是它们为什么如此不准确?我理解这是因为二进制不能准确地表示所有实数,所以数字四舍五入到"最佳"近似值.
我的问题是,知道这一点,为什么我们仍然使用二进制作为计算机操作的基础?当然使用大于2的更大的基数会以指数方式提高浮点运算的准确性,不是吗?
对于计算机使用二进制数系统而不是另一个基数有什么好处,并且有另一个基础曾经尝试过吗?或者甚至可能吗?
在SO上,人们有时会说"你不能用正则表达式解析X,因为X不是常规语言".然而,根据我的理解,现代正则表达式引擎可以匹配乔姆斯基意义上的常规语言.我的问题:
给定支持的正则表达式引擎
(?R)它可以解析什么样的语言?它可以解析任何无上下文的语言,如果没有,那会是什么样的反例?
(确切地说,"解析"是指"构建一个接受语法X生成的所有字符串并拒绝所有其他字符串的单个正则表达式").
添加:我特别感兴趣的是看到现代正则表达式引擎(Perl,Net,python正则表达式模块)无法解析的无上下文语言的示例.
我将开始学习抽象代数组,环等.我有兴趣了解任何编程语言,如果有的话可以帮助我学习/尝试我在理论上学到的概念.
编辑:我并不是在考虑实施我学到的东西.我有兴趣知道任何已经支持它们的语言.
O(1)空间是什么意思?我知道O(n)步骤就像算法/程序的计算量级,但不知道O(n)空间是什么.
确定1到N范围内缺失值的常见访谈问题已经完成了一千多次.变化包括2个缺失值,最多K个缺失值.
示例问题:范围[1,10](1 2 4 5 7 8 9 10)= {3,6}
以下是各种解决方案的示例:
简单的面试问题变得更难:给出数字1..100,找到丢失的数字
我的问题是,看到一个缺失值的简单情况是O(n)复杂性,并且较大情况的复杂性收敛于大于O(nlogn)的大小:
通过对范围进行排序(mergesort)并迭代它来观察缺失的元素,难道只是更容易回答这个问题吗?
该解决方案应该不超过O(nlogn),并且能够解决1到N之外的范围的问题,例如10到1000或-100到+100等......
是否有理由相信上述SO链接中的给定解决方案将比基于排序的解决方案更好地存在大量缺失值?
注意:对于这个问题,似乎有很多常见的解决方案,假设只有一个数论的方法.如果在S/E采访中被问到这样一个问题,使用更多的计算机科学/算法方法是不谨慎的,假设该方法与数论解决方案的复杂性相同......
更多相关链接:
computer-science ×10
algebra ×1
binary ×1
c ×1
c++ ×1
hardware ×1
heuristics ×1
indirection ×1
math ×1
p-np ×1
regex ×1