The Pragmatic Programmer I. About the textbook The Pragmatic Programmer is full of helpful suggestions for surviving programming It’s also enjoyably written.

Slides:



Advertisements
Similar presentations
Study Skills 101.
Advertisements

BALANCING LIFES ISSUES, INC. Managing Multiple Priorities at Work.
Respect the Work of Others Alabama Course of Study Technology Education Objective 9.
Do you manage your time or does it manage you?. Goal Setting Use the SMART strategy to set goals that are: Specific Measurable Attainable Relevant Time.
Time Management Time is finite; use it wisely!. Number one tasks are essential. Do them first. Number three tasks can wait until tomorrow if necessary,
Time Management By Zahira Gonzalez.
Thomas A. Stewart Literacy Test (OSSLT) Prep Guide 2013
To Build a Contagious Church... We Must Have Contagious Leaders.
What Students Say About Discussion (When You Ask) 1) It seems professors use discussion (especially small group discussion) when they don’t feel like.
My Memoir Justin Wang.
Collaborating By: Mandi Schumacher.
What Employers Want.
The Importance of being Edited (A hold-all – hand-bag – handbag?) The Book Analyst.
Procrastination….. Causes of Procrastination Lack of Relevance It’s boring, uninteresting, or derivative to your main focus. Task was someone else’s idea.
How to be a good language learner. Think about your native language – it’s probably English. You were a fluent speaker before you even started school.
Acceptance Testing.
Glenvar Community Action Team. Who Are We and What Do We Do?  Community members (primarily students)  Help teens make good choices  Work to education.
Or, “From Blank Page to Finished Product in a Few Simple Steps”
Tips for Working in Teams or Groups. Not always easy  What challenges have you had when working in a team or group?
How to be an Effective Listener.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Issues in editing Postgraduate writing Seminar 6 John Morgan.
SLIDE SHOW FOR RADIATION THERAPY DEPT JOHANNESBURG HOSPITAL.
Introduction to Recursion and Recursive Algorithms
Excellent investigations. Keep it simple Change only one variable. Keep all the others the same. It’s not only easier to do only one experiment at a time,
List them on the board Talent: a special natural ability or aptitude Skill: the ability, coming from one's knowledge, practice, energy and effort, to.
NoodleBib Helps you use your “noodle”! Taking notes.
Strebler’s “Do”s and “Don’t”s How to succeed in my classes.
ECEU300 Ethics in the Workplace Why talk about Ethics? Everyone is ethical, everyone knows how to behave at work. Everyone gets it about not stealing stuff.
Testing through user observations User Observation: Guidelines for Apple Developers, Kathleen Gomoll & Anne Nicol, January 1990 Notes based on:
The last lecture The dream catcher
Software Engineering Lab Session Session 1 – Introduction to the practicum © Jorge Aranda, 2005.
Multiple Choice Test Taking Strategies
Ground Rules for Meetings
Multiple Choice Test Taking Strategies
FAILURE IS A PREREQUISITE Demeterius “FLITE” Smith New Directions In Student Development Conference Friday, March 7, 2014 Piedmont Technical College.
Andrew J. Chávez NMSBA - Master Board Member Candidate 2012 NMSBA Leadership Retreat.
Pace 2 Employment Welcome to PACE.2.Employment Change your life Achieve your dreams.
Becoming a Pragmatic Programmer Terry Cheng Nov 18, 2004.
CSCD 555 Research Methods for Computer Science
CSC 160 Computer Programming for Non-Majors Introduction Prof. Adam M. Wittenstein
Chapter 1 Thinking Critically 2,4,5,9,10 Assoc. for Information Technology 1,2,3.
Applied Software Project Management 1 Introduction Dr. Mengxia Zhu Computer Science Department Southern Illinois University Carbondale.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
College Reading Of all the skills necessary to succeed in college, the two most important are: Reading – the intake of information Writing – the production.
Estelle M. Phillips and Derek S. Pugh Summarized by Chaky (2012) 1.
CUSTOMER SERVICE Diana Piraquive. CIS
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Computers & Employment By Andrew Attard and Stephen Calleja.
Mr. Beem’s 10 Keys to Success in High School And Beyond.
The Perfect Job Written and Presented by: Seikou Triangle.
Important Tips to writing a History Paper. Getting Started At first glance, writing about history can seem like an overwhelming task. History’s subject.
Building A Positive Attitude “ A little ability combined with a positive attitude often goes further than a great talent teamed with a negative viewpoint.
Social Media Roundup Bad social media: 7 Ways to lose your audience.
MS. MILLER FALL, 2012 The Writing Process. Objectives for Today Define the elements of the writing process Learn to pre-write Learn to draft Learn to.
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
Techniques for Highly Effective Communication Professional Year Program - Unit 5: Workplace media and communication channels.
Evil People Project How to Succeed. What makes your Mini-Project good? Should be well researched. Tells a good story / is interesting and enjoyable to.
In your business. DATING!!! Take a few minutes and write down one of the best dates you have ever been on. Then we will have a few of you share your exciting.
STUDENT LED CONFERENCES SPRING 2015 BEN IVERSON. Cover Letter Science this year has covered a wide range of topics. We started the year with learning.
Steps in Problem Solving Written by: Dr. Frank Flanders and Cate Buchanan Georgia CTAE Resource Network.
ICT and the Law Mr Conti. Did you see anything wrong with that? Most people wouldn’t want that sort of information posted in a public place. Why? Because.
Reviews Chapter 5 Applied Software Project Management, Stellman & Greene See also:
Software Engineering 2004 Jyrki Nummenmaa 1 Why new software methodologies The classic waterfall-model based techniques are strongly based on the.
You can see some interest in what you are learning. You show some interest in things outside school. A lot of what happens in school interests you. You.
10 Great Ways to Stop Procrastinating and Get More Done in Less Time Time Management Tips by Arman Sadeghi.
Teamwork and Group Dynamics A few tips on effective teamwork, meetings, and presentations Stuart Faulk From lectures by Michal Young, 1988, Anthony Hornoff.
Decomposition.
Presentation transcript:

The Pragmatic Programmer I

About the textbook The Pragmatic Programmer is full of helpful suggestions for surviving programming It’s also enjoyably written I’ll cover in class some of the material in this book –Mostly those things that I want to emphasize, or where I think I have something to say I’ll feel free to test on all of the material Current assignment: Read the Preface and Chapter 1

1: Care about your craft Take pride in your work If you don’t enjoy your profession, you’ll never be great in it If you do enjoy your work, you’ll also enjoy the process of getting better at it (mostly!) –In computer science, learning never ends!

Egoless programming Some years ago, Gerald Weinberg coined the term egoless programming: –Software belongs to the organization, not the individual –You don’t “own” your code The idea is that if you have an emotional interest in your code, you will resist criticism –I strongly disagree—it’s important to take pride in your work –But also realize that every program can be improved –Don’t take criticism of your program as personal criticism

2: Think! About your work Always be asking yourself: is there a better way to do this? –A better design, a better language, a better layout –A better job? Always be critical of your own work Always be ready to accept criticism—no program is ever perfect If you ever think you “know enough,” you’re stagnant—and it’s time to do something else

Any program can be improved There are few, if any, perfect programs Always be ready to rewrite your program to make it better –But know when to stop! Rewriting and re-designing your program is sometimes called refactoring

3: Provide options, don’t make lame excuses Some things can’t be done on time, others can’t be done at all –Don’t focus on what cannot be done –Concentrate on what can be done instead –Find solutions to problems In “The War Against the Chtorr,” David Gerrold distinguishes between “guests” and “hosts” –A “host” does whatever needs to be done –A “guest” figures that it’s someone else’s job

4: Don’t live with broken windows If something is wrong, fix it –If you can’t get to it immediately, at least mark it for future work –Take some action to prevent further damage –Small problems accumulate and turn your code into crap The law of entropy: –A spoonful of wine in a barrel of sewage gives you a barrel of sewage –A spoonful of sewage in a barrel of wine gives you a barrel of sewage

8: Invest regularly in your knowledge portfolio Learn at least one new language every year Read a technical book each quarter Read nontechnical books, too Take classes Participate in local user groups Experiment with different environments Stay current Get wired

10: It’s both what you say and the way you say it Communication is important—more important than programming itself –How you present your program usually matters more than how good your program is Make it look good Use spell checkers Learn something about good design –Good communication (and documentation) is essential for working in a team –Every piece of is a permanent record

More about the book Chapter I deals mainly with philosophy— how you should approach the task of programming Later chapters get into more technical detail However, if you don’t strive to be the best you can possibly be, those chapters won’t help you any

The End