这个世界唯一不变的就是变化,IT圈子不外如是。计算机领域一直在改变,从基础框架到计算设备,还有几乎每天都涌现出的新技术。因此,作为一名程序开发人员,我们更要通过不断的学习来提高自己的技能。
如何选择读物
程序员需要的技能改变是如此之快,尤其是那些热点的/快速演变的领域,找到这些领域合适的阅读材料有时不那么容易。几点建议:
利用好关注该类技术的那些网站。比如,在我学习iOS的过程中,我一直关注 RayWenderlish.com 和iOSDeveloperTips.com,它们都有定期较新的内容发布。
如果你是想找些书籍,请尽量选择电子书而不是纸质书,编程是一个变革飞快的行业,除非是Knuth的《计算机程序设计艺术》,很多书几个月就过时了。
选一个实际的项目
记住这句咒语:“我听见的,我忘了;我看见的,我能想起来;我做过的,我理解”。
阅 读是有益处的,但要想真正的理解某个编程语言/库或者技术,你只能亲自动手,真正的参与到一个使用这种语言/库/技术的项目中。”完成一个项目并在其中运 用到你想学的技能或特性”是一个很具体的可衡量的目标,”学习某种语言/库/技术“则太笼统了。一个清晰的目标有助于你了解你的进展。完成一个项目则会使 你获得宝贵的经验,有些甚至可以写到个人简历中。尽一切可能来用构建一个完整的项目的方式来学习,而不是根据阅读得来到东西学习一个范例。
绝大多数人都知道实际做项目而获得的经验是很必要的。难处在于怎样找到一个点子来开始一个项目。一些建议:
你这种新技能能否开发出一个家人或者朋友正需要使用的应用?我有几个小侄子,我发现给他们开发游戏是一个学习XNA/Cocos2D的绝佳方式;我很快还会为他们写一个基于Sprite Kit的游戏。
有没有什么开源项目正在使用你所学的新知识?你会发现贡献模块甚至创建项目给开源社区是一个很好的学习手段。有时从一个已有的项目继续工作比从头开始更加容易。
有没有什么盈利/非盈利组织可能用到基于这种新技能的应用?如果是这样,搞定它不但可以使你学习并开发出一个应用,并还可能获得一个用户群来给你提供大量的反馈。
教别人的同时学习
当我在微软作为布道者,想程序员们宣讲时,我常常撰写入门指南的演讲稿和在线材料。有些,我负责的是一些我很熟悉的领域,但微软拥有如此众多的工具和技术,并不断有新的东西涌现出来,我经常发现自己不得不学习新知识才能完成教程。
这 也成为了一种非常好的手段来促织我学习新东西,因为教这些东西,你必须搞懂它们。由于你得把这些新东西转化容易理解的内容,传递给你的听众,以此为目标促 使你必须有合理的学习手段和方法。Floor Drees,一个澳洲的技术宣讲/布道者说到,“坦诚的说,我觉得教别人的过程能促使自己学的飞快,我鼓励每一个人去培训新人,即使你觉得自己也还只是个 新人。”
如果你能得到合适的研究和学习资料(幸运的是,在微软我通常能很容易的找到),并有足够的时间和工具去试验一些迷你的项目来得到更深入的理解,并且你很喜欢当一名老师(无论一对一或一对多)或者作者,你也许想要尝试教学的过程中来学习。
搞定拦路虎
当你的开发技能到了一定水准,你会偶尔遇到拦路虎:一些短时间内搞不定或理不清头绪的问题。
这 是个好事,真的!如果你从不尝试新东西,那当然会发现已有东西对你来说都毫无挑战,这也意味着你没有真的在“求学”。最好的/有价值的学习经历正是那些拼 命搞定某一问题的时光。你极尽所能尝试各种方法并最终找到了解决方案,这就好像你在黑暗中探索,努力拼接出一条成功之路,这种能力在日后也会陪伴着你。
在这段探索之路,你需要以下几个技巧:
找找看,确认是否你自己或者别人已经有一个项目解决了相似的问题
利用好在线开发者论坛。Stack Overflow是你的朋友,他这些年帮我解决了好多的问题。很多开发者社团也维护自己的论坛,确保自己检查过这些站点。
参加课程
很多程序员有这样的机会通过“构建自己的项目/看其他人的项目/教授课程“来学习。但这不是所有人的习惯,有人喜欢在教室里接受传统的课程。幸运的是这些同学也有很多可选的方案。
很多学校和社团都提供了对外公开的的编程课。如果你所在的城市有一些技术人员或者黑客交流中心,那么在那通常也有针对他们团体的一些编程指南,有时这是免费的。
在 有些城市,那有新手入门课堂,在那你可以学习一门语言或一项技术,它通常会有一些密集的课程和上手小实验,这种培训通常持续几天或者几周。如果你有商业上 的需求,需要对程序员进行某种企业级工具/技术的培训,例如微软/甲骨文/Java或者SOA/云计算/敏捷开发,那么你可能需要找到某个类似Web Age Solution这样的培训机构来帮助你完成。
推荐阅读
相关推荐
7. 学习策略和持续学习:随着技术的快速发展,程序员需要不断更新他们的技能。课程可能包括有效学习策略的建立、资源的选择和利用、以及终身学习的习惯的形成。 8. 时间管理和优先级设定:教授如何有效地安排工作,...
书中还强调学无止境,程序员应该持续学习新技术、新工具,不断提升自己的技能。同时,书中提倡对团队的投资,通过团队合作、共享知识来提升整体效率。懂得丢弃不再适应新环境的技术和方法,对问题刨根问底,才能保持...
了解新的库、框架和工具,参加在线课程,阅读专业博客和文章,参与开源项目,这些都将有助于个人技能的持续提升。 综上所述,《2017年Web程序员技能树成长指南》涵盖了从基础到高级的Web开发知识,包括JavaScript、...
这份资源旨在帮助程序员避免常见的编程陷阱,提升开发效率,并优化代码质量。在我们的压缩包文件"studa.com"中,可能包含了一系列与编程实践、错误处理、调试技巧以及最佳实践相关的资料。 首先,我们要认识到,...
在编程世界中,C#是一种广泛使用的面向对象的编程语言,尤其在开发Windows应用程序、游戏、Web服务以及.NET框架...通过深入学习和实践这些内容,你不仅可以提升自己的编程技能,也能更好地适应不断变化的软件开发环境。
在IT行业中,Web开发是一项至关重要的技能,...通过深入学习并实践这些手册中的知识,你将能够提升自己的Web开发技能,更好地应对各种项目需求和挑战。在不断变化的IT行业中,持续学习和更新知识是保持竞争力的关键。
综合以上知识点,程序员可以通过不断学习和实践,从技术、思维、沟通、管理等多个维度提升自己,从而开发和释放潜在的职业能力。这些能力的提升不仅能够帮助他们在现有工作中表现出色,还能为未来可能的职业转变或...
根据给定文件的信息,我们可以总结出未来五年程序员应当掌握的十项关键技能: ### 1. 掌握至少一种主流编程语言(.NET、Java、PHP等) 在未来的五年里,程序员应该至少熟练掌握一种主流的编程语言,比如.NET (包括...
随着信息技术的快速发展和不断迭代,软件开发人员面临着前所未有的挑战:如何在海量的信息中筛选出有价值的知识,如何有效地吸收并转化为自己的技能,以及如何保持持续学习的动力。根据一篇针对C语言编程人员的学习...
《程序员超级开发宝典》是一本综合性的编程资源集合,旨在为程序员提供全面的开发指导。...作为一本程序员必备的工具书,它涵盖了从...通过深入学习和实践,读者可以提升自己的编程能力,更好地应对各种开发任务和挑战。
### 程序员日常开发工作培训方案 #### 一、概述 随着IT行业的快速发展,越来越多的新员工加入到了程序员队伍中。然而,由于工作经验和技术积累的不足,许多新入职的程序员在面对实际项目时常常会遇到诸多挑战。这...
成为优秀的程序员不仅在于编写高...通过培养这些习惯,程序员不仅能提升个人技能,还能增强团队协作,使自己在不断变化的IT世界中保持竞争力。记住,优秀程序员的标志不只是编写代码,更是如何高效、灵活和合作地工作。
作为一名JAVA程序员,提升核心竞争力是保持职业生命力的关键。在快速变化的互联网行业中,技术的更新迭代速度极快,因此,持续学习和适应新技术是至关重要的。以下是一些建议,帮助JAVA程序员强化自身技能和思维能力...
多的雇主正在寻找那些能深入理解业务流程的程序员。具备业务知识的开发者能更好地与团队其他成员交流,更快地理解需求,并能提出更有效的...所以,不要停止学习,持续提升自己,才能在这个领域中立足并取得辉煌的成就。
综合以上信息,这份"程序员超级开发宝典"很可能是程序员提升技能的综合指南,包括了各种编程语言的学习资源、开发工具的获取途径、Web开发的深入讲解以及提升开发效率和项目管理的方法。对于想要在编程领域精进的...
《程序员超级开发宝典》是每位开发者不可或缺的资源库,它深入探讨了编程世界的各个方面,旨在提升程序员的技能水平和开发效率。这本书籍涵盖了大量不为人知或未被广泛讨论的开发技巧和策略,旨在帮助程序员们在面对...
即个人的职业发展不应该仅仅基于技能的提升,还要考虑与市场的需求相匹配。程序员需要在职业生涯的早期阶段就开始探索适合自己的发展方向,并且不断地根据自身特点和市场变化做出调整。 此外,文档还提到了程序员在...
《程序员的思维修炼:开发认知潜能的九堂课》是一本深入探讨程序员如何提升思维能力、激发潜在认知力的专业书籍。书中的九堂课旨在帮助程序员不仅在技术层面提升,更在思维方式上进行质的飞跃,从而更好地适应快速...