Do Programmers Need to Understand Computer Hardware?

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ •

  • @TheLearnProgrammingChannel
    @TheLearnProgrammingChannel  5 років тому +1

    Watch Tim's Free Learn to Code Course on UA-cam!
    ua-cam.com/play/PLXtTjtWmQhg0N08o_oSaAantmQAu-1Xad.html

  • @danzolion8758
    @danzolion8758 5 років тому +12

    It’s good and important to know how a computer inter operates. You don’t need to know everything but a good understanding of how computers work is interesting from an engineering perspective. ICT is also an interesting angle, but wow oh wow Tim we have come along way from those early computers 🙌 you’re really a computer knowledge powerhouse. I really enjoyed learning about Hex and binary but programming in the programmatic languages we have today are much easier. God bless Tim for working through those old systems 👌

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  5 років тому +4

      Yeah I agree - a good base knowledge is worth it. Check out my links I left for another comment on this video about two channels I like for hardware. Linus (one of the channels) is huge and does all sort of stuff including building computers, etc and the other guy Carey does live computer builds on video - great places to learn hardware. Yeah have we ever come a long way from the older computers of the 70's and 80's.

    • @danzolion8758
      @danzolion8758 5 років тому

      The Learn Programming Channel many thanks for this Tim I’ll have a look as I need more viewing time on UA-cam other than my usual stuff. Do you ever use Juniper/Jypeter for any work? I’m busy with another course on udemy and it has a lot of beneficial features in notes, where you can practice Python and I guess a lot of other languages. As I’m sure you know it’s an addition to cli, IDE - being web based. ✍️

  • @activefun2992
    @activefun2992 2 роки тому +1

    Knowing the basics (CPU, RAM) scaling seems useful the more senior you get or if you plan to go into management where you might need to coach on some of these topics or evaluate scaling strategies.

  • @Varksterable
    @Varksterable 3 роки тому

    Another of your videos a while back provoked some discussion about the terminology of things like 'developer', 'software engineer', 'coder' and 'computer programmer'.
    And now we see a similar thing here too. To me (I worked on an IT support desk for a while, fixing broken PCs) 'hardware' is the physical components. Like motherboard, memory chips, hard drives, power supplies, cables. But here, you are talking about what I'd probably call 'computer architecture'. The way the internals of a chip works. These are realised by physical components, but are constructed based on abstract ideas, not physical ones.
    And in addition there's the physical design of the chip, at an even lower level. The actual 'quantum' stuff of electron tunnelling, n-type or p-type silicon etc. I'm not sure _what_ exactly I'd call that (apart from "you _really_ don't need to know"). But it's certainly not software. So it must be hardware, right?
    I'm not saying either is correct or not, as with the 'coder' discussion before. I just find it really curious that in the industry of the information age, where everything has to be as close to precise and logical as humanly possible (and even more than that when these things are themselves designed by computers) we don't have precise and universally agreed meaning and usage of some of the most fundamental terms.
    To add a little to your video itself, I'd agree that apart from the specific cases you mention (embedded, etc.) hardware in the sense you mean it is almost irrelevant. But...
    If you are seriously wanting to get into programming as a career, you need at least a little curiosity, interest, and even passion for the subject. And if that's the case you'd probably be wanting to (or should be encouraged to want to) glance over the very basics of stuff like low-level APIs, chipsets, the fetch-execute cycle, construction of logic circuits in silicon etc.
    Not because you need to, or because it will be useful. But because it is utterly fascinating! If nothing else it'll give you a much more humble perspective about what it is you are actually doing when you get a computer to print the result of 2+5 on a screen.
    Oh, and check out the paper/animations of "A Turing Machine In Conway's Game Life". A person's response to this is a very simple 'should I be a computer professional?' test, imo. If you don't find that construction in any way interesting or astonishing then my answer would be; 'probably not.'
    Keep up the great videos, Tim. (Why _do_ we still call them 'videos', btw? 🤨)

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  3 роки тому

      Thanks for this, Vark. Some great points you have raised. Some of the problem with terminology is, I believe, that we are still relatively early in the "computer" era, I think over time we will find more solid terminology will be used and agreed upon universally.
      And good point about the word "video" as well :)

  • @yuvrajpatel9103
    @yuvrajpatel9103 5 років тому +5

    Sir ...make a video on ...do software developer/programmer needs to learn ethical hacking

  • @marduktr
    @marduktr 4 роки тому +2

    0:48
    If you want to dive into hardware, first you should learn how to hold soldering iron:))))

    • @Varksterable
      @Varksterable 3 роки тому

      What's a soldering iron?
      (Joke. Before anyone asks.)

  • @troyf8488
    @troyf8488 3 роки тому +1

    Man, if you made computer/network programmability courses that teach hardware concepts described in the video. How to code device drivers for kernels, how to use operating systems on a deeper level. A lot of other people and I would buy it immediately. I wouldn't say I like academia and want better options to learn this exciting side of computer science. Please consider it. I know you have alternative channels already listed that cover that material. But, there is a reason I have bought many of your courses, sir. (It's the best)

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  3 роки тому +1

      Thanks for the support I really appreciate it! I'll certainly consider your suggestion for future courses.

  • @vincinoyb9734
    @vincinoyb9734 3 роки тому

    I think too it's helpful but not required. Just like when driving a car and starting to drive in its fifth gear is not a good idea but actually understanding why it is will not even make you trying to do so in the first place.
    Likewise, loading a complete database in memory will get you quick access to it's content, but when the amount of records are like millions, you'd better come up with a more efficient way of getting the required data.
    Another example, say like writing data to a file, you can write to it as soon something changes. But knowing the block size of the file system, you can reduce the amounts of writes as soon as you have one block of data filled.
    Knowledge of hardware means you can write more efficient code in general.

  • @swapnil72
    @swapnil72 2 роки тому

    Not quite literally but there's something called passion

  • @makesandmoocs8259
    @makesandmoocs8259 4 роки тому

    What about someone who is just getting into robotics ? Does he / she need to know assembly as well to make robots efficient?

  • @mohaadnan3244
    @mohaadnan3244 5 років тому +3

    Do you have a course on computer hardware? And I love your java masterclass I am in a halfway of the course after I finish it I will continue with your android course 👌

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  5 років тому

      I don't yet but hope to one day - see comment about with some good hardware channels. I hope you enjoy the rest of the android course.

    • @mohaadnan3244
      @mohaadnan3244 5 років тому

      @@TheLearnProgrammingChannel God bless you

    • @benitoclementediaznava8082
      @benitoclementediaznava8082 5 років тому

      Man I'm on the same boat haha, but I have only 20% of Java and I already bought the Android course 👌🏼

    • @mohaadnan3244
      @mohaadnan3244 5 років тому +1

      Benito Clemente Díaz Nava but first focus on finishing java and move on

  • @jameshagood2373
    @jameshagood2373 5 років тому +1

    Anybody that wants to answer would be greatly appreciated. I am a javascript developer and I use PHP and python on a daily basis as well but I want to be a more well rounded developer and learn C or C++ or assembly but I am not sure which one would be the most beneficial

    • @frederikja2210
      @frederikja2210 2 роки тому

      This comes a bit late, but definitely C++, assembly is only helpful once you know/use c or c++, and c++ is essentially c but with classes. So c++ should also be more familiar to you.

  • @mohaadnan3244
    @mohaadnan3244 5 років тому +2

    What about a deep understanding of operating system

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  5 років тому +2

      Not really necessary for most programmers - if you are talking about how it works under the hood and not how to use it.

    • @mohaadnan3244
      @mohaadnan3244 5 років тому

      @@TheLearnProgrammingChannel thanks sir

  • @StefanSchade721229
    @StefanSchade721229 5 років тому

    I had the Armstrad CPC 6128 😍

    • @TheLearnProgrammingChannel
      @TheLearnProgrammingChannel  5 років тому

      Wow lucky you!! I bought the 464 as soon as it got released and remember the 6128 was pretty cool! I have such fond memories of the Amstrad machines in general.

  • @toyboatt
    @toyboatt 4 роки тому

    I feel like Tim's programmer photos have proportional over-representation of pretty young girls. Am I just old?

    • @Varksterable
      @Varksterable 3 роки тому

      Over-proportional over-representation in some cases too.
      Actually, I'm just probably old as well. Let's face it; this last 12 months has aged most of us by at least 5 years. I wonder where we can apply for refund vouchers? 🤨