[转]10 Tips for Learning a New Technology
We live in a very exciting time. Never before has education been so cheaply available to the masses (if not free). The medium, itself, has made tectonic shifts from a classroom setting, to blogs, screencasts and complete university classes, as a set of videos and interactive forums. Given these resources, there’s absolutely no excuse not to dive in and learn. However, with such a wealth of resources, filtering through the options can often become overwhelming. In this article, I will outline a simple process to kick-start your education.
Although my suggestions will primarily pertain to software development, these principles are certainly applicable to other fields.
1. Overcoming Inertia

Learning something new always begins by first overcoming the inertia to make the first move. This is the same inertia you feel when you want to change the TV channel, but the remote isn't nearby! Thankfully, there are some simple techniques to get excited and motivated. One that has worked really well for me is the concept of Tiny Habits. Rather than becoming overwhelmed by the task at hand, take a tiny step and do something to get started. Using the "get the TV remote" example, start by wiggling your toes, then bend forward, then push yourself away from the couch. Next, try to fall off onto the floor, and finally get up. By following a series of tiny steps, you will overcome your inertia and the task won't seem as overwhelming. This same idea can be applied to learning new skills. It’s all about tiny steps.
2 - Watch the Pros

The first step, when picking up a new skill, is to determine what to learn. This could be anything you feel passionate about, and have a genuine interest in exploring further. It’s important to have this strong inclination, as it will provide you with the necessary fuel, during those low times. Once you decide what to learn, be it a new programming language, an application framework, or a tool, research inspiring work done by their respective communities. You may find it on YouTube, Vimeo, HackerNews, blogs or even from one of your Twitter friends. Reviewing what others have done will give you confidence that you, too, can do it!
3 - Let the Information Flow Begin

Once you cross the stage of convincing yourself about the thing you want to learn, it’s time that become a sponge, and start absorbing knowledge. Begin with some Google searching on "beginner tutorials" related to your topic. As you know, Nettuts+ offers hundreds upon hundreds of tutorials. Check here as well.StackOverflow is one place where you will surely find links to a plethora of resources. Alternatively, Quora is an excellent place to search for answers. Once you sift through these links, you may wish to take a more concentrated dose by looking for the best books on the topic. Personally I refer to Amazon for hunting down highly rated books.
4 - Listen and Watch

As you delve deeper into the pool of knowledge, you will want to add other forms of information – namely, podcasts and screencasts. I encourage you to browse through iTunesU, which offers complete classes on a variety of topics from some of the best institutions in the world. This is particularly helpful for those who prefer an academic setting.
These days, there are a handful of websites that offers online education. Look no further than our very ownTuts+ Premium. Hoping to learn PHP or JavaScript? There’s no better resource on the web. Alternatively, you might consider:
You can also watch conference presentations, such as Google IO on YouTube, or Confreaks for free!
5 - Time for Action

The best way to learn is by doing.
Okay, you’ve read countless tutorials, watched videos, and have a better understanding of the technology that you’ve been hoping to learn. What now? Well, it’s time to put your knowledge to the test. Ultimately, the best way to learn is by doing.
Pick a personal project that you can build using this new technology. Design some simple features and implement them. You will most definitely hit some stumbling blocks. When this happens, research the solution on StackOverflow or Google. You are now on a journey to become an expert in that technology. The more failures and road blocks you encounter, the wiser you will be. There is a saying that "the experts are ones who have made the most mistakes." It means they’ve tried crazy things and pushed the limits of a technology. As a result, they’ve acquired an intimate understanding of how it works. With such insight, they are able to bend the tech to their will and wield Jedi powers (for good, of course).
These powers are also within your reach.
6 - Blogging

As you embark on your journey, it’s helpful to chronicle the steps (or missteps) you took along the way. Blogs are easily the most popular form of expression in the tech community. It’s part of our DNA. When you put a pen to your learnings, you’re forcing yourself to become more cohesive in your thoughts, bringing some structure into the dispersed pieces of knowledge that you have accumulated. Who knows, in the process, you just might be educating someone else on the Internet. Pay it forward when you can.
If you’d like to take things a step further (as writers do every day here on Nettuts+), can take this a step further and create screencasts, which is preferred by most visual learners. Overall, blogging helps you build your communication skills, which is as important as the technology you are learning.
7 - Feel the Pulse

Technology matures when people do crazy and sometimes unthinkable things.
Social Networks have become a universal way of staying in touch and discovering new things. Twitter and Facebook are the primary suspects for information, but there are more focused websites, like the previously mentioned Quora, that have a wide-ranging set of topics, which people may vote and comment on. It’s a great place to find answers and opinions from well-known individuals with real-life experiences. In fact, a quick search on Quora for other perspectives on learning, reveals an interesting set of results.
Scanning the ever-growing set of questions on StackOverflow can also be a fun way to review the way in which others are pushing the limits of a particular technology. In fact, technology matures when people do crazy and sometimes unthinkable things with it.
If you want to feel the pulse of a technology, and determine whether it’s worth learning, try a search on StackOverflow to see the breadth and depth of the community. The Most Voted, Featured questions are excellent candidates for this sort of exploration. You can also carry out a similar exploration on GitHub.
8 - Meetups and Conferences

Although social networks are great, nothing can substitute real human connection. It is quite likely that you have a Meetup group in a place near you, where you’ll find several like-minded folks. You will learn about interesting projects that others are working on, while also getting some of your tricky problems solved!. On a related note, conferences, too, are a great place to share experiences and enrich your already growing skill-set.
9 - GitHub

GitHub is the iconic landmark for the world of open-source projects. It’s a treasure trove of knowledge and creativity, expressed in the form of code. Once you feel comfortable with a particular technology, your next step should be to explore GitHub to find interesting projects. Read the source code. Read as much as you can. In doing so, you can learn a variety of things, such as:
- How to organize large projects
- Interesting libraries that projects are using
- Code patterns and overall design
- Documentation style
- Testing patterns
- Solutions to odd issues, pointed out in the Issues section of the project
All of this knowledge is just waiting to be devoured. Interestingly, and to your benefit, it only comes with a simple price tag: curiosity.
10 - Concentrated Learning

If you worry that the process outlined above is too slow, you might also try a fast-track approach. You may have heard about the "Learn X in 24 hours", but that is not what I am referring to. A more pragmatic time-line is probably a few weeks. If that seems reasonable, you can try something like Seven Languages in Seven Weeks or Seven Databases in Seven Weeks. Although these books refer to languages and databases, you could do the same with other technologies.
A slightly different style would be to learn things the "hard way". The idea here is to accept upfront that nobody can master a skill unless it is practiced daily. So to gain expertise, you practice by working through countless exercises. In a similar vein, you also have Katas and Koans, that encourage solving problems in the language of your choice. These will introduce you to concepts and techniques that may initially be alien to you. That’s the point! If you really want to displace yourself from your comfort zone, give them a shot!
Learn an Orthogonal Skill
Your right-brain processes information in a very different fashion.
Programming is primarily a left-brain activity. It leverages the analytical part of the brain that looks for a step-by-step approach to solving problems. To appreciate the power of the right-brain, take up a creative activity, such as painting, 3D-modeling, origami, playing an instrument, or even building photo books out of your family albums. In fact, programming requires a great deal of creativity. You might have already experienced this, if you’ve ever found solutions to obtuse problems in your sleep. This is because your right-brain processes information in a very different fashion, and can compile ideas from all over the place. Andy Hunt, from the pragmatic bookshelf, wrote a book on this topic: Pragmatic Thinking and Learning: Refactor Your Wetware. If you want to be firing on all synapses, pick up a skill orthogonal to what you already do.
Summary
Acquiring a new skill is always exciting. It’s the start of a new experience that will shape your thinking. But first, you must overcome your inertia. Once you do, your journey to absorb knowledge from every facet of the web begins. I hope that the process outlined above has given you some ideas for approaching this long road.
If you have a different approach to learning, I’d love to learn more about it. Feel free to leave a comment, while I leave you with these inspiring links:
- From Journeyman to Master
- Passionate Programmer
- Inventing on Principle
- Stop Drawing Dead Fish
- LightTable
[转]10 Tips for Learning a New Technology的更多相关文章
- 10 Tips for Writing Better Code (阅读理解)
出发点 http://www.tuicool.com/articles/A7VrE33 阅读中文版本<编写质优代码的十个技巧>,对于我编码十年的经验,也有相同感受, 太多的坑趟过,太多的经 ...
- 写出完美论文的十个技巧10 Tips for Writing the Perfect Paper
10 Tips for Writing the Perfect Paper Like a gourmet meal or an old master painting, the perfect col ...
- 10 Tips for Optimizing Your Website’s Speed
转自:http://sixrevisions.com/web-development/site-speed-performance/ Web page speed and performance is ...
- 【笔记】机器学习 - 李宏毅 - 10 - Tips for Training DNN
神经网络的表现 在Training Set上表现不好 ----> 可能陷入局部最优 在Testing Set上表现不好 -----> Overfitting 过拟合 虽然在机器学习中,很容 ...
- [C5] Andrew Ng - Structuring Machine Learning Projects
About this Course You will learn how to build a successful machine learning project. If you aspire t ...
- Gamification and Game-Based Learning
https://uwaterloo.ca/centre-for-teaching-excellence/teaching-resources/teaching-tips/educational-tec ...
- 10 Unit Testing and Automation Tools and Libraries Java Programmers Should Learn
转自:https://javarevisited.blogspot.com/2018/01/10-unit-testing-and-integration-tools-for-java-program ...
- 提升你的开发效率,10 个 NPM 使用技巧
对于一个项目,常用的一些npm简单命令包含的功能有:初始化一个文件夹(npm init),下载npm模块(npm install),创建测试(npm test) 和自定义脚本(npm run).但是, ...
- Cheatsheet: 2015 10.01 ~ 10.31
.NET Publishing your ASP.NET App to Linux in 5 minutes with Docker Integrating AngularJS with ASP.NE ...
随机推荐
- 使用treeNMS管理及监控Redis
Redis做为现在web应用开发的黄金搭担组合,大量的被应用,广泛用于存储session信息,权限信息,交易作业等热数据.做为一名有10年以上JAVA开发经验的程序员,工作中项目也是广泛使用了Redi ...
- python语句结构(range函数)
python语句结构(range函数) range()函数 如果你需要遍历数字序列,可以使用内置range()函数,它会生成序列 也可以通过range()函数指定序列的区间 也可以使用range()函 ...
- 解决jquery ajax在跨域访问post请求的时候,ie9以下无效(包括ie9)的问题
最近在做项目的时候遇到一个问题,就是跨域请求ajax的时候ie9以下的浏览器不可以访问,直接执行error里面的代码,但是也不报错,就上网查了查,发现了一个很好用的方法,在这里记录一下,也希望可以帮到 ...
- 在Eclipse中修改Jsp页面的新增模板
打开Eclipse的Preferences页面 路径: Window à Preferences 搜索"jsp",点击"Templates",选择要修改的Jsp ...
- 使用HttpStaus自定义返回状态
一.导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- JavaScript特效源码(4、鼠标特效)
1.鼠标感应--渐现特效 鼠标感应渐显图片[平时很模糊的图片鼠标一放上就显示清楚] [修改图片名称即可][共2步] ====1.将以下代码加入HTML的<head></head> ...
- python全栈开发:字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存. 1.百分号方式 %[(name ...
- 使用vue-cli3快速适配H5项目
跟我老大学到了一招使用vue-cli3快速适配H5项目的方法. 我之前也有进行一个版本的适配,直接使用cnpm install -g vue-cli,然后安装各种插件进行适配,见我之前的博客. 后来老 ...
- leetcode-106-从中序和后序遍历构造二叉树
题目描述: 方法一:O(n) O(n) class Solution: def buildTree(self, inorder: List[int], postorder: List[int]) -& ...
- thinkphp 参数绑定
参数绑定是指绑定一个参数到预处理的SQL语句中的对应命名占位符或问号占位符指定的变量,并且可以提高SQL处理的效率,需要数据库驱动类的支持,目前只有PDO和Sqlsrv驱动支持参数绑定功能. 富瑞华大 ...