Advocacy
Dojo (HowTo)
Reference
Markets
Museum
News
Other
|
ScriptingScripting is a whole set of languages, and can be done for many different things. Scripting can also be one of the easiest types of programming. It is also a quick way to get productive doing some basic programming. (I believe that people get the most out of something when they are able to see the results of their work). Many of the concepts learned doing scripting can later be applied to other computer languages, so it is not like scripting is wasted effort (knowledge). This is a great way to start, and introduce yourself to programming and many of its concepts.
System Scripting is a good start using AppleScript, Frontier, or one of the Macro Package. Any of these will allow users to script an individual application (to automate a function), or you can even write scripts that run across multiple apps (and work with many Apps together to automate functions). Either way you can really increase productivity by automating a few things -- and learn programming concepts along the way. Plus, AppleScipt is free with the OS. Scripting can be really nifty for power users, and many offices have saved a fortune by automating things with AppleScript. There are also many Application specific scripting systems. Microsoft Office Apps have their own proprietary scripting environment, as do other Applications. This gives you the ability to automate many Application functions, and can be a real boost to productivity. If you run a small business, or work in a large one, either of these can be a great way to learn and get something of value. These are a little more proprietary -- but again, you can learn some programming concepts while getting more productivity out of your machine. MacroMedia Directors' Lingo Scripting is great for doing Multimedia like demonstrations, as is HyperCard (or SuperCard). You can make some pretty neat Applications using these environments . These environments are most tailored towards graphics and multimedia, but they can be extended to do more. Many have done adventure games, Database front ends, simple utilities and some small Applications or even serious product prototyping with these products. If you have interest in multimedia or games (though stick towards thinking games, or move oriented games, and not arcade type shoot-em-ups), then these are a perfect start. But careful not to go too far with any scripting environment -- if you try to create the next killer App with these environments, you run into their limitations, and can spend more time trying to get around those limitations than if you just chose a better tool for the job. So scripting is a great intro into programming concepts. Consider it as a way to get your feet wet. In many ways these environments are easier to learn, but in some ways they are as complex (and not as feature rich) as other development environments. After a couple of months (to a year or two) of scripting, people are often very familiar with scripting, and many get hungry to go on. Others are quite happy just automating the heck out of everything they have with scripting -- that is fine too. There are people that can become configuration guru's, and really help companies as consultants, just setting up scripts and automating things. But if you are hungry to go on, there is still a long way to go. Database ProgrammingAnother way to start programming (and familiarize yourself with the concepts) is Database programming -- if you have any interest in Databases. Databases often have their own scripting environments or languages that are pretty powerful. Whole solutions can be created in them. If you can think of things you need your database to do, there is a good chance that there is a database environment that will allow you to program it. On the low-end there are products like Claris FileMaker -- which is a really nice tool. And on the high-end there are products like ACIUS 4th Dimension. (Of course there are many other good products that I am not mentioning). From these you can really get good at making powerful solutions using their environments. Database Programming is not a requirement to becoming a programmer, and is somewhat of a specialty. But many of the concepts you learn making and managing a database program will be great experience for later on. But if it doesn't interest you, then skip it. If it does interest you, there are careers in it. Many people are happy being Database Programmers, and they can be very productive (relative to other programmers). Visual Programming and 4GLPowerBuilder, ProGraph, VisualBasic (1), and some other "Visual" programming environments all fit in this category. Many of these environments advertise themselves as "4GL" or 4th Generation Languages, as compared to other languages which are considered "3rd Generation" -- but this is a little bit a misnomer, they are just a different path to a solution, that is sometimes better, and sometimes worse. So bigger does not mean better, but certainly better for some things. Some 4GL's are very complex (and powerful), all requiring very little code creation as compared to IDE's (2).
These Visual Programming Environments can be very powerful for businesses, and there are even a few commercial Applications shipped using them. Don't count them out -- they can be a great step to get more familiarity with concepts without having to dive in fully. They often require you to write no code, or little code -- and you can often extend them with traditional code Plug-Ins. They can be very expensive though, because they are real environments that can save companies lots of money. Smalltalk Objects is a whole language, development System and environment all in one (really powerful stuff). So there are many options. Unfortunately there are so many options, and they are changing all the time, and the requirements vary so much, that I can't recommend one over the other -- it really matters what you are doing. Companies now days often have trial versions, or money back guarantees, and I recommend you go to news groups that are talking about varying products to see what users of each environment think (and are complaining about). The catch with these environments is that you learn some programming concepts -- but you can often avoid direct programming (or do very little), while achieving the same results. So in some ways, these environments are a way to avoid programming (or programming as little as possible). If the ends is to create Applications and Functionality, then you will be happy. If your ends is to really learn the in's and out's of programming, then these environments are going to shelter you a little. They are a nice way to get into the water slowly -- but they are not exactly full immersion (depending on the environment). IDE'sIDE means Integrated Development Environment -- and they are the tool that most commercial Application developers write programs. Most commercial developers snub the easier to use tools (Visual and 4GL tools), but this is more out of arrogance than anything else -- I say use the easiest tool possible (for the job at hand), don't try to show off just because you can. Well, back to the point -- if you are becoming a professional programmer, it is usually required experience to know an IDE. Furthermore, language choice will also be important (and influences the IDE). C / C++ / Pascal / Assembler CodeWarrior is a great IDE (on Mac or Windows) that allows you to work in many languages (Pascal, C, C++, Java, and even dabble in Assembler). If you want to do anything other than Java development, then this is the choice. For Java development, it is okay, and a good way to learn some basics -- but there are better environments. If you want to learn C++, the trick is not just learning the language, but often a Framework as well. PowerPlant and MacApp are both great Frameworks that work under CodeWarrior. Both can be a little daunting, and have quite a frustration factor before you get over the hump. Just find as many tutorials and tear apart as much sample code as you can -- after a while a light goes on and you "get it". There are lighter Frameworks out there for just doing the basics. If you go for MacApp, you have a heavier framework and can hide yourself from the Mac toolbox a bit more. If you go for PowerPlant then you are going to have to learn the toolbox and more Mac'isms along the way. If you have a PC, then VisualC++ is not that bad. I prefer CodeWarrior (which is also available on PC's), but VC++ is usable. Unfortunately on the PC, the Framework you must use is MFC -- which is a kind of stinky Framework. It works, but it is quirky (the messaging scheme is ugly).
Java Go Java! It takes years to get really good at programming.
For all those reasons, I tell new programmers to learn Java (instead of C or C++). Which Java environment to buy? Some books will come with a Java environment. So if you find an interesting book, and it comes with an IDE, then go for it. It is a nice inexpensive way to get going. In a year the entire playing field will be different, so don't bet too hard on one solution. CodeWarrior is great for an IDE, but there are more people designing "visual" like tools for Java. Symantec's Visual Cafe is not bad (and in many ways is superior to CodeWarrior) -- but some of the results may be a bit more "proprietary" (they will run on any platform, but may take work to port to another IDE). The product I am really impressed with is IBM's Visual Age for Java. VA-Java, is a very rich Smalltalk like dynamic environment (for those that know what that is like) that uses Java, and allows you to do a lot of "visual" programming. The bad news is that it doesn't run on a Mac (nor is it likely to in the future). It is also a pig-dog (big, and slow).
ConclusionStart hitting the books, and learning.There is no substitute for doing. Tutorial books are great for beginners (they take you through all the steps of writing a program, and why you do things the way you do). Then give yourself very simple projects for yourself at the start -- and just start doing. Start sniffing out the developer sites that have lots of source code, samples and snippets (small pieces of code), and start looking at how things are done -- and use the time honored tradition of borrowing code to add functionality to your programs (but figure out why things are being done the way they are). When you run into road blocks, hit the news groups on programming in that language / environment and ask questions -- programmers are usually pretty helpful (they all want to show how much they know). But have fun. Pick tasks that you want to do, and a language that interest you. You can jump straight to C++ and a Framework, it just a little harder that taking the other steps first. Programming is enjoyable, and can be very rewarding -- so stop thinking about it, and waiting -- get out there and start doing. .
|