我是软件开发领域的新手.我渴望获得更多途径,通过这些途径,我可以在开发,编写脚本和编程技能方面发展,培养和成熟,更多的是在工作时间之外.我想知道什么类型的设置(硬件和/或软件)将是非常有益的或其他人已经发现这项努力所必需的.
我希望能够为我的家庭'办公室'配备能够让我作为开发人员进步和成长的工具.
编写代码:
在本文中, 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的书和Knuth.
无论你选择哪种语言,我都会花时间学习调试器.
如果您正在进行Web开发,那么请确保您知道如何最低限度地设置和运行Apachie(或IIS).
如果可以的话,避免圣战.他们浪费时间,除了人们固执外,你不会从中学到任何东西.一些圣战主题(支架的风格,编辑,字节序,"最好"的语言,"最好"的操作系统,...).
我的个人设置:
标准PC(Windows XP专业版)
Visual Studio 2007(略微落后).
VIM
蟒蛇
C/C++
C#
scons的
标准PC(FreeBSD运行无头:没有GUI)
gnu工具链(Make,C/C++等)
VIM
蟒蛇
scons的
就个人而言,我建议从Linux开始 - 几乎每种编程语言在Linux上都有很好的免费工具.然后我会使用VMWare制作虚拟机,其中包含您可能想要测试软件的各种其他平台 - Windows,其他Linux发行版,可能是OpenSolaris等.再次,根据我的经验,使用Windows VM的Linux比使用Linux的Windows更好VM.