这个世界唯一不变的就是变化,IT圈子不外如是。计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术。因此,作为一名程序开发人员,我们更要通过不断的学习来提高自己的技能。
如何选择读物
程序员需要的技能改变是如此之快,尤其是那些热点的/快速演变的领域,找到这些领域合适的阅读材料有时不那么容易。几点建议:
利用好关注该类技术的那些网站。比如,在我学习iOS的过程中,我一直关注 RayWenderlish.com 和iOSDeveloperTips.com,它们都有定期较新的内容发布。
如果你是想找些书籍,请尽量选择电子书而不是纸质书,编程是一个变革飞快的行业,除非是Knuth的《计算机程序设计艺术》,很多书几个月就过时了。
选一个实际的项目
记住这句咒语:“我听见的,我忘了;我看见的,我能想起来;我做过的,我理解”。
阅 读是有益处的,但要想真正的理解某个编程语言/库或者技术,你只能亲自动手,真正的参与到一个使用这种语言/库/技术的项目中。”完成一个项目并在其中运 用到你想学的技能或特性”是一个很具体的可衡量的目标,”学习某种语言/库/技术“则太笼统了。一个清晰的目标有助于你了解你的进展。完成一个项目则会使 你获得宝贵的经验,有些甚至可以写到个人简历中。尽一切可能来用构建一个完整的项目的方式来学习,而不是根据阅读得来到东西学习一个范例。
绝大多数人都知道实际做项目而获得的经验是很必要的。难处在于怎样找到一个点子来开始一个项目。一些建议:
你这种新技能能否开发出一个家人或者朋友正需要使用的应用?我有几个小侄子,我发现给他们开发游戏是一个学习XNA/Cocos2D的绝佳方式;我很快还会为他们写一个基于Sprite Kit的游戏。
有没有什么开源项目正在使用你所学的新知识?你会发现贡献模块甚至创建项目给开源社区是一个很好的学习手段。有时从一个已有的项目继续工作比从头开始更加容易。
有没有什么盈利/非盈利组织可能用到基于这种新技能的应用?如果是这样,搞定它不但可以使你学习并开发出一个应用,并还可能获得一个用户群来给你提供大量的反馈。
教别人的同时学习
当我在微软作为布道者,想程序员们宣讲时,我常常撰写入门指南的演讲稿和在线材料。有些,我负责的是一些我很熟悉的领域,但微软拥有如此众多的工具和技术,并不断有新的东西涌现出来,我经常发现自己不得不学习新知识才能完成教程。
这 也成为了一种非常好的手段来促织我学习新东西,因为教这些东西,你必须搞懂它们。由于你得把这些新东西转化容易理解的内容,传递给你的听众,以此为目标促 使你必须有合理的学习手段和方法。Floor Drees,一个澳洲的技术宣讲/布道者说到,“坦诚的说,我觉得教别人的过程能促使自己学的飞快,我鼓励每一个人去培训新人,即使你觉得自己也还只是个 新人。”
如果你能得到合适的研究和学习资料(幸运的是,在微软我通常能很容易的找到),并有足够的时间和工具去试验一些迷你的项目来得到更深入的理解,并且你很喜欢当一名老师(无论一对一或一对多)或者作者,你也许想要尝试教学的过程中来学习。
搞定拦路虎
当你的开发技能到了一定水准,你会偶尔遇到拦路虎:一些短时间内搞不定或理不清头绪的问题。
这 是个好事,真的!如果你从不尝试新东西,那当然会发现已有东西对你来说都毫无挑战,这也意味着你没有真的在“求学”。最好的/有价值的学习经历正是那些拼 命搞定某一问题的时光。你极尽所能尝试各种方法并最终找到了解决方案,这就好像你在黑暗中探索,努力拼接出一条成功之路,这种能力在日后也会陪伴着你。
在这段探索之路,你需要以下几个技巧:
找找看,确认是否你自己或者别人已经有一个项目解决了相似的问题
利用好在线开发者论坛。Stack Overflow是你的朋友,他这些年帮我解决了好多的问题。很多开发者社团也维护自己的论坛,确保自己检查过这些站点。
参加课程
很多程序员有这样的机会通过“构建自己的项目/看其他人的项目/教授课程“来学习。但这不是所有人的习惯,有人喜欢在教室里接受传统的课程。幸运的是这些同学也有很多可选的方案。
很多学校和社团都提供了对外公开的的编程课。如果你所在的城市有一些技术人员或者黑客交流中心,那么在那通常也有针对他们团体的一些编程指南,有时这是免费的。
在 有些城市,那有新手入门课堂,在那你可以学习一门语言或一项技术,它通常会有一些密集的课程和上手小实验,这种培训通常持续几天或者几周。如果你有商业上 的需求,需要对程序员进行某种企业级工具/技术的培训,例如微软/甲骨文/Java或者SOA/云计算/敏捷开发,那么你可能需要找到某个类似Web Age Solution这样的培训机构来帮助你完成。
推荐阅读
相关推荐
黑马程序员——Android移动开发源码
程序员应该具备的技能程序员应该具备的技能程序员应该具备的技能
程序员开发手册.pdf
程序员的思维修炼 开发认知潜能的九堂课.pdf
架构师害怕程序员知道的十项技能架构师害怕程序员知道的十项技能
一个金融类程序员所需掌握的技能 一个金融类程序员所需掌握的技能
未来五年程序员应该干的事,值得大家一看。
开发 宝典 程序员 超级 程序员超级开发宝典 N多开发索引 开发 宝典 程序员 超级 程序员超级开发宝典 N多开发索引 开发 宝典 程序员 超级 程序员超级开发宝典 N多开发索引
黑马程序员精通Android4.0开发视频 百度网盘下载
web开发之即将成为程序员的你需要什么技能.docx
黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02
一个java程序员必备的10项技能,一个java程序员需要什么样的技能,你知道吗?具备了什么技能才能具备实力去竞争?请看看这里面就全部知道了。帮助很大的。
java 程序员 开发 转正答辩 ppt
优秀程序员之路 Java开发经验及技巧大汇总优秀程序员之路 Java开发经验及技巧大汇总优秀程序员之路 Java开发经验及技巧大汇总优秀程序员之路 Java开发经验及技巧大汇总优秀程序员之路 Java开发经验及技巧大汇总优秀...
2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf2016-2017年度WEB程序员必备技能.pdf
一个Java程序员应该掌握的10项技能一个Java程序员应该掌握的10项技能
C++/C程序员的基本编程技能 .
C++STL程序员开发指南 pdf C++STL程序员开发指南 pdf
因学生在学校里开发的软件是学习和学术性的软件,本书也能帮助毕业生们能尽快地从学习型的软件开发转换为商业性的软件开发,尽早形成实际生产力,这对毕业生和企业都是有好处的。 本书并不想成为面试宝典之类的书;...
[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机开发VC串口学习资料源码下载[13]卓有成效的程序员.zip上位机...