2020-11-05

Atlas's blog

talk is not cheap,speak loudly

随笔 - 19 文章 - 0 评论 - 0

第1篇 编程能力是什么

  在上一篇文章中,提出了学习编程的首先要学会站在设计者的视角,然后紧接着提出了三条原则:(1)专注一个方向,而且一段时间值研究一个;(2)要写博客,将想法整理出来;(3)要写代码,重复的来写代码,反复重构。这些话都很正确,但是到了具体操作的时候,实际上就会存在一些问题,无论是方向的选择,还是说写博客或者说写代码,正确的原则来自于成功者的归纳,却并没有给出可以执行的方案。因而,在这篇博客里面,尝试根据上述的原则,提出可操作性的建议。

  在这里首先要说两个概念,一个是编程能力,一个是工作习惯。下面分别来描述。

  首先说编程能力,上述原则的目的只有一个,那就是提高编程能力,到了这里,就不得不说什么是编程能力,否则很难说提高了,通常理解中编程就是写代码,但是这个定义太模糊了,并不能带给我们任何有价值的启发来提高这种能力。因而,在这里,我尝试来提出自己对于编程能力的看法,编程能力就是把解决方案用代码呈现出来的能力。具体来说,一个库实际上就是一个解决方案,用来解决某类问题,比如正则表达式库,用来处理正则表达式,而编程能力实际上就是重写这个库,实现同样的功能。如果能够做得更好的,不论是扩展性,执行效率或者说更加容易使用,这些的改进都可以说是编程能力更强的一个表现。在这里写代码= 解决方案 + 代码实现,当然如果在解决问题的时候,在解决方案上能够有很好的创意,那么就可以说是一个Hack了,最后,如果不仅仅是解决问题,还能够提出新的问题,那么无疑是顶级黑客。不过能力是一步步提升的,先做一个优秀的程序员,做好代码实现的部分,然后一步步打怪升级。在这里现在可以说代码实际上就是解决方案的一种表现形式,那么为了做好代码实现。无疑需要做到以下三件事情:(1)理解解决方案,如果不理解结局方案,那肯定无法写出正确的代码;(2)利用具体的语言写出代码;(3)对代码进行重构优化。因而,提高编程能力的思路就出现了,针对流程中的每个环节单独进行强化。下面分别来描述:

  理解解决方案。这点无疑是不容易的,因为解决方案只是一个大致的思路,或者说只有关键环节,往往也是描述不清楚的,如同侦探,你掌握了一些证据,但是并不足以完成找到犯人,你还需要做一些工作,也就是把描述性的语言转换成伪代码,有了伪代码,任何一个程序员,利用任何一种语言都可以实现编程。那么如何具体来提高呢?个人觉得就是划出数据的流程图,首先用数据结构描述问题,而后思考数据怎么传递,到达最终想要的形式,通过画图,就可以直观不重不漏的完成这一工作。可以先划出已经知道的解决方案的流程图。实践几次,就会有一个比较深刻的见解,也会在后续工作中更加熟练,当然,这块核心还是算法的问题,不过,流程图的使用无疑可以提高你的效率。

  用熟知的方法写出代码。这点就是要熟悉所用语言的特性,包括基础的语法和高级特性,此外,还需要知道有那些常用的模块和库等可以直接使用来解决问题,没必要浪费时间去做重复的无用功。这个就是在两个方向针对性的去看书学习,此外,最重要的还是多使用语言以及这个模块,才能够真正的掌握。

  代码重构。实际包括很多内容,可以是小的改变,也可以是推翻重来。围绕扩展性,可用性,可读性,可以进行专门的提升,这时最好的方法就是找公认在这些领域具体这希些特点的开源项目,根据方案重写代码,反复对比修改,指导对于重构有了直觉上的认识,而不是理解了概念。

  最后,在实际的编程过程中,这三个步骤不是那麽分明,这里只是为了为了方便理解,做这样的区分,因为脑海中又有这样一个概念们,就可以针对性来调高自己,这对于刻意练习无疑是必不可少的。当然,也可能有别的思路,这里仅仅提供个人看法,仅供参考。

  关于工作习惯,实际上是一个老生常谈,就是说不止一次,一段时间按照上面做,而是让整个过程变成习惯,在每一次编程都是这样来的,才能够真正的提升编程能力。对于养成习惯,最好的建议是立马去做,坚持去做,不过这样的话带不来任何的启发。这里给出一点小建议:

  (1)构建个人的知识数据库:方便快速准确找到可靠的消息。这无疑是很重要一个建议,不论是通过云盘存储,通过博客记录都可以。这里是一个很大的话题,目前也还在探索中,如果你有好的见解,欢迎交流。

  (2)搭建工作平台;利用好github以及博客,此外比如论坛和qq群都合理使用。论坛以及qq群方便交流,用来收集资料和见解,而博客和github则是整理输出所收集到的资料,这是一个闭环的过程,不断地循环往复,搭建起来这样一个标准化的平台,后续要做的就是去搜寻,去写博客和写代码。关于那些好的资源,目前还在整理中,最常用的比如博客园,stacjoverflow,基本就可以解决大部分问题,还有就是官网。

  (3)学习工具提高工作效率。(好的截图工具,好的编辑器)打造习惯之所以坚持不下去,就是太痛苦了,因而,你需要学习一些软件,有了这些软件,只要一时痛苦,但是,一旦学会了使用,整个效率就会大大的提升,最终收获到意想不到的回报。

  所以,最后,总结来说,你需要关注以下东西:(1)伪代码;(2)代码重构技巧(扩展性,效率提升,可读性,可维护性,易于使用性);(3)基础的知识点的掌握程度。世界有天才,但是你不会和天才竞争,你需要和不是天才的人竞争,你如何脱颖而出,答案是:正确的工作方向+正确的工作方式,最后补充一句,优秀是一种习惯,你只有拼尽全力人后受罪,才能够在人前看起来轻而易举。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351