PDA

View Full Version : Question How do I even get started in programing, and circuit design?


Accu157
Aug 07, 2006, 09:59 PM
:eek:

I know a tiny bit of Java, that's it. That's from some college experience. I took a physics class, the circuit analysis was way over my head, and I didn't have a clue how to start, what to do, how to apply my knowledge, etc. I still don't understand how to use Gauss' law. Needless to say, I didn't do very well in that class. So...

As an ameteur, where do I even start? I didn't even have a clue as to what was a good resourse for learning Java untill I took the class. I cannot move on to the next level as I was terribly sick on my finals and bombed the test. The grades are curved too... :mad:

You guys speak alien to most people, where do I start for DIY DIY eduction on this insanely complicated stuff? I don't know BASIC, I don't know this, that, nothing. :) Many people out there may like to do this cool stuff, but how?! Is learning circuit analysis and programing a secret untill you shell out the big $$$$$? It sure seems like it, and searches on the matter assume you know what you're doing.

Unterhausen
Aug 07, 2006, 10:03 PM
the way I learned how to program was to modify other people's code. There are plenty of places where you can pick up development systems for peanuts, and people have developed code that blinks leds or something simple. Get the code to run with the example and then change it a little. These two steps should give you some confidence.

Andrew McGregor
Aug 07, 2006, 10:23 PM
That's the right answer for programming. Circuit design is harder... get a good textbook. Horowitz and Hill "The art of electronics" (approx. title, my copy isn't here) is the standard university text in most places, and is reasonably easy to understand... but it's a big book, and assumes good math. If you don't have the math, you're pretty much out of luck.

Mr DIY
Aug 08, 2006, 06:01 AM
Firstly, what is it you want to learn?

Programming can be split up into Imbedded software for Pics, Atmel CPUs ect and then there is creating applications for a PC.

If you want to learn imbedded programming, the simplest way to do it, is to purchase a cheap starter kit. This would probably be an Atmel or PIC based kit. Personally, I would recommend the Atmel route as you have access to a very powerful free C compiler, which is unrestricted to code size. This would be WinAVR. Then you have a web page like AVR Freaks that has all the literature needed for beginners. Of course, you will get thePIC guys that would jump in and tell you to go the Pic route. Does not matter which way you go, but I suspect AVR Freaks is going to be far more useful. You have forum support to ask all your questions

As for learning C, get a decent book that focuses on standard C. For now, stay away from the C++ literature. It would only confuse you. This book will remain your most valuable source of information when you get stuck. I found an old book called called Workout C – learn C through Exercises by David Himmel that has proved to be most valuable …more so that my ‘Teach your self C++ Builder in 21 days’

As for circuit design, well that is a different story. It’s about playing with electronics and learning through experience… and can take many years. Luckily for you, there are literally millions of websites that has useful information with lots of learning project.

The easy way to start is to go out and purchase some cheap fun electronics kits and put them together. This is how most of us started out.

Brian


Brian

Andrew McGregor
Aug 08, 2006, 06:26 AM
The classic book on C is Kernighan and Ritchie "The C Programming Language", which every C programmer should read, and which actually makes a reasonable introduction to the language, although it's probably the second C book you need.

vintage1
Aug 08, 2006, 07:24 AM
The classic book on C is Kernighan and Ritchie "The C Programming Language", which every C programmer should read, and which actually makes a reasonable introduction to the language, although it's probably the second C book you need.

You have to be kidding. K & R is the definitifive definition of the language, but reading a dictionary is a poor way to learn a language.

Ther are many books on basic C that go through it in a much more user friendly manner: The trouble is finding one that is written by someone who knows what you do and don't now, and doesn't belabour the obvious, or skip the all to important point.

Youmight know all about subroutines and what a function is, and not need a chapter describing that, but be completely ignorant as to a bitwise operator or why it might be useful.

I remember being extremely pusszled as to how main() ever got invoked...took me a fair few questions to realise that every run program came with a wrapper that was added by some mysterious unnnamed pricess in the linker.

Malc C
Aug 08, 2006, 08:40 AM
In terms of the electronics start are the beginning with simple battery, bulb and switch circuits, then move on to more complicated projects. Magazines such as Everyday Practical Electronics is an excellent way to learn and have fun too in building projects, some of which can be usefull

Andrew McGregor
Aug 08, 2006, 08:56 PM
Hmm... I guess it depends on learning style. I learned C from K&R, the Solaris manual pages, usenet, and the source to Lucid Emacs, as it was in the day (1990). Worked for me, and wasn't terribly hard, but I can see someone else giving up at the amount of reading.

Mr.RC-CAM
Aug 08, 2006, 09:50 PM
I learned C from the K&R bible too. I took an in-house class during my stint at GE (back during the dawn of man). I still have the book and I used it just the other day. So it is not just a pretty face on the bookshelf. I urge every beginning C code writer to read through it. But I agree, it is not an exciting read. But it is to the point, just like the C language.

Of course C is not the only embedded language. There is nothing wrong with starting out with assembly language too (not a bad idea at all). There are other embedded compilers, all of which serve their purpose.

As far as learning hardware design, it is as someone mentioned; It takes years of experience to get really good at it. Many newly graduated EE's think they have it all under their belt, but they eventually grow to realize how much they don't know.

However, for a hobbyist, much can be accomplished by just doing it. So find a electronic experimenters kit, like Radio Shack use to sell, and wire up some SCR, transistor, and simple IC circuits. The projects are like baking a cake, but the recipe includes a simplified technical description on why the cake becomes fluffy and rises. :)

Unterhausen
Aug 08, 2006, 10:02 PM
I learned electronics by building a batch of guitar effects from plans in a book. Anything you can do to take the fear of starting away is good. Many people get stuck at the level of the first thing they learned and never move on. They are still doing infinitely better than the person that is still studying the problem.

westfw
Aug 09, 2006, 02:55 AM
Indeed, don't overlook hobbyist publications as a source of electronics education. (And
for software too, but not as much.) And internet sites, too. Right now, the big educational
hobby seems to be robotics, and there are a LOT of books on robotics that will teach you some
of the basics of circuit and/or software design. I can recomend:

JunkBots, Bugbots, and Bots on Wheels, by David Hrynkiw
Simple "BEAM" robots. Basic electronics, some mechanical stuff. Recognizing and
scrounging components. No software here.
123 Robotics Experiments for the Evil Genius, by Myke Predko
more basics electronics, software projects using basic stamp.
Nuts and Volts (magazine.)

Beware, IMO, general purpose "how to program" books. They'll teach you the
basics of writing a generic boring application on a desktop PC, which is pretty far
removed from what you want to know if you're interested in writing your own CDROM
motor speed controller...

Malc C
Aug 09, 2006, 05:26 AM
Of course the other way to learn is to take a project and then post questions on this and other forums :)

Seriously, I've had loads of support and learnt a hell of a lot from the more experienced guys here. I also found that quite often someone will help out by working with you to de-bug and discuss what the code or circuit should be doing so you get a better understanding of both the theory and the practical side.

With this personal advice its like having Deilia Smith with you to take your basic sponge cake to the higher level so you'll soon end up doing that 5 tier wedding cake with fancy icing :) :)

vintage1
Aug 09, 2006, 06:45 AM
Well yes. There is no way to find out better than stumblbng towards a goal and more or less achieving it.

My point about K & R is that what assists you in stumbling depends a lot on where you started from.

slipstick
Aug 09, 2006, 09:08 AM
I'd say the only way to it practically it to find one or two projects that are interesting and then ask again with a bit more focus.

There's no real chance of learning everything possible about all the many different styles of programming and programming languages and also all the possibilities inherent in the whole of the last 50 or 60 years of analog and digital electronics (transistors to microcontrollers).

Decide on a couple of projects you'd really like to build and then ask about those. There's actually a huge amout of pretty good of basic electronics/circuit design available on the Web and also a fair amount of programming stuff but most people learn better when they're doing it for some specific purpose.

Steve

Accu157
Aug 09, 2006, 09:54 PM
How many electronics/programming conventions are there around the US? I'd like to see if I can pick up a used book or two on the things you guys mentioned. :) Good excuse for a trip to a swap meet. :D

I'm thinking about learning embedded stuff. If I do continue to learn Java (I still have access to next year's online books, all of you do too), it'd be R/C related and open to you guys. :) I dunno, airfoil plotter, CG finder, we'll see. But, yes, I want to learn the code necessary for making something ESC related. I'll leave the hardware up to someone else for the moment! :p

Mr DIY
Aug 10, 2006, 01:30 AM
I want to learn the code necessary for making something ESC related.

As long as it is for a brushed motor, it can be a good achievable project. Have fun!

Brian