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.
honey the codewitch wrote:
I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals.
You might suggest he peruse Accelerated C++ by Koenig and Moo. Its a little dated now ( © 2000), but takes the position that the STL is the foundation of C++ programming, so it introduces STL concepts like vectors very early. It's available as a PDF here: [Accelerated C++ Programming.pdf | DocDroid](https://www.docdroid.net/VHqjh7C/accelerated-c-programming-pdf) Someone really ought to persuade them to produce a second edition, updated for a newer C++ version. I'd also recommend Justin Turner's C++ weekly channel: [https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1\](https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1) His more recent episodes tend to get quite technical, but some of the early ones explain C++ features quite clearly, with examples. For example, there's quite a few episodes covering lambdas, which might help clear up some of the confusion surrounding that particular topic.
Keep Calm and Carry On
-
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.
how do you teach him? through online meeting such as Zoom?: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.
FORTRAN.
"Before entering on an understanding, I have meditated for a long time, and have foreseen what might happen. It is not genius which reveals to me suddenly, secretly, what I have to say or to do in a circumstance unexpected by other people; it is reflection, it is meditation." - Napoleon I
-
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:
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.
I don't know, but this seems like a loose-loose situation. good luck.
CI/CD = Continuous Impediment/Continuous Despair
-
how do you teach him? through online meeting such as Zoom?:rose:
diligent hands rule....
We use a combo of remote desking w/ anydesk and phone. zoom is not so great because he's in a remote area without great broadband.
To err is human. Fortune favors the monsters.
-
honey the codewitch wrote:
I have to teach him C++ templates and avoid STL containers because I've only got two hours to convey the fundamentals.
You might suggest he peruse Accelerated C++ by Koenig and Moo. Its a little dated now ( © 2000), but takes the position that the STL is the foundation of C++ programming, so it introduces STL concepts like vectors very early. It's available as a PDF here: [Accelerated C++ Programming.pdf | DocDroid](https://www.docdroid.net/VHqjh7C/accelerated-c-programming-pdf) Someone really ought to persuade them to produce a second edition, updated for a newer C++ version. I'd also recommend Justin Turner's C++ weekly channel: [https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1\](https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1) His more recent episodes tend to get quite technical, but some of the early ones explain C++ features quite clearly, with examples. For example, there's quite a few episodes covering lambdas, which might help clear up some of the confusion surrounding that particular topic.
Keep Calm and Carry On
LOL! I just recommended that very book to him this morning.
To err is human. Fortune favors the monsters.
-
honey the codewitch wrote:
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.
I don't know, but this seems like a loose-loose situation. good luck.
CI/CD = Continuous Impediment/Continuous Despair
He has kept up so far, so I have some faith. He had to call it now, but when he's ready for the next round, so am I.
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.
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.