`
vipygt
  • 浏览: 34729 次
社区版块
存档分类
最新评论

How to sharpen my programming skill and Deliberate practice

 
阅读更多

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.

分享到:
评论

相关推荐

    GettingaJob

    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 ...

    ES6 for Humans The Latest Standard of JavaScript: ES2015 and Beyond

    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 ...

    Serious Python

    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 ...

    Serious Python 全英文的

    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 ...

    .A.Comprehensive.Guide.to.Digital.Electronics.and.Computer.System.Architecture.p

    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 Interview Questions & Answers.pdf

    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.

    Expert Angular-Packt Publishing(2017).pdf

    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, ...

    Mastering.Clojure.1785

    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,...

    Python: Penetration Testing for Developers

    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-perfor ....pdf

    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

    Swift 2 Blueprints 无水印pdf 0分

    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 ...

    Python 2.6 Graphics Cookbook.pdf

    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 ...

    Zend Framework 2 Application Development

    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...

    A Smarter Way to Learn HTML & CSS.pdf

    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 ...

    Mastering.Data.Mining.with.Python.1785889958

    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 ...

Global site tag (gtag.js) - Google Analytics