I never quite realised how insane good auld Bob actually is. He'd make a great super-villain. And he edits video like someone who just found out iMovie exists... And I love him
I've never believed that such simple and obvious talks are really needed, until I had the opportunity to work for a company where this was the way they wrote code, with an extreme avoidance of almost any abstraction... So it really is good that we have such videos explaining the very basics of good programming practices.
I agree with your statements about loving programming. I have been retired for 7 years and still program my computer nearly every day. Curiously, I remember, when I first started programming back in the late '60s, wondering if it was a good thing to get into as I thought it wouldn't be long before all the programs that were needed would be completed.
I'm a profesional programmer I have been coding for years now but uncle Bob always teaches something even on basic videos. Thanks I'm a big fan of you :)
What an awesome teacher! I'm still waiting for the second video of "Programming 101 with "Uncle Bob" ". I wanna see more and learn more from you. Please Uncle Bob, continue with this 101 videos. Thanks.
Had to stop here 30 minutes in and say 'Thank You !!' . Great stuff , as someone going back to school at 38 years old and having had little hands on experience with programming before , this is just the pace I needed to really help me solidify my understanding of basics. 8 years ago, I completed a college course as a personal elective in Computer Logic and Programming and while I was offered much there none of it really stuck as I didn't continue my studies and only took that and a basic Microsoft Office course and wasn't super interested. .... I greatly appreciate the playfulness in your style of teaching here in this video , just very personal feel and entertaining pace ... I've watched another hour long talk you gave to a group of programmers on clean code - over my head , but I really enjoyed it too. Anyway big thanks !! This video = ( BIG VALUE , LEGACY, JUST GOOD FUN )
Beautiful how he gets the message across that in the first place the program should implement what the user really needs, not what you think he needs nor what the user thinks he needs.
Thank you so much uncle Bob. This is what I've been missing all my life. As someone who didn't study computer science, this has been really helpful. I'm going to spend the next few weeks consuming all related content.
This is a brilliant presentation, I learned more here than I did while attending college. Look at a problem closely, understand it. Since your first solution is probably clunky, go back simplify the solution. The example is excellent, simple and illustrated the information perfectly. Thank you, Bob.
For absolute beginners (something for my daughter), but still I love to watch him. By the way, I have just checked: "finger" in Latin is "digitus" exactly.
For beginners, but there's gold here for more experienced programmers that might never have stopped to think about the simple things, or just take them for granted. I had never thought about the && table being the inverse of ||, or vice versa, for example.
Is it just me, or was his programming if his first chart opposite of the chart? If the A, B switches were the same, the light should be off. His first code for A, B stated if A and B were the same state the light would be on.
This definitely makes me appreciate electricians a lot more. They have to lay out these complex logic circuit with just wires and switches. Talk about your bare-metal programming :)
In his data table he wrote that up&&up or Down&&down was light off. But what he put in the code was the opposite, with the light on. The dual lightswitch still works, but it was not coded as planned.
So I like these simple explanations, but I am personally missing one point for the switches, which for me is important to understand. If the switches do not have effect on each other, then the light always goes ON when switch A is switched to the UP position and the light always goes OFF, when switch A is switched to the DOWN position. For switch B, the opposite is true. So in that example it is crucial to understand that the actual switching (in real life: physically switching the switch) determines a change in state of the light. The reason I am saying this is because this behavior is what someone might expect only seeing the switches without the wiring. For instance in that scenario: if switch A is switched UP, the light would go ON. Now if switch B is in the UP position and we switch it to the DOWN position, the light turns ON, as we disregard the effect of switch A. As the light was already ON though, we don’t notice the change. So, maybe that explanation would be interesting to add too and afterwards show the part with the wiring, where the logic of the switches interact. To show the program for the independent behavior, you would then say: if the state of a switch changes (goes from UP to DOWN or vice-versa) we either turn the light ON or OFF, depending on how the switch works. This way the logic of both switches completely ignore the logic of the other switch, but they both control the light. So, we have two completely separate inputs that control the same output. Me saying this might sound very silly and straightforward if your brain works very well, but I wanted to say it nonetheless.
The house I owned and lived in 1996-2000, the 3-way light switches had separate top and bottom push buttons, and did not display their state (Cinturon by Leviton). The house had four pairs of such switches. Every encounter with one of these switches was a crap shoot. The "You never have to hunt for the state of the switch" was totally screwed/scrapped.
@39:00 what about counting the Ts? even yields F, odd yields T (parity bit, 1-bit checksum), right? @45:00 beside doing the XOR with an array of switch values, this XOR implementation is fascinating and lot more efficient (works with only one bit) and cannot get into number overflow exception, compared to counting and doing mod2... quite like SAX compared to DOM, for processing XML: the latter could run out of memory, right? @45:17 the truth tables: yeah but... you mentioned it's 16 of them, I'd say it's 16 "basic-functions", but did you show them all? Can't recall... I've been hoping to hear from you about the "implies" function, or the role of the "nand" function, especially in electronics. And by the way, if those "2-inputs-basic-functions" are 16, what about the 4 "1-input-basic-functions"? You showed only the "not" one... @1:00:50 good, but... it's not the best representation, which should be an array of bits... using integer that way, or strings, to "create a human-visible array of bits" it's a waste of money... also: we're past mid of the 101, but when are loop to be shown? to me, now is the right time to show what an array of bits (booleans) actually is, now that the watchers have "seen one", and how to work on arrays with loops @1:18:36 yep, Parmenide's "being and being-not" indeed... and number theory in maths starts with 0 and 1 too, but with + and *, not with the 4-unary and 16-binary functions (not to mention the "doubt function", which starts it all: otherwise is nihilism or faith). You'd definitively enjoy the "Shannon machines", i.e. "how many bits you have and what you do with that"... it's TDD, it's bottom-up, it's fun stuff.
My theory as to why ! is called "bang" is that on the old teletype consoles (like those used to control early computers), the ! symbol was the shifted value of the "B" key.
I saw Pascal in the opening screen and ... well, it was a really good language for its time - I remember when the UCSD Pascal came out on the Apple ][. I did a lot with it. Back to watching ...
The users intent will be relative to the last 'stable' state of the light. (stable meaning the last state which persisted for >500mS). An odd number of flips, intends to reverse the last stable state of the light. An even number of flips, intends to restore the last stable state of the light. I wish such consideration for timing went into web browsers. If I click on something 15mS after a page completely re-arranges itself, it's probably not what I wanted.
That DEC PiDP-8 12-bit Octal Computer Hobby Emulator / Simulator casually blinking yellow LED lights in the background is the ultimate CS Flex though....
it's because he's using arduino IDE and is in the loop method, he has the opening brace off screen so as not to confuse/overcomplicate for the more intro crowd
Having about 35 years of programming experience I haveto say: Well done - Uncle Bob. I really like that he is showing that even such a simple thing like light switches may take a lot of thinking to be solved "perfect". And he is also right in my opinion - if somebody has no fun in programming it will be hard till impossible for him to get a real programmer. But I think he is wrong in his assumption that the number of needed programmers will increase exponentialy in the next decades. One reason why I think that will not happen is that code is getting more and more platform and operation system independend - while in the past the same application has to be implemented for several plattforms this is now often no longer necessary or at least much easier as in the past The other reason is that in our days nearly every algorithm for specific problems is already written and easy to find in the Internet - so often programming is now more and more searching for already existing "parts" which when "only" have to be connected to each other. And even when the improvements in Software development are ridicoulos slow compared to the improvements in the hardware modern development tools are getting better and also programming languages have definetly improved other the years (just compare the first version of Java with the actual one)
Such a great video, I was rapt from beginning to end. I think Java was a bad choice though. In python there isn't the distraction of obtuse symbols not is not, and is and, or is or. You wouldn't even need a method. Anyway, great stuff. You give a good name to bonkers. :)
I am looking for the rest of this series , but I cannot find anything. I would be willing to buy them if I could find them. I don't have a lot of experience programming but I am interested in learning more about it, and I like the way you approach the subject.
both in same position = equals (==) in opposite positions = not equals (!=), which is logically the same as: either one is up (true&false or false&true) = exclusive or (xor)
What about dividing a problem into modular blocks where you have them move in a loop like a chain. Then the process runs with different sets of data with different inputs to verify that one block of data has moved and changed relative to block data b to make a complete transaction say a change of currency? Where A and B are changed by moving x amount from A to B and verify that said trans action has taken place by a compatitor that makes sure that each has changed by the same amount where A loosed x and B gains X amount and that the change of X is the same but inverse relative to each other.
The only thing I would add at the end of this is to get the audience to think about if you had more switches you wouldn't want to change the code each time a new switch comes along.
You wrote the table at 16:00 and then you went and programmed directly opposite logic in the program. In the real life and in your table on the paper when both switches are up or down, the light is off, but in your program when both switches are up or down, the light is on!
Man, if I had the money I'd pay Uncle Bob to be like a Bill Nye the Science guy but for programming. Young kids could benefit so much from him if he had his own show on Netflix or Hulu or something.
Hello, very nice video, would love to keep seeing them. Just a note, i couldn't find the source code in the site, is it only available if you buy the video? Thanks in advance
class FourSwitchScenario implements SwitchScenario { Error message: The nested type FourSwitchScenario cannot hide an enclosing type Using Processing 3.5.4. I'm lost trying to get things working in the code not shown.
Can anyone point me to any living code or even dead code that he has written? I checked his wiki entry and it has no mention of anything other than writing about how others should code and proselytising his own ideas. What has he actually worked on? What has he done? Where is his code? Does he have a repo I can go and poke through?
This how to drive an electrician nuts, and you thought programming was difficult try wiring this up in your house. True is the default then make it equal to something with the switches - if any switch changes then change the state of the light. Assembly language basics, now we are talking BTW Uncle Bob did we meet in the lunch room while working at a USPS processing building in NH back in the 80's??? You told me you were a laid off C++ programmer.
Wonderfull, in the past I saw programmers'oath, very short videos, but now I didn t find anywhere, maybe have been deleted, but I don t know why, was very interesting videos :(
An aside: There is a history of ternary computers en.wikipedia.org/wiki/Ternary_computer#:~:text=The%20first%20modern%2C%20electronic%20ternary,consumption%20and%20lower%20production%20cost... AND ... modern ternary computer enthusiasts: www.ternary-computing.com/ ... AND ... trinary logic: en.wikipedia.org/wiki/Three-valued_logic
This is a free lecture on clean coders and I want to get the extas as described, but they don't seem to show anywhere on the site. Can you dd them here or lt me know how to get into them somewhere else?
I'll admit that I have really liked programming since high school (4.5 decades ago) when I first encountered it, but it's never what drove me. I like to solve problems - programming is a tool to me rather than a passion. I'm a bit mathematician, a bit physicist (where my degrees are), and a bit engineer. TBH, people like me (I don't like to think of myself as a dilettante, but perhaps real programmers will) are part of what keeps programming from becoming a profession in the sense Bob seeks. I see good value in much of what Bob professes, and I totally get all of his hardware-specific stuff but some of it (e.g. intentionally creating inadequate tests and even more specifically creating inadequate code to pass inadequate tests) seems insipid.
i just brought the third edition of algorithms by thomas H cormen, and idk why im here but can anyone recommend any great books for data structures and algorithms. recipes for coding
Uncle, I think you got the switch logic wrong. when both switches are in the same position the light should be off. The ; light only comes on when the switches are in opposite positions.
both in same position = equals (==) in opposite positions = not equals (!=), which is logically the same as: either one is up (true&false or false&true) = exclusive or (xor)
My self-made function generator doesn't have software in it: it is all dumb hardware. But the software is in the PC that manages it. It was an attempt of mine to escape software, but it didn't work. Anyway, this guy is a genius!
You are so funny! So I like to know how to program and I want to be a programmer. But I am 57 years old almost 58 should I start learning how to be a programmer?
Jeez Bob, you built your two-switch program exactly backwards from the physical wall switch system. You didn't read your specification before you started programming, did you?
Is it just me, or does it seem like there are an awful lot of relatively experienced programmers, like myself, on a video titled Programming 101?
its because we strive to improve and see if we "looked over" something.
for the same reason that even top sportsmen, like Tiger Woods, still need coaches
it´s because I like to listen to Uncle Bob regardless to my 35 years professional software developer experirence
learning is fun to us
Casper S� lol I thought the same thing after I over eagerly said “Oh! I know what to do”
I never quite realised how insane good auld Bob actually is. He'd make a great super-villain. And he edits video like someone who just found out iMovie exists... And I love him
I've never believed that such simple and obvious talks are really needed, until I had the opportunity to work for a company where this was the way they wrote code, with an extreme avoidance of almost any abstraction... So it really is good that we have such videos explaining the very basics of good programming practices.
I agree with your statements about loving programming. I have been retired for 7 years and still program my computer nearly every day. Curiously, I remember, when I first started programming back in the late '60s, wondering if it was a good thing to get into as I thought it wouldn't be long before all the programs that were needed would be completed.
I'm a profesional programmer I have been coding for years now but uncle Bob always teaches something even on basic videos. Thanks I'm a big fan of you :)
What an awesome teacher!
I'm still waiting for the second video of "Programming 101 with "Uncle Bob"
".
I wanna see more and learn more from you. Please Uncle Bob, continue with this 101 videos.
Thanks.
wish I had this guy as my professor way back when
better late than never
Had to stop here 30 minutes in and say 'Thank You !!' . Great stuff , as someone going back to school at 38 years old and having had little hands on experience with programming before , this is just the pace I needed to really help me solidify my understanding of basics. 8 years ago, I completed a college course as a personal elective in Computer Logic and Programming and while I was offered much there none of it really stuck as I didn't continue my studies and only took that and a basic Microsoft Office course and wasn't super interested. .... I greatly appreciate the playfulness in your style of teaching here in this video , just very personal feel and entertaining pace ... I've watched another hour long talk you gave to a group of programmers on clean code - over my head , but I really enjoyed it too. Anyway big thanks !! This video = ( BIG VALUE , LEGACY, JUST GOOD FUN )
Beautiful how he gets the message across that in the first place the program should implement what the user really needs, not what you think he needs nor what the user thinks he needs.
Thank you so much uncle Bob. This is what I've been missing all my life.
As someone who didn't study computer science, this has been really helpful. I'm going to spend the next few weeks consuming all related content.
i love how the first several minutes is just uncle bob flexing his house and cars haha
I think it's annoying...
@@dewdop I think it's just uncle Bob being himself (and awesome) as usual.
@@dewdop Tough ;-)
@@RogerBarraud Sure is. I've lost a lot of sleep over it, actually.
Lol, I was thinking same thing. The man worked damn hard for it
This is a brilliant presentation, I learned more here than I did while attending college. Look at a problem closely, understand it. Since your first solution is probably clunky, go back simplify the solution. The example is excellent, simple and illustrated the information perfectly. Thank you, Bob.
How is this guy not on the the Nobel Prize list? Thank you Uncle Bob!
For absolute beginners (something for my daughter), but still I love to watch him. By the way, I have just checked: "finger" in Latin is "digitus" exactly.
For beginners, but there's gold here for more experienced programmers that might never have stopped to think about the simple things, or just take them for granted. I had never thought about the && table being the inverse of ||, or vice versa, for example.
Is it just me, or was his programming if his first chart opposite of the chart? If the A, B switches were the same, the light should be off. His first code for A, B stated if A and B were the same state the light would be on.
You are correct, he would just have to swap the words On and Off in the code to match the chart.
@@nathanwittland8112 I just started to scratch my head when he did that opposite to the chart, but overall good concepts to learn from!
@@nathanwittland8112 Or just use a ! not to correct the script.
Pay attention learners. This is how bugs are introduced.
He incorrectly code a XNOR function instead of an XOR.
“If the didn’t pay us to write the code, we pay to write the code” LOL, true
I've been programming Kotlin for over 20 years and wasn't aware of the 'if' keyword. This changes everything.
Must also be amazing to code in a language for 20 years that has only existed for 10 years max.
@@mrsciencedaemon That's why they call him an expert :-)
This definitely makes me appreciate electricians a lot more. They have to lay out these complex logic circuit with just wires and switches. Talk about your bare-metal programming :)
In his data table he wrote that up&&up or Down&&down was light off. But what he put in the code was the opposite, with the light on. The dual lightswitch still works, but it was not coded as planned.
Yes, it's making me crazy too.
So I like these simple explanations, but I am personally missing one point for the switches, which for me is important to understand. If the switches do not have effect on each other, then the light always goes ON when switch A is switched to the UP position and the light always goes OFF, when switch A is switched to the DOWN position. For switch B, the opposite is true. So in that example it is crucial to understand that the actual switching (in real life: physically switching the switch) determines a change in state of the light. The reason I am saying this is because this behavior is what someone might expect only seeing the switches without the wiring. For instance in that scenario: if switch A is switched UP, the light would go ON. Now if switch B is in the UP position and we switch it to the DOWN position, the light turns ON, as we disregard the effect of switch A. As the light was already ON though, we don’t notice the change.
So, maybe that explanation would be interesting to add too and afterwards show the part with the wiring, where the logic of the switches interact.
To show the program for the independent behavior, you would then say: if the state of a switch changes (goes from UP to DOWN or vice-versa) we either turn the light ON or OFF, depending on how the switch works. This way the logic of both switches completely ignore the logic of the other switch, but they both control the light. So, we have two completely separate inputs that control the same output.
Me saying this might sound very silly and straightforward if your brain works very well, but I wanted to say it nonetheless.
The house I owned and lived in 1996-2000, the 3-way light switches had separate top and bottom push buttons, and did not display their state (Cinturon by Leviton). The house had four pairs of such switches. Every encounter with one of these switches was a crap shoot. The "You never have to hunt for the state of the switch" was totally screwed/scrapped.
I doubt it had anything to do with the brand, they were probably connected incorrectly
Not a coder, but I've dabbled for 30 years.
Gotta respect a guy who starts you out with a LIGHT SWITCH.
Excellent. Where’s episode 2?
I don't know either. I looked on his website 'Clean Coder' and did not find it.
I hope he continues this series!
You have to buy it :(
Holy Shit!!!! This video is better than all the books and classes I have ever taken. Great video... Awesome tutorial...
@39:00 what about counting the Ts? even yields F, odd yields T (parity bit, 1-bit checksum), right?
@45:00 beside doing the XOR with an array of switch values, this XOR implementation is fascinating and lot more efficient (works with only one bit) and cannot get into number overflow exception, compared to counting and doing mod2... quite like SAX compared to DOM, for processing XML: the latter could run out of memory, right?
@45:17 the truth tables: yeah but... you mentioned it's 16 of them, I'd say it's 16 "basic-functions", but did you show them all? Can't recall... I've been hoping to hear from you about the "implies" function, or the role of the "nand" function, especially in electronics. And by the way, if those "2-inputs-basic-functions" are 16, what about the 4 "1-input-basic-functions"? You showed only the "not" one...
@1:00:50 good, but... it's not the best representation, which should be an array of bits... using integer that way, or strings, to "create a human-visible array of bits" it's a waste of money... also: we're past mid of the 101, but when are loop to be shown? to me, now is the right time to show what an array of bits (booleans) actually is, now that the watchers have "seen one", and how to work on arrays with loops
@1:18:36 yep, Parmenide's "being and being-not" indeed... and number theory in maths starts with 0 and 1 too, but with + and *, not with the 4-unary and 16-binary functions (not to mention the "doubt function", which starts it all: otherwise is nihilism or faith). You'd definitively enjoy the "Shannon machines", i.e. "how many bits you have and what you do with that"... it's TDD, it's bottom-up, it's fun stuff.
It's very basic, but it's well made. You got rid of the terminology at first to let kids concentrate on the interesting stuff. That's great!
I absolutely adore the cheesy comedy/FX in this video, lol
My theory as to why ! is called "bang" is that on the old teletype consoles (like those used to control early computers), the ! symbol was the shifted value of the "B" key.
5:51 well said Uncle Bob , well said.
I saw Pascal in the opening screen and ... well, it was a really good language for its time - I remember when the UCSD Pascal came out on the Apple ][. I did a lot with it.
Back to watching ...
In the high school we learned to code in Pascal. Best of all was TurboPascal env.
The users intent will be relative to the last 'stable' state of the light. (stable meaning the last state which persisted for >500mS).
An odd number of flips, intends to reverse the last stable state of the light.
An even number of flips, intends to restore the last stable state of the light.
I wish such consideration for timing went into web browsers. If I click on something 15mS after a page completely re-arranges itself, it's probably not what I wanted.
That DEC PiDP-8 12-bit Octal Computer Hobby Emulator / Simulator casually blinking yellow LED lights in the background is the ultimate CS Flex though....
Your passion helps make you a great teacher... I'm a hobbiest and I want to learn more...
Does anyone know where the next episode (which Bob regularly refers to) of 'Programming 101 with "Uncle Bob" ' can be found? I'm hooked!
That unmatched “}”.
it's because he's using arduino IDE and is in the loop method, he has the opening brace off screen so as not to confuse/overcomplicate for the more intro crowd
Having about 35 years of programming experience I haveto say:
Well done - Uncle Bob.
I really like that he is showing that even such a simple thing like light switches may take a lot of thinking to be solved "perfect".
And he is also right in my opinion - if somebody has no fun in programming it will be hard till impossible for him to get a real programmer.
But I think he is wrong in his assumption that the number of needed programmers will increase exponentialy in the next decades.
One reason why I think that will not happen is that code is getting more and more platform and operation system independend - while in the past the same application has to be implemented for several plattforms this is now often no longer necessary or at least much easier as in the past
The other reason is that in our days nearly every algorithm for specific problems is already written and easy to find in the Internet - so often programming is now more and more searching for already existing "parts" which when "only" have to be connected to each other.
And even when the improvements in Software development are ridicoulos slow compared to the improvements in the hardware modern development tools are getting better and also programming languages have definetly improved other the years (just compare the first version of Java with the actual one)
The light code (UP/UP or DOWN/DOWN = ON) is opposite to the real light demo (UP/UP or DOWN/DOWN = OFF) at the beginning of the 101.
Such a great video, I was rapt from beginning to end. I think Java was a bad choice though. In python there isn't the distraction of obtuse symbols not is not, and is and, or is or. You wouldn't even need a method.
Anyway, great stuff. You give a good name to bonkers. :)
On the note card it was captured that both up or both down should make the light OFF, not ON. Then he programmed it the other way.
I thought I was the only one noticing that... hahaha
That's at least 3 of us.
Damn, I genuinely lit up when he smirks with his evil thoughts of disintegrating our beliefs
Best CS course ever :)
I m a big fan of Uncle Bob. When do you come to Brazil?
Greaat introduction! we want more
I am looking for the rest of this series , but I cannot find anything. I would be willing to buy them if I could find them. I don't have a lot of experience programming but I am interested in learning more about it, and I like the way you approach the subject.
Additional videos are found at www.cleancoders.com
both in same position = equals (==)
in opposite positions = not equals (!=), which is logically the same as: either one is up (true&false or false&true) = exclusive or (xor)
What about dividing a problem into modular blocks where you have them move in a loop like a chain. Then the process runs with different sets of data with different inputs to verify that one block of data has moved and changed relative to block data b to make a complete transaction say a change of currency? Where A and B are changed by moving x amount from A to B and verify that said trans action has taken place by a compatitor that makes sure that each has changed by the same amount where A loosed x and B gains X amount and that the change of X is the same but inverse relative to each other.
The only thing I would add at the end of this is to get the audience to think about if you had more switches you wouldn't want to change the code each time a new switch comes along.
Good intro for the Nube But I am sticking with old fashion mechanical locks and
my analog chickens.
You wrote the table at 16:00 and then you went and programmed directly opposite logic in the program. In the real life and in your table on the paper when both switches are up or down, the light is off, but in your program when both switches are up or down, the light is on!
Thats really good!
Why ever youtube recommended this to me, since i have that knowledge already...
But great video - has captured my attention !
16:35 - XOR light switches
20:04 - XNOR code
36:16 - okay, order is restored, he's coding xor
that sound @10:16 is the main theme for german tv commercial break 🤓
This video is very entertaining and educational at the same time. It's so funny yet all so true.
I'm not sure if the incident at 11:28 warranted a laugh of such enormous magnitude.
It scared me lol I was like damn
@@RatFace_MonkeyEar_FishEye Yeah man, me too. If he did that in a same-room scenario then I'd be jumping out of the window and running for the hills.
Man, if I had the money I'd pay Uncle Bob to be like a Bill Nye the Science guy but for programming. Young kids could benefit so much from him if he had his own show on Netflix or Hulu or something.
Absolutely. There is so much left to code for zillions of young people in the future
Excellent refresher! Thank you Master.
Hello, very nice video, would love to keep seeing them. Just a note, i couldn't find the source code in the site, is it only available if you buy the video? Thanks in advance
Man i wish my company would be a partner of Clean Coders.
class FourSwitchScenario implements SwitchScenario {
Error message: The nested type FourSwitchScenario cannot hide an enclosing type
Using Processing 3.5.4. I'm lost trying to get things working in the code not shown.
SuperB video. Thank you so much Bob 👍🏻👏🏻🙏🏻
How about the below pseudocode logic?
SwitchStateChange( )
Invert(LightState)
Next episode when?
8:47 that's processing!!
Brilliant I've learn a lot from this video thank you so much
Great video!
Can anyone point me to any living code or even dead code that he has written? I checked his wiki entry and it has no mention of anything other than writing about how others should code and proselytising his own ideas. What has he actually worked on? What has he done?
Where is his code? Does he have a repo I can go and poke through?
This how to drive an electrician nuts, and you thought programming was difficult try wiring this up in your house.
True is the default then make it equal to something
with the switches - if any switch changes then change the state of the light.
Assembly language basics, now we are talking
BTW Uncle Bob did we meet in the lunch room while working at a USPS processing building in NH back in the 80's??? You told me you were a laid off C++ programmer.
What's that software he uses to write code to simulate lights
0:26 are you sure that's JavaScript's logo ?
How does he make a truth table and then program the logic backwards?
@ 16:00 Uncle Bob writes his truth table (which is correct), but shortly after he writes a code exactly the oposit. Anyone? Noticed what?
23:16: Left Clause, Right Clause...
Yes, Virginia, there is *no* Centre Clause!!11!
:'(
where do we find the "FourSwitchScenario()" class or type ?? I am getting an error
Bob just created the most sophisticated smart switch ever. #SmartHomes
Some people will follow Leonidas to Hades. Some people, like me, will follow Uncle Bob to Hades!
Wonderfull, in the past I saw programmers'oath, very short videos,
but now I didn t find anywhere, maybe have been deleted, but I don t know why, was very interesting videos :(
I've been programming for several years and have never used xor and xnor.
What am I even doing? Lol. 😅
I think I used xor once. (I left a comment for my teammates.)
I used a Karnough map once to simplify a 17 clause IF statement.
I bet your compiled code has more xors in it than you realise - specifically every time you initialise a value to zero.
An aside: There is a history of ternary computers en.wikipedia.org/wiki/Ternary_computer#:~:text=The%20first%20modern%2C%20electronic%20ternary,consumption%20and%20lower%20production%20cost... AND ... modern ternary computer enthusiasts: www.ternary-computing.com/ ... AND ... trinary logic: en.wikipedia.org/wiki/Three-valued_logic
in the beginning uncle bob test the switch and states that if they are different the light would be on. then he implements the opposite....
Haha yeah I noticed that too
Great video. Thanks for sharing.
Such a great video. Thank you!!
This is a free lecture on clean coders and I want to get the extas as described, but they don't seem to show anywhere on the site. Can you dd them here or lt me know how to get into them somewhere else?
Check cleancoders.com/ for various courses on TDD, Clean Code etc by Uncle Bob
I'll admit that I have really liked programming since high school (4.5 decades ago) when I first encountered it, but it's never what drove me. I like to solve problems - programming is a tool to me rather than a passion. I'm a bit mathematician, a bit physicist (where my degrees are), and a bit engineer. TBH, people like me (I don't like to think of myself as a dilettante, but perhaps real programmers will) are part of what keeps programming from becoming a profession in the sense Bob seeks. I see good value in much of what Bob professes, and I totally get all of his hardware-specific stuff but some of it (e.g. intentionally creating inadequate tests and even more specifically creating inadequate code to pass inadequate tests) seems insipid.
i just brought the third edition of algorithms by thomas H cormen, and idk why im here but can anyone recommend any great books for data structures and algorithms. recipes for coding
If my CS101 professor teach like uncle Bob, I wouldn't have quit CS.
5:10 I thought Internet Comment Etiquette was playing in another tab
Thank you, Uncle Bob.
Where can you download the Light Switch code? It is not available per the instructions at the end of the video.
I couldn't find it either.
Uncle, I think you got the switch logic wrong. when both switches are in the same position the light should be off. The ; light only comes on when the switches are in opposite positions.
both in same position = equals (==)
in opposite positions = not equals (!=), which is logically the same as: either one is up (true&false or false&true) = exclusive or (xor)
He just inverted it, both are possible.
XOR is the same as !=
(when it comes to booleans)
my thoughts too, a != (b != (c != d))
My self-made function generator doesn't have software in it: it is all dumb hardware. But the software is in the PC that manages it. It was an attempt of mine to escape software, but it didn't work. Anyway, this guy is a genius!
Wel done uncle Bob. Thanks
Now I need a "this will be a FALSE!" Gif for when my Lule Skywalker meme gets used too much.
Just discovering Uncle Bob. 🤦🏽♂️ What has UA-cam been recommending to me. Lol 😊
the best teacher I ever
OMG! I never imagined I could get smarter by just watching an old man turning lights on and off lol
You are so funny! So I like to know how to program and I want to be a programmer. But I am 57 years old almost 58 should I start learning how to be a programmer?
Not just that, but after 20 years, I just realized my 3-way light switch is wired incorrectly!
the best teacher ever
LEGEND! Thank you sir
Jeez Bob, you built your two-switch program exactly backwards from the physical wall switch system. You didn't read your specification before you started programming, did you?