Continuous Learning---97 Things Every Programmer Should Know
We live in interesting times. As development gets distributed across the globe, you learn there are lots of people capable of doing your job. You need to keep learning to stay marketable. Otherwise, you'll become a dinosaur, stuck in the same job until, one day, you'll no longer be needed or your job gets outsourced to some cheaper resource.
我们生活在一个有趣的时代。随着开发者遍布世界各地,你感觉到大部分的人能胜任你的工作。你需要一直学习以保持有价值的。否者,你将变成一个过时的人,被困在同一个工作直到,有一天,你再也不被需要。你的工作将被外包到一些更便宜的资源。
So what do you do about it? Some employers are generous enough to provide training to broaden your skill set. Others may not be able to spare the time or money for any training at all. To play it safe, you need to take responsibility for your own education.
所以你会怎么做?一些雇佣者很大方的提供培训去拓展你的技能。其他的可能不会抽去时间或金钱去培训。为了保证安全,你需要多你自己的教育负责任。
Here's a list of ways to keep you learning. Many of these can be found on the Internet for free:
这里是一系列保持学习的方式。这里的许多能在网上免费的找到:
- Read books, magazines, blogs, twitter feeds, and web sites. If you want to go deeper into a subject, consider joining a mailing list or newsgroup.
- 读书,杂志,博客,twitter 信息,和web站点。如果你想去深入一个题材,考虑加入一个新团体的邮件列表。
- If you really want to get immersed in a technology, get hands on — write some code.
- 如果你真的想沉浸在一个技术里,用你的手-写一些代码。
- Always try to work with a mentor, as being the top guy can hinder your education. Although you can learn something from anybody, you can learn a whole lot more from someone smarter or more experienced than you. If you can't find a mentor, consider moving on.
- Use virtual mentors. Find authors and developers on the web who you really like and read everything they write. Subscribe to their blogs.
- 总是和一个良师益友去工作,即使优秀的人能阻碍你的教育。即使你能从任何人中学到一些,你能从比你更优秀的或更有经验的人中学到更多。如果你不能找到一个良师益友,考虑继续前进。利用虚礼导师。在web上寻找你真正喜欢的开发人员,读他们写的任何东西。订阅他们的blog。
- Get to know the frameworks and libraries you use. Knowing how something works makes you know how to use it better. If they're open source, you're really in luck. Use the debugger to step through the code to see what's going on under the hood. You'll get to see code written and reviewed by some really smart people.
- 了解你用的框架。知道一些东西如何工作可以使你更好的去用它。如果他们是开源的,你将很幸运。通过代码调试到每一步去查看在底层发生了什么。你将学到优秀的人如何写代码和审核。
- Whenever you make a mistake, fix a bug, or run into a problem, try to really understand what happened. It's likely that somebody else ran into the same problem and posted it somewhere on the web. Google is really useful here.
- 无论何时你做了一个错误,修复一个bug,或者运行了一个问题,试着去真的理解发生了什么。有可能其他人遇到相同的问题,然后发布他们在web上。google在这里是真的有用。
- A really good way to learn something is to teach or speak about it. When people are going to listen to you and ask you questions, you'll be highly motivated to learn. Try a lunch-n-learn at work, a user group, or a local conference.
- 一个真的好方式去学习是教或者说。当人们将要听你并且问你问题的时候,你将更有激情的去学习。在工作中试着互相学习,一个用户群体,或者一个本地会议。
- Join or start a study group (à la patterns community) or a local user group for a language, technology, or discipline you are interested in.
- 加入或开始一个学习团体,或者一种语言,技术的本地用户群体,或者遵守你感兴趣的。
- Go to conferences. And if you can't go, many conferences put their talks online for free.
- 参加会议。如果你不能去,许多会议把他们的谈话免费的放在网上。
- Long commute? Listen to podcasts.
- 长时间的交通?听广播
- Ever run a static analysis tool over the code base or look at the warnings in your IDE? Understand what they're reporting and why.
- Follow the advice of The Pragmatic Programmers and learn a new language every year. At least learn a new technology or tool. Branching out gives you new ideas you can use in your current technology stack.
- 曾经在代码的基础上运行了静态的分析工具或者在ide中查看了警告么?理解他们报告的和为什么。跟着The Pragmatic Programmers网站的忠告,每年学习一种新语言。至少学习一个新技术或工具。分支能给你新的想法,你可以用与你当前的技术堆中。
- Not everything you learn has to be about technology. Learn the domain you're working in so you can better understand the requirements and help solve the business problem. Learning how to be more productive — how to work better — is another good option.
- 并不是你所学的都是关于技术的。学习你工作的领域以至于你能更好的理解需求和帮助解决业务问题。学习如何变得更有生产率--如何工作的更好--是另外一个好的选项。
- Go back to school.
- 返回到学校
It would be nice to have the capability that Neo had in The Matrix, and simply download the information we needed into our brains. But we don't, so it will take a time commitment. You don't have to spend every waking hour learning. A little time, say each week, is better than nothing. There is (or should be) a life outside of work.
很高兴neo有能力在matrix上,简单的下载我们需要的信息到我么的大脑中。但是我们没有,它将花费时间。你不需要花费每时每刻学习。少量的时间,对每个星期来说,比没有更好。除了工作还有生活。
Technology changes fast. Don't get left behind.
技术飞快的改变。不要落后了。