Learning about hardware and electronics for programmers?

  • (2 Pages)
  • +
  • 1
  • 2

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

#16 Fergal C  Icon User is offline

  • New D.I.C Head

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

Re: Learning about hardware and electronics for programmers?

Posted 15 April 2017 - 06:52 AM

View Postjimblumberg, on 14 April 2017 - 11:11 AM, said:

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.

Thanks for the suggestion Jim. Is there a reason you didn't include Raspberry Pi, do you feel it is something different than the ones you suggested above?


Quote

you might try Charles Petzold's book "Code"

Looks like an excellent book, thanks a lot for the recommendation jon.kiparsky, I will buy that soon. Knuth's books sound a bit advanced for me at the moment, perhaps at some time in the future.
Was This Post Helpful? 0
  • +
  • -

#17 jimblumberg  Icon User is offline

  • member icon

Reputation: 5344
  • View blog
  • Posts: 16,679
  • Joined: 25-December 09

Re: Learning about hardware and electronics for programmers?

Posted 15 April 2017 - 08:22 PM

Quote

Is there a reason you didn't include Raspberry Pi

I didn't suggest the PI because your stated goal is to learn low level which is easier to learn on a system that doesn't have an operating system and uses a simple processor. The PI uses a fairly complicated processor and an operating system, usually Linux or Windows.

Jim
Was This Post Helpful? 1
  • +
  • -

#18 jjl  Icon User is offline

  • Engineer
  • member icon

Reputation: 1270
  • View blog
  • Posts: 4,997
  • Joined: 09-June 09

Re: Learning about hardware and electronics for programmers?

Posted 17 April 2017 - 11:20 AM

It's called Computer Engineering

@jimblumberg +1 for the PIC recommendation

Learning about micro controllers is a step in the right direction if you are attempting to learn low level (bare metal) programming. The next step is actually designing and understand computer architecture. There are several books out there for learning computer architecture that will teach you the basics: ALUs, program counters, instruction memory, machine code, etc.. Once you understand a very basic computer architecture, it make it easy to get a feel of what complex architectures are doing.

This post has been edited by jjl: 17 April 2017 - 11:25 AM

Was This Post Helpful? 1
  • +
  • -

#19 Fergal C  Icon User is offline

  • New D.I.C Head

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

Re: Learning about hardware and electronics for programmers?

Posted 18 April 2017 - 03:58 AM

View Postjimblumberg, on 15 April 2017 - 08:22 PM, said:

...I didn't suggest the PI because your stated goal is to learn low level which is easier to learn on a system that doesn't have an operating system and uses a simple processor....

Thanks a lot for explaining that jimblumberg.

Thanks also jjl for the advice and feedback.

Based on the advice in this thread I have started learning some C,will get the recommended books and an Arduino (or something similar) in the near future.

Thanks again everyone, it has all been very helpful.
Was This Post Helpful? 0
  • +
  • -

#20 jimblumberg  Icon User is offline

  • member icon

Reputation: 5344
  • View blog
  • Posts: 16,679
  • Joined: 25-December 09

Re: Learning about hardware and electronics for programmers?

Posted 18 April 2017 - 08:38 AM

If you select an Arduino be aware that most Arduino programs are not truly written in C or C++ and that quite a bit of the "low level" is hidden by the board manufacturer to make the board easier to use. For example most of the initialization of the various subsystems is handled behind the scenes by the board start up routines. So IMO these boards might be a good starting point for learning "low level" concepts you won't be operating at the lowest level possible with these boards.


Jim
Was This Post Helpful? 1
  • +
  • -

#21 jjl  Icon User is offline

  • Engineer
  • member icon

Reputation: 1270
  • View blog
  • Posts: 4,997
  • Joined: 09-June 09

Re: Learning about hardware and electronics for programmers?

Posted 18 April 2017 - 06:55 PM

The core of an Arduino UNO is a Atmega328p, you can simply program that in AVR and not ever touch the arduino abstracions :)/>

This post has been edited by jjl: 18 April 2017 - 06:55 PM

Was This Post Helpful? 1
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2