Learning about hardware and electronics for programmers?

  • (2 Pages)
  • +
  • 1
  • 2

20 Replies - 1273 Views - Last Post: 18 April 2017 - 06:55 PM

#1 Fergal C  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-January 11

Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 04:17 AM

When learning how to use new software or a programming language, I feel that my learning would be improved with a greater understanding of how the software or code actually works at the computer hardware level.

E.g., when creating a website with HTML, I find it frustrating that although I can write and understand the HTML, I don't really understand how it works on the computer or server to display the web page.

Do you have any short course, book recommendations or other suggestions, for learning about computer hardware and how software actually works with and interacts with it?

E.g. would it be helpful to start learning basic electronics, assembly language or something else?

Would playing around with something like a Raspberry Pi or Arduino be helpful?

Many thanks!

Is This A Good Question/Topic? 0
  • +

Replies To: Learning about hardware and electronics for programmers?

#2 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 12958
  • View blog
  • Posts: 51,159
  • Joined: 12-June 08

Re: Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 06:35 AM

Not for me.. certainly a nice hobby, but it never floated my boat to build my own CPU from the ground up. Though books, courses, etc exist on it.. and rarely are they 'short'.
Was This Post Helpful? 1
  • +
  • -

#3 Fergal C  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-January 11

Re: Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 07:53 AM

Thanks for your reply modi123_1. Can someone become a really good programmer, without a knowledge of how the computer they are programming on really works? (Serious question, I don't know the answer)

I personally find it frustrating that I don't know what the code is actually doing on the machine, perhaps it is best to just get over that and focus on learning the language?
Was This Post Helpful? 0
  • +
  • -

#4 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 12958
  • View blog
  • Posts: 51,159
  • Joined: 12-June 08

Re: Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 07:56 AM

Yup.. I see folks write code all the time without knowing really what a register is, logic GATES operate, how to assemble a PC, how a CPU operates, bus, etc.

For me it sounds like you are focusing on the wrong thing. With your browser analogy.. do you want to just write a web page that does what you want and move on, or do you want to write a browser render engine?
Was This Post Helpful? 1
  • +
  • -

#5 tlhIn`toq  Icon User is offline

  • Xamarin Cert. Dev.
  • member icon

Reputation: 6455
  • View blog
  • Posts: 14,221
  • Joined: 02-June 10

Re: Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 03:14 PM

Yep... Its the 21st century. Unless you're building drivers for the video card maker you don't access anything on a low level.
You need to understand the Operating System and the framework/API calls you have available to you.

Here's what I mean... You don't access a hard drive, check the block allocation map, find the sector of the first block, read the data, converter to text, find the end of the block, move to the next block, {repeat}. You tell .NET to open a stream to a text file and read the file. How the OS goes about getting the file is really none of your concern.
Was This Post Helpful? 1
  • +
  • -

#6 snoopy11  Icon User is online

  • Engineering ● Software
  • member icon

Reputation: 1294
  • View blog
  • Posts: 3,967
  • Joined: 20-March 10

Re: Learning about hardware and electronics for programmers?

Posted 12 April 2017 - 03:24 PM

Thank God its not 1971 you'd all be fooked

Posted Image

On a serious note no... you dont really need to know how any computer works...

apart from the above one where you programmed it with a series of switches to load the binary instructions.... jeez I would have just not bothered... ;)
Was This Post Helpful? 1
  • +
  • -

#7 Fergal C  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-January 11

Re: Learning about hardware and electronics for programmers?

Posted 13 April 2017 - 02:35 AM

Thanks everyone for your replies, that is all very helpful.

View Postmodi123_1, on 12 April 2017 - 07:56 AM, said:

...For me it sounds like you are focusing on the wrong thing. With your browser analogy.. do you want to just write a web page that does what you want and move on, or do you want to write a browser render engine?

Good point, one step at a time :)/>
Was This Post Helpful? 0
  • +
  • -

#8 NeoTifa  Icon User is online

  • NeoTifa Codebreaker, the Scourge of Devtester
  • member icon





Reputation: 3965
  • View blog
  • Posts: 17,862
  • Joined: 24-September 08

Re: Learning about hardware and electronics for programmers?

Posted 13 April 2017 - 10:09 AM

I started writing tutorials on here about low level stuff but then got sidetracked. If you want to transition into learning lower level stuff, just learn C. It's the perfect gateway drug into low level computing. Then you can bust out the assembler. =]
Was This Post Helpful? 0
  • +
  • -

#9 Fergal C  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 6
  • Joined: 19-January 11

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 02:42 AM

View PostNeoTifa, on 13 April 2017 - 10:09 AM, said:

...If you want to transition into learning lower level stuff, just learn C...


Thanks for the advice NeoTifa, I may spend some time on that. Would C++ be as useful or do you think C is a better option?
Was This Post Helpful? 0
  • +
  • -

#10 NeoTifa  Icon User is online

  • NeoTifa Codebreaker, the Scourge of Devtester
  • member icon





Reputation: 3965
  • View blog
  • Posts: 17,862
  • Joined: 24-September 08

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 10:59 AM

C++ is higher level. They're all useful, it just depends on what you want to do. C is lower level and C++. Assembly, which is like 1 or 2 steps lower than C, is probably the closest to machine code you can get without being machine code.
Was This Post Helpful? 1
  • +
  • -

#11 jimblumberg  Icon User is online

  • member icon

Reputation: 5151
  • View blog
  • Posts: 16,111
  • Joined: 25-December 09

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 11:11 AM

If you really want to learn "low level" I recommend you get some kind of embedded development kit that is based on a simple processor that doesn't use an operating system. Possibly something like the Arduino or maybe something like this, perhaps a PIC.

IMO, no matter what language you use to program a desktop computer you won't learn much about the "low level" internals of the computer because your operating system will usually prevent you from easily accessing the hardware.


Jim
Was This Post Helpful? 2
  • +
  • -

#12 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 12958
  • View blog
  • Posts: 51,159
  • Joined: 12-June 08

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 11:16 AM

Until you build your own logic gates you haven't really learned how to program. ;)/>

Spoiler

Was This Post Helpful? 0
  • +
  • -

#13 snoopy11  Icon User is online

  • Engineering ● Software
  • member icon

Reputation: 1294
  • View blog
  • Posts: 3,967
  • Joined: 20-March 10

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 11:37 AM

Now you are just showing off,

messing around with soldering irons and breadboards....


;)
Was This Post Helpful? 0
  • +
  • -

#14 modi123_1  Icon User is online

  • Suitor #2
  • member icon



Reputation: 12958
  • View blog
  • Posts: 51,159
  • Joined: 12-June 08

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 11:49 AM

FYI - that's not my image.. I broke my iron and breadboard trying to make a beefy grilled cheese wellington and dismantled mine.
Was This Post Helpful? 1
  • +
  • -

#15 jon.kiparsky  Icon User is offline

  • Fuck Trump
  • member icon


Reputation: 10388
  • View blog
  • Posts: 17,667
  • Joined: 19-March 11

Re: Learning about hardware and electronics for programmers?

Posted 14 April 2017 - 08:40 PM

If you want a high-level understanding of low-level programming and logic, you might try Charles Petzold's book "Code". The name is a little misleading, it's largely about the underlying logic that applies at the machine level. Goes into a lot of interesting digressions, there's a lot to learn from it.

Another direction you could go - not one I necessarily recommend unless you come pre-equipped with a certain amount of mathematical background and have a lot of time to spend - is Knuth's Art of Computer Programming. The driving reason for this suggestion is that Knuth uses an assembly language for a hypothetical machine for discussing algorithms, so you'd get a good taste of how that style of programming works while also developing some understanding of and intuitions about some interesting algorithms. That being said, it's a notoriously difficult book for the beginner and many people do not get very far into it. (and there's a lot to get - Volume 1 runs to 465 pages of text, with about another 150 pages for the answers to the exercises, and currently volumes 1, 2, 3, and 4A have been issued of a projected seven volumes, volume 4 being divided into three separate books)
So, I mention it because it'd be nice if it was a good idea, but I can't really recommend it as a home study guide for the interested amateur.
Was This Post Helpful? 1
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2