我是软件开发领域的新手。我渴望获得更多途径,通过这些途径,我可以在开发,编写脚本和编程技能方面发展,培养和成熟,更多的是在工作时间之外。我想知道什么类型的设置(硬件和/或软件)将是非常有益的或其他人已经发现这项努力所必需的。
我希望能够为我的家庭'办公室'配备能够让我作为开发人员进步和成长的工具。
答案 0 :(得分:6)
编写代码:
在这篇article Jeff Atwood讲座中,讨论如何通过设计和编写大量软件来更好地设计和编写软件。他的陈述更优雅,但这是一个有效的观点。你做得越多,就会越好。
<强>设备:强>
任何现代PC / Mac硬件都应该足够了。如果您计划运行Windows或Linux,我会使用PC而不是Mac。有很多吵闹声更好,但要使用你最喜欢的那个。
在这个时代,它应该是一个没有实际意义的点,但请确保您拥有某种可靠的互联网连接(有线,无线上网,无论如何......)。然后您就可以访问Google和 stackoverflow;这对程序员来说都是很好的资源。
确保您拥有适合自己的键盘和鼠标。这包括设置您的桌子和椅子以适应您的身高和手的位置。你会长时间呆在电脑前,想要舒服。
<强>编辑/ IDE:强>
选择一个编辑器:Vim,EMACS,KATE,Eclipse, 。哪一个并不重要,但无论你选择哪一个都能很好地学习它。编辑器是您的主要工具,您希望在使用它时感觉舒适且知识渊博。您对编辑器的了解越多,创建/编辑代码的速度就越快。
在您可能正在开发的所有平台上运行编辑器会有所帮助,但这不是必需的。
构建工具:
在某些时候,您会发现自己面对面必须创建或修复构建系统。 Make是* nix和C / C ++的标准,但对于您自己的个人项目,找到最适合您的项目。有很多可供选择:Scons,Ant,Make,Jam,......
我个人使用SCons,因为它是基于python的,我喜欢python。
<强>书籍:强>
在学习新主题时,我建议你写一本好书。这通常可以让您对所学内容有一个很好的了解,并为您提供良好的学习基础。 Google和Stackoverflow适用于特定问题,但对主题的概述很难获得。
这当然假设您有时间和金钱。对于受到金钱限制的人,您通常可以在线找到免费版的电子书。
语言强>
我曾经对要学习的语言有强烈的感受,但现在我意识到你应该用你最喜欢的语言写作。但是不要害怕尝试新语言。我个人喜欢C ++,python和C#,没有特别的顺序。
因为你刚刚开始选择你可以免费获得的语言,我认为这些语言现在是大多数语言。
在商业世界中,选择的语言往往会在大约5 - 7年的周期内波动。但是,你可以找到所有“大”语言的工作(至少目前)(C ++,JAVA,C#VB.net,python,ruby,perl,...)。如果您能够很好地学习其中一种现代语言,那么快速转换到另一种语言通常不是问题。图书馆往往比语言本身需要更长的学习时间。所以选择你喜欢的语言并学习它。
其他想法:
正如Marc Charbonneau所说,建立源代码控制。有很多免费的源代码控制产品,所以选择你最喜欢的产品。我个人使用Perforce,这对两个或更少的人是免费的。我也听说过有关Subversion和git的好消息。具体的一个并不重要,但选择其中一个。
如果您想深入了解计算方法,我建议使用Sipser Book和Knuth。
无论您选择哪种语言,我都会花时间学习调试器。
如果您正在进行Web开发,请确保您知道如何最低限度地设置和运行Apachie(或IIS)。
如果可以的话,避免神圣的战争。他们浪费时间,除了人们固执外,你不会从中学到任何东西。一些神圣的战争主题(支架风格,编辑,endianess,“最佳”语言,“最佳”操作系统,......)。
我的个人设置:
标准PC(Windows XP专业版)
标准PC(FreeBSD运行无头:无GUI)
答案 1 :(得分:5)
就我个人而言,我建议从Linux开始 - 几乎每种编程语言都有很好的Linux免费工具。然后我会使用VMWare制作虚拟机,其中包含您可能想要测试软件的各种其他平台 - Windows,其他Linux发行版,可能是OpenSolaris等。再次,根据我的经验,使用Windows VM的Linux比使用Linux的Windows更好VM。
答案 2 :(得分:1)
我推荐KATE(KDE的一部分)作为编辑。它是一个轻量级且简单的编辑器,具有语法高亮,多个文件和内置终端。它并不像emacs或vim那样强加,因为终端,所以它适用于各种各样的项目。它有点像迷你IDE。
答案 3 :(得分:1)
除了选择使用您最感兴趣的技术并构建它的项目之外,没有什么比这更有帮助了。你可以决定学习X语言或者读Y上的书,除了增加你的知识外没有别的理由,但即使你有意志力一直贯彻我愿意打赌你也会学习同样的,并且通过围绕实际的事情学习获得更多的满足感。
就具体工具而言,唯一的答案取决于你想做什么。您最终可能会使用Microsoft的Visual C#Express,Java的NetBeans IDE或Mac上的Xcode。所有这些都是免费的,但它确实是你打算用重要的工具做的,而不是你把它们安装在你的硬盘上。对于硬件和操作系统也是如此,您可能希望拥有一台用于在C#中构建游戏的良好Windows PC,或者使用Mac进行Web开发等。确定您想要做什么,并选择允许的最佳工具你实现了这个目标。
与一切完全无关的一件事是某种版本控制;无论您使用什么项目或技术,这都是一个好主意。 Git和Subversion是两种流行的跨平台选择。
答案 4 :(得分:1)
快速连接(用于下载linux)和safari.oreilly.com帐户!