程序员学习新技术的10个建议

简介: 程序员学习新技术的10个建议

程序员学习新技术的10个建议

我们生活在一个振奋人心的时代。我们可以越来越方便廉价地获得大量学习资源。这些资源的传播载体由最初的教室被变成了博客,技术论坛等。拥有如此众多的学习资源,我们没有任何理由不去好好利用。随之而来的问题便是如何在这知识的海洋中选择自己的前进方向。在这篇文章中,我将简要概括一些技术学习的建议,希望可以给你带来一些启发。



尽管我的建议主要涉及的是软件开发方面,但是这些原则在其他领域也同样适用。


1. 克服惯性


万事开头难,克服惯性是学习新技术的第一步。举个日常生活中惯性存在的简单栗子,当我们看电视的时候会因为遥控器不在身边而懒得换台。幸运的是有很多的小技巧可以调动我们的积极性,帮助我们克服惯性。对于我来说,微习惯是一个很好用的小技巧。与其被手头的任务吓到,不如将任务细分为一个个具体的微任务,然后挑选其中的一个开始做起。就“拿到遥控器”这个例子来说,首先扭动你的脚趾,向前伸出,然后推动整个人离开沙发。下一步,身体滑到地上,用脚拿到遥控器,然后起身。通过完成一个个的微任务,你会发现自己克服了惯性,并且这项任务不再显得难以完成。这个方法可以被应用到学习新技能的过程中。关键就是将大块任务细分为微任务。



2. 关注大牛


学习新技能的第一步是明确要学什么。它可以是任何你有激情去学,并且想深入学习的一些东西。这种原始的学习欲望非常重要,这种欲望可以在你的学习低潮期给你提供动力。你想学的或许是一门新的编程语言、应用框架或者是新的工具,一旦你确定了想要的是什么,就立刻去收集相应的优秀群体所做的一些优质的工作成果。这些可以从YouTube、Vimeo、HackerNews、各种博客,甚至是你的微博好友那里获取。关注别人做了些什么可以给你强大的信心,让你觉得 “You can do it, too!”



3. 建立知识网


当你对自己要学习的东西建立了信心之后,接下来要做的就是做一块海绵,然后开始疯狂地吸收知识。从Google搜索关键词“beginner tutorials”开始吧,搜索一些跟你要学习的知识相关的入门教程。如你所知,Nettuts+上面有成千上百的各种教程供你选择,StackOverflow上面也有很多学习资源。此外,Quora也是一些不错的选择。通过浏览这些网上的资源之后,如果想要集中精力学习某一方面,这时就需要阅读一些相关的书籍了,个人推荐在Amazon上面寻找一些评分较高的专业书籍来提高自己。



4. 多听多看


随着你对技术的深入挖掘,你可能会想利用更多其他形式的学习资料,比如podcasts,screencasts等等。我的建议是多用 iTunesU,这上面有很多很专业的知识可以让你对于特定的领域进行深入的探索。



目前,有很多的网站都有提供在线教育服务。王婆卖瓜,这里要首推我们自己的Tuts+ Premium。想要学习PHP或者JavaScript?这里有你最需要的资料。另外,你也可以在下面几个网站上找到自己需要的教程:


Udemy


CodeCademy


CodeSchool


此外,你也可以看一些免费的会议视频材料,比如YouTube上面的Google IO,以及Confreaks!



5. 行动起来


现在你已经看了一波又一波的教程以及视频资料,并且对于想学的技术已经有了一个相当深入的了解,接下来做些什么呢?没错,是时候理论联系实际了,实践是检验真理的唯一标准。



用你所掌握的技术做一个个人的小项目,设计一些简单的功能并且实现他们。毫无疑问,你会遇到很多的绊脚石,当遇到它们的时候,在StackOverflow或者Google上面搜索之,解决之。你已经踏上一条成为某一领域专家的旅程,遇到的困难挫折越多,你会变得越睿智。有句老话说得好,“专家是犯错最多的人”,这意味着他们尝试了很多疯狂的事情来探索这门技术的极限,最后,对于这门技术是如何运作的就可以知根知底。拥有这种洞察力之后,他们便可以随心所欲的运用这项技术去按照自己的意愿完成想做的事情(当然,是做好的事情)。



6. 写博客


在你进行你的探险之旅的时候,实时记录下你的成长以及犯下的错误大有裨益。在技术领域,博客是最简单易得并且受欢迎的表达载体。当你准备落笔的时候,你会强迫自己整理思路,并且对积累下来的零散的知识片段进行结构梳理。说不定,通过互联网的分享,你的经历和分享会给别人的成长带来帮助。



如果你想走的更远(比如想像Nettuts+上面的职业作者一样),你也可以制作属于自己的screencasts。总的来说,写博客能够提升你的个人沟通能力,这与你学到的技术同样重要。



7. 感受技术的脉搏


社交网络已经广泛应用于人们的日常交流以及发现新鲜事物。Twitter和Facebook是信息的主要来源,与此同时,有很多的网站提供更专注的资讯,如前面提到过的Quora网站,这上面有很多涉及面很广的一些话题供人们评论。在这上面可以找到很多知名大牛的建议以及观点。



浏览StackOverflow上面的众多话题是一个很有意思的过程,你可以看到他人如何探索某种技术的极限。事实上,在人们利用技术做一些疯狂的甚至是荒诞的事情的时候,技术也随之不断的成熟起来。



因此,如果你想要感受到技术的脉搏,并且想确认它是否值得学下去,在StackOverflow上面试着搜索一些话题,看看这个讨论社区的广度与深度。最值得看的是投票最多以及热门话题。你也可以尝试在GitHub上面进行搜索。



8. 参加聚会以及会议


尽管社交网络很棒,但是没有任何事物可以取代面对面的交流。在你住的附近参加一些小组聚会,在这里你可以找到志同道合的伙伴。你可以知道他人在做的一些有趣的项目,同时也可以在他人的帮助下解决一些自己遇到的难题!同样的,技术会议对于分享经验以及增长技术大有帮助!



9. 拥抱 GitHub


GitHub是全世界开源项目的标志性建筑物。它是知识以及优质代码的宝库。当你对某项技术自我感觉良好的时候,下一步便是在GitHub中浏览寻找有趣的项目。阅读开源代码,尽可能多的阅读。这样做的话,你能够学到很多东西,比如说:


如何管理规模较大的项目


项目中应用的有趣的库


代码规范以及代码全局设计


文档风格


测试规范


解决诡异问题的方法,以及发现项目中有问题的地方


所有的这些知识都在等待着你去挖掘。有趣的是,这些知识的通过一个简单的标签就可以得到,那就是“好奇心”。



10. 专注学习


如果你担心上述的学习过程太迟缓,那么你也可以尝试一下快速学习模式。你或许听说过“24小时学会某某某”,但是这种方式不是我所推荐的。我认为更合理的是用几周的时间去学习。你可以尝试一下类似“七周学会七种语言”或者是“七周学会七种数据库”等学习方法。尽管这些讲的是语言以及数据库方面的学习,但是你在学习其他技术的时候也可以运用这种思维。



有一个不太相同的学习风格是“困难学习模式”,这种观点的前提是没有人可以真正掌握一门技术,除非每天都练习。所以,想要成为专家,你就需要不停地进行练习。异曲同工的是你可以查看Katas 和 Koans,他鼓励的使用你学的知识来解决问题。这些可以让你更好地入门以及接受那些陌生的概念,勇敢走出自己的舒适区,开始学习新知识!



学习一门交叉的技能


编程是一项左脑的运动,它利用的是大脑的分析能力,一步一步地寻找解决问题的方法。为了发挥右脑的功能,你可以尝试从事一些创造性的活动,比如说画画、3D建模、折纸、乐器甚至是制作家庭相册等。事实上,编程同样需要大量的创造力。或许你曾经遇到过类似的事情,你在睡梦中找到了问题的解决方案。这是因为你的右脑处理问题的方式很不同,它可以从各种地方获得信息。敏捷开发权威人士Andy Hunt就这个话题写了一本书《程序员的思维修炼》。如果你想点燃你的每一个神经元,建议你开始学习一门交叉的技能。



总结


掌握一门新技术振奋人心,这是一项影响你思维的新的体验。但是首先,你必须克服你的惯性,一旦你做到了,你便开启了从web的每个角落学习知识的旅程。我希望上面讲的十点能够给你的旅程带来一些帮助或启发。    

目录
相关文章
|
3月前
|
存储 Java Android开发
探索安卓应用开发:从初学者到专家的旅程
【8月更文挑战第24天】在这篇文章中,我们将一起踏上一段激动人心的旅程,从零基础开始,逐步深入到安卓应用开发的世界。通过简单易懂的语言和实际的代码示例,我们将解锁创建精美安卓应用的秘密。无论你是编程新手还是希望提升现有技能的开发者,这篇文章都将为你提供宝贵的知识和灵感。让我们一起构建你的第一个安卓应用吧!
|
12天前
|
开发者
技术与人生:一段不断学习和成长的旅程
【10月更文挑战第22天】 在技术的海洋中,每一次点击、每一行代码都是对未知世界的探索。本文将分享我的技术感悟,包括如何从大学毕业时的迷茫中找到方向,通过大胆尝试新领域和不断学习提升,最终找到属于自己的人生道路。正如乔布斯所说:“人生中的每一个点都会在未来某个时刻连接起来。” 不忘初心,方得始终,让我们在技术的旅途中不断前行。
22 2
|
1月前
|
设计模式 测试技术
从代码中学习:我的技术成长之路
【9月更文挑战第30天】在编程的世界里,每一行代码都像是一次小小的探险。本文将带你走进我的编码之旅,一起探索如何通过实际的代码示例来提升技术能力。我们将从简单的Hello World开始,逐步深入到复杂的项目结构,并分享在这个过程中遇到的挑战和收获的经验教训。这不仅是一个关于技术的学习之旅,更是一个关于如何面对困难、持续进步的心路历程。
|
6月前
|
机器学习/深度学习 设计模式 SQL
编程之路上的飞跃:那些让我技能显著提升的关键概念与技术
编程之路上的飞跃:那些让我技能显著提升的关键概念与技术
69 10
|
3月前
|
前端开发 数据可视化 数据挖掘
探索技术之路:我的编程旅程
【8月更文挑战第7天】在数字时代的浪潮中,编程已成为一种重要的技能。本文将分享我个人的编程学习经历,包括初识编程的喜悦、面对挑战时的困惑与坚持,以及在实践中不断成长的过程。通过这段旅程,我深刻体会到了编程的魅力和挑战,并希望我的经历能为同样热爱编程的你带来一些启示。让我们一起在编程的道路上不断前行,探索更广阔的技术世界。
70 11
|
3月前
|
Java 程序员
谈谈程序员如何学习新技术
文章分享了作者学习新技术的经验和方法,从确定学习目标、制定学习计划到学中坚持和学后应用,强调了持续学习的重要性,并鼓励程序员通过实践、写作、分享和开源贡献等方式不断成长和提升技术能力。
|
3月前
技术感悟:从代码到创新的旅程
【8月更文挑战第14天】本文将分享作者在技术领域的成长历程,包括学习编程、参与项目和技术创新等方面。通过个人经历和感悟,探讨如何从代码中发掘创新思维,并将其应用于实际项目中。同时,强调持续学习和团队合作的重要性,鼓励读者在技术道路上不断探索和挑战自我。
|
消息中间件 Web App开发 自然语言处理
我是如何学习一门新技术的
我是如何学习一门新技术的
|
SQL 数据采集 消息中间件
如何快速学习一门新技术
如何快速学习一门新技术
如何快速学习一门新技术
|
敏捷开发 前端开发 架构师
程序员自我发展之路:从态度到方法
程序员自我发展之路:从态度到方法
136 0
程序员自我发展之路:从态度到方法