Although MainMa's answer covers the points from the perspective of an individual contributor, there's also the project management perspective, which I began to address in the comments, but would like to expand on as a stand-alone answer.
MainMa's answer includes four points:
- Formal training should be part of the job
- The job itself should encourage learning
- Code review should be a part of any company's process
- Communication help's too
I can't disagree with any of these, but these points need to be considered very early in the project and, if using an iterative/incremental model, at the start of every iteration. In short, every project estimate should include time for learning, especially if the project is going to be using a new language, framework, or library. Tasks that need to be considered for "learning" include reading and understanding available documentation, working through tutorials and reading any sample code or open-source projects that also use the new tool, and creating any necessary prototypes to ensure the selected tool is actually appropriate for the project.
During a project, if you see opportunities to improve process or product quality, you should evaluate their impact on project schedule and budget and product quality and present these to the appropriate people (the project lead or manager, as an example). It's important to note that your first responsibility on a project is to your employer and the customer. Just because it's a good idea to incorporate something new into a process or product doesn't mean that it's possible to roll it out and also continue to deliver on schedule/budget.
As a general rule, I feel that one should conduct their learning off project time (unless it's learning something for the project and has covered under the scope of the project). Project time should, in most cases, be used to deliver value to a customer. That said, companies should be encouraging people to acquire knowledge and bring it into the organization. However, introducing it into a project, product, or process is something that needs to be estimated and budgeted from the start. Changing how work is done can be expensive and probably shouldn't be done in the middle of the project to reduce distruptions (see Steve McConnell's The Power of Process)