英文原文:Why You Shouldn't Code Alone
我在宾夕法尼亚州匹兹堡地区一个有相当规模的制造公司里工作。我是那里唯一的一个 ruby 程序员。公司里还有个程序员,但我们的工作通常不相交,他不懂 ruby。来到这个公司后,我最终被分配的任务是开发 web 应用程序。之前,我学的是软件工程师,我花了大量的时间学习了底层编程,C/C++,甚至汇编。这里,我以为学习 web 开发是件很快乐的事,所以我买了一些书,开始研究。
这不很好吗?事实上完全不是这样。学习一种语言、一种框架,这有很多乐趣。但是,但是,但是;有时候你会很痛苦。除了在书本,谷歌和在线邮件列表里寻找答案外,我没有其它的资源可用。是的,这些已有的资源已经很有帮助了,但问题是我不知道自己遗漏了什么。我会花数小时在我的代码里寻找隐含的 bug,或者 Stack Overflow 网站上等待人们的答复。我有时感到前所未有的沮丧,尤其是当看到 Rails 的运行速度时。我感觉就像经历着一个巨大的失败。我这么无能吗?有这么多优秀的人用 Rails 做出来让人惊叹的东西。我的问题出在哪里?!!!
当时我听说各地都在组建 Ruby 社团。很神奇,匹兹堡就有一个。但我从来没去过。我害怕,我知道那里我一个人都不认识。很显然我在那里是无知的人。出于某些原因,我最终去了那里。猜猜怎么着,我不认识一个人。慢慢的,我开始接触一些人,跟他们谈论我在做的事情。我要强调的是,这需要时间,需要好几次交谈。慢慢的,我焦虑的心情被消解,我开始和他们交朋友,交流我在 ruby 上遇到的问题。他们促使我进步,当遇到困难时他们帮助我。感觉太好了。
从那时起,我开始不断的参加各种活动,并发现新的机会。当听到有两个人在谈论
Mendicant 学院后,我就申请了。可我没有被录取。本来应该是对我的最终判决,但我的朋友再次出来营救了我。Steve Klabnik 给我发信息说,我只是错过了申请日期,有几个人也是这种情况,名额有限。他鼓励我再次申请。我做了,而且在里面完成了核心技能课程。耶!我还有幸参加了计划组织研讨会。我还向好几个开源项目提交了代码修改,比如 Hackety Hack
。我很难描述这些对我有多大的改变,向开源项目提交代码是我以前不可想象的事。我不停的刻苦努力但仍然觉得自己很笨。但我知道,我不是唯一一个这样的人。
不要独自编程。要参与。认识新朋友。编一天的代码虽然很好,但你要知道,这里还有另外一个世界。
分享到:
相关推荐
5. **迭代与反馈**:"人类编程法"提倡迭代开发,即快速构建一个基本功能的原型,然后根据反馈和测试结果逐步完善。这种方式更符合人类解决问题的模式,可以及时调整方向,避免大规模的重构。 6. **代码复用**:鼓励...
很多从Windows平台入门学编程的人,编了好几年程序,还是只知道编完程序点一个按钮就可以跑了,把几个源文件拖到一个项目里就可以编译到一起了,如果有更复杂的需求他们就傻眼了,因为他们脑子里只有按钮、菜单的...
7. **个人陈述**:可以是一个段落,阐述自己的职业经历、兴趣和对编程的热情。 8. **参考人**:可选择提供一到两位能够证明你工作能力的前任导师或同事的联系方式。 在选择和定制简历模板时,应考虑以下几点: - ...
在C语言中,标准的缩进通常是每个层级使用4个空格或一个Tab键(通常被设置为等同于4个空格)。文件中提到,有人偏好8个空格,但这可能导致一行代码过长,影响阅读体验,特别是在屏幕宽度有限的情况下。因此,建议...
这本书不仅仅是一本技术手册,更像是一本哲学指南,引导读者进入一个全新的思考维度。 #### 二、核心概念与思想 1. **禅与编程的融合**:本书的核心思想在于通过禅宗哲学来理解编程的本质。禅宗强调直觉与体验,而...
至于函数,它们应该保持短小且专注,每个函数尽可能只做一件事。理想的函数长度应该控制在一到两屏(80列*24行),并确保其功能单一且明确。长函数可能是代码需要拆分或重构的信号,特别是在涉及到复杂的逻辑或多...
在编程中,压缩文件的大小往往被视为衡量效率和优化水平的重要指标,4KB的大小意味着开发者必须精打细算每一个字节,以实现尽可能多的功能。 压缩包内的文件“elevated_1920_1080.exe”是一个可执行文件,根据...
这款程序的特点在于其源代码经过精心设计与优化后,编译后的执行文件体积非常小——仅有4KB左右,却能够呈现出一个3D动画场景并伴有背景音乐,这在当时的技术背景下是非常不可思议的成就。 #### 技术背景 在上世纪...
一个介绍嵌入式系统编程的书,如果你可以接触到这个参考硬件的话。你将能原封不动地使用本书里的例 子。否则,你需要把示例代码移植到你能用到的嵌人式平台上面。为了这个目 的,我尽可能地使示例程序易于移植。可是...
我们将从多个角度来解析这个主题,以期覆盖尽可能广泛的编程知识。 首先,让我们假设“Genesis编程”是一种新兴的编程语言。编程语言是软件开发的基础,它们提供了结构化的方法来编写指令,使得计算机能够执行各种...
音频处理也是游戏编程中不可忽视的一个方面。在游戏中,音频效果对于营造氛围和增强沉浸感有着极为重要的作用。音频编程涉及音频资源的加载、播放控制、3D音效处理等方面。开发者需要熟悉音频库的使用,以及音频效果...
总的来说,这个名为"JAVA手机游戏编程源代码2"的压缩包是一个宝贵的教育资源,对于想要学习和提升Java手机游戏开发技能的人来说,通过对这些源代码的阅读、理解和重构,可以深入了解游戏开发的各个环节,从而成为一...
- **编写代码**: 编写尽可能少的代码以通过测试。 - **重构代码**: 在确保测试通过的情况下,优化代码结构和性能。 - **重复上述步骤**. **3.2 TDD 的优势** - **更高的代码质量**: 通过持续的测试确保功能的正确...
- 方法和变量名采用驼峰命名法(camelCase),第一个单词首字母小写,其余单词首字母大写。 #### 八、声明 在声明变量、方法或类型时,应遵循一定的规则,如: - 尽可能限制作用域,只在需要的地方声明变量。 - ...
在标题“64K动画(系列)体现了warez的编程实力”中,warez指的是非法复制和分发软件的地下社区,而64K动画则是这个领域中的一个独特亮点。尽管warez活动本身存在法律争议,但不可否认的是,64K动画的制作过程中所...
1. **沟通**:强调团队成员之间的沟通和信息共享,确保每个人都对项目的目标和进展有清晰的理解。 2. **简单性**:提倡保持设计、代码实现尽可能简洁,避免过度设计或复杂的解决方案。 3. **反馈**:通过持续集成、...
在已有的编码规范指导下,应该慎重编排代码,使代码尽可能清晰。在重构或修改其他风格的代码时,最好是根据现有代码的风格继续编写,或者使用格式转换工具统一风格。 2、头文件规范 头文件是C语言编程规范中的一个...