Posted on 01/13/2012 1:08:17 AM PST by Sonny M
If youre looking for a New Years resolution, let me suggest an idea that you might not have considered: You should learn computer programming. Specifically, you should sign up for Code Year, a new project that aims to teach neophytes the basics of programming over the course of 2012. Code Year was put together by Codecademy,* a startup that designs clever, interactive online tutorials. Codecademys founders, Zach Sims and Ryan Bubinski, argue that everyone should know how to programthat learning to code is becoming as important as knowing how to read and write. I concur. So if you dont know how to program, why not get started this week? Come on, itll be fun!
Code Years minimum commitment is one new lesson every week. The company says that it will take a person of average technical skill about five hours to complete a lesson, so youre looking at about an hour of training every weekday. Thats not so bad, considering that the lessons are free, and the reward could be huge: If youre looking to make yourself more employable (or more immune from getting sacked), if youd like to become more creative at work and in the rest of your life, and if you cant resist a good intellectual challenge, there are few endeavors that will pay off as handsomely as learning to code.
(Excerpt) Read more at slate.com ...
That is so true.
And try explaining IMS to someone whose life is pure RDB and they'll be lost in seconds.
But if you are a core datawarehousing guy, jobs are also available -- I got my job here in Poland even while I was learning the language (Polish this time ;-P) -- but I think the Cobol and MVS/JCL experience mixed with unix knowledge helped in the interview!
C is the backbone of two other top languages today C++ and Java. Assembly is the language of the computer.
This will put us freepers way ahead on the technical curve.
Sounds like a fun hobby. I’d follow along, if for no other reason than to brush up on C and assembly programming.
But if I may ask:
1 - Can you be more specific about what these little devices can be used for, especially around the home for a hobbyist. I have no idea what value these would have, however miniscule.
2 - Are these free compilers/IDEs only Windows based, or are there good equivalents in the Linux world?
3 - Do these involve soldering and circuit board work?
Look here for some project ideas
http://hackaday.com/category/attiny-hacks/
It’s like asking what can you do with a computer?
The answer is, a zillion different things.
People manage to use Linux to program these chips.. I use
an old XP box on the bench to do it.. I use Linux to surf the web since it’s far safer than Win. I’m sure a google search would enlighten about using Linux with the Atmel processors. Also, try this link http://www.ladyada.net/learn/avr/
You can build a lot of projects on a solderless breadboard but I recommend learning some soldering skills. I have seen quite a few tiny85 projects done as point to point soldered projects without even a circuit board.
public class Joke { public static void main(String[] args) { Guy guy = new Guy(); Robot robot = new Robot(); for (int i = 0; i < 3; i++) { guy.enterBar(); robot.ask(guy, "What will you have"); guy.order(robot,"Martini"); Drink drink = robot.make("Martini"); robot.giveDrink(drink,guy); int iq = i == 0 ? 150 : i == 1 ? 100 : 50; conversation(robot, iq); guy.leaveBar(); } } private static void conversation(Robot robot, Integer iq) { if (iq <= 50) robot.talk(new String[] { "Are you still happy you voted for Obama" }); else if (iq < 150) robot.talk(new String[] { "NASCAR", "Budweiser","John Deere tractors" }); else robot.talk(new String[] { "physics", "space exploration","medical technology" }); } }
You will learn assembly and how a modern microprocessor works in detail and how to program in C. If you have a PC and an internet connection you can get the very best of programmers (the Dragon) for a mere $50.
This is a sweet deal folks. If you are interested in this sort of thing this is the way to go.
Why not just take a shortcut and proceed directly to arguing about which programming language or editor is superior?
Well, allow me to explain:
Class-based object-oriented languages, such as Java and C++, are founded on the concept of two distinct entities: classes and instances.
A class defines all of the properties (considering methods and fields in Java, or members in C++, to be properties) that characterize a certain set of objects. A class is an abstract thing, rather than any particular member of the set of objects it describes. For example, the Employee class could represent the set of all employees. An instance, on the other hand, is the instantiation of a class; that is, one of its members. For example, Victoria could be an instance of the Employee class, representing a particular individual as an employee. An instance has exactly the properties of its parent class (no more, no less).
A prototype-based language, such as JavaScript, does not make this distinction: it simply has objects. A prototype-based language has the notion of a prototypical object, an object used as a template from which to get the initial properties for a new object. Any object can specify its own properties, either when you create it or at run time. In addition, any object can be associated as the prototype for another object, allowing the second object to share the first object's properties.
In class-based languages, you define a class in a separate class definition. In that definition you can specify special methods, called constructors, to create instances of the class. A constructor method can specify initial values for the instance's properties and perform other processing appropriate at creation time. You use the new operator in association with the constructor method to create class instances. JavaScript follows a similar model, but does not have a class definition separate from the constructor. Instead, you define a constructor function to create objects with a particular initial set of properties and values. Any JavaScript function can be used as a constructor. You use the new operator with a constructor function to create a new object. Subclasses and inheritance In a class-based language, you create a hierarchy of classes through the class definitions. In a class definition, you can specify that the new class is a subclass of an already existing class. The subclass inherits all the properties of the superclass and additionally can add new properties or modify the inherited ones. For example, assume the Employee class includes only the name and dept properties, and Manager is a subclass of Employee that adds the reports property. In this case, an instance of the Manager class would have all three properties: name, dept, and reports.
JavaScript implements inheritance by allowing you to associate a prototypical object with any constructor function. So, you can create exactly the Employee Manager example, but you use slightly different terminology. First you define the Employee constructor function, specifying the name and dept properties. Next, you define the Manager constructor function, specifying the reports property. Finally, you assign a new Employee object as the prototype for the Manager constructor function. Then, when you create a new Manager, it inherits the name and dept properties from the Employee object.
In class-based languages, you typically create a class at compile time and then you instantiate instances of the class either at compile time or at run time. You cannot change the number or the type of properties of a class after you define the class. In JavaScript, however, at run time you can add or remove properties of any object. If you add a property to an object that is used as the prototype for a set of objects, the objects for which it is the prototype also get the new property.
I have a couple of Dragons here..they are nice.
You can find AVR programmers on ebay from China for as little as 3.99 with shipping included. I have not tried using them but I suppose I could get one and see if it would be suitable for use by novices following a tutorial.
AVRStudio 4 was pretty slick but I was forced to move to AVRStudio 5 to use the 4313. It's based on .net so it is slow and clunkey and initially rather buggy. But it got better.
I've done some development under Linux using Eclipse and AVRDude but the Windows/AVRStudio path is probably easier, and if you are using a Dragon for debugging Windows is much easier. Love me some penguin though. Do nothing on Windows but AVR anymore.
Can you elaborate:
“If you have a PC and an internet connection you can get the very best of programmers (the Dragon) for a mere $50.”
nah, age is definitely not important, but experience is - the number of hours you spend hammering out a piece of field, trying to solve a particular problem using the language you’re using etc.
If you want a single chip microprocessor that costs about a buck and is easy to program AVR is the answer.
It was a real mistake not to make studio5 a cross platform IDE.
Atmel needs to support Win/Lin/Mac
I still mostly use studio4.
I do java programming, but have taken a few C classes but haven’t kept up with it.
I’ve always wanted to do a few ‘close to the metal’ projects and have looked at Arduino boards as a way to start. I’d follow your blog if you put it together.
I don’t really have any professional need for it, but it would be fun and different.
Arduino is cool but I’d rather play with the bare chips myself.
Cheaper projects and you end up knowing a lot more IMO.
But the AVRStudioX debugging with the Dragon is an incredibly sweet deal. Long ago and far away I designed a hardware emulator for the Z-80 and Z-8000 at a cost of roughly a zillion dollars. That didn't have anything on what is available today for free. Yea progress!
Arduino looks like fun. I haven’t touched though. AVR is sooo easy that I think the direct to proto-board, build just exactly what you want is the way to go. I love the idea of open source hardware though.
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.