How to be a Programmer: A Short, Comprehensive, and Personal Summary

Table of Contents 

  

1. Introduction 

2. Beginner 

Personal Skills 

Learn to Debug 

How to Debug by Splitting the Problem Space 

How to Remove an Error 

How to Debug Using a Log 

How to Understand Performance Problems

How to Fix Performance Problems 

How to Optimize Loops 

How to Deal with I/O Expense 

How to Manage Memory 

How to Deal with Intermittent Bugs 

How to Learn Design Skills 

How to Conduct Experiments 

Team Skills 

Why Estimation is Important

How to Estimate Programming Time 

How to Find Out Information 

How to Utilize People as Information Sources 

How to Document Wisely 

How to Work with Poor Code 

How to Use Source Code Control 

How to Unit Test 

Take Breaks when Stumped

How to Recognize When to Go Home 

How to Deal with Difficult People 

3. Intermediate 

Personal Skills 

How to Stay Motivated 

How to be Widely Trusted 

How to Tradeoff Time vs. Space 

How to Stress Test 

How to Balance Brevity and Abstraction 

How to Learn New Skills

Learn to Type 

How to Do Integration Testing 

Communication Languages 

Heavy Tools 

How to analyze data 

Team Skills 

How to Manage Development Time 

How to Manage Third-Party Software Risks 

How to Manage Consultants 

How to Communicate the Right Amount

How to Disagree Honestly and Get Away with It 

Judgement 

How to Tradeoff Quality Against Development Time 

How to Manage Software System Dependence 

How to Decide if Software is Too Immature 

How to Make a Buy vs. Build Decision 

How to Grow Professionally

How to Evaluate Interviewees 

How to Know When to Apply Fancy Computer Science 

How to Talk to Non-Engineers 

4. Advanced 

Technological Judgment 

How to Tell the Hard From the Impossible 

How to Utilize Embedded Languages 

Choosing Languages

Compromising Wisely 

How to Fight Schedule Pressure 

How to Understand the User 

How to Get a Promotion 

Serving Your Team 

How to Develop Talent 

How to Choose What to Work On 

How to Get the Most From Your Teammates 

How to Divide Problems Up 

How to Handle Boring Tasks

How to Gather Support for a Project 

How to Grow a System 

How to Communicate Well 

How to Tell People Things They Don't Want to Hear 

How to Deal with Managerial Myths 

How to Deal with Organizational Chaos 

Glossary 

A.  

B. History (As Of February, 2003)

C. GNU Free Documentation License 

PREAMBLE 

APPLICABILITY AND DEFINITIONS 

VERBATIM COPYING 

COPYING IN QUANTITY 

MODIFICATIONS 

COMBINING DOCUMENTS 

COLLECTIONS OF DOCUMENTS 

AGGREGATION WITH INDEPENDENT WORKS 

TRANSLATION 

TERMINATION

FUTURE REVISIONS OF THIS LICENSE 

ADDENDUM: How to use this License for your documents 

  

Download

0 comments:

Post a Comment

I thank you for taking time to visit my blog. I appreciate your comment which motivates me and also helps me improve the contents on my Blog.
Your comments also make these posts much more interesting to read. Please do continue to leave your views and if you have any queries regarding my recipes I would do my best to reply to them ASAP.

Cheers
Analog Designer

Related Posts

  © Blogger templates by Template-Service

Back to TOP