小土刀

非主流程序员的自我修养

作为一个非主流程序员,实话说,写代码其实是我最擅长的事情里面最不擅长的事情。但是在这个对单身狗伤害很大的日子里,谨以此文承担一点伤害。


非主流程序员自然要走和别人不一样的路,所谓『不一样』,并不一定是大家都学的东西我就不学,而是在怎么学,什么时候学这些问题上『不一定』要按照所谓『最佳』路线,毕竟最高级的教育是『因材施教』。互联网上浩如烟海的资源使得我们甚至都不需要去找某个特定的老师,『因材施教』放到今天,对于非主流程序员来说,更应该是『因材自教』。借着奥运会的东风,就以起跑的口令为例,来写写我这个非主流程序员的自我修养吧。

各就各位

比写代码还重要的事情,需要在写代码之前就做好,或者说,至少知道要做好。

喊对名字

我觉得吧,英文不一定要母语水平这么高,但是基本的单词发音还是要读对的。比方说:

  • Adobe, AJAX, APP, avatar, array
  • Chrome, C#, Cache
  • Debian
  • Exposé
  • GNU, GUI, GNOME
  • Integer
  • JAVA, jpg, JSON
  • Linux, LaTex, Lucene
  • MySQL, maven
  • Null, Nginx
  • Retina
  • suite, Safari
  • Tumblr
  • Ubuntu
  • WiFi

不然听起来真的很傻,尤其是和外国人聊天的时候,对方会一脸懵逼的。扩展一下,其实基本的英语,包括听说读写,都是很重要的,毕竟大部分文档,都只有英文版不是吗?

起个好名

名字有多重要?先感受一下『楚留香陆小凤傅红雪李寻欢』,再感受一下『李狗蛋王二小黄小鸡张鸭蛋』,差别差别差别啊!

所以!大到项目,小到变量名,都需要仔细选择名字,就要那种一眼就看出来这是啥到底要干嘛的名字!不仅自己看得懂,重要的是别人也看得懂!

文档怎么写

文档其实就是作文,好的文档循序渐进深入浅出降低难度,不好的文档东一耙西一耙逻辑混乱根本没法读。当然如果这样说太抽象,那么就按照『标题党』的套路来写文档吧!重要的需要大家注意的直接塞标题里!然后开门见山先把最重要的东西说出来,然后才是各类『写得很长但估计没有人看』的细节。

没错了!这就是金字塔写作啊!

程序员思维

首先要强调的是,程序员绝对不是呆板,反而应该是呆板的反面。在我看来,真正的程序员思维是:

  • 从学习规则到培养直觉,相信直觉的同时进行谨慎验证
  • 从模仿开始,在实践中成长,最后通过教学完成蜕变
  • 联系一切,努力透过现象看本质
  • 主动阅读,组织学习小组
  • 能够集中注意力,留给自己固定的时间去思考
  • 高效管理知识
  • 用版本控制的方式推进各类事情
  • 不把事情做好不停歇,轻微的完美主义者

一个这样的人怎么可能是呆板的人???!!!

非主流技能

没有几个非主流技能,怎么好自称是『非主流程序员』呢?

  • 『跑火车』- 拉近距离,减少沟通成本,该正经的时候,比谁都认真
  • 『开脑洞』- 思维跳跃,不按常理出牌,逆向思维是什么,我擅长乱向思维
  • 『老人病』- 因为无论什么时候睡六点都会醒,所以只能早睡,也逼着自己按照更健康的方式去生活,比方说下班跑步回家
  • 『挑食』- 挑的不是特定的食物,而是食物的水准,美酒美食,不能停止了供应
  • 『不全务正业』- 多接触各行各业各类人,毕竟世界这么大,总得去看看
  • 『打广告』- 抓住机会展示自我,毕竟,再不让别人知道有我这么个人,我就没人要了

这年头没有点癖好都不好意思出来见人咧!

预备

怎么把代码写好这件事,需要在写的时候不断磨练。

学会学习

这又是一个好大好大的话题,其实秘诀大部分都在我们非常枯燥的语文教育中:

  • 背诵全文 - 识记,掌握基本概念,为后面的理解打基础
  • 总结中心思想 - 在大量阅读中抽取核心内容,理清脉络
  • 话题作文 - 不断问自己相互关联的概念和思路,搜索各类资料支持自己的思路,并组织文字来进行展示

有悟性的同学应该已经意识到学习的精髓了,简单来说和现在数据挖掘的套路一样一样的:信息获取,信息抽取,发现关联。

如果还有什么,那就是『纸上得来终觉浅,绝知此事要躬行』

数据结构与算法

这俩真的太重要了,如果计算机是一个人,那么数据结构是肢体,算法是大脑。人进化到今天是自然选择,其实计算机进化的今天也是某种意义上的『自然选择』。所以就不难意识到,为什么很多生物学的方法都能用在计算机科学上。蚁群算法、随机过程、神经网络等等,这不是什么冥冥之中,这就是天注定啊。

所以不把这俩学好,都没办法成为一个程序员,更不要说成为一个非主流的程序员了。

至于怎么学,请看前一节。

编程语言

不同的编程语言类似不同的工具,有的像成为瑞士军刀,有的只是想成为螺丝刀,但是有的想成为航母。换个比喻,不同的编程语言类似不同的国家,各有各的风情万种,虽然有的地方大,有的土豪多,还有的特别混乱,但是去见见世面还是不错的。

不过大约我们都有自己的家乡,根据混江湖是时间长短,可能还有第二第三家乡。但是硬要成为一个『世界公民』,恐怕天下大乱的时候就会第一个被甩掉了。

至于家乡是哪种编程语言,有的时候真的不能强求。也许学习编程语言是最容易达成的『我懂八种语言!』成就的,但是说出来往往要被人嘲笑。

网络与 Linux

没有 WiFi 就生病这种病,即使深入了解了计算机网络也治不了。但是现在的程序,不跟网络扯上关系的真的太少了。作为一个非主流程序员,不了解七层模型的每一层,走在路上都心慌慌。

和这个症状类似的还有 Linux。什么?你说你是 Windows 程序员,好吧,最近有个 Bash on Ubuntu on Windows 知道不。微软爸爸辛辛苦苦内嵌一个 Linux,就是要我们去学习的啊!不把 grep/awk/sed 这些搞懂,找个进程号真的都会找不到的。

真的,这俩绝对学起来装逼指数 MAX,外人看来就是在黑屏白字里啪啪啪就拯救世界了啊。

云服务

以隔壁云老王为首的云服务已经成为居家旅行必备良药,很多以前需要劳神费力操八辈子心的东西,现在只要出点钱就可以了,甚至还比以前便宜,这就是云啊。

当然,基本原理还是要懂的嘛,毕竟学会了之后,就知道怎么褥云羊毛了嘛。

毕竟如果不想多买一台电脑,可以考虑几块钱一天租一台嘛!

砰!

把代码写好之后,就该考虑考虑代码之外的东西了。

设计

均衡,存乎万物之间

设计其实就是平衡很多东西,包括但不限于:时间功能成本人力团队资源。

看吧,这篇文章结构设计这么精巧,就是有套路的。

产品经理

不由得想到了昨天看到的一个笑话,大意是程序员的大脑 50 元 1 斤,但是产品经理的大脑 500 元 1 斤。为什么?因为要 10 个产品经理的大脑才等于 1 个程序员的(比例可以根据需要随意调整)

都是被『人人都是产品经理』带坏的。毕竟不是所有事情都只需要拍脑袋。怎么获取所需的资源,怎么判断优先级,怎么跟上进度,这些把脑袋拍爆也没用啊。

博客

写博客最大的好处就是再也不用担心记不住命令配不好环境找不到参考链接啦。而且能把知识分享出去,你好我好大家好,通过输出来强迫自己输入,其实也是一种很好的自律方式。

而且写得好还可以出书!

可以出书!

出书!

团队合作

搬砖当然要大家一起搬!毕竟砖是搬不完的。这么想,如果一共要搬十块砖,而队友可以搬一百块,那么除了搬砖就可以去做很多有趣的事情了!

想想就很激动不是吗!万一搞出一个大新闻呢??!!

书单

最后一部分是书单,站在巨人肩上最好的方式就是读巨人的书,真的真的就是这么简单,坚持读坚持思考坚持输入输出,有一天就会发现,一切似乎没有改变,但是一切其实都已改变。

书单其实就在这个页面上,但是我还是非常伟大的,贴了链接:

点这里 或者点这里 再或者点这里

如果前面三个都不喜欢,可以点这里

参考链接

您的支持是对我创作最大的鼓励!

热评文章