Pages: [1]   Go Down
Author Topic: Shuld I take lessons on C or Embedded C to programme arduino ?  (Read 2205 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi folks, I want to learn arduino programming..but I don't have any programming experiences.I'm thinking about taking some C language lessons.will C help me to programme arduino?  and I also heard that there is another language called Embedded C.I'm confused which C language should I learn to programme arduinos?
Logged

Phoenix, Arizona USA
Offline Offline
Faraday Member
**
Karma: 40
Posts: 5594
Where's the beer?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

First off, C is C - if you are just starting out, pick something like "Beginning C Programming" or whatnot (or if it says C/C++ that's ok too); try to stay away from anything focused on Microsoft Visual C/C++ until later (not that it is much different, just that you get into learning things specific to Windows development that don't apply elsewhere). What you want to learn is basic, ANSI-standard C/C++ (if you are taking a course, ask the instructor if you can use gcc for development; if an ok is given, then the course will be pretty "standard").

That said - for beginning programming I'm not sure whether C/C++ is a good place to start or not; this is coming from someone who learned BASIC first (which some say is worse, but hey, that was the 1980s for ya!). Personally, today, I would push beginners toward Python or LUA or something similar (heck, even javascript or PHP).

The thing to understand and focus on regarding any programming language is the overall "idea" of programming, and not focus on singular language styles (when you get to this point - which isn't something taught as much as it should - it will just "click", and you'll be able to pick up new languages at will, almost - with the exception of a few weird ones out there that are experimental, older, or not as widely used).
Logged

I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

Seattle, WA
Offline Offline
God Member
*****
Karma: 11
Posts: 673
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

The trouble is, a lot of C and especially C++ classes are going to spend a lot of time on things that don't apply here, like the file system and other system calls.  If you could find an Embedded programming class, using any language, it might be more useful.

Quote
Personally, today, I would push beginners toward Python or LUA or something similar (heck, even javascript or PHP).

True, as long as they don't want to program on Arduino smiley  Those higher-level languages almost make it more difficult to come into an embedded environment which does almost nothing for you. 

For the record, I'd vote for Ruby as the most modern language to learn as a complete beginner.  Although, that doesn't help if you want to run on Arduino smiley  (Or does it...  Just came across this: http://rad.rubyforge.org/)
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

What you want to learn is basic, ANSI-standard C/C++ (if you are taking a course, ask the instructor if you can use gcc for development; if an ok is given, then the course will be pretty "standard").

The thing to understand and focus on regarding any programming language is the overall "idea" of programming, and not focus on singular language styles (when you get to this point - which isn't something taught as much as it should - it will just "click", and you'll be able to pick up new languages at will, almost - with the exception of a few weird ones out there that are experimental, older, or not as widely used).

thank you for the advice. but can you explain little bit about gcc..? and yeah...I will learn more languages in the future I guess.but for now to start off I chose C. will I be able to catchup..?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

For the record, I'd vote for Ruby as the most modern language to learn as a complete beginner.  Although, that doesn't help if you want to run on Arduino smiley  (Or does it...  Just came across this: http://rad.rubyforge.org/)


thanks man.but In my neighboorhood none of the colleges provide ruby courses.!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

What is an embedded programming language? Does Perl qualify as embedded programming language?
Logged

I love Arduino! Other hobbies include swimming, shopping, surfing, yoga on my yoga ma

Global Moderator
UK
Offline Offline
Brattain Member
*****
Karma: 309
Posts: 26485
I don't think you connected the grounds, Dave.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If it is used in an embedded device (like a phone), then yes it is.
Logged

"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

Seattle, WA
Offline Offline
God Member
*****
Karma: 11
Posts: 673
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Usually when you hear "Embedded <X>" talked about, it means "<X> tweaked for use in an embedded system."  So "Embedded Perl" would be a version of Perl that was tuned for an embedded system.  A good example is PyMite, which is a Python interpreter written for MCU's.
Logged


Canada
Offline Offline
Newbie
*
Karma: 0
Posts: 28
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
but can you explain little bit about gcc..?

GCC is simply the GNU version of a C compiler.  A number of compilers for C exist, but GCC is definitely the more popular one.  Apple seems to be pretty aggressive in their efforts in using LLVM. 

(Not really arduino related but has anyone used XCode 4 with Clang?  I'd like to hear what you think about it since I seem to have a tough time upgrading my XCode version.)

Sorry for the off-tangent bit.  I feel that C is a good place to start but I agree with cr0sh, you have to understand the idea of programming regardless of what you start out with - just don't start out with java (man was that ever a mistake!)
Logged

Pages: [1]   Go Up
Jump to: