Beginning C for Arduino: Learn C Programming for the Arduino

Post here to let others know of great places to buy components etc... online.

Moderators: Chuckt, Garth, bitfogav

Post Reply
Chuckt
I practically live here!
I practically live here!
Posts: 1127
Joined: Sun Mar 28, 2010 1:36 pm

Beginning C for Arduino: Learn C Programming for the Arduino

Post by Chuckt » Tue Apr 04, 2017 5:31 am

Beginning C for Arduino: Learn C Programming for the Arduino (Technology in Action)

https://www.amazon.com/Beginning-Arduin ... 1430247762

The Kindle version is $7.95 to rent and $26.96 to buy. It is $16.42 used which sounds like a better deal.

I have not reviewed the book but this may be a stepping stone to learn new things with C.

I found another book that is about the same price:

C Programming Absolute Beginner's Guide (3rd Edition) 3rd Edition

https://www.amazon.com/Programming-Abso ... c+language

User avatar
bitfogav
Moderator
Moderator
Posts: 908
Joined: Sun Mar 28, 2010 9:03 pm
Location: United Kingdom
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by bitfogav » Fri Apr 07, 2017 5:17 am

C language isn't so hard to learn, even easier if you already know another programming language.. I have seen the C Programming for the Arduino book before and I think theres actually a second edition now :)
If you don't know what Voltage your country is using, you shouldn't be doing electronics ;-)

Garth
I practically live here!
I practically live here!
Posts: 218
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Garth » Fri Apr 07, 2017 5:54 am

I just now ordered that second book, because I've gone through the K&R book, "The C Programming Language," second edition, and if I had to take a test on it, I'd probably get less than a 30%. The C language seems to me to be an absolute disaster, and I often don't understand what they're saying, or understand the examples, even though I programmed in Fortran and a few versions of BASIC before. Too much cryptic punctuation, typing, and other things. My brain really does work more along the lines of Forth and RPN. When I went through Leo Brodie's book "Starting Forth," I had no such problems. Everything made sense immediately and I just took off with it.

Edit: I posted my beefs with C at http://wilsonminesco.com/stacks/Cbeef.html .
http://WilsonMinesCo.com/ lots of 6502 resources

Chuckt
I practically live here!
I practically live here!
Posts: 1127
Joined: Sun Mar 28, 2010 1:36 pm

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Chuckt » Fri Apr 07, 2017 2:26 pm

I learned Pascal in college. We were taught to define our variables first. It took a long time to program because I had to keep going back and forth through the editor to write the program and since the program didn't have line numbering, I kept getting lost. We actually wrote the programs in Word Perfect and compiled them with Borderland Pascal on the PC.

Our instructor at college didn't know how to teach. I bought two or three different books on how to program Pascal. Everyone had no idea what the instructor was teaching. The instructors basically tell you what to do and you have to learn it yourself so why do I need a instructor? The hardest command was function and I wouldn't have gotten the understanding without purchasing books that weren't assigned by the instructor who was head of the computer lab. I ended up spending days in the computer lab that weren't necessary if the professor was willing to teach. The reality is that schools are failing our students and I never needed Pascal after I graduated. I don't even know who uses it anymore as the program is a free download till someone figured they could charge for it.

Pascal was based on writing loops.
I was told that if I learned Pascal, C wasn't more difficult to learn.


Is academia failing graduates? Survey claims so
According to the survey, 41% of graduates have had to take an entry-level job below graduate level once they left university, while 26% of those surveyed regret the time and money they spent on their university education. Meanwhile, 28% of respondents said their degree courses were ‘outdated’ in relation to current requirements.
http://www.newelectronics.co.uk/electro ... so/153154/

Chuckt
I practically live here!
I practically live here!
Posts: 1127
Joined: Sun Mar 28, 2010 1:36 pm

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Chuckt » Fri Apr 07, 2017 2:29 pm

Garth wrote:I just now ordered that second book, because I've gone through the K&R book, "The C Programming Language," second edition, and if I had to take a test on it, I'd probably get less than a 30%. The C language seems to me to be an absolute disaster, and I often don't understand what they're saying, or understand the examples, even though I programmed in Fortran and a few versions of BASIC before. Too much cryptic punctuation, typing, and other things. My brain really does work more along the lines of Forth and RPN. When I went through Leo Brodie's book "Starting Forth," I had no such problems. Everything made sense immediately and I just took off with it.
I ordered both books and I'm willing to learn it and help you through it if I can learn it on my own.

Garth
I practically live here!
I practically live here!
Posts: 218
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Garth » Fri Apr 07, 2017 2:52 pm

Chuckt wrote:I learned Pascal in college. We were taught to define our variables first.
That's pretty normal—at least to define them before they're used, although not necessarily at the beginning of the source code.
It took a long time to program because I had to keep going back and forth through the editor to write the program and since the program didn't have line numbering, I kept getting lost.
I always have a general sense for the order of the various portions of the source code, but then I use the search a lot as well as bookmarks in the editor. The editor's "condensed" mode is nice too, but that's why I don't like assemblers to require labels to start in column 1. Putting labels of only local interest starting in column 2 makes them invisible in condensed mode, since it only shows lines that have a character in column 1. It makes it a lot easier to find things sometimes.

I understand Pascal puts huge amounts of data on the stack, up to and including even arrays (not just their address) and whole functions. That's about the limit of my knowledge of Pascal.
Is academia failing graduates? Survey claims so
It sure is in electronics engineering! There was an editorial about this in one of the industry magazines years ago. It said the industry is telling academia, "You're not giving us the kind of engineers we need. We need ones who can do this, this, and this..." and academia responds, "Look, you know your field, and we know education. Leave the education to us, 'kay?", so the problem persists. It was a constant frustration for me in the years when I was hiring technicians and engineers. (I probably read over a thousand resumes, and I thought it would be fun to be a guest speaker in a classroom to tell how to write a resume. Some of what's often taught is quite wrong. Maybe I should post an article on my website about that, too.)
28% of respondents said their degree courses were ‘outdated’ in relation to current requirements.
Computer science and computer engineering are undoubtedly the hardest to keep up with. By the time a new technology or method is recognized as important, and curriculum is written, and it is incorporated into the classes offered, it's already kind of old. Also, if a student can't get a job immediately out of school (or even before they're done), (s)he might fall behind awfully fast, making all the harder to get a job. (That's not to say that every job demands the latest though.)
http://WilsonMinesCo.com/ lots of 6502 resources

User avatar
brad
Site Admin
Site Admin
Posts: 2576
Joined: Fri Mar 26, 2010 10:30 pm

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by brad » Fri Apr 07, 2017 9:40 pm

I have been teaching electronics for a little over 10 years now and I have to say that (at least the way we do it) we are not teaching quite right.

Instead of ramming theoretical concepts into the students brains and then giving them written exams, I think it would be much better to have a more hands on practical approach and put everything they are learning into context. They will retain much more information that way, find it more relevant and have more fun!

Garth
I practically live here!
I practically live here!
Posts: 218
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Garth » Sat Apr 08, 2017 6:04 am

One of my beefs is that the necessary math is presented in such a theoretical and sterile way, and without application, with the idea that it must be laid as a foundation ahead of the need. How will that generate interest? How does that help the student understand what's going on in his circuit on the workbench? It won't. How about teaching the circuits and letting the students run up against problems they don't have the math tools to solve yet, then pausing the electronics work to learn what now suddenly there's an interest and application for. That's how I got through a lot of stuff, teaching myself. I kind of have to learn things my own way anyway.

There has been an EE student in India who found me through one of the forums, and he asked me a bazillion questions (by email) about the Fourier transform (which is used for spectrum analysis, including the phase of the various components), convolution integrals (which can be used for determining how a circuit will respond to a given AC waveform), transmission lines, and other things. I explained these things—a long string of them—but he ended up dropping out anyway. Apparently the school tried to work the students really hard (in the wrong way) to produce top-notch engineers, and as a result, the students were just barely hanging on by their fingernails and didn't learn as much as they would have learned if they had time to absorb the material and bring it down to earth. The creme will always rise to the top of course; but the creme would probably reach the top sooner with a different kind of help.

Similarly, we know two medical doctors, a husband and wife, who also got degrees in mechanical engineering because of their interest in prostheses. As we were discussing this kind of thing around the pool, one of them admitted (and the other concurred), "I went through my transforms classes and got my A's; but I still have to admit that I don't really know what the Fourier transform does." It felt strange explaining this kind of thing to them, when I was the one without formal education.

That's not to say I'm super strong in math. I'm definitely not, and there's a lot on the MoHPC calculator forum that I don't understand as presented by all these lofty mathematicians. I can usually find a way to brute-force something if necessary to get answers though, sometimes similar to using Simpson's approximation of an integral, writing a computer program to slice something up into slivers in time or whatever's on your X axis, or doing iterative processes to converge on answers like in a feedback system.
http://WilsonMinesCo.com/ lots of 6502 resources

User avatar
brad
Site Admin
Site Admin
Posts: 2576
Joined: Fri Mar 26, 2010 10:30 pm

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by brad » Sat Apr 15, 2017 9:30 pm

You're exactly right Garth. I have found it works very well when starting with a new class - to show them completed electronic projects first, get them to play with them and experiment and then start to bring in some concepts from there. From the very beginning they have some sort of context for what they are about to learn.

Garth
I practically live here!
I practically live here!
Posts: 218
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Garth » Mon Jun 12, 2017 2:11 pm

Garth wrote:It was a constant frustration for me in the years when I was hiring technicians and engineers. (I probably read over a thousand resumes, and I thought it would be fun to be a guest speaker in a classroom to tell how to write a resume. Some of what's often taught is quite wrong. Maybe I should post an article on my website about that, too.)
Done. http://wilsonminesco.com/HowWriteResume.html
http://WilsonMinesCo.com/ lots of 6502 resources

User avatar
brad
Site Admin
Site Admin
Posts: 2576
Joined: Fri Mar 26, 2010 10:30 pm

Re: Beginning C for Arduino: Learn C Programming for the Arduino

Post by brad » Thu Jun 15, 2017 8:54 pm

Nicely done Garth :)

Garth
I practically live here!
I practically live here!
Posts: 218
Joined: Wed Jan 16, 2013 1:17 pm
Contact:

Re: Beginning C for Arduino: Learn C Programming for the Ard

Post by Garth » Mon Jun 26, 2017 1:54 pm

Garth wrote:
Mon Jun 12, 2017 2:11 pm
Garth wrote:It was a constant frustration for me in the years when I was hiring technicians and engineers. (I probably read over a thousand resumes, and I thought it would be fun to be a guest speaker in a classroom to tell how to write a resume. Some of what's often taught is quite wrong. Maybe I should post an article on my website about that, too.)
Done. http://wilsonminesco.com/HowWriteResume.html
The following true story about a job interview I had in 1985 is rather off-topic except that it's related to the resume, so I'll put it here for your entertainment.

I had an appointment for an interview with the president or other high-ranking man in a small technical company. I got there on time, but he forgot he had scheduled me, and he was out. His secretary called him on the phone and asked what she should do. He apparently told her to try to interview me herself, and gave her some questions to ask me. She appeared quite nervous but was trying to act very professional. She was dressed the part, too. She took me into a conference room and we sat down at the conference table, and she was looking over my resume and her notepad, again trying to act very professional.

There was a spider crawling up her suit jacket, and I didn't know if I ought to say something. It went up over one shoulder, across the back, and came down the other shoulder, and was on her lapel, getting closer to her blouse and skin.

I finally said, "Um, I don't think you would want me to ignore this anymore, but [pointing] you have a spider..." and I was not able to get any further. Her professional efforts were instantly gone, and she jumped up, knocking the chair back, stiffened up, and screamed, "Get 'im off me!!" I quickly brushed it off her lapel. It landed on the conference table, and I slapped it, then scooped it up with a piece of paper (I didn't smash it enough to really make a mess), and took it over to the trash can and dropped it in.

That put an abrupt end to the interview. It seems like there must have been someone in the surrounding offices who must have known the boss's secretary was in the conference room alone with a man, and here comes this scream, "Get 'im off me!!" ...but no one came. I don't remember what happened after that, but I didn't get the job. I'm sure she was so embarrassed about her behavior that she never wanted to see me again in her life! :lol: :lol: :lol: :lol:
http://WilsonMinesCo.com/ lots of 6502 resources

User avatar
brad
Site Admin
Site Admin
Posts: 2576
Joined: Fri Mar 26, 2010 10:30 pm

Re: Beginning C for Arduino: Learn C Programming for the Arduino

Post by brad » Sat Jul 01, 2017 4:50 pm

Well that certainly beats any job interview that I have ever gone to. I did actually find some old documents for when I was interviewed for the airforce in 2001. The documents recommended that I should not be taken on and that I need more time to mature. The strange thing however is that I was accepted a month later!


Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest