我该怎么做才能提高编码技巧? 我是软件工程专业的最后一年。 我在3年内完成了几个小型软件项目。 我学习了基本的C ++,C#,PHP,Java和Swift,但我的编程技巧非常糟糕。

首先,让我们确定软件工程师(SE)应该做什么。 有用的是,维基百科提供了来自几个不同来源的许多定义; 然而,基本上,它归结为在软件开发中使用工程原理。 这与计算机科学(CS)相比如何? CS正在弄清楚如何让计算机做某事,特别是如何通过编程使用软件来用计算机做各种事情。 它还涵盖了计算的理论方面,允许CS毕业生开发计算问题的新解决方案。 科学家通过设计和测试理论来推动知识的界限,工程师采用已知的方法并做出伟大的事情。 工程学采用当前的科学原理来设计和构建“某种东西”; 在SE中,“某事”是计算机程序。 基本上,SE采用CS的编程方面,并在其上加倍。 工程师需要广泛的知识,能够结合各种不同的学科来创建最终产品。 科学家倾向于关注狭窄但深入的知识领域。 另一个重要区别是工程师通常获得ABET(工程和技术认证委员会)认可的学位。 这保证了毕业生具有最低水平的工程和应用科学知识,就像获得技术认证一样。 如果您想证明自己的能力,可以从IEEE获得各种专业软件开发认证。 这种比较表明,作为SE,您需要知道如何编程,但需要采用特定的应用方式。 认识到你的教育只为此提供了基础; 大学教育应该做的就是提供知识和教育,这样学生就可以质疑现状并获得进行自己学习的技能。…

编程,Windows或Linux的最佳操作系统是什么?

在一些特殊情况下,Windows总是更好,但总的来说,很难推荐没有类Unix环境的操作系统,自20世纪80年代以来,它一直是学术CS研究的事实标准。 它逐渐被Linux取代,后者起初只是Unix的x86克隆,因为PC推出了其他硬件。 Linux后来变得可移植,所以现在是事实上标准的类Unix操作系统,可以在所有东西上运行(包括已经开始取代x86的ARM)。 macOS和Linux都提供了类似Unix的环境,因此你可以在任何一个环境中获得良好的命令行环境,但是Linux是标准的,大多数CS开发都是在这个环境中进行的,所以这样可以给它带来优势。 同时,对于许多特定场景(例如,开发iOS,访问商业桌面软件等),macOS可以说是更好的。 Windows有点奇怪,它提供了一个很好的shell(PowerShell)和一个过时的shell(CMD),以及一些很好的开发工具,特别是对于.NET,但没有类似Unix的环境。 令人惊讶的是,上述情况正在发生变化。 Windows的一个好处是它的内核(NT)从一开始就设计为不仅可以跨硬件平台移植,而且还可以实现多个操作系统个性,包括Unix。 (该设计的一个目标是促进从DOS / Windows,OS / 2和Unix的迁移。)除Win32之外的所有子系统逐渐消失,但Windows 10周年更新引入了一个新的“Linux子系统Linux”(WSL) )beta,它通过NT内核实现Linux ABI(它与旧的用户模式子系统完全不同,但是从20世纪80年代末和90年代早期设计和实现NT时的许多架构决策中获益)。 WSL的含义是您现在可以在Windows上运行Linux命令行环境 –…