|
And this is how you give birth to software horrors.
And why I hate that is it so easy to create software and that you can change it at almost no cost as many times as you wish : Nobody would come to the idea of teaching mechanical construction at a newbie in a crash course, just because the amount of costly havoc that they can create with that partial knowledge in a real project is not accountable.
modified 28-Nov-22 9:35am.
|
|
|
|
|
LOL it's alright man. I'm leading this project.
Think if it more like a custom auto shop, where I'm teaching one of the shop hands how to do metalwork.
I'm not sending any cars out without going over what he's done. It's going to be fine.
To err is human. Fortune favors the monsters.
|
|
|
|
|
I have been too long in the industry to know how this kind of things will end : On your day off there will be a quick metal piece that need to be urgently welded, it will be done because urgent and stuff, and the welded axle of the school bus will not be well welded, will break and the bus will violently hit two walls, run through the kindergarten, and fall from a cliff.
|
|
|
|
|
I've done this before too, and had better experiences than you. Otherwise I wouldn't do it.
To err is human. Fortune favors the monsters.
|
|
|
|
|
This applies to every new dev. Even you! It’s called experience and it’s why you have more experienced people in charge of juniors. If he crashes the bus that’s not just his fault. It’s also the witches responsibility.
That’s just the way it is.
Edited to not be such a dickhead. Sorry!
If you can't laugh at yourself - ask me and I will do it for you.
modified 25-Nov-22 17:43pm.
|
|
|
|
|
A new dev is usually hired based on a set of competences and skills, may them also be small at the beginning, and software dev is their future job. Here we are talking about making people whose it is not the main job to do software, which is something completely different, and, and that was my point, only possible because software is so easy to produce. And precisely that is how to generate, again IMHO backed up by now 20 years of experience, very quickly very bad software.
Our coding witch is very skillful and I do not doubt she has good teaching skills, but this is kind of an exceptional situation : I am facing every day, literally, people who are given tasks of coding (whatever it is, excel macros, vb code, website cms, ... ) and who are not qualified to do it. If what they would need to to do so was more than a computer and a bunch of software tools, like for instance a caterpillar or a $20k equipment, a professional would have been recruited so as to not waste money and they would not have ask to touch software.
Not sure about what you wrote, but I am not impressed anymore by the Internet, don't worry
|
|
|
|
|
While I completely agree with all of the POTENTIAL horror stories people have raised...points to the teacher for accepting the challenge and points to the student for stepping up to a challenge. This IS where knowledge comes from.
BTW, 40+ years coding in the real world and mentoring many people.
If you want to know true despair do what I do: teach a college course one night a week in C programming to a bunch of students who only saw the dollar signs of software development. Of the 59 remaining (out of initial class of 74) there are perhaps 5 - 8 that might have a future in software development.
|
|
|
|
|
Rage wrote: And precisely that is how to generate, again IMHO backed up by now 20 years of experience, very quickly very bad software.
Seems optimistic to me. I have seen senior developers create bad code. Not to mention that most cannot even create a design document.
Rage wrote: I am facing every day, literally, people who are given tasks of coding (whatever it is, excel macros, vb code, website cms, ... ) and who are not qualified to do it
But the reality is too much work and not enough people.
|
|
|
|
|
Now that, I actually wanna see.
|
|
|
|
|
I second Rage's opinion and I have a personal story to support it.
Eons ago I was installing one of our systems overseas. A combination of hardware and software skills were required to make the customer happy. When time came to rotate back home, I was replaced by one of the tech support guys who was ok-ish on the hardware side (had background as a sonar technician in the Navy), but null on the software side. At that time, broadband was just a dream and anyway infrastructure was very limited were we worked. The guy in the field had to solve any problems that showed up. As he was supposed to make only minor changes to a few routines, I said, no problem, I'm going to give him a crash course of C++ and he will be able to manage.
It turned out that when he returned from this assignment he was convinced he is a programmer and started touching lots of other parts that he shouldn't have. Not only that I hated myself for giving him the idea that he knows how to program, but I'm sure a lot of my colleagues never really forgave me
Mircea
|
|
|
|
|
good story
diligent hands rule....
|
|
|
|
|
I've done it before with great success during the dot.com boom when you had a lot of people who had no business in software being in software.
It's half washing out those who don't have the innate ability to think like a coder, and half fostering those that do, and then supervising results until they get it.
It works. I've helped foster some incredible talent that way. Maybe I've just got a skill for mentorship, but while I understand the risks, that's why I review everything that goes out on this project.
Plus this particular person is very cautious to begin with, being an engineer, he's pretty conservative and would rather ask me about how to do something if he is not sure. That makes him easy to work with.
To err is human. Fortune favors the monsters.
|
|
|
|
|
If you've done it before, you know that teaching is a dance for two. Even the best teachers have useless students. I hope in your case things will turn out well.
On the other hand, if you are contracting people from Eastern Europe, it might be easier to find someone that already knows C++. In those parts of the world they are dime a dozen - I am a living proof (not that I would value myself at 0.10/12$)
Good luck anyways!
Mircea
|
|
|
|
|
Mircea Neacsu wrote: On the other hand, if you are contracting people from Eastern Europe
He's temporarily there on vacation - he's from the states. And he brought *me* the project - brought me on as a consultant because he knew he was out of his depth.
Also he's a good student. First, he knows his limitations. Second he's ambitious and dedicated without being "hold my beer" about it - he's a good engineer as it is.
We'll be fine.
To err is human. Fortune favors the monsters.
|
|
|
|
|
On the other hand, I hate softies who only get excited about software technology, but have no idea about the business domain... 
|
|
|
|
|
honey the codewitch wrote: in the field
Watch where you step.
|
|
|
|
|
honey the codewitch wrote: *sips coffee*
smokes a big bowl, I mean huge bowl
Now, I got this.
|
|
|
|
|
Heh. Whatever works for folks.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Quote: I have to teach him C++ templates Do not leave out meta programming...
"In testa che avete, Signor di Ceprano?"
-- Rigoletto
|
|
|
|
|
We actually touched on the concept a little today before he tapped out. He doesn't need to learn it - more just recognize it when he sees it.
To err is human. Fortune favors the monsters.
|
|
|
|
|
Having about 40+ years of experience to call upon,
I think you have this in hand, plus you will learn new stuff.
Good luck.
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|
|
May I inquire the number of lines of code he is expected to write and the duration of task. -Best
PS When I began work at a company learning intel 8088 assembler the first thing I did was type RET AL I hope and trust your student is a better C++ learner than I as assembler.
PPS My current sage advice to any student is below though no doubt yours is superior.
As for myself I find it very helpful to design C++ code in a manner which suits "ease of use" and "ease of understanding" and then figure out the language details to make it so. It is all merely a matter of providing all necessary information to compiler and to one's own code to perform requested task whether it be to compile or to execute. So in summary I recommend ask yourself for each task you wish to execute what is the most "easy" manner to specify said execution what information is needed from whence does that information come how it should be processed/calculated with/utilized where it should be stored/passed and its types
|
|
|
|
|
We don't count lines of code, and it's a year long project, though at some point - probably 9 months in, we'll be ready to freeze development.
I'd really like my C++ code to be easier to understand, but I don't write efficiently that way, because I don't think efficiently that way. I use GP. People don't like GP even though with C++ it's what's for dinner.
So it's comments to a degree but I accompany my code with external documentation about it.
To err is human. Fortune favors the monsters.
|
|
|
|
|
sorry to ask: what is "GP" here? GNU C++?
diligent hands rule....
|
|
|
|
|
No, sorry, I mean Generic Programming.
To err is human. Fortune favors the monsters.
|
|
|
|