As a system admin with some programming experience, how do I guide a Junior Programmer to follow best practices or even start along the path?
My specific problem. I'm the Sys Admin, but know something about programming. Not an expert but understand a lot of the concepts, and like to try and keep up in the field. Our company has an accountant who programs. Self Taught VB6, and used it up till 1 year ago when I encouraged moving to .net. He does not understand much about programming, programming best practices, or design. The situation is more complex because he is older than I am by 15 years, has longer tenure at the company, and I am not anywhere in his line of direct report. His manager is the CFO and doesn't understand computers or programming at all. Just that he can get a certain report done by him. So, almost anything has to be done by encouragement, demonstration, and pleading.
What is most important to "push" for?
I'm currently trying to get him to use source control. Currently he just makes a new numbered directory and copies the whole project any time he thinks he should. I've set up subversion, and will get him to use it. But, it's going to take a while as the concept is brand new to him.
Testing consists of it "works on my machine". Builds consist of F5, and copy the executable. Database changes, ugh.
I finally got him to put database connection and calls in a function. I demonstrated a good use for an object in one program, but it didn't catch on either.
Design of programs consist of him throwing things on the screen as he goes. Any program design before writing code is non-existent.
Documentation of any form is non-existent.
What beginning programming concepts are most important? What are most important that will better help the company and this programmer make better use of time and resources?