Some like writting.
- Take a piece of really well written code in area that you want to improve your skills at
- Read and understand the code thoroughly
- takes some notes on how it works, its general structure
- Let some time pass
- Re-write the code from scratch using only your notes
- Compare to the original and see where your code is lacking and possibly where your code is better
Repeat this again and again re-writing code from scratch without examining previous results until completion. Vary the rewrites by using a different language or framework or incorporating a different technique. For example develop with test driven development and then model driven deployment and then do it all in notepad then with an ORM and then in a functional language. Every time compare back to other versions to note how these decisions and your accumulated learning have affected the end product.
This idea is adapted from the book "Talent is overrated" but is specifically adapted from the practice of Benjamin Franklin.
To improve his writing skills Franklin used a book of essays he admired and rewrote them over and over again comparing back to the original and modifying the form as he went.
He started by taking one of the essays and jotting down a note for each sentence indicating the sentiment it contained. He then put his notes aside for a few days and then by using his notes recreated the essay in his own words. Then he compared his version to the original and made corrections. Essay by essay he could see his approach improving his skills and in some small ways he felt his expression might even be better than the original. These glimmers of erudition gave him hope.
Despite the progress Ben felt he needed more. He wanted to expand his vocabulary. What better way then than to rewrite an essay's prose in verse. Again he would start with notes expressing the sentiment of each sentence but this time he wrote his version in verse. It forced him to add variety and creativity. After a few days he'd forget the original prose and so would then take his verse and use it to rewrite the essay. Again he made a comparison, made corrections and learned by doing.
分享到:
相关推荐
Features all-new chapters on design patterns and sorting, including how to deal with memory constraints and mobility issues Walk into your next job interview with confidence, knowing you have ...
You'll examine how to use ES6 in functional programming and explore the new more modular and object-oriented approach to JavaScript. This book will help you sharpen and upgrade your JavaScript ...
As you make your way through the book’s extensive tutorials, you’ll learn how to start a project and tackle topics like versioning, layouts, coding style, and automated checks. You’ll learn how to ...
As you make your way through the book’s extensive tutorials, you’ll learn how to start a project and tackle topics like versioning, layouts, coding style, and automated checks. You’ll learn how to ...
Digital systems are created to perform data processing and control tasks. What distinguishes one system from another is an architecture tailored to efficiently execute the tasks for which it was de- ...
ASP.NET MVC面试问题及答案英文版. This book covers useful Interview Questions and Answers on ASP.NET MVC. This book is appropriate ...programming skills and understanding ASP.NET MVC in a short time.
book will introduce you to and help you sharpen your design skills with Material Design and Bootstrap CSS. Learn how to write and create reusable, testable, and maintainable services, forms, pipes, ...
Learn to handle data using sequences, reducers, and transducers in Clojure Explore the lesser known and more advanced features, constructs, and methodologies of the Clojure language and its ecosystem,...
If you are a Python programmer or a security researcher who has basic knowledge of Python programming and wants to learn about penetration testing with the help of Python, this course is ideal for you...
IPython-Interactive-Computing-and-Visualization-Cookbook-Over-100-hands-on-recipes-to-sharpen-your-skills-in-high-performance-numerical-computing-and-data-science-with-Python.pdf
Sharpen your skills in Swift by designing and deploying seven fully functional applications About This Book Develop a variety of iOS-compatible applications that range from health and fitness to ...
Chapter 1, Start your Engines: This chapter explains how to acquire and install the Python interpreter, for MS Windows or Linux as well as how to verify that Python is correctly installed. This ...
Whether you are learning Zend framework from scratch or looking to sharpen up your skills from previous versions, Zend Framework 2 Application Development will help you to harness the power of Zend to...
Written for beginners, useful for experienced developers who want to sharpen their skills. Prepares the reader to code a website of medium complexity. The learner spends two to three times as long ...
See how to use data mining to fix data anomalies and how to use machine learning to identify outliers in a data set About the Author Megan Squire is a professor of computing sciences at Elon ...