Learning to program as a part of your job
Archive - Originally posted on "The Horse's Mouth" - 2009-01-10 08:52:43 - Graham EllisScenario - you have never programmed before, but you are required to do so as a part of your job. You see lots of course (like ours !) on C, or PHP, or Python ... but they all assume some prior knowledge. And when you pick up a book it seems very theoretic and irrelevant, or looses you in the first page.
Does the scenario happen? Yes - sometimes it does, and the person involved may not have the luxury of a long time to go back to college or take evening classes for an extended period - he / she needs a quick start to get them going - not only in the basics of programming, but also in the slightly wider topic areas of making sure that they write easy to use and easy to maintain, robust, systems that don't duplicate work that's already been done.
Here's a possible answer. We can run an extra 2 days of tailored training for you in front of our regular courses - a "learning to program" addendum which will get the 'totally new to programming' delegate into the detail of the concepts (two thirds of the course) and the wider areas of efficient use of their programming time and how to produce good results (one third of the course).
If you're booking a PHP / C / Python / Lua / Tcl / Ruby course with us ... but have NEVER programmed before - let us know and come for an extra two days first. It will probably be a 1 on 1 session and it will get you up to speed for the following course. Examples will be written, in front of your very eyes, so that you'll see not only the results but THE THOUGHT PROCESS BEHIND HOW THEY WERE ACHIEVED, and you'll have an opportunity - with tutor help - to put the though process into practise yourself as you write you own first programs.
I'm running 2 days "Learning to program" prior to the C course that starts on 19th January - so that's two extra days that are available on 17th and 18th (yes, Saturday and Sunday!) and we would be delighted to have you. Standard cost for a 2 day course is £600.00 + VAT, add £70.00 (that's VAT inclusive) per night if you want to stay over.
If you have missed those dates [you probably are - the archives are very popular!] please email me graham@wellho.net or call us on +44 (0) 1225 708225. It isn't the first time that I've trained to this agenda and it certainly won't be the last. I would be delighted to share with you the fun of practical programming.
Sample agenda:
"Learning to program" course.
Your very first program
An instruction to display a message.
Storing that instruction.
Wrapping the instruction.
Preparations to run the instruction.
Running the instruction.
Multiple instructions become a program.
Joining instructions together
Storing information in memory while your program runs.
Defining and setting variables - declarations and assignments.
Variable type and naming variables.
Do I actually need to declare variables?
Displaying the contents of a variable.
Entering your data and calculating
Arithmetic operations.
Order of precedence, and how to change it.
Converting and co-ercing, rounding issues, etc.
Reading input from the user.
The first of many looks at usability and security
Adding comments to your program.
Making your code self documenting.
Making your code maintainable.
Program layout.
Making the output understandable and auditable.
Providing user documentation.
Handling unanticipated user inputs.
Providing user support.
Choosing different actions
The need for conditionals.
Conditions and optional operations.
Blocks, and merging the strands afterwards.
Alternative blocks (else, otherwise).
Setting the same variable in each strand.
What exactly IS considered to be equality.
Repeating sections of code
The need to repeat operations (loop).
How a loop differs from a conditional.
Making sure that you can get out of a loop.
Named blocks of code
The need to avoid repeating bits of code.
Naming a block of code.
Passing information in to a block.
Passing information back from a block.
Keeping variable names in a block private.
Looking forward
Separating named blocks into separate files.
Collection variables.
Using other data streams as well as keyboard and screen.
Easier loops (for, foreach).
Handling strings of text as well as numbers.
Pointers and references.
Objects.
Away from the detail of coding
Planning your work.
Choosing the right language.
Testing, release and source control and bug tracking.
Finding code that others have already written and using it.
Application design for ...
The Program writer.
The Program maintainer.
The program operators (human and automata)
The people who provide the data.
The people who make use of the results.
The system administrator who looks after the computer.
The user support team.
The malicious person trying to gain access via security holes.
And to meet legal and expandability requirements.
Contact - Well House Consultants, 404, The Spa, Melksham
+44 (0) 1225 708225 • graham@wellho.net • http://www.wellho.net