我是一名软件开发人员,拥有四年的.Net开发经验,我总是希望了解最新技术(通常与.net相关),并热爱学习它们。然而,我没有去大学,通过乐于助人的同事,.Net课程,互联网和好老书学到我所知道的一切。 我觉得我是一个优秀的开发人员,但是如果不像计算机相关的Uni课程的第一年那样学习计算机的较低级别,那么在与人们谈论更多技术性的低级计算时,我会迷失方向。 有没有人可以推荐的书,这将覆盖我在Visual Studio中单击“运行”时发生的事情的较低级别?当我的老板对我说“那是在CPU缓存中运行”或“你受到磁盘读取限制”时,我觉得自己不够深入,并且在谈论硬件如何相互通信时会更有信心( CPU到RAM等)。
道歉,如果这是一个模糊的问题,或者之前已被问过(我确实检查过,在这里找不到任何可以回答我问题的内容)。
答案 0 :(得分:3)
您当然熟悉麻省理工学院的Open Courseware网站。你可以做的远比在课程6(电气工程和计算机科学)部分漫步更糟糕。如果您是认真的,并且有时间,请从6.001开始(还有什么?),然后是6.004,然后是6.033。
我应该提醒你。那个网站,并探索其中的内容,可以很容易上瘾。
如果你有时间和金钱,你甚至可以考虑上大学课程。凭借四年的工作经验,您可以毫不费力地在每所大学和大学中获得行政鸡尾酒,而您将从中获得的回忆将与您共度一生。 (几年前,我有机会回到学校学习了几个学期,在我刚毕业的时候已经有二十多年了。我不会把这种经历换成任何东西,甚至不是大厦和邻家女孩。)
答案 1 :(得分:2)
我从这里学到了很多东西:http://www.asmcommunity.net/board/
在汇编中编写各种东西是强迫自己理解正在发生的事情的好方法。您可以尝试FASM或MASM作为您的语言(我从MASM开始,但我认为FASM现在更流行)。
答案 2 :(得分:2)
从长期专业开发人员和讲师(Comp.Sci课程)的角度讲,我看到了你的情况。乍一看,脑海中浮现出几种想法。
答案 3 :(得分:1)
如果您主要在.Net世界中编程,那么了解资源管理会有所帮助;执行此操作的一种好方法是使用较低级别的语言,如C或C ++,并编写处理用户生成数据的非常重要的内容。
阅读算法并进行比较可能也是有益的 - 能够理解“大O”符号将非常有用。
根据我的经验,这些也涵盖了普通.Net程序员的两个常见陷阱 - 相信框架处理内存管理的所有弊端(创建资源泄漏非常容易)并且还能在算法上获得正确的性能(等待更快的硬件对我的喜好来说有点过于傲慢了)
答案 4 :(得分:1)
移动电话开发 - 走出你的舒适区(.net)并可能看一些不同的东西,也许C语言中的嵌入式编程有点远,但是手机开发的问题呢?
Android是一个很好的平台,您需要的所有工具都是免费的,您甚至不需要手机,因为SDK附带了一个模拟器。你可以从在Windows机器上考虑你不会想到的事情中学到很多东西,而.net的飞跃并不是那么好。
你将了解受限制的环境,内存,cpu周期等等,它们会让你以不同的方式思考编程,更重要的是它非常酷!
你甚至可以在android / ARM平台上试验本机开发?
答案 5 :(得分:1)
我首先阅读Computer Systems: A Programmer's Perspective。这正是你要找的。我喜欢这本书。我有第一版,刚刚买了第二版。它在卡内基梅隆大学用于Introduction to Computer Systems课程。
它旨在成为整体介绍的垫脚石,涵盖广泛的主题。材料很好。阅读本书后,您可以继续学习更高级的主题,了解您的兴趣。
以下是章节列表:
答案 6 :(得分:0)
可能你可以看看
答案 7 :(得分:0)
即使您永远不会在该级别编写自己的代码,我发现阅读有关汇编和机器语言的内容也很有帮助。 Jeff Duntemann关于这个主题的书(http://www.duntemann.com/assembly.html)对我来说是个好开始。
答案 8 :(得分:0)
获取William Stallings - Computer Organization and Architecture的副本。这是一本标准的教科书,涵盖了你提出的大部分要点(并为我工作!)。
答案 9 :(得分:0)
+1与Ram - 在我的cs课程中我们做了操作系统(看看流水线 - 有趣的概念)和编译器。从基本模型开始,如果您的兴趣进一步了解它将如何变得非常复杂。有趣的话题
答案 10 :(得分:0)
短书:
长书:
“Knuth”,又名“计算机编程艺术”,由Donald Knuth撰写。 令人惊讶的高水平的书籍所有的例子都是用机器语言编写的。
“计算机体系结构:定量方法”。轩尼诗和帕特森。 可能有点太低级 - 有关构建自己的CPU的信息。
“AoE”,又名“电子艺术”,由Paul Horowitz和Winfield Hill撰写。 可能比您想要的低得多 - 数字和模拟电子设备。