Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2023 (and 2024 ...) - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
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

Cardinal Values
Numbers that are used as markers, and some cautions about their use

Letting it finish
Terminating processes and file handling neatly, avoiding garbage

Intermediate reports
How can I ask "how is my program doing" while it's running?

User inputs
Taking care of nasty values. Validation.

Efficiency
Technique "a" may take 3 days - and technique "b" 3 minutes.

Usability
Providing a consistent and understandable user interface

Merging data
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?"

Interactive inputs?
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

Error Handling
How to provide good, consistent, useful error messages

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

Overriding code
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

OO approaches
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?

Sorting
How sorting works and used defined sorting. Sorting (or not!) hashes

Caching
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

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

Security issues
Capture, Passwords.

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 - graham@wellho.net - 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 articles
Q100 - Object Orientation and General technical topics - Learning to Progam
  [116] The next generation of programmer - (2004-11-13)
  [1963] Best source to learn Java (or Perl or PHP or Python) - (2008-12-28)
  [1985] Learning to program as a part of your job - (2009-01-10)
  [2001] I have not programmed before, and need to learn - (2009-01-19)
  [2048] Learning to program in PHP, Python, Java or Lua ... - (2009-02-19)
  [2092] Tracking difficult bugs, the programmer / customer relationship - (2009-03-20)
  [2286] New to programming? It is natural (but needless) for you to be nervous - (2009-07-14)
  [2294] Can you learn to program in 4 days? - (2009-07-16)
  [2326] Learn a new programming language this summer. - (2009-08-06)
  [2504] Learning to program in ... - (2009-11-15)
  [2505] I almost put the bins out this morning - (2009-11-16)
  [2898] Programming Standards from the start! - (2010-08-02)
  [2973] Learning to program - where to start if you have never programmed before - (2010-09-28)
  [3120] Learning to write good programs in C and C++ - separating out repeated code - (2011-01-04)
  [3551] Some terms used in programming (Biased towards Python) - (2011-12-12)
  [3895] Flowchart to program - learning to program with Well House - (2012-10-14)
  [4008] Reading and checking user inputs - first lessons - Ruby - (2013-02-17)
  [4318] Learning to Program - how we start to teach you at Well House Consultants - (2014-11-16)
  [4322] Learning to Program - the conditional statement (if) - (2014-11-21)
  [4323] Learning to program - Loop statements such as while - (2014-11-22)
  [4324] Learning to program - variables and constants - (2014-11-22)
  [4325] Learning to program - what are algorithms and design patterns? - (2014-11-22)
  [4326] Learning to program - comments, documentation and test code - (2014-11-22)
  [4337] Learning to program sample program - past its prime, but still useful - (2014-12-02)
  [4575] Learning not just what a program does, but how to design it in the first place. - (2015-11-06)


Back to
M25 / South Mimms Service Area
Previous and next
or
Horse's mouth home
Forward to
Sheep Shearers, Marathon Runners and Ocean Sailors
Some other Articles
Chew Valley Lakes
Underlining in Perl and Python - the x and * operator in use
Learning to program in Perl
Sheep Shearers, Marathon Runners and Ocean Sailors
Learning and understanding scripting programming techniques
M25 / South Mimms Service Area
Do not SHOUT and do not whisper
Automating processes through Expect
Replacing the last comma with an and
Cambidge - Tcl, Expect and Perl courses
4759 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, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page


This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - 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).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2024: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1605_Lea ... iques.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb