Is arduino the right choice?!!

I don’t know if it is really the right place to put this thread.

Anyway, I’m an undergraduate Physics student third year. I had a course on electronics “Circuit analysis, diodes, transistors, mosfet, op-amp and something I forgot”, I had also a course on c++ (numbering systems, basics, control statements, some manipulations, files, arrays, … ) I think it covers the most basic and needed skills for a programmer journey.

As a science geek ><, I think it’s a good Idea to learn arduino programming and use it, it may help me doing some kind of physics projects (doing it myself from scratch will be impossible since I don’t have the enough knowledge in micro-controllers)

The thing is, that I feel somehow it is no use learning arduino because it’s not efficient !! what do you think?
it’s also confusing, I searched for good references for arduino programming it always seems too too basic, and it do not go in depth that much.

Arduino and c/c++ knowledge is not a bad choice. As a physicist you should appreciate the sensors/actuators that you can access from the Arduino platform, and then move into using any microcontroller evaluation board or system.

On the software side, a single course in programming doesn't give you much insight into the power of data structures, inheritance, and abstraction that you have at your fingertips. In a few years when you have graduated this kind of knowledge will help your career. If you can't squeeze in a course in these you might do well with some disciplined self-study. Knowledge of how to use existing libraries and networking would also be of great benefit. Whatever "efficiency" is, it is trumped by abstraction (Moore's Law is your friend).

Arduino is programming, many of the details are hidden because it is so easy to get started, but you are free to study all the libraries that come with it to understand what is happening.

As a last point, I would suggest you learn the development tools that make it happen. Both the simple command line/shell tools and the vital tools such as git. These will take you into Unix/Linux and solid knowledge in this area can turn a student into one who can become employed as a professional.

I used to be jealous of the chemistry majors, because they got to take a class something like "build electronics for lab experiments" that talked about practical construction of working stuff, while I (as an EE) was stuck on a theoretical track studying chip internals and antenna theory :-( Arduino is a great tool for "the sciences", and I've talked to several researchers who are using them for assorted "things." This is because there are a whole lot of electronic measurement and control applications where "the answer" has been "use a microcontroller" for quite a few years now, and Arduino is probably the most common easy-to-use microcontroller you can get. Cheap, too.

because it's not efficient !!

Where do you get that idea? Arduino is, or can be, very efficient. It's certainly a lot more efficient than some of the previously used microcontroller systems.

references ... always seems too too basic, and it do not go in depth that much.

Well, yes. The target audience of "Arduino" is beginners. "Advance Arduino" is just "embedded AVR programming using C/C++", because Arduino hardware is not much more than a breakout board for an AVR, and the "Arduino Language" is just some C/C++ libraries layered on top of a standard compiler. (although, things are spreading beyond just AVRs these days.)

See also This recent rant on and This article on using Arduino in Products