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