悬崖勒马之三年编码的反省 - 努力奋斗 - 博客频道 - CSDN.NET



悬崖勒马之三年编码的反省 - 努力奋斗 - 博客频道 - CSDN.NET

        从12年初入职场到现在已经三年有余,从当时技术小白到现在的勉强小手,显然这样的结果是我不曾希望的。步入职场之初,暗下决心,三年时间里希望能在工作技术上有一个质的变化。奈何事实却是时间消磨了斗志,抹灭了激情,梦想被现实打败,而且是一败涂地。三年的时间里,回首思考过去的计划安排,却发现花在钻研技术上的时间其实并不少的,为何却没有比较深入的提高呢?或者说,为什么感觉不到进步呢?在写这个之前,自己也冥思苦想了好久,寻找根本原因,不论客观的主观的,最后总结于如下几个方面:

       于自制力
       我想这应该是让我这几年停滞不前,甚至有些后退的根本原因之所在吧。虽然能勉强应付工作了,虽然计划赶不上变化了,虽然明日复明日,明日何其多,虽然...太多的诱惑,太多的借口让自己放松自己,任由计划放空,甚至有些放纵自己。当一次此松懈的有恃无恐,当舒适的感觉已养成习了,当计划一而再的变成了可有可无的时候,怎么可能还会有翘首企盼的进步和突破呢?温水煮青蛙的故事,谁又不懂呢?劳逸结合固然是提高效率的决定因素,但是当原本计划落空导致严重的压迫感的时候,因松懈而带来内心强烈的自责感的时候,行动和回报距离过于遥远甚至可能没有回报的时候,无一不深深的牵绊着下一步计划的实施和泯灭钻研的热情。自制力这个时候显然是软弱无能的,当你这刻吃下了一块炸鸡,你能坚持明天一直吃素吗?当你今天一直不学习,真的相信明天会补回来吗?别骗自己了。遇到事情或者遭遇问题,最好立马实施去做去解决,而不是过多的考虑和依赖如何,在哪里,何时去做。当一切准备就绪的时候,可能又没有做的心情了。不做就是停滞不前,做了即使做错,也有经验的积累,而且也能提高自己的自制力和执行力。遇事不存事,立马制定计划,开始实施。套用别人的话,自制力是最优秀的品德。

        于侧重点
        翻开过于的一些计划安排,发现自己有点饿坏了的感觉,看到了东西就抓过来吃,不管能不能吃,是什么味道都塞进嘴里,还没来得及咀嚼消化就吞进肚里然后排泄出来,占了空间就没能吸收到必须的营养。回头想这几年花时间学的一些技术知识:c/c++,shell ,kernel, Qt,正则 python,java,还包括一些网络开源的库等等,无一不是这样。随着时间的推移以及工作的不相关等因素,现在能熟练使用的也只是目前工作需要的,其他都忘记的十之八九了,而工作中需要的去了解,去深入钻研的却无暇顾及,导致工作上有时问题不能完美的解决或者无法解决。这个显然也是导致营养不良的一个严重问题。一把抓式学习显然对我们钻研技术的来说不是一件好事。于时间,于精力都是不被允许的,懂的多固然是一件好事,但是我想这应该是立足于熟练自己擅长的基础之上的还有足够精力和兴趣的,如果本身的都没有抓好,又出四处乱抓一把,虚胖显然是很不健康的,到头来只会越陷越深,失去方向。写到这里,突然想起前段时间公司培训,讲到时间管理坐标系的问题(紧急为x轴和重要为y轴,正为紧急 重要,负为不紧急,不重要),将自己列入其中,才发现自己一直在错误的象限中(不紧急不重要和紧急重要)忙的团团转,却忘记了最应该花大量时间去的管理的象限(重要不紧急)的事情。

      于难易度
      前段时间看一位牛人的博客,里面谈到人对外部世界的认知区域。感觉对于程序员来说挺有用,也正好适合我想表达的想法。分享一下,心理学认为人对于外部世界的认识可以分为三个区域:舒适区(comfort zone)、学习区(learning zone)、恐慌区(panic zone)。比如我们看一本书,如果这本书所说的内容都是我们熟悉的,完全符合我们的人生观和世界观,那么这本书就在我们的舒适区内,但如果这本书说的内容和我们的人生观和世界观不符,但是我们思考后之后仍能接收理解的,那么这本书就在我们的学习区内。如果这本书的内容在我们阅读的时候很难理解和吸收,那么就在我们的恐慌区内。心理学研究说,只有在"学习区"内做事,人才会进步。纵观我这几年的额外学习的重点知识都不是在"学习区"内的,对于基础Qt、python、java语法等这些几乎都是趋于"舒适区"内的,在某种意义上的重复劳动。而kerne、某些开源网络框架等趋于"恐慌区"内的,也只是短暂时间的逼迫接受。而这些却是我耗费时间精力最多的两个区域,这样又如何进步呢。

       写到这里我想要表达的都总结的差不多了。反省总是有所收获的,或茁壮成长,或自甘堕落,在这里,一切的言语在行动面前都是苍白的。希望在下一个阶段性的回望时,能给自己交一份真正意义答卷。最后套用一位牛人的的话送给自己:

       "写到这里,我想有很多人都问过我,程序要怎么写才能写得好,或者说设计模式要怎么写,之类的问题。如果把学习编程话费的精神代价作为标准的话,捷径是没有的。但是如果仅仅把时间作为标准的话,捷径显然是有的。怎么才能加速你学习的过程呢?答案就是,先写再看书。对于像编译原理这种略微高深的知识,总要自己写过几遍,吃一些苦头,才能知道为什么书里非要把算法那么设计,结构那么安排。对于像设计模式这种需要大量经验才可以领悟到的知识,如果你从来没有独立写过一个上万行的程序,你觉得你能理解设计模式在讲什么吗?我觉得这个时候能做的就也就是背下来,理解什么的都是扯淡。诸如此类,学习程序,如果要加速那个过程,肯定要花大量的时间写代码。当你把项目做的越大、越复杂、算法越扭曲、界面越华丽、尺寸已经大到你觉得不学习新的方法论就肯定会让代码失控的时候,这个时候你来看设计模式的书,保证是每看到一个模式都觉得人家说到你心坎里去了。那你不仅可以迅速理解,而且以后还可以不由自主的想起来使用它"
        
        " 在程序员的生涯里面,最重要的就是保持对编程的热情,不要被生活的琐事所磨灭。其次是要给自己不断地创造一些足够困难但是又有办法完成的挑战,这样才可以总是让自己保持着一个快速前进的状态。"


Read full article from 悬崖勒马之三年编码的反省 - 努力奋斗 - 博客频道 - CSDN.NET


No comments:

Post a Comment

Labels

Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

Popular Posts