代码的创造性:向程序员学创造性的14种方法

2023-10-22 11:10

本文主要是介绍代码的创造性:向程序员学创造性的14种方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

对程序员传统的看法一般是这样的:书呆子,兜里揣着防止钢笔漏水的塑料片,以及,非常、非常的无聊。一般没有人会把程序员和创造性两个词放在一起。 不过,这样的看法错的不能再离谱了。事实上,编写代码是一个人能做的最优创造性的事情了。 程序编写者必须在两个完全不 同的世界——结构的世界和想象的世界——之间求取平衡。他们使用一种非常结构化的语言,却实现了很抽象的概念。这可不是简简单单的工作。

我能够知道这些,是因为我最近重新温习了一下我那少的可怜的PHP知识,写了一些有趣的网站(别着急,我会告诉你们最新的进展的)。我刚发现写程序 是一种真正的能锻炼创造性的好方法。这是因为:

  • 编写城西能够给你绝对的控制权。从无到有的建造一个东西就是创造性的最好的例子。程序员拥有一个软件或者网站的绝对的控制权,他/她可以 按照自己的意愿让它变成任何东西。
  • 完成一件事情的多种方法。为了建立一个网站,程序员必须首先建造一个构架。他们有目的的奠基,在最后到达那个目的前,一切都只是个想法。 程序员使用大量的能找到的工具和方法。

程序员们必须找到创造性的解决方案,否则就会什么也创造不出来。

程序员是打破框框进行思考的最好的例子,怎么说呢……程序员实际上就是“框框”的创造者。以下就是一些可以从程序员那里学到的,促进创造性思维的方 法:

1. 学习一种新的语言

程序员总是在学新的语言,无论是出于爱好还是需要(T_T)。不要把自己局限在现在的知识范围里并乐在其中。扩充自己,学习新的技术。

2. 从最基础开始

如果你准备写一个软件,你不可能一开始就完成好大一部分。你必须从“第一块砖”开始。有些时候,要想找到一种创造性的解决方案,最好的方法就是回到 起点,重新审视做过的工作。

3. 质疑精神

质疑精神就是说,审视每一种假设,然后确定这样是对的。所有的编程工作都建立在一些最基础的假设之上。如果软件架构的底层代码出问题了,那么整个软 件就有可能无法正常工作。

有时候创造会受限于假设。这时候只需要放弃这些假设,换一个全新的视角去思考,就会找到创造性的解决方法。

4. 把这当作娱乐

如果你认识一些程序员,你会发现他们总是在不停的做这些什么。即使是已经完成了一天的工作,他们总会画几个小时在做自己的有趣的东西。他们喜欢“忙 着”。

不断的把新的想法和解决方法“烘焙”出来,不应该被看做是琐碎的小事。你应该把它看做一种休闲,而且会很有趣。

5. 永远不要停止尝试自己的想法

程序员总是在不断的修剪(重构)代码,以使它们尽可能地高效。即便是微小的改动都有可能让程序或者网站挂掉,所以,对于每一个程序而言,不断的测试 和改进都是非常重要的。

想法都必须经过严格的验证,并按照一定的要求进行修正。你的想法总会变的,只不过是变多少的问题。不断的评估和重新思考,是“修剪”你的想法的一个 很棒的方法。

6. 培养激情


Photo by Marco Wessel

如果你尝试过和一个程序员谈论他的工作两分钟以上,你很快会发现这个程序员对自己的工作充满激情。他们吃程序,睡在程序上,甚至呼吸着程序。

对于你自己的想法,你有这样的激情么?

7. 精通手中的工具

程序员会不断的厉声自己的知识和对工具的掌握。一个好的程序员会密切关注软件的发展,不停地在尝试新的方法来提高自己对他们的掌控能力。你很难发现 那个程序员不会打造他自己的“工具箱”。

无论你的能力如何,你对工具的熟练程度总会限制你能力的发挥。越能熟练掌握手中的工具,就越有能力去创造。

8. 把抽象的东西放在一起

  • 你需要在电脑上打电话么?
  • 能不能在网上编写word那样的文档呢?
  • 人们会关心其他人都在做什么么?

创造Skype、Google DOC和Twitter的人们都有这样一个共同点:他们能把不同的抽象的想法融合在一起。找到这些 “假如”并实践它们是一个很棒的的开始,开始去从不同的角度、更有创造性的角度来思考问题。

9. 把架构看成一种工具,而不是一种限制

人们总会把创造性和“一块巨大的画布,以及让自己的思想任意驰骋其上”联系起来。然而,这种想法有一个很严重的问题:这只是一个关于创造性的神话。

看,到处都有限制。我们无从躲避,只有适应其中。程序员会拥抱程序语言或者开发工具的局限,并乐在其中。这些限制成为他的工作的基础。有 些时候,一些边边角角的发现,会导致十分伟大的想法。 需求才是创造之母。

10. 尝试之前不要排除任何可能

幼儿园老师说的没错:没有任何问题是愚蠢的。如果你(没有)做到第3条并且无视任何假设,在你尝试之前,你永远都不会知道它到底可不可行。如果你不 尝试,你又怎么知道它能不能行呢?你或许会很惊奇,即便这个提议失败了,它有可能会引导你走向一个解决方案。

有些时候,最好的方法是创建一个原型,然后对它进行测试。如果这个原型不可行,就放弃它。不然的话,你有可能会于一种可行的方法失之交臂。

11. 一直都要去寻找更简单和优雅的解决方案

好的程序员知道,找到最简洁的解决方案的办法就是不停的去寻找。复杂的疗法经常对导致……并发症。而程序的目标一直都是长时间的平稳的工作。

我们的想法有时候太复杂了,以至于我们经常沉浸于让想法的更新奇,而忘掉它的实用性。最简单的解决方法总是最好的。

12. 不要恐惧使用别人的代码

Internet好就好在,你所想做的没准儿已经有人做好了。当我要写一个网站的时候,我总是采用已经存在了的开源程序。何必要重复发明轮子呢?

实现一个不错的想法,并不意味着你要从白纸开始画起。完全可以修改和改进已有的方法来达到自己的目的。有时候,一些伟大的想法只是 修改自已经存在的东西。 Gmail就是一个很好的例子,它只是在传统的Email里填上了更有用的东西。

13. 不要害怕合作

一些最好的程序——或者任何有创造性的项目——都是由不止一个的杰出的人们,向着同一个目标而共同创造的。召集一支队伍,采用无论谁怎么想出来的杰 出的想法,让每一个人都能贡献其中。

14. 从最简单创造美

程序员会不断的重复使用一些代码,这些代码并不需要很“漂亮”,但是它们组合在一起却能创造出让人惊叹的程序。无论你要做什么“创造性”的工作,要 注意那些细节,特别要注意细节对全局产生的影响。

 

来自:http://www.yeeyan.com/articles/view/Rivendare/12092
原 文:Creative Code: 14 Ways to Learn From Creative Programmers

这篇关于代码的创造性:向程序员学创造性的14种方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/261037

相关文章

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringCloud集成AlloyDB的示例代码

《SpringCloud集成AlloyDB的示例代码》AlloyDB是GoogleCloud提供的一种高度可扩展、强性能的关系型数据库服务,它兼容PostgreSQL,并提供了更快的查询性能... 目录1.AlloyDBjavascript是什么?AlloyDB 的工作原理2.搭建测试环境3.代码工程1.

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Apache Tomcat服务器版本号隐藏的几种方法

《ApacheTomcat服务器版本号隐藏的几种方法》本文主要介绍了ApacheTomcat服务器版本号隐藏的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1. 隐藏HTTP响应头中的Server信息编辑 server.XML 文件2. 修China编程改错误

Java中ArrayList的8种浅拷贝方式示例代码

《Java中ArrayList的8种浅拷贝方式示例代码》:本文主要介绍Java中ArrayList的8种浅拷贝方式的相关资料,讲解了Java中ArrayList的浅拷贝概念,并详细分享了八种实现浅... 目录引言什么是浅拷贝?ArrayList 浅拷贝的重要性方法一:使用构造函数方法二:使用 addAll(

Java中switch-case结构的使用方法举例详解

《Java中switch-case结构的使用方法举例详解》:本文主要介绍Java中switch-case结构使用的相关资料,switch-case结构是Java中处理多个分支条件的一种有效方式,它... 目录前言一、switch-case结构的基本语法二、使用示例三、注意事项四、总结前言对于Java初学者

使用Python实现大文件切片上传及断点续传的方法

《使用Python实现大文件切片上传及断点续传的方法》本文介绍了使用Python实现大文件切片上传及断点续传的方法,包括功能模块划分(获取上传文件接口状态、临时文件夹状态信息、切片上传、切片合并)、整... 目录概要整体架构流程技术细节获取上传文件状态接口获取临时文件夹状态信息接口切片上传功能文件合并功能小

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

JAVA利用顺序表实现“杨辉三角”的思路及代码示例

《JAVA利用顺序表实现“杨辉三角”的思路及代码示例》杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于1050年首先发现并使用的,:本文主要介绍JAVA利用顺序表实现杨辉三角的思... 目录一:“杨辉三角”题目链接二:题解代码:三:题解思路:总结一:“杨辉三角”题目链接题目链接:点击这里

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁