能写、想写、会写--程序员的三大境界

in #cn6 years ago

渊源:我想做程序员

前几天看知乎讨论,问中国的程序员是不是已经过盛了,我当时恰好有时间,也写了一个回答,简单的节选一段:

大约在06年的时候我报志愿,当时计算机还是大热,但大家都看到说学计算机的过多,不能报这个专业,最终我选了一个工程类的专业。

后来我和朋友谈起过这次选择,我说在报志愿的时候对计算机的了解太狭隘,如果现在让我选,我会选学计算机专业。

当时感觉自己还是挺有见地的(自我陶醉一下),但此回答没有任何人赞同。这让我太伤心了,难道自己说的一点道理都没有吗?现在作为一个伪程序员,来讨论讨论程序员分类的事。

给程序员作个分类

程序员位最喜欢的事就是分类管理了吧,哈哈。这几天又看到有人将程序员分为两类:能写代码的程序员会写代码的程序员。自己一下子就觉得很有道理,但细想了一下,觉得我两者都不是,根据自己的情况,又加了一类(大家喜欢自己也可以加),我觉得我是想写代码那种。

我有写代码的动力(不仅仅是工作和糊口的原因),感觉自己应该超过了能写代码的水平,但又达不到会写代码的程度。所以自己给自己作个分类:想写代码的。

程序员朋友们也可以在文后评论一下,根据自己的水平、现在对代码的态度,大家给自己分个类,贴个标签。

能写代码的程序员

我一直在向大家灌输一种概念,那就是编程语言也是一种语言,作用也是用于交流(人与机器的交流)。有了这样的认识,这几类程序员就好区分了。

如果非要给能写代码的程序员作个定义,那么能写代码的人写的程序像流水帐,功能可以达到,但给不了人美的感受。感觉起来就像小学生作文吧,哈哈。

现在很多花几个月,进培训班出来的码农,应该属于这个分类。但如果你喜欢学习,在程序员的世界里,你很快就能从这一类里面走出来。

会写代码的程序员

相比上面一类,会写代码的就更容易识别了,会写代码的程序员写的代码像散文,含蓄却清晰的表达了自己的想法,而且会给人以美的享受。

对于会写代码的人,编程语言只是一种工具,表达自己的工具。如果我们生活在一片海洋,那么一个好主意就是一片贝壳。对于会写代码的人,不但能看到贝壳,而且能拿起贝壳,将贝壳最美的一面展现给大家,让大家一起领略这片贝壳的美丽。这种境界一直是我的追求。

我:想写代码的人

首先,我算不上一个称职的程序员,因为自己大部分时间都没有花在写代码上。所以我将自己定义为想写代码的人。

最近在币乎上发了一个小插件,大家都觉得我技术很好。但实际上,我发的插件如果一个专业程序员看了,只会说“so easy”,代码完全没有什么难度。

这个插件是我想法的表达,是对用户需求的表达(一下把自己抬的好高,哈哈)。能够用代码来表达自己,我觉得是我写代码这么多年来,最大的收获。

最近有点迷Microsoft的LINQ语法,分享几句最近写的代码,有懂的给我评价一下。

var usersArray = (from users in json["users"]
                  select (JArray)users).First().ToList();
usersArray.ForEach(item => {
  var user = Actions.login(item["phone"].ToString(), item["password"].ToString());
  user.Energy = Actions.getEnery(user.UserID, user.UserToken);
  userList.Add(user);
});

还有一些Sort的代码,感觉好简洁:

userList.Sort((User userA, User userB) => userA.Age > userB.Age ? 1 : -1);

希望有一天,每一个写代码的程序员都成为会写代码的程序员。

Sort:  

@rileyge, 伦家就觉得你写得不错嘛~~~ img

@rileyge "能写、想写、会写" - 菜鸟、学徒、大师 = 兄弟朝着大师阶段升级 :)

恩,一起努力。潘兄向着写作大师的方向努力。

日后能否成写作大师或“写作大屎” - 尽力而为吧 XD

没能当一名程序员,但是觉得程序员才是最厉害的

我记得你也写程序啊,记错了吗?

老师,什么时候写点steemjs转账的教程?现在ff银行转账是用别人的一段python的代码,为了运行这个代码我专门去装ubuntu安装spython-teem库。而且这代码是别人的,用着不是很顺手。

要是能写个steemjs的批量转账的教程就好了。

我不介意转账给你来测试的!

偶像你好,我是币乎的区块链研究员

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 69715.93
ETH 3772.35
USDT 1.00
SBD 3.77