What would a layman do with C++???

A brief background...no programming or coding experience until last year when I bought an Arduino. I've been a welder/machinist for about six years now, and having the capability to do quite a bit with metal has helped me improve functionality in my home and life. So I am trying to figure out how to use computers i.e. Arduino and C++ to improve the functionality in my home and life. I've found some applications for the Arduino, but I'm at a loss to figure out how to write a computer program to do something useful. This is not a criticism of the programming languages out there, far from it, but aother than large business oriented applications, what would a common man such as myself do with C++? Games hold no interest for me, a deck of cards suits me just fine, and looking through the app store for iPhone and Android I see nothing that would enhance my life. I use trig quite a bit when I am designing projects in metal, but a common calculator handles those problems just fine, with a very low cost and learning curve. I guess I am just a little disillusioned when I see what 14th century armorers could do with hammers and fire, and now, with modern computing power easier to access and utilize than ever, and we get....Angry Birds!!! So have any of you written applications or programs that provided some enhanced functionality to your life? Stuff that isn't done as easily by other means? Long story short, I'm getting burnt out trying to work through the tutorials for C++, when I still haven't answered the basic question "What the *&%$ am I going to do with it?"

I guess I am just a little disillusioned when I see what 14th century armorers could do with hammers and fire, and now, with modern computing power easier to access and utilize than ever

Honestly, I'm quite reluctant to even attempt to answer your question as the above statement makes it perfectly clear that you already have a significant bias on the subject to begin with.

Sorry, I didn't intend to sound mean spirited or biased. But besides games, what have you done with programming? I ask this because I see some glimmer of possibility there, the same glimmer I saw years ago with metalwork. And now I have built metal stairs for $300,000 homes, repaired my vehicles, built custom tools that allowed me to tackle more complex jobs, made a bit of money, and I am trying desperately to understand the vast possibilities that programming knowledge can open up. If nothing else, consider this thread a plea for help. I know there is something there, but I can't yet figure out what programming can do for me. So I ask, what has it done for you??

I know there is something there, but I can't yet figure out what programming can do for me. So I ask, what has it done for you??

Programming is just the method used to get an Arduino board to function in the application one wants to build. It's not clear to me if your problem is with having to learn programming to utilize a Arduino, or if you just can't envision a useful project using a Arduino?

C/C++ is just the programming tool chosen by the Arduino team to allow users to build projects.

Lefty

what would a layman do with C++
"move along, nothing to see here"

Well a computer is a tool to enhance what you do, what has it done for me in the last few years?
CNC milling, 3D printing, musical instruments that you can't buy that no one has ever seen before. Met lots of great people, had a good time and enjoyed myself, so not much then.

Can you figure out any home automation projects where you could utilize the Arduino and your metal work skills? I myself got acquainted with the Arduino out of need. I needed to build a control system for the heating equipment of my home. I was already a professional software engineer at that time, but a total newbie on what comes to electronics and microcontrollers.

Or do do have children? Build a mechanical/electronic game for them. Use the Arduino/C++ to control it.

Do not denegrate Angry Birds!
Sure, tin-bashers could do great things with fire and hammers, but did they make sextants?
Microscopes?
Could they even conceive radio?

Hey bebo, I wondered the same thing for a long time. I wondered because the darn computers were too hard to make do something real. I realize that a lot of people are fascinated with flashing lights and cute graphics, but I just couldn't see the use for programming in my everyday life.

However, I wanted to measure the power I was using at any given time. Not over an hour, not by reading the meter, but by turning on the electric oven and looking at something. You know, there's not a heck of a lot out there that can help with that. So, an arduino, a little web searching and in a few months of protracted cursing of various web sites that don't explain things well I had a device that measures instantaneous power. Then, I wanted to save that over time; then display it on the wall; then control things based on it. You can see where that went. Now, I have a dozen or so little tiny computers programmed to do various things around the house semi-autonomously that take care of mundane chores for me. Devices that add acid to the pool, turn on the bedroom lights so I don't have to at bedtime, run the cold water out of the pipes leading to the master bedroom so I don't have to wait for the low flow faucet to get the hot water there.

To see the kind of things that would be fun to turn over to a computer, think about what you do on a mundane, routine basis. Check the level of salt in the water softener? Remind you to change the furnace filter? Check the fuel level on the basement furnace? Turn on the attic fan on really hot days? Feed the bird when you're away for a few days.

In my opinion, what we don't do with computers is more telling than what we are doing. If they're so capable, why aren't they checking the charge on our car battery and telling us that we left the lights on? Why was the garage door left open all night?

These are the problems you can solve in your real life that will add value and time for other things.

Besides, I beat all the levels on Angry Birds already.

Oh, another thing. Don't let knowledge of the language slow you down. You can spend the rest of your life worrying about objects and classes and such stuff. YOU DON'T NEED THAT STUFF until you need it. Just start off with something real that you want to do. Say, shut off the compressor for your plasma cutter every night at 9PM so it won't kick on and wake the dogs. You can do that with very little code and no exotic stuff. Just do it. Then look around at what else you could do. Monitor the temperature of the tractor's block to be sure it isn't going to freeze up and break maybe? Turn on the chicken pen's lights when the coyotes get too close. Check the water level on the septic tank? Bang on the floor with a rubber mallet when the downstairs neighbors turn the stereo up too loud.

.......

From a practical answer perspective, here's what I'd recommend:

Open up the IDE (the programming interface) and bring up the example programs. Start with the classic- BLINK. All it does is make a light flash off and on, but in terms of a program, everything is there.. and just about as basic a program as you will ever find. The thing is, it's so basic that it's easy to look at and understand.

C++ tends to be a bit of cryptic language and punctuation, BASIC is sometimes easier to begin with.. but the problem with BASIC is that it teaches bad habits many times, and tends to distance you from things you will eventually want to understand. C/C++ is worth the effort of learning (and it comes pretty quick for simple programs like Arduino applications) because it allows you to go down into the guts with relative ease, or wrapper things in functions and libraries to make it easier at your choice. Arduino is actually a simplfied version of C++, as a language. C++ (Or Arduino) is just in general the best tool for the job.

As for what to do with it... how about controlling a handful of stepper motors and some threaded rod, and make a 3d automated milling machine... I'm willing to bet you as a machinist know a heck of a lot in terms of framing for robotics, and with a bit of incorporation of motor control systems, could build some rather impressive devices. Just sayin.. not many of us actually have access to or experience with a lathe or TIG welder.

It's the matter of the PITA of learning how to use a specialized purpose tool. Never easy, no matter the tool... but usually at the end, knowing how to use any tool is a good thing.....

This is an arduino project that was made to help/improve a handicap child's life.

Thank you all for taking the time to reply. I think some of you may have misread my sentiment. I am only on this forum because I am fascinated and envious of your knowledge and experience, and I want a taste too. Ultimately, it's my own lack of imagination and insight that is leaving me disillusioned, so I am asking for a little insight from this community. I've had the Arduino for about a year now, working with it here and there where I can find the time. It's terrific! I've already made several successful and practical projects with it, and some frivolous ones as well. The coding part is going slow, but every day a little more makes sense. So I made the leap and got a C++ compiler and tried to learn the language. That's where my enthusiasm waned. The tutorials were reasonably easy to follow, but I had a hard time figuring out the applications of these parts of the language. I'm still trying to figure out why pointers are so useful. Looking for examples on SourceForge and other such sites left me frustrated because I could never get any of the programs to compile.
It seems like most of the C++ applications out there in the world are done by teams of professionals, working for businesses. So in regards to the original question, I think I'll stick with the Arduino subset of C++ until I feel bound by it's limitaions.
To the posters who took the time to reply:

Retrolefty- I think my problem is how to use C++ outside of the Arduino platform.

mmcp42 - ???

Grumpy Mike - It's not about what can I do with computer, it's about what can I do with a knowledge of C++. I use CAD to design my welding projects, photo editing programs, etc. But I see your point, thank you.

Pekkaa - I've got a five month old girl, and I've got several ideas in mind for her. Just because I don't play games much doesn't mean I don't want to make fun stuff for her.

AWOL - Your right, tin bashers didn't make sextants, microscopes, or conceive radio. They didn't conceive a Bose-Eintein condensate, LSD, or the FleshLight either. What's the point? But where did the sextant makers get the metal to make the sextant? Where did the microscope makers get the metal tube? Where did the radio makers get the wire? From the tin bashers. To paraphrase Newton, we are all standing on the shoulders of giants.

draythomp - THANK YOU. This was by far the most informative reply. Your right, I don't need that stuff until much later.

focalist - I've worked through a lot of the examples, even wrote my own basic code. I'd love to make a CNC controller for my plasma cutter, but I'm not there yet.

So thanks everyone. If you ever have any questions about metal, feel free to call.

So I made the leap and got a C++ compiler and tried to learn the language. That's where my enthusiasm waned. The tutorials were reasonably easy to follow, but I had a hard time figuring out the applications of these parts of the language. I'm still trying to figure out why pointers are so useful.

I see, that is a rather dry way to learn a language because as you say it is hard to see why some things are useful. In fact 90% of people only use 50% of any language, that is not many people try to learn it all because without context it is dry.

Pointers are really useful when you need them but I haven't needed them in all my arduino projects. A lot of effort is devoted to getting teams to work together successfully, that is the only way large projects can be done, but small projects on small machines don't need the same techniques.

As to the CNC, have you seen my conversion project?
http://www.thebox.myzen.co.uk/Hardware/CNC_Conversion.html

Thanks Mike, I don't feel like such a Dumas ( thats french for dumb ass). That CNC conversion is pretty sweet, as well as the rest of the stuff on your site. I saw the Hexome somewhere else recently...elegant.

The surname of the author of The Count of Monte Cristo is French for 'thick'?
Quelle horreur.

Programming is the act of adding behaviour to an otherwise inanimate object...

and having the capability to do quite a bit with metal has helped me improve functionality in my home and life

when I still haven't answered the basic question "What the *&%$ am I going to do with it?"

I've got a five month old girl

Combine the three. For your daughter, build a metal flower that responds to her. The first most obvious project is to build a metal flower that slowly opens when she is nearby and slowly closes when she is not.

And the next most obvious project is a chastity belt with proximity sensor and iPhone app that sends me a text when the boys get too close. By the time she's old enough for boys, I'll probably have a smart phone......
and AWOL, the Dumas comment was from an american movie called Shawshank Redemption. It's quite good you should see it...

bebo, love your post, especially the part about Angry Birds! Certainly there's a lot of technology deployed these days "just because we can" and I end up shaking my head at a lot of that. At the same time I'm probably guilty too, LOL.

Maybe rather than thinking of C++, or even "Arduino", think of microcontrollers and the ability to sense the environment and act on it. What can you imagine, that along with a little decision-making capability also brought by a microcontroller, that might represent an improvement in some day-to-day situation?

I can use a current project of mine as an example. The basement flooded while we were on vacation, due to a rare combination of (a) very heavy rain and (b) an extended power outage which kept the sump pump from running.

So I have a project which will sense power failures and also if the water level gets too high in the sump. It tracks the information on a web page, so that I can monitor it from anywhere, and posts any changes on Twitter, which in turn sends a text message to my mobile.

I could have spent several thousand dollars on a permanently installed generator setup, but with this approach, if I'm not home, I can just call my brother-in-law and have him start my portable generator. Not sure he knows he's part of the system, but hey, that's what brother-in-laws are for, right?

bebo:
and AWOL, the Dumas comment was from an american movie called Shawshank Redemption. It's quite good you should see it...

Seven oscar nominations... definitely one of the best movies I've seen.

About projects, I've seen a wheel chair control made with microcontrollers that would be perfectly achievable with an Arduino.

But like someone else said here. Look for mundane things that could be done by a small computer (arduino) and get cracking.

I have these flowers from an art show a while back. I just started playing with the CapSense library, and with that and some RGB leds, this flower could be a nice little mood lamp.

flower 2.jpg

slipper entry 1.jpg