Learning and understanding scripting programming techniques
Can you have a book about programming that's not about a specific programming language? A course that covers useful techniques across the board? That applies right across languages, with tips and techniques and things to bear in mind? Now there's a challenge, and I think the answer would be "yes." And the book/course could cover so many valuable topics ...
There are techniques that every programmer needs to know, over and above and beyond the basics of any one language. And they're rarely taught on any programming course, but would make such a huge difference, I know, to so many of our delegates. I'll give you some subject headlines - not sorted into any particular order.
Constants and config files and options
Programming with fixed values, and values that are changed at installation
Equality, looks like, min and max
Does 7 equal 7.0? Does SN12 7NY look like a postcode?
Comparing - old, older, oldest
Getting a value, comparing data, comparing collections of data
Numbers that are used as markers, and some cautions about their use
Letting it finish
Terminating processes and file handling neatly, avoiding garbage
How can I ask "how is my program doing" while it's running?
Taking care of nasty values. Validation.
Technique "a" may take 3 days - and technique "b" 3 minutes.
Providing a consistent and understandable user interface
Taking multiple data sets and combining them
Reusability and support
Writing code that can be reused, and easily supported
Test and Debug
Techniques for checking your code before it gets to the users
Singular v plural
"is" and "are". "child" or "children". It makes sense to report in good English
reporting zero answers
Should you just leave a blank, or say "no match?"
You need to prompt the user if you're interactive, yet prompting when reading data from a file will make for a messy output display
How to provide good, consistent, useful error messages
What about malicious users running your script.
Strings - upper and lower, rude words
Users who SHOUT, or who don't know how to capitalise!
Dynamic v static
When are variables created and lost? How are they shared between blocks of code?
Declare v initialise v Assume
What are the advantages / disadvantages of declaring variables, initialising them, v assuming an initial value
Conditionally loading code, and replacing code already loaded
Scope and Name spaces
variables which are local to a piece of code, which are shared between a number of pieces of code, and are shared throughout an application
Is it a good idea to use objects for xxxx job?
Hashes / Dictionaries
Data that is keyed by a unique value. But what if that value is not unique?
How sorting works and used defined sorting. Sorting (or not!) hashes
Avoiding repetition by caching, and how to ensure that your caches are up to date.
Graphics and graphing techniques
World and screen co-ordinates, choosing your axes, watermarking pictures and more.
Specifying an API that can be extended
Providing an interface to your functions that works well and is easily supported now,and can be extended compatibly when new requirements are added
Web and Database
Accessing your scripts via a web front end, and saving the data in a database
Running process in parallel
Queues and Recursion
Making notes of places you need to come back to, and saving where you are when you need to go off to more code.
Can it all be done without reference to language then? No - I don't think it can; examples will be needed and there are nuances in each of the languages. And with my knowledge / use of Perl, PHP, Python, Tcl/Tk/Expect, C/C++, Ruby, Bash/Ksh, and Java, I'm well placed to show how the techniques can be implemented in each of them.
If you're interested in having a day or two of "techniques" training - please let me know. And, yes, I would illustrate and have you practice in whichever of the language(s) from my list that's appropriate to you! Email - email@example.com - and refer to this item! (written 2008-04-08, updated 2008-04-09)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articlesQ100 - Object Orientation and General technical topics - Learning to Progam 
Reading and checking user inputs - first lessons - Ruby - (2013-02-17) 
Flowchart to program - learning to program with Well House - (2012-10-14) 
Some terms used in programming (Biased towards Python) - (2011-12-12) 
Learning to write good programs in C and C++ - separating out repeated code - (2011-01-04) 
Learning to program - where to start if you have never programmed before - (2010-09-28) 
Programming Standards from the start! - (2010-08-02) 
I almost put the bins out this morning - (2009-11-16) 
Learning to program in ... - (2009-11-15) 
Learn a new programming language this summer. - (2009-08-06) 
Can you learn to program in 4 days? - (2009-07-16) 
New to programming? It is natural (but needless) for you to be nervous - (2009-07-14) 
Tracking difficult bugs, the programmer / customer relationship - (2009-03-20) 
Learning to program in PHP, Python, Java or Lua ... - (2009-02-19) 
I have not programmed before, and need to learn - (2009-01-19) 
Learning to program as a part of your job - (2009-01-10) 
Best source to learn Java (or Perl or PHP or Python) - (2008-12-28) 
The next generation of programmer - (2004-11-13)
Some other Articles
Chew Valley LakesUnderlining in Perl and Python - the x and * operator in useLearning to program in PerlSheep Shearers, Marathon Runners and Ocean SailorsLearning and understanding scripting programming techniquesM25 / South Mimms Service AreaDo not SHOUT and do not whisperAutomating processes through ExpectReplacing the last comma with an andCambidge - Tcl, Expect and Perl courses
4208 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85 at 50 posts per page
This is a page archived from The Horse's Mouth at
the diary and writings of Graham Ellis.
Every attempt was made to provide current information at the time the
page was written, but things do move forward in our business - new software
releases, price changes, new techniques. Please check back via
our main site for current courses,
prices, versions, etc - any mention of a price in "The Horse's Mouth"
cannot be taken as an offer to supply at that price.
Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).