One of the least discussed topics in hobby level robotics is
software. You can almost always find a hardware description,
schematic, drawing, and tons of help on the electro-mechanical
side of your project. However, the software, which admittedly is
one of the hard parts, eludes many people. In this article, I
would like to demonstrate how to structure your software so your
robot will function properly.
I would also like to point out a great technique for getting
started. Many software engineers make heavy use of something
called 'Pseudo Code'. This is a technique where you write your
program in half programming language and half human language
(English, Spanish, Driud, etc). Pseudo code is very useful for
getting the layout of your program ready, to get basic algorithms
worked out, and to be able to read your 'code' quickly. I will
demonstrate this technique a little later.
As for programming languages, it doesn't matter which language
you choose to use. I personally use the 'C' programming language
the most. BASIC, Assembler, or FORTH are all fine choices. It
turns out that the language is a small part of the structure of
your program. The software has a job to do, and the key is to get
it done! I am going to write this article in SBASIC, but the
techniques are the same no matter which language you choose.
SBASIC is available from Karl Lunts website at http://www.seanet.com/~karllunt/tips.htm.GRAPHICS
Basic Graphic Design Principles Part 1 Lines and Shapes
by Kelly Paal
This is part one of a two part article.....click here to read part 2.
As a graphic designer, you need to know the principles of graphic
design in order to design at your best. Knowing what the design
principles are will help you implement the best layouts and help you
become aware of what you have done wrong in your past designs. This
article details information regarding graphic design as it pertains to
lines and shapes. PC JOBS
Types of Computing Jobs
- Data Entry - This is a job just about anyone can get.
Basically, you take information from a piece of paper and use it to fill
out a form on the computer. Many old hands who started out in this role
are now heading up computer departments.
- Secretarial/Administrative - This position involves some
basic office skills. Not only must you understand the basics of using
your computer and a few applications, but you'll probably also be
expected to take dictation, answer phones, type letters, and keep things
organized. In terms of computer skills, you should know how to use word
processing, accounting, and spreadsheet programs at the very least.
People in this role often move into other computing roles such as
Managers, Meeting Organizers and Human Resources. Naturally you can move
into mainstream computing areas, particularly QA and Testing.
- Power User - Not so much a position as a status of being an
extremely proficient user of (typically) Microsoft Office or similar
tools. Advanced users of these tools become familiar with the basics of
computer programming through starting with Excel macros or Access
database programming. One can become very valuable to a small business
by learning such skills, and even start to consult with other small
businesses at rates typically starting around $50 an hour.
- Customer Service/Telesales - These positions usually place a
higher emphasis on phone skills than computer skills, but you should
know at least the basics of how to use your computer.
- Technical Support (Production Support) - Most companies
consider technical support to be an entry-level computer job. You are
expected to know the operating systems on which the product you'll
support will run, and you'll also need to know the basics of any
programs that product might interact with. The good news is that the
company will teach you what you need to know about their products - you
just need to learn everything else. Success in technical support
requires good problem-solving skills and a great deal of attention to
detail. Technical Support and Problem Management is a rapidly growing
area. Users now rely heavily on Help Lines, International Support
Centers and the like.
- Software Quality Assurance (SQA) Engineer - You need to know
as much as the best technical support personnel. You need to be a
problem solver, a detective, and sometimes even a Customer Service
representative. You'll also need some basic programming skills, since
more and more companies are beginning to rely on automated testing. The
best SQA engineers understand a little (or a lot) about every aspect of
computers, from building them to using them to programming them.
- Software Engineer (Developer or Programmer) - To get a job at
a top software shop such as Microsoft or Google, you'll need a degree
in computer science and detailed understanding of the field. However
getting a developer position in some small company may be easier. What
do you need to know is the language in which you'll be programming. It
is also important to know database fundamentals and (if programming for
Windows) the Windows API. Knowing more than one programming language is
very helpful. Understanding many of the basic fundamentals of computer
science (e.g. linked lists, arrays, pointers, object oriented
programming) will be essential in demonstrating your proficiency.
- Business Analyst (Analyst or Systems Analyst or Analyst/Programmer or User Analyst)
- This is a relatively new title, but the role is as "old as the
hills". People can become a BA with any mix of business and computing
skills. It is really a matter of looking at what the company is really
after. A good BA should know the process from end to end. The BA is
primarily the connection between the business and the developers. To get
into this job, and into computing, good knowledge of a business is
helpful. So, if you gain good knowledge through your job, and maybe do a
computer course, you can get your foot in the door.