Request Callback

   
   
PROGRAMMING IN GENERAL

WHAT IS PROGRAMMING?
In the broadest sense, all the technical and non-technical activities involved in the production of a program is called programming. By non-technical activities, I mean those activities that are talent oriented. In its narrowest sense, however, coding a program is called programming.

WHAT  IS A PROGRAM?
A series of statements put all together to ask the computer to have a specific behavior is called a program. It might be as long as millions of lines or as short as a single line.

WHO IS A PROGRAMMER?
Programmers are people just like the rest of the human beings; the only difference (being so modest) is that they have got the ability and disposition to program. There's no limitation in their genders, ages, and colors. They could be a man or a woman, as young as 14 years old, or as old as 78, black or white. There's no difference. They all have got the same goal: programming.

After the microprogramming that the programmer's building blocks are ones and zeros in this language, the assembly language is the actual programming tool that programmers were faced with.

As you see, the first programming layer, Microprogramming, is located in the hardware level. This is the layer that talks directly to the physical devices. For example, this layer handles where to store the result of the two numbers to be added, and thereafter provides the upper layer with a cleaner interface, such as ADD.

A series of instructions that the micro-program interprets is called the machine language. At the top of this layer, the operating system is located which its job is to provide the upper layer with a classified set of tools so that the hardware layer is transparent to him. On top of the operating system, compilers, editors and command interpreters are located, which in turn provide the upper layer with another set of abstract tools.

From the technical point of view, a programmer who does microprogramming is called a micro-programmer. Then it comes to the system programmer that his job in turn is to develop system programs. Thereafter, we come to the application programmers who program the applications, such as MS-Office, Internet Explorer, and the like. Suffice to say that most of the world's existing programmers fall in this group.

It is amazing, though, to know that each of the programmers mentioned in those three categories feel that they are real programmers in comparison with the other programmers at top layers; i.e., a system programmer believes that the main job is done in his layer by himself and application programmers are just some fun junkies trying to use his set of tools to develop some fancy applications.

The same thing runs within the application programmers' world. Since the programmers use different tools (actually languages) to develop a program, there has been always a contact between the users of low-level languages and the high-level ones.

The truth is that the programmers of each of those above-mentioned layers need to interact with the computer in a suitable language of their own choice. For example, to develop a lightweight applet to be placed on top of a web page, a programmer chooses Java as his programming tool because Java is developed for such purposes. He could use C++ to do the same thing but he certainly has to go deeper to the subject. It goes without saying that a C++ programmer cannot solve this problem as fast as a Java programmer, because of the available tools in his programming language.

This, however, doesn't mean that C++ programming is trivial. The actual answer lies behind this fact that all the companies are in need of performing their projects in the shortest possible time. That is why we are faced with Rapid Application Development or RAD these days. In most cases, project managers expect their team members to develop this or that in the possible minimum time, although they verify if a specific tool is suitable for such developments.

MODERN TOOLS
This, in turn, brought a new edge of programmers to life: Visual Basic programmers. In spite of its glamour abilities to do things as fast as possible, I actually don't understand the usefulness of a programming language suffering from the lack of pointers. As girls are the sweet candies of this world, pointers are the candy tools in the hands of a programmer. Now, what if they are not available in a language? How can you hang on with such programming languages?

Philip Kahn, the Borland companies cofounder, says that the BASIC language belongs to the 1960's, no matter which variety of this language is on the market today. Back to those days of DOS programming, there was no wizard to hide the details from the programmer, and programmers had to know how to program their logic in their favorite programming language. If they didn't, they could never develop a software. But today, everything is changed. You run the compiler, point your mouse cursor to the File menu, and you select a new project item. Within less than some seconds, everything is setup for you! Just compile and let it go! Is it actually called programming? You judge!

There are many modern programmers who even don't know how to interact with the operating system they are programming for. When they do not have any idea about the actual environment they are programming for, how can they develop an error-free full functioning program under that environment?

The truth is that everything has been done in the lower layers and the result is dedicated due to the optimal series of functions to the programmers. These functions are called Application Programming Interfaces, or APIs. Since much of the complexity is hidden from the users of APIs, they cannot ruin the application, unless in some certain circumstances.

In spite of this encapsulation, however, we are still faced with programs that ruin the operating system due to their weak functioning. How many times have you restarted your Windows without knowing the actual reason for its malfunctioning? Huh?

Due to the great improvements in hardware technology, Giga Hertz speeds are handy today. The modern programmers in turn do not think about the speed of their logics they are going to program. Imagine the Karl Gauss' scenario: less than a minute against more than 47 minutes!

That's why you run Windows Media Player 7.0 under a Pentium 133Mhz, and you have to wait for more than 30 seconds or so until the hard disk activity finishes and the program settles on the screen.

I recall those days that we could see a video CD on Windows 3.1 under our 66MHz CPU with a Xing player or the like. Now the CPU speed, in this example, is increased by means of 67MHz, but the player speed is decreased by means of 50%. Why is that then?

REAL PROGRAMMERS
There are a variety of thoughts judging a real programmer: some believe that "Real programmers don't use Pascal", and others say, "Real programmers hate COBOL". To put these malicious opinions aside, a real programmer is the one who cares about his software at three stages: design, development, and maintenance.

By design, I mean he tries to get peoples' opinions and their logics at design time. Some people don't understand programming but they have got great abilities to solve different problems on the paper. A real programmer advantages such opinions and welcomes any criticism.

By development, I mean he tries to keep his eyes open on what he is developing. He never says that his program will run under Pentium III, so it doesn't matter if he loads and unloads some DLLs back and forth during the lifetime of his program. He, instead, tries to avoid such things when possible.

By maintenance, I mean he accepts that he is a human being and he might do things wrong. So, he welcomes his clients' criticism, and tries to solve any bug in his software gracefully.

Most of the programmers around the world are philosophers! They usually try to impose their thoughts to others and they enjoy talking about their abilities and dispositions. Some of them even do not have a joy in their life, and all they have got is their computers and their books. Go and read articles about programmers by yourself; about those who reside at Silicon Valley. It is a sad story, but that is the truth.

Look before you leap! If you plan to start programming and be classified as a programmer, keep in mind that everything is possible when quality is no object. Being a good programmer is totally hard. You have to learn new technologies day by day, mostly by yourself, and you have to keep yourself up to date after being a professional in one or more categories about programming.

The very important thing you should never forget is the day you are going to start! Most of the professional computer programmers are usually self-taught and has been at the same position you are today. But after some years, they start believing in themselves! They will become proud of this or that and their abilities and they think they are really something! So they start to stop questioning which in turn results of being obsolete after some years.

LIST OR PROGRAMMING LANGUAGES
2.PAK , 20-GATE , 473L Query , 51forth , A+ , A++ , A-0 , ABAP , ABC , ABC_ALGOL , ABLE , ABSET , ABSYS , ACC programming language , Accent , Acceptance, Test Or Launch Language , Action! , ACS , ActionScript , Ada , Aleph , ALGO , ALGOL , AmigaE , AMPL , APL , AppleScript , There are many array programming languages. , ARS++ , ASP , ASN.1 , AspectJ , Assembly , Atlas Autocode , Aubit-4GL , AutoIt (http://hiddensoft.com) , AutoLISP , AWK (awk, gawk, mawk, nawk) , Languages needing attention; , Actor , Alan , Alphard , AREXX , Autocoder , BASIC - see also List of BASIC dialects (by platform) , bc , BCPL , BETA , Bigwig , Bistro , BLISS , Blue - rejected prototype for Ada , Blue , boo , Bourne shell (sh) , Bourne-Again shell (bash) , Business Process Execution Language (BPEL) , BUGSYS , BuildProfessional , C-- , C++ , C# , Caché ObjectScript (see also Caché Basic) , Caml , CeeBot , CSS , Cecil , Cg , CHAIN , Charity , CHILL , ChucK , Cilk , Clarion , Clipper , CLIPS , CLOS , CLU , CMS-2 , ColdFusion , COBOL , CobolScript , COMAL , Component Pascal , Concurrent Clean , CORAL66 , Common Intermediate Language (CIL) , Common Lisp , COWSEL , CPL , C shell (csh) , Cue , Curl , Cyclone , DASL , Databus , Dataflex , dBASE , dc , Delphi , Dialog Manager , DIBOL , Dylan , Edinburgh IMP , Eiffel , ElastiC , Elan , Emacs Lisp , Elf , Enterprise Generation Language (EGL) , Erlang , Escapade (server-side programming) , Esterel , Euphoria , Euclid , Euler , EXEC , EXEC2 , F# , Factor , FALSE , Felix , Ferite , FL , FLOW-MATIC , FOCAL , Focus , FOIL , Forth , Fortran , FP , Frink , Frontier , G-java , GAMS , GML , Gclisp , Gema , GEMBASE , GENIE , GJ , Godiva , Gödel , GPSS , Green - prototype for Ada , Groovy , HAL/S (real-time aerospace programming language) , HAScript , Haskell , Heron , HLA - "High Level Assembler" , High Level Assembly , Hugo , HyperTalk , ICI programming language , Icon , IDL programming language , IMP , Informix-4GL , Inform , Information Processing Language (IPL) , Intercal , Io , JADE , Java , JavaScript , JCL , JOSS , Joule , JOVIAL , Joy , Jython , , Kid , Kielix , Kiev , Kogut , KRYPTON , LabVIEW , Lagoona , LaTeX , Lava , Leda , Leopard , Lexico , Limbo , LINC , Lingo , Lisp , Logo , LPC , LSE , Lua , Lucid , Lustre , LYaPAS , M4 , MAD , MADCAP , Mary , MATLAB , Mathematica , METAL , Miranda , Miva , Mercury , Mesa , Microcode , Mindscript , ML , Moby , MODCAP , Modula , Modula-2 , Modula-3 , Moto , Mouse , MSIL (deprecated name for Common Intermediate Language) , MUMPS , Natural , Nemerle , NESL , NGL , Nial , Nil , Nice , Nosica , o:XML , Oberon , Objective-C , Objective Caml , Object Pascal , Obliq , Occam , OPS5 , Organiser Programming Language (OPL) - cf. Psion Organiser , Oz , Pascal , Free Pascal , Object Pascal (Delphi) , Turbo Pascal , PEARL , Perl , PHP , Pico , Pike , PILOT , Pizza , PL-11 , PL/SQL , PL/B , PL/C , Plankalkül , PL/I , PL/0 , PL/M , Pliant , Poplog , POP-11 , PORTRAN , PostScript , Povray , Powerbuilder , Processing , Progress 4GL , Prothon , Prolog , Turbo Prolog , Proteus , Python , QuakeC , Rascal , Ratfor , Ratfiv , REBOL , Red - rejected prototype for Ada , REFAL , Report Program Generator (RPG) , Revolution , REXX , Rigal , Rlab , Robot Scripting Language (RSL) , RPG , Ruby , S2 , S-Lang , SAIL , SAKO , SAS , Sather , Scala , Scriptol , Scheme , Sed , Self (or "SELF") , SETL , SIGNAL , SIMSCRIPT , Simula , SISAL , SMALL Machine Algol Like Langanuge , Small , Smalltalk , SML , Snobol , Snowball , SPARK , SPITBOL , SP/k , SQL , Squeak , SR , SSL , SuperCollider , TACL , TACPOL , TADS , Transaction Application Language , Tcl , teco , TELCOMP , Tempo , Today , Tom , tpu , Trac , Turing , Tutorial D , TXL , Ultra 32 , Unicon , UnrealScript , Verilog is a hardware description language , VHDL is a hardware description language , Visual DataFlex , Visual DialogScript , Visual FoxPro , Visual Objects , Water , XOTcl , XPL , xHarbour , XUL , XBL , xbScript (xBaseScript , XSLT and XPath , YAFL , Yellow - rejected prototype for Ada , Yorick , Z is a program specification language, like UML. , ZPL , ZZT-oop , ZOPL , ZUG

 
HOME | GET STARTED | WEB SAMPLES | MARKETING | PROGRAMMING | STORE | CONSULTING | TEAM | RATES | SOFTWARE | HOSTING
INVOICE SYSTEM
 | DISCLAIMER | PAY ONLINE | INSTANT BUSINESS CREDIT | SITE MAP STATS | LINKS | LOGIN |
CONTACT
 1 2 3 4
 

YOUR IP: 38.103.63.18 · TODAY:

CYBERMIGHT  LLC  ·  © 2008  ·  ALL RIGHTS RESERVED