7个规则增强你的软件生命力

在学习编程的时候,总会遇到这样那样的困难,笔者整理了编程学习各阶段的问题及心态分析。希望对广大编程爱好者有帮助。

第1阶段:机会

你很开心,你一直想学这个新的内容,比如说某编程语言,无论是规划还是环境所迫,总之你终于有这个机会学习了。

第2阶段:没有根据地乐观

谷歌搜索——挑选一两个自己感兴趣的教程,买资料和书,然后开始MOOC(大规模在线开放教程)。教程很有趣,甚至还有在线REPL,可以让你玩耍,你觉得你正在进步中。当然也有烦恼——手指还不熟练,但你坚持,不肯放弃,并准备向你的第一个项目进军。

第3阶段:绝望的深坑

你开始从“Hello, World”延伸开去,例如,先是将内容更改为“Hola,Mundo”这样小心翼翼的尝试,然后胆子稍微肥了点,开始肆无忌惮了——于是乎,错误信息,堆栈跟踪,随机行为纷至沓来。即使不管所有的错误信息,那些能在教程中正常工作的代码,也许你亲自操刀的结果却是一片空白。你恍然发现,哪怕是一些看上去愚蠢但良性的细微差别,也会造成狂风暴雨,让你阴沟里翻船,陷入绝望的深坑。即使是最简单的任务都让你痛苦不已,你开始怀疑自己,怀疑自己其实压根就没有编程的天分。

第4阶段:放低身段

慢慢地,通过试验和错误的洗礼,通过向同事、StackOverflow、博客寻求帮助,你开始一点一滴地积累知识。你开始懂得如何显示数据,如何与数据库进行交流,如何创建接口,如何覆盖方法。虽然你还并不能真正理解上述任何一个的工作原理,但是在不断掌握这些神奇的咒语,扩充知识领域的同时,完成一些特定的、必要的任务渐渐变得不在话下。对于有的咒语,你可能会用得非常顺手,甚至在一些有问题的情况下也生搬硬套,觉得只要完成就好,哪怕内心明白自己这样做并不对。调试是一种挫折锻炼。无论是因为自我觉得目标已经实现,计划将时间放到其他地方,还是因为太难因此望而怯步,亦或是自诩已经掌握了专业知识从而做出了自认为理智的选择,总而言之很多人止步于这一阶段。

第5阶段:黎明的到来

到了这一阶段,由于你已经积蓄了足够多的信息片段,于是开始能够找到它们之间的连接。你开始能够灵活应用知识,而不是像之前那样生搬硬套。你对一些基本规则开始有所谓的直觉,开始从死板地遵守向接收知识转变。这也是一个不均衡的过程——对这方面心意相通的同时可能仍然困惑于另一方面——但是你有信心一步一步地拿下,你开始享受这个过程。

第6阶段:专业

一段时间以后,你完全掌握了基本模式,开始觉得编程就像吃饭那样轻松自然。你已经可以直观地了解事物的工作原理,并且在架构、编码和调试之间轻松斡旋。一般说来你已经不必刻意地去思考问题,就像你从家里到商店去买东西——你知道怎么走,如果有一些新造的道路,你也能瞬间权衡不同的选项,并选出一条最佳的路线。此时,碰到问题最难的应该是问题本身,而不是操作系统来支持你想要它做什么事情。

第7阶段:成就

你现在已经是一个有着多年经验的专家了。你投入的时间和精力通通有了回报。你写博客文章,助力开源项目,成为了同行中公认的专家。这俨然成为你的身份和荣誉,也成为了你的枷锁,你的所作所为需要匹配专家这个名头。突然有一天,新生事物出现了。你内心也明白,这个新事物很好,将会很有用,能帮助轻松解决现有工具不足以解决的问题,将会是未来的潮流。但与此同时,你清楚地知道成为专家所需要付出的努力和时间,需要再次感受不足和挫折,需要去向他人求助等等,你不愿意了,你退缩了。你宁愿闭上眼睛,墨守陈规,将自己蜷缩成一团,就好像枯萎的枝干慢慢死去。

推荐阅读

TIOBE编程语言排行榜(2015年5月)

编程入门先学什么

美国市场上15门最赚钱的编程语言

时间: 2024-11-03 21:56:13

7个规则增强你的软件生命力的相关文章

div+css命名规则-增强SEO

div+css命名规则-增强SEO 页头:header登录条:loginBar标志:logo侧栏:sideBar广告:banner导航:nav子导航:subNav菜单:menu子菜单:subMenu搜索:search滚动:scroll页面主体:main内容:content标签页:tab文章列表:list提示信息:msg小技巧:tips栏目标题:title加入:joinus指南:guild服务:service热点:hot新闻:news下载:download注册:regsiter状态:status按

项目管理软件 Primavera P6 Release 8.1 1CD

Primavera6.0作为项目.项目群.组合管理解决方案的最新版本,该版本极大的增强了原有软件的可用性,新增60余项产品功能以扩展Primavera解决方案,大大提高了系统的灵活性,便于用户企业对项目和资源进行高效管理. ■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□ + 诚信合作,保证质量!!!长期有效: + 电话TEL:18980583122 客服 QQ:1140988741 邮件(Email):[email protected] ■□■□■□■□■□■□■□■□

项目管理理论与实践(2)——软件需求分析

一.需求分析的目的 1. 马斯洛的需求层次理论 具体可以参考:(http://baike.baidu.com/view/295140.htm) 2. 需求分析的目的 1)与相关干系人在工作内容方面达成并保持一致 2)使设计.开发.测试人员能够更清楚地了解需求 3)定义系统边界,形成需求基线 4)为估算系统的规模.工作量.成本和进度提供基础 5)为开发计划的形成提供范围(SOW)基础 二.需求工程概述 1. 什么是需求工程?用一张图可以形象的表示 需求也属于一门工程学,需求工程包括需求开发.需求管

软件开发者路线图梗概&书摘chapter1

软件技能的概念 本书目的:尝试为软件开发的新颖方法整理出一份宣言 原因:定义泛化 从敏捷开发运动中学到的经验:理解支撑规则的底层因素 软件技能的愿景:价值的提取&希望的表达 价值体系: 1.基于反馈作出改变 2.注重实效而非教条 3.分享 4.敢于实验.证明错误 5.掌控自己的命运 6.对个体而非群体的关注 7.包容性 8.以技能为中心 9.同那些使用你要学习的技能为目标的人共处 软件学徒:一种态度,不断寻找更好的方法 学徒期:责任感,渐进的过程 熟练工:新的关注:从业者之间的关系→提供指导.保

使用Configuration Manager部署及管理软件更新(1)

今天为大家演示使用Configuration Manager部署及管理软件更新. 一. 技术概述 1. 软件更新同步 Configuration Manager 中的软件更新同步使用 Microsoft 更新来检索软件更新元数据.顶层站点(管理中心站点或独立主站点)按计划或在企业中从 Configuration Manager 控制台中手动启动同步时与 Microsoft 更新同步. 当 Configuration Manager 在顶层站点上完成软件更新同步时,软件更新同步将在子站点(如果存在

华为软件开发云测评报告二:代码检查

相关文章:<华为软件开发云测评报告一:项目管理> 体验环境 体验方式:PC端 系统:Windows 64位 浏览器类型:Chrome浏览器 浏览器版本:58.0.3029.110 体验时间:2017.06.25 分析目的 了解华为软件开发云的代码检查服务功能,分析其优缺点: 从人工代码检视到自动化代码检查,华为软件开发云如何保证代码质量: 代码检查未来的发展趋势: 产品简介 产品名称:华为软件开发云 定位:软件开发云(DevCloud)是集华为研发实践.前沿研发理念.先进研发工具为一体的研发云

Java规则引擎及JSR-94[转]

规则引擎简介 Java规则引擎是推理引擎的一种,它起源于基于规则的专家系统.      Java规则引擎将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.Java规则引擎接受数据输入,解释业务规则,并根据规则作出业务决策.从这个意义上来说,它是软件方法学在"关注点分离"上的一个重要的进展.      JSR-94规范定义了独立于厂商的标准API,开发人员可以通过这个标准的API使用Java规则引擎规范的不同产品实现.但值得注意的是,这个规范并没有强制统一规则定义的

Linux下的经典软件-史上最全

前言 从2012年接触Linux系统以来就被Linux系统所吸引,2个月后便完全抛弃了Windows.在这2年的时间里,我尝试了很多Linux发行版: Gentoo, Fedora, Ubuntu, Debian等.在这些系统中又尝试了很多种软件,这里根据自己的使用经验并结合网上的一些资料,对Linux下常用的软件进行整理,供大家参考,希望能帮助到大家.每款软件都有它的优缺点,适合自己的才是最好的.在这篇文章中我是按自己的喜好推荐给大家或者进行排序的,并不是说它们就是最好的,其它的就不行.建议大

Android中设置自己软件的铃声+震动

有时候一些通讯软件需要这些个功能,比如说收到短信,通知等,要求手机发出铃声,或震动,或发光以提示用户知晓. 往往手机都是有默认设置的,比如说用户开启了铃声+震动:只铃声不震动:完全静音等等... 这个时候就需要有一个规则了,起码软件的设置不能跟系统的冲突 规则: 1. 软件应该有个自己的设置配置文件,用以保存,自己的软件的提醒规则 2. 遵从系统的设置,比如说:系统是完全静音的,人家想睡觉啦,你软件虽然是铃声震动全开,也得乖乖闭嘴. 3. 如果有需要提醒了,先获取系统的配置,然后做逻辑判断给予什