Teaching in the field
-
I work with an electrical engineer and he's learning software development in the field as he goes. I often work with him, and am teaching him C++. It can be challenging because there are things he needs to know by certain deadlines, and he's got about 2 hours worth of stamina for a lesson at any given time. He knows a little C, still new to classes, understands pointers (sort of), gets static members to the point where he wished he knew they existed in previous endeavors of his. I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals. Also he's in Eastern Europe right now, and I'm in North America, just to up the difficulty setting a bit. *cracks knuckles* *sips coffee* I got this.
To err is human. Fortune favors the monsters.
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. :sigh:
-
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. :sigh:
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.
-
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 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.
-
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 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
-
LOL! I just recommended that very book to him this morning.
To err is human. Fortune favors the monsters.
It's a classic, but as I said a little dated. Probably the biggest things are the inclusion of
auto
type deduction andranged
for loops. Both of which reduce typing, if nothing else. I'd have to look up how to write a loop using a fully declared iterator as the control variable, as opposed to either an auto or a ranged for.Keep Calm and Carry On
-
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 :rose:
diligent hands rule....
-
I work with an electrical engineer and he's learning software development in the field as he goes. I often work with him, and am teaching him C++. It can be challenging because there are things he needs to know by certain deadlines, and he's got about 2 hours worth of stamina for a lesson at any given time. He knows a little C, still new to classes, understands pointers (sort of), gets static members to the point where he wished he knew they existed in previous endeavors of his. I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals. Also he's in Eastern Europe right now, and I'm in North America, just to up the difficulty setting a bit. *cracks knuckles* *sips coffee* I got this.
To err is human. Fortune favors the monsters.
honey the codewitch wrote:
in the field
Watch where you step.
-
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. :sigh:
-
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
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.
-
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 :D (not that I would value myself at 0.10/12$) Good luck anyways!
Mircea
-
I work with an electrical engineer and he's learning software development in the field as he goes. I often work with him, and am teaching him C++. It can be challenging because there are things he needs to know by certain deadlines, and he's got about 2 hours worth of stamina for a lesson at any given time. He knows a little C, still new to classes, understands pointers (sort of), gets static members to the point where he wished he knew they existed in previous endeavors of his. I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals. Also he's in Eastern Europe right now, and I'm in North America, just to up the difficulty setting a bit. *cracks knuckles* *sips coffee* I got this.
To err is human. Fortune favors the monsters.
honey the codewitch wrote:
*sips coffee*
smokes a big bowl, I mean huge bowl Now, I got this.
-
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.
-
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 :D (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.
-
I work with an electrical engineer and he's learning software development in the field as he goes. I often work with him, and am teaching him C++. It can be challenging because there are things he needs to know by certain deadlines, and he's got about 2 hours worth of stamina for a lesson at any given time. He knows a little C, still new to classes, understands pointers (sort of), gets static members to the point where he wished he knew they existed in previous endeavors of his. I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals. Also he's in Eastern Europe right now, and I'm in North America, just to up the difficulty setting a bit. *cracks knuckles* *sips coffee* I got this.
To err is human. Fortune favors the monsters.
-
Quote:
I have to teach him C++ templates
Do not leave out meta programming... :laugh:
"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.
-
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. :)
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.
-
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.
-
I work with an electrical engineer and he's learning software development in the field as he goes. I often work with him, and am teaching him C++. It can be challenging because there are things he needs to know by certain deadlines, and he's got about 2 hours worth of stamina for a lesson at any given time. He knows a little C, still new to classes, understands pointers (sort of), gets static members to the point where he wished he knew they existed in previous endeavors of his. I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals. Also he's in Eastern Europe right now, and I'm in North America, just to up the difficulty setting a bit. *cracks knuckles* *sips coffee* I got this.
To err is human. Fortune favors the monsters.
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
-
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.