程序之美 存乎于心

我是盛安德科技天津分公司的普通WEB开发人员,本人并无什么特长,开发语言仅限于PHP和Javascript,同时也不是科班出身,在本次“个人编程之路”活动中现身主要是但愿本身的经验可以让刚刚走上程序之路的朋友们多一点借鉴。程序员

程序员——大有可为的职业

程序员的人力缺口很是大,盛安德科技做为一个专门承接外包的公司对此更是感触良多。虽然有时候咱们也抱怨好项目太少,可是更多的时候是好项目来了却发现根本没有人去作。招聘广告常年打,面试者寥寥无几,能经过面试的更是沧海一粟。
那好吧,我替你们问一声,咱们不是不想去应聘,而是面试了几家都不成功,是否是大家根本不想招人,就是在炒做啊?就算侥幸成功了,进去工做的时候被骂的像死狗、工做累的像死狗、炒鱿鱼就像扔死狗,为何?面试

其实很简单,由于各个公司都是在招聘程序员,而会写代码 != 程序员
你会换保险丝,可是你不是电工,对吗?
你会唱歌,可是你不是歌手,对吗?
你会作饭,可是你不是厨师,对吗?
那凭什么你会写代码就必定是程序员了呢?
好吧,我认可你说的对,那么达到一个什么样的标准才是程序员呢?
我没法给出什么答案,只能分享一些过往,指望能带来领悟。ajax

程序员之路

我在小学的时候就接触到程序了,在苹果机上按照课本的例子画画几何图形,弄个打飞机的小游戏,初中的时候也是这样,不过就是苹果机换成了中华学习机而已。也许是这个时候埋下了某颗种子?不知道。
从UCDOS, WPS到win31,win95,应用方式从打字变成玩儿游戏,此外因为系统不稳定被迫学会了怎么装系统,除了“电脑颇有趣”外,我对它没有更多的印象了。
也许兴趣确实是最好的老师,游戏玩儿多了(可能更重要的是体验过游戏修改器以后)就会有写游戏的愿望,也就顺便看了一些编程的书,反正只要不带走在书店里面随便看。结果我发现,对于我这种没上过正式高中的人来讲,编程根本就是一件没法理解的事情,不管是汇编仍是C,狗咬刺猬啊。
后来的事情可能年龄大一点的人就都经历过了,聊天室、看网页、OICQ,只是意外的,我从广告上看到一个“网页制做培训班”的招生启事。数据库

我说要有光

一花一世界,一叶一菩提;代码自在方寸。我惊喜的发现,我能看懂HTML,对于用过WPS的我来讲,一眼就看懂了HTML的奥秘。
也许这辈子我也学不会C语言了,也许靠HTML永远写不出游戏,可是,看到亲手录入的代码在浏览器中呈现出了本来仅在我脑海中的画面,我突然以为,这样也不错,这是我指望的光。
我想此时的我已经开始了本身的开发之路,虽然我还算不上是一个程序员,可是至少我有了目标,而且也愿意为此而努力。编程

并不是天生我材必有用

一个又有一个页面制做出来,而后一个又一个的丢掉,直到有一天受命制做了一个内网的休闲网站。很简单的网站,列出不少小说的超连接,能够在线观看(txt格式)和下载(zip),90%的时间花费在寻找资源上,最终的页面很丑,顶部一个标题,而后就是一堆url。可是,这些丑陋的页面没有被丢掉。原来并不是天生我材必有用,而是没用的早已被湮没。
我要去作有用的东西,虽然我还不是一个程序员。segmentfault

让我站得更高一点

薄薄的一本HTML教程轻松翻完,可能只用了一天不到,可是留给我太多的问题。为何Yahoo的网页这么好看,为何别人能作出一些很炫的效果(好比雪花),为何有那么多为何?答案垂手可得的获得了,四个字:查看源码。
HTML -> CSS -> Javascript -> Photoshop -> Flash –> PHP -> MySQL
这个时候我以为本身应该算得上是一个程序员了,或者说我已经不在乎本身是否是一个程序员了,不断地学习,不断地练习,不断地进步,不断地超越本身,这就是我想作的、正在作的、并会继续去作的事情。windows

这是一个起点

编码、吃饭、睡觉,这种单调的生活持续了大约20天,个人第一个PHP项目完成了。开发工具就是Editplus,功能则是依附于业务数据库构建一个辅助查询系统。
在开发的工程中我学到了新的知识,对某些问题的处理有了新的思路,因此我相信个人下一个项目会作的更好。
因此,这只能是一个起点。浏览器

程序&程序员

用文字描述客观真理被称为哲学,用数字与符号描述客观真理被称为数学,用0和1描述客观真理,是程序,是过程的有序组合。
程序员在不违背客观真理的前提下,对过程进行有序的组合,使事物按照咱们的意愿发展从而获得必然的结果。工具

程序之美

有道是字如其人,代码亦然。它是开发者思想的结晶,在我看来欣赏代码与欣赏艺术品之类的东西大同小异。布局

何为美

错落有致,别具匠心;展转灵动而又典雅大方;增一分则肥,减一分则瘦;不施粉黛却浑然天成...
观众怒曰:说人话!囧
代码应该格式良好,虽然每一个人喜爱不一,可是其代码中的缩进、空格的使用必然是有规律的,而不是随手为之。
结构充满弹性,耦合适当。
没有冗余的代码,可是也不会放弃必要的检查。
读起来很流畅。

何为美

物尽其用方为美。
在官方文档中常常能够见到简短的示例代码,可是有没有人尝试过本身去写一个示例代码呢?若是你以为这有什么了不得,好的,试试看。

  1. 示例代码是当前话题的典型应用,就是最多见的用法;

  2. 若是有可能的话,该代码应该是可运行的;

  3. 不能喧宾夺主,示例代码不会让读者的注意力离开当前话题;

  4. 恰到好处的注释,预测读者此时可能想到问题并针对性的解释;

  5. 要短。

何为美

指点江山,激昂文字,波澜壮阔之美。
初级程序员是站在开发者的高度编写代码,中级程序员是站在使用者的高度编写代码,高级程序员是站在项目价值的高度编写代码,顶级程序员是用上帝视角考虑取舍,不写代码。低头看,万马奔腾;略昂首,高山仰止;再侧目,节比鳞次,各逞机锋。

再问何为美

子非鱼焉知鱼之乐。
心之所向,身之所往。
不滞于物,不殆于心,思而惘顾,行而桀黠。

尾声

谨以此文分享我历年来的感悟,但愿有更多志同道合者加入程序员的队伍。在我看来,即使是在职的开发人员也不乏大量的码农,在规模较小的公司里面更是一个程序员带着一群码农在为混口饭吃努力。想要发展首先就要有交流,可是没有同伴你又能和谁交流?
何为码农?在我的能力上不思进取,在工资收入上费尽心思的就是码农。因此,仍是作程序员吧,等你。


附言

哗啦啦写了很多,结果发现征文要求之中的不少内容却都没写,就在末尾补注一下吧,避免被编辑说不符合要求而退稿。

我喜欢的软件

经常使用的虽然不少,可是必定要说喜欢的还真没有。

我喜欢的硬件

键盘和鼠标,品牌无所谓,主要是质感。不会过轻,那就飘了;不能过重,会累;不能太灵敏,触而不发表明我还在犹豫;不能太迟钝,灵感如白驹过隙。反面典型就是手写笔。

工做、学习、生活中用到的神器

我想神器未必是真的神器,个人神器是鱼竿,哈哈。只要看到鱼竿就会马上从当前的状态中解脱出来,重归平静。

有没有写过一些黑科技(狂拽酷炫屌炸天)型程序

好久之前(好像是07年吧,尚未jQuery之类的东西)基于XMLHttpRequest作了一个内网站点,包括打卡,留言,技术分享,新闻几个小功能。总体的布局和外观模仿的windowsXP,是的,首页上各个应用的图标,打开后开启一个浮动窗口,也能够最大化、最小化和关闭,固然也包括拖动。
可是这也是一个彻底失败的做品,除了很炫(在当时来看)之外没有任何的实用价值。由于追求效果,不少用户操做被复杂化了,同时很炫的功能致使试用者的注意力被转移了,没人注意到技术分享功能自己,而是被各类个性化设置带偏了,不少人尝试了各类个性化设置,而后彻底没有心情去写什么技术资料了。

推荐书籍

【增补】强烈推荐的一本书:纸牌的秘密 或者 苏菲的世界,虽然这是两本书,可是实际上看一本也就差很少了,有故事情节的哲学启蒙书籍,很是好,写这篇文章的时候忘记了。【/增补】

对于中级及如下的开发人员,像C, C++, Java都有不少经典的书,前几章都很是值得一看。你也许问我既然这么好为何不看后面,好吧,由于后面我都看不懂。
前面几章事实上是对语言的总体介绍,是对语言缔造者观念的剖析,咱们能够由此去聆听大师们是如何理解对象的,怎么看待和分析对象间的联系等等。
我以为颇有用,并且每隔一段时间再看都会有不一样的领悟。
此外关于语言自己就没什么书籍可推荐了,很贵并且不如文档全面,若是有兴趣的话不如看看UI设计思想、敏捷软件开发之类的东西。
我一直坚信程序无所不能,而对于程序员来讲技术问题老是可以解决的,可是就怕你想不到,或者不敢想。

编程的大杀器

没有。要是说对程序员的大杀器我却是能够推荐一个,ctrl-c + ctrl-v,绝对是对程序员的大杀器。

  1. 用这个手段开发的人很难进步

  2. 用这个方式开发的项目很差维护

好习惯与坑

好习惯就是注重细节和强烈的责任感,与之对应的就是坑。从大处说可能变身猪队友坑了项目组;从小处说,变量名写错一个字符这种bug是最难发现和解决的,并且解决以后还收获不到任何喜悦。你只会沮丧的想,浪费了4个小时原来只是把i写成了l。

展望将来

根据前面的调子,这里也不会有什么出彩的答案。
其实我挺反感曾不不穷的新技术名词的,嗯,是的,只是反感新技术使用的名词,不是技术自己,好比Saas,好比大数据。
我我的并无以为真的有什么新技术出现了,一般这只是宣传的须要而已。就像win31, 95, Me, 98直到如今的win10,这是技术发展的必然结果。
用大数据来作例子,这是新的课题吗?确定不是,搜索引擎早就面临并一直在解决这个问题,那么怎么忽然在最近流行起来这个话题了呢?
我认为所谓的新技术一般是对前人在特定领域留下的宝贵经验的一次总结,是为后来者提供一个用来踩踏的基石,并非什么神秘或者高端的东西。(例如如今烂大街的Ajax,最先是用隐藏的iframe,后来才有了XMLHttpRequest,而后才被称为Ajax而后被普遍使用,而在HTML5之前,所谓的ajax文件上传也仍然仍是经过iframe模拟的。)
我在回答某个问题的时候也说过相似的话:程序是创建在逻辑的基础上的,开发功能的时候能够不用别人造好的轮子,可是不等于你能够抹杀那个轮子所表明的逻辑。在我看来,新技术就是轮子的名字而已,贡献吗?绝对!创新吗?呵呵。
因此,对于看好什么技术这种问题,个人回答只有四个字,适者生存。

关于追妹子

本人已婚。

本文参与了 SegmentFault「个人编程之路」计划,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索