are functions core concepts in - index-of.co.ukindex-of.co.uk › programming › how to design a...
TRANSCRIPT
AreFunctionsCoreConceptsinComputerProgramming?Author:MMubashar
Computerprogrammingisaphrasethatisbandiedaboutquiteheavily,butonlyfewpeopleactuallyunderstanditsimplications.Theprocessofcomputerprogrammingitselfisdifficulttounderstandforpeoplewhoarenotinthecomputersciencefield.Computerprogrammingmakesuseofacodeoralanguage:thislanguagecanbeplacedintoseverallinesofcodethatcanbetranslatedtomeandifferentthingsoncetheyareprocessedasaprogram.Forinstance,thesoftwarethatyouusetocalculateyourtaxes,orthesoftwarethatyouemploytomakeyoursimplewebpageareallproductsofskilfulcomputerprogramming.Behindthesesoftwareprogramsarescriptsandcodes,andthesescriptsandcodescanmeandifferentthings.
Formanydifferentprogramminglanguages,afunctioncanbeimportantandcanthereforebeakeyconcepttolearnwhensomeoneisinterestedinsoftwareandcomputerprogramming.Afunctioncanalsobetermedasasubroutine,procedure,orsub-query.Howisafunctionimportant?Forinstance,ifacompanyorinstitutionhasalibraryofmanydifferentprograms,theseprogramscanthereforeconsistofmillionsuponmillionsoflinesofasourcecode.Intheinterestsoftimeandspace,youwouldliketokeepfromduplicatingacertainsourcecodeinmanydifferentplaces.
Whyisduplicationsoundesirable?Ifasourcecodeisduplicatedinmanydifferentplaces,itisbeingneedlesslycopied,anditcanspellHellfortheprogrammerandtroubleshooterwhenthingsgowrongdowntheline.Ifthesourcecodeisactuallyerroneous,theprogrammerortroubleshooterwillhavetocorrectthecodeinallthedifferentplacesthatitappears.Ifthesourcecodehastobeupdatedorimprovedinordertomaketheprogrameitherrunfasterorperformmoreoperations,thenthesourcecodehastobemodified,improved,andupdatedinalltheplacesthatitappears.Andifthesourcecodehastoberemovedandreplacedwithanewsourcecode,thenithastobeerasedandreplacedwiththenewcodeineverysingleplacethatitappears.
Thisisindeedtime-consuming,anditcanleadtomoreerrorsbecauseofallthehumaninterventionthathastobedone.Ontheotherhand,iftherearefunctionsthatarebuilttohandleallthedifferentprograms,thenonlyoneorafewchangesneedtobemadeshouldtherebeerrors,orshouldthesourcecodehavetobeupdated,modified,improved,orchanged.Youcanthinkofthefunctionasanumbrella:itcoversallofmanydifferentprogramsbeneathit,sothatyoudonothavetocovereachprogramindividually.Havingasinglesourcecodeservingasthefunctionisalsoadvantageouswhenyouhavetointroduceanewprogramthatstillmakesuseofthatsamesourcecode.Becausethesourcecodeisalreadyavailableasanoverallfunctionorsub-program,youdonotneedtoaddthesourcecodetothenewprogram.Youonlyneedtofindawayforthenewprogramtointeractwiththesourcecodeitself.
Theseareonlyafewfactsthatyouneedtoknowaboutfunctionsincomputer
programming.Formoreinformation,readuponthelatestcomputerprograms,howdifferentprogramscaninteractwitheachotherusingsomeumbrellaoroverallscripts,andhowdifferentprogramscanbeimprovedwhenusingfunctions.
BASIC:AComputerProgrammingLanguage
Computerprogramminghasitsownlanguage,andthat’sjustthebeginningofthesoftwareadventure.Therearemanydifferentlanguagesincomputerprogramming,andallofthemhavetheirownpurposes.Inordertounderstandtheimportanceofcomputerprogramminglanguages,knowingthem,andtweakingthem,onehastounderstandtheimportanceofcomputerprogramming.Computerprogrammingproducessoftwarepackages,amongotherthings,tomeetourneeds.Wemayneedsoftwareforaccounting,makingphotosbiggerorsmaller,oreditingourhomevideos.Behindallthesesoftwarepackagesarethecomputerprogrammerswhousetheirindividuallanguagesinordertocreatethesoftware.
OnesuchcomputerprogramminglanguageistheBeginner’sAll-PurposeSymbolicInstructionCode,orBASIC.BASICisactuallycomposedofmanydifferentkindsofprogramminglanguagesthatareactuallyhigherlevelthanmostotherlanguages.ThisBASICfamilyofcomputerprogramminglanguageswasfirstdesignedinthe1960’s,andwasoriginallymadefornon-sciencepeopletogainbetteraccesstocomputers.Duringthattime,usingacomputerrequiredthatapersonwritecustomizedsoftware,ataskthatonlymathematiciansandscientistswereequippedtodo.TheBASIClanguagewasthereforeabridgeforpeopleofotherprofessionstotakeadvantageofthepowerofcomputers.
Whenthe1970’scame,theBASIClanguage,whetherinitsoriginalformoravariantofit,spreadontomicrocomputers;andbythe1980’s,evenhomecomputerscouldberuninBASIC.Today,BASICremainspopular,asitservesasthebasisformanyofthemoremodernprogramminglanguagesthathavebeendevelopedinthewakeofadvancedoperatingsystemsandtheInternet.
Whenitwasoriginallyconceived,BASICwasmeantforbeginners:itwasalanguagethatpeoplecoulduseeasily,whetherornottheywereeducatedinmathematicsandthesciences.Thelanguagealsohadtobeageneralpurposeone,inthatithadtoservemanydifferentneeds,andnotonlythosethatmathematiciansandscientistsrequired.TherootlanguageofBASICalsohadtoallowforadvancedfeaturestobepluggedonasexpertsgrewmoreandmoreadeptinit,andasthelanguagefoundfurtheruseinmanyotherfields.BASICwasalsomeanttobeinteractive,andwasdesignedtoshowerrormessagesthatwereclearandfriendly;thatis,theseerrormessageshadtocompletelyexplainwhattheproblemwas,whichwouldhopefullyallowtheusertofixitfasterandeasier.
Whenitwasfirstreleased,moreover,BASICwasfreeofcharge,whichallowedthelanguagetospreadmuchfaster.Oncethelanguagespreadmuchfaster,itwasalsoeasytomodifyitandcorrecterrors.BASICwasalsodistributedtoafewhighschoolsinordertopromoteitfaster.Thankstothiswidespreaduseofthelanguage,BASICwassoonimplementedonseveralmicrocomputers,andbyseveralsoftwaremanufacturers.
Despiteitssuccess,BASIChashaditsdissenters.Forinstance,someprogrammersfindthatitsscriptsdonotshowproperprogrammingpractices,andthelanguageitselfistooslow,orsometimeseventoosimple.Despiteallthese,however,BASIChascontinuedtothrive,succeed,andevolve,andhasthusbecomeagoodtooltointroducebeginnerprogrammerstotheconceptofcodingandcomputerprogramming.
TheseareonlyafewfactsabouttheBASIClanguage.FormoreinformationonBASIC,
readanddoyourownresearchthroughseveralkeypagesonline,orusingcomputerprogrammingbooks.
TraininginMacromedia
TheMacromediafamilyofsoftwaremightbesomethingthatistakenforgrantedbypeoplewhohaveusedthedifferentkindsofsoftwareinitalot.BypoppingtheMacromediadiskintotheCD-ROMdrive,everyone,fromatoddlertoacomputerprogrammer,candoalotofthingswithhisorhercomputer.However,forthosewhoareinterestedinworkingwithsuchsoftware,computerprogrammingandtraininginMacromediaisneeded.
TherearemanykindsofsoftwareintheMacromediafamily.Forinstance,ifyouareinterestedindevelopingcomputersoftware,andifyouarelookingforawaytomakeadynamicwebsite,thenyoumayneedAdobeColdFusion,whichworksliketheASPpackageofMicrosoft,ortheprogramminglanguagePHP.Ifyouarehopingtocutdownonwebsitedesign,development,andeditingtime,thenyoumayalsobeinterestedinAdobeContribute,whichallowsdifferentmembersofanorganizationtocontributetothechangesmadeinawebsite,thereforesavingtimeandmoneyinhiringasinglepersonorateamtomakethechangesinthesite.Ifyouwanttodowebsitedesignbutwanttoseeyourresultsimmediatelyinsteadofploddingthroughoceansandoceansofscript,thenyoumaybeinterestedinAdobeDreamweaver.ThispopularmemberoftheMacromediafamilymaynotrequireprogrammingskills,butitcanhelpsoftwareprogrammersunderstandwhatcertainscriptsdoandhowthesescriptsbehaveonline.
Forthoseinterestedinonlinelearningsolutions,thereisMacromediaAuthorware,whichisaprogramminglanguagethatisbasedonflowcharts.Authorwareisusedformakingprogramsthatareinteractive,andthatcanbeintegratedintovarioustypesofmultimediacontent.AlsoindemandisAdobeDirector,whichwasoriginallycreatedformakinganimation.Today,AdobeDirectorisusedasascriptinglanguageforcreatingastandalonekiosk,orCD-ROMS.Itisalsobeingusedfordevelopingonlinethree-dimensionalgames.
TheMacromediafamilyalsohasitsowngraphicseditorinthepersonofAdobeFireworks.TheFireworksprogramisthegraphicseditorthatisdesignedtointegratewithotherMacromediaproducts.AnothergraphicsprogramistheFreeHandpackage,whichcreatesvectorgraphicsintwo-dimensions,andisdesignedfortheuseofdesktoppublishers.
WhatisundoubtedlythemostpopularpackageintheMacromediafamilyistheFlashandShockwavegroup.MacromediaShockwaveplayersaremultimediaplayersthatwereoriginallydesignedasindependentpackages,andthatweremadetoplayFlashprograms.Today,however,thetwoareintegratedheavilywitheachother;Flashitselfisahighlypowerfultoolforwebsitedesignerswhowanttocreatemoredynamicandattractivewebsitesthatthriveheavilyonanimation.Despitethe“eyecandy”feelofFlash,however,mostwebsitedesignersstayawayfromitanddotheirownscripting,sinceFlashanimationcannotbepickedupbysearchengines,andcanthuslimittheamountofreadablecontentthatcanhelpawebsitebemorepopular.
IfyouareinterestedintraininginMacromedia,youalsohavetobeawarethatmostofthepackagespresentedarealreadyundertheAdobeumbrella.Moreover,youmayneedto
honeyourcomputerprogrammingskillswellenoughtobeabletorunMacromediaapplicationsandusethemforyourwork.NotonlyisMacromediaallaboutpoppingsomethingintoyourCD-ROMdrive,itisaboutcomputerprogrammingusedwell,inordertoserveawidervarietyofpurposes.
TheDifferentSidesofComputerGameProgramming
Manypeoplewillplaycomputergameswithoutanyknowledgeofhowmuchworkwentintothegame.True,alotofthoughtandcreativityhadtobeemployedinordertomakethegamework,butthegamealsorequiredagooddealofcomputerprogrammingandknowledgeofdifferentcomputerprogramminglanguagesinordertomakethegamenotonlyfeelreal,butlookattractiveaswell.Therearemanysidesofcomputergameprogramming,soifyouareinterestedincomputergameprogrammingandmaywanttotakeupcoursesinthefuture,takealookatthislist.
Thegamephysicsprogrammerissomeonewhodirectshowagameusesphysicsinordertolookcorrectandfeelcorrect.Inmostcases,acomputergamewillnotcompletelysimulatethephysicsofarealworld,butsomeimportantaspectsofphysicsmayhavetocomeintoplayforsomegames.Forinstance,windresistancemightbeimportanttodogfights,whilethefluidbutretardedmovementsofsomecharactersinwatermightbeneededforarole-playinggame.
Theartificialintelligenceprogrammeristheoneinchargeofdevelopingthelogicalsequenceofthegameitself.Forinstance,whenagameinvolvesfindingapath,employingstrategies,orgivingrisetoenemytactics,anartificialintelligenceprogrammermaybecalledintomakeagamesmart–inotherwords,tomakethegamethinkonitsown.Ingeneral,thecomputerlanguageusedforartificialintelligenceprogrammingissimplerthanotherlanguages,anditcanbesharedwiththegame’splayers.
Thegraphicsprogrammerusesaseriesofcodesandalgorithmsinordertoprovidegraphicsintheworldofthegame.Inthemodernage,agraphicsprogrammerhastoworkinathree-dimensionalenvironment,andshouldthereforehaveknowledgeofcalculus,vectormath,andotheralgebraconceptsthatmaybeneededforspecializinginrenderingsuchimages.Thereareonlyveryfewgraphicsprogrammers,andtheymayusuallydemandhighwagesfortheirwork.
Asoundprogrammerwillprovidesoundsintermsofcharacters’dialogues,music,andevensoundsthatcanmakethegameseemmorereal,suchasthesoundofcrunchingleavesorgrassascharacterswalkonthem.Thegameplayprogrammerwilladdtotheexperienceofthegame,andwilldosobyfocusingonthegame’sfeelandstrategy.
Computergameprogrammingwillalsorequireateamofscripters,whoarealsousuallythedesignersofthegame.Thesescripterswritethecodeofthegameitself,usuallywithabasiccomputerlanguage.Alsoneededareuserinterfaceprogrammers,ortheUI:theUIprogrammerswillcreatealibraryofdifferentaspectsthatcanbeusedacrossawidevarietyofworldswithinthegame,orawidevarietyofgameswithinamanufacturer.TheUIprogramminglanguageinvolvesagooddealofmath,withtheaimofproducingspecialeffects.
Alsoimportantisaninputprogrammer,whowritescodesforhowdifferentkindsofhardware,suchasthekeyboard,joystick,ormouse,willaffectthegame.Thenetworkprogrammerwillfindwaysforthegametoworkonanetwork,wherepeoplecanplayagainsteachother.Aportingprogrammerensuresthatthegamecanworkondifferentplatformsandoperatingsystems.
Overseeingallthesetasksistheleadgameprogrammer.Theseareonlyafewaspectsofcomputergameprogramming.Asthefieldwidens,moreandmoreprogrammersofdifferentkindswillhavetobecalledinandidentifiedasimportant.
WhatYouShouldKnowAboutaComputerProgrammingCareer
Computerprogrammingisoneofthemostimportantandexcitingcareerstoday.Itisalsoafieldthatoffersplentyofjobopportunitiesforgraduates.It’soneofthebestfieldsofendeavorforpeoplewholovetechnologyandarewillingtotryoutnewthings.Ifyou’reconsideringpursuingacomputerprogrammingcareer,herearesomethingsthatyoushouldknow:
Whatiscomputerprogramming?Computerprogrammingisbasicallytheprocessofwritingcodestocreateacomputerprogram.Aprogramminglanguageisusedtowritethiscode,alsoknownasthesourcecode.Computerprogrammingisactuallyanumbrellatermthatencompassesalltypesofprogramminginvolvingtheuseofcomputers.Thedesignandmethodutilizedtowriteasourcecodewilldependonthetypeofcomputerlanguageusedforthejob.SomeofthemostcommoncomputerlanguagesincludeBASIC,COBOL,FORTRAN,C++,Java,VisualBasic,PythonandPHP.
Thejobofcomputerprogrammingalsoincludestestingthesourcecode,debuggingittocheckforflawsandweaknessesandmaintainingittoensureoptimumperformance.
CreatingthecodeThesoulofcomputerprogrammingisthecreationofthesourcecode,whichcaneitherbebrandneworsomethingcreatedtomodifyorimproveuponanalreadyexistingcode.Theobjectofthesourcecodeistobuildaprogramthatwillperformaparticularseriesoftasksbasedonaspecificsetofcommands.Thisiscalledcustomization.
Theendresultofwritingthesourcecodeisacomputerprogram.Insoftwareengineering,computerprogrammingisanimportantinitialphase.
Whatdoesacomputerprogrammerdo?Themainjobofacomputerprogrammeristowritethecodesthatserveasthefoundationofsoftwareprograms.Heisalsotaskedtotest,troubleshoot,debugandmaintaintheprogramtoensureitsqualityandreliability.Generally,thetasksthatacomputerprogrammermustperformareassignedbyanotherperson,usuallythesystemanalyst.Thecomputerprogrammer’sjobisthentowritetheprogram,testit,modifyitifnecessaryandensurethatitpassescompatibilityandqualitystandards.Iferrorsarefound,itisthecomputerprogrammer’sjobtoensurethattheyarecorrected.
Thejobofacomputerprogrammerusuallyrequireshoursuponhoursspentinfrontofacomputertodesignandwriteacomputerprogram.Dependingonthetypeofprogrambeingwritten,itspurposeandthecomplexityofthecommandsrequiredinorderforacomputertoexecutetheseriesofstepsinvolved,writingaprogramcantakeseveralmonthstoseveralyearstocomplete.
Thelengthoftimeitoftentakesforaprogramtobecompletedoftennecessitateshavingasingleprogrambrokendownintoasmallerseriesofsteps.Thesestepswillthenbeassignedastaskstoagroupofprogrammerswhowillworkonthemindependently.The
finalstepistoputtheendresultsandproduceonecoherentandusefulcomputerprogram.
Computerprogrammingisaverydynamicfieldandinvolvesplentyofimaginationanddiscipline.Althoughtherearesetstandardsforthetasksinvolved,theprofessionitselfdoesnotrequirecertificationtestsfromgovernmentagencies.Therearealsonostateandfederallicensestoobtain.
Howmuchdoesacomputerprogrammingjobpay?Thatwilldependontheexperienceandlevelofexpertiseoftheprogrammer.Mostentrylevelprogrammersearnaminimumofabout$33,000ayearwhilemid-levelprogrammersearnapproximately$50,000ayear.Forseniorlevelprogrammersandthosewhohaveseveralyearsofexperiencebehindthem,theirtypicaltake-homepayaveragesatabout$65,000ayear.Consultants,somemanagersandthosewhohaveadvancedwellintheircomputerprogrammingcareerareoftenpaidmore.
WhatYouNeedtoKnowAboutaComputerProgrammingCourse
Computerprogrammingmayseemlikeahighlycomplicateddisciplinebutatitsroots,everyprogramactuallybeginsasasimplesetofinstructions.Computerprogrammingisessentiallythedesignofasimpleprograminordertocreateamorecomplicatedprogram.Itiscurrentlyoneofthemostsought-aftercoursesandisalsoacareerthatpresentsplentyofopportunitiesinaveryexcitingfield.Ifyou’recuriousaboutwhattakingacomputerprogrammingcoursewillbelike,herearesomeimportantinformationyoucanuse.
ThecourseComputerprogrammingisoneofthedisciplinesundercomputerscience.Itrequiresstudyandpracticalapplicationoftheoriesandconcepts.Simplyput,computerprogrammingistheprocessofwritingandcreatingagroupofinstructionsthatacomputercanreadandexecute.
Computerprogrammingisnotasingle,one-size-fits-alldiscipline.Forone,thetaskofprogramming(orcoding)involvesseveralcomputerlanguages.Theselanguageshavedifferentusesandassuch,willoftenrequireadifferentsetofinstructions.JavaScript,forexample,maybeacomputerlanguagebutitisnotthesameasHTMLorCOBOLorVisualBasic.Therearealsocertainsub-disciplinesincomputerprogrammingthatleadtoaspecificfieldofspecialization.Studentsmustdeterminewhichfieldofcomputerprogrammingtheywanttofocuson.Iftheywanttoworkforcompaniesthatcreatevideogames,forexample,theywillhavetochoosecoursesthatteachgraphicsandanimation,amongothers.
Inthecourseofstudyincomputerprogramming,aprogrammermustbeabletolearnmultipleconceptsandtheoriesontopofthetechnicalstuff,suchascomputerlanguageconventions,elementsandimportantoperatorsusedtocreateasourcecodethatwilllaterproduceacomputerprogram.
Computerprogrammingisanessentialphaseinthedevelopmentofsoftwareandisanintegralpartofsoftwareengineering.
HowlearningisobtainedTherearetwomajorwayscomputerprogrammingcanbelearned–throughclassroomtypeinstructionoronline,aspartofadistancelearningprogram.Classroomtypeinstructionisstillthemostcommonwayofattendingclassesforstudentsbutonlineclassesarefastbecomingthemethodofchoice.
WhattoexpectfromthecourseAcomputerprogrammingcourseisusuallycomposedoflecturesandhands-onassignments.Theinstructoruseslecturestoteachtheoriesandconceptsinprogrammingandtoprovidestudentswithanintroductiontothediscipline.Generally,studentswillbelisteningtolectureswhileusingcomputers,awayforinstructorstoallowparticipantstoimmediatelyapplywhattheyhavelearned.
Otherthanaccesstoacomputer,studentsmayalsoberequiredtoobtaintextbookstobeusedasreferencesduringcoursework.Somelessons,suchasthoseusedinonlineclasses,mayalsobedownloadedfromawebsite.
WhoshouldtakethecourseComputerprogrammingisnotforeveryone.Justbecauseyoulovecomputersandhavesufficientcuriosityabouthowtheyworkdoesn’talwaysmakeyoutheidealcandidateforthiscourse.Computerprogrammingrequiresalotofpatience,attentiontodetail,creativity,logicandcommonsense.Italsorequirescarefulstudyandunderstandingofcertainsubjectssuchasmathematicalandengineeringconcepts.
WhattoexpectuponcompletionofthecourseOnceacoursehasbeencompleted,acomputerprogrammerisreadytobehiredforentry-leveljobsincompaniesthatdesignsoftware.Iftheprogrammerchoosesahigherlevelofstudy,hecanalsoincreasethechancesofbeinghiredforhigherpay,particularlyifhechoosesafieldofspecialization.Acomputerprogrammingcoursecanprovideagraduateaccesstodifferentfieldsaswell,includingbanking,finance,research&developmentanddatabaseadministration.
ComputerProgrammingCoursesinNewYorkCity
AlthoughNewYorkCityismorefamousforitsmuseums,parks,theatersandbusinesses,itisalsoagreatlocationforschoolsofferingcomputerprogrammingcourses.NewYorkhasalwaysbeenpioneeringinmanywaysanditoffersplentyofopportunitiesforhighlyin-demandcoursesrelatedtocomputerscience.HerearesomeresourcesthatcanhelpyoulookforcomputerprogrammingcoursesinNewYorkCity:
NewYorkUniversityNYUisarecognizedleaderinthefieldofeducationandisacknowledgedasoneofthetopuniversitiesintheU.S.Itisanexcellentinstitutionformanyfieldsofstudyinacademiabutitalsohasasolidcurriculumofferingcoursesincomputerprogramming.
Tofindoutaboutthetypeofcoursestheschooloffers,gototheirwebsite(www.cs.nyu.edu)andlookfortheircurrentcourselist.Thelinkwillbringyoutotheircomputersciencedepartmentpage.Thecourselistwilloutlinethecoursesofferedforaparticularsemestersoyouwillhaveanideaofwhichcoursetotake.
Computer-SchoolsComputer-Schools.usisawebsitethatlistsschoolsanywhereintheUnitedStates.Thesiteletsyoulookforthephysicallocationsofschoolsorifyouprefer,youcansearchforschoolsofferingonlinecourses.Thesitelistsagoodnumberofcomputerprogrammingschoolsyoucancheckout.Tolookforcourses,youcanclickonthelinksformoredetailedinformation.
Education-PortalEducation-Portal.comisanotherwebsitethatlistsschoolsinNewYorkofferingcoursesincomputerprogramming.Youcanclickonthelinktotheschoolstofindmoreinformationaboutspecificsubjectsandcoursesyoumightbeinterestedin.Thesitealsooffersinformationaboutschoolsofferingcomputerprogrammingcoursesthatleadtocertification,perfectifyouwanttobuildaseriouscareerinthisfield.NewYorkInstituteofTechnologyTheNYITinOldWestburyofferscoursesincomputerprogramming.Youcancheckouttheirsite(www.nyit.edu)orsendane-mailtoinquireaboutadmissionsrequirementsatadmissions@nyit.edu.
FutureKidsFutureKidsisanexcellentproviderofcoursesincomputerprogramming,especiallyforyoungerparticipants.SomeoftheirofferingsincludeC/C++,HTML,XHTML,VisualBasicandComputerGraphics,amongothers.Ifyouwantchildrentodevelopanearlyinterestinacareerinvolvingcomputers,thisisagoodplacetostart.
ColumbiaUniversityColumbiaUniversity’sDepartmentofComputerScienceisanexcellentsourceforinformationaboutcomputerprogrammingcourses.Italsoofferscoursesinrelatedfieldssuchassoftwareengineering,networkingandwebdevelopment.
BerkeleyCollegeBerkeleyhasaNewYorkCitycampuswhichofferssomeexcellentcoursesincomputerprogramming.Youcancheckouttheirsiteatwww.berkeleycollege.eduorsendthemane-
[email protected],softwareengineeringandnetworking.
NetComInformationTechnologyNetComInfohasawiderangeofchoicesforcomputerprogrammingcourses.ItiscurrentlyrecognizedasatoptrainingcenterinNewYork.Itoffersover250computer-relatedcoursesandabout40certificationprograms.ThecenterisapartnertoseveralITcompaniesandhaskeyrelationshipswithmanylargecorporations.ItisalsoanauthorizedprovideroftrainingbycompaniessuchasMicrosoft,IBM,Oracle,LinuxandNovell,amongothers.
NetComisoneofthebestplacestoobtaincomputerprogrammingcoursesinNewYorkCity.Ifthetypeandqualityofcomputerprogrammingcoursesfromthiscenterdoesnotattractyou,itsaddresswill–it’slocatedatthe7thflooroftheEmpireStateBuilding.
ComputerProgrammingFundamentalsYouShouldKnow
uick!Canyoutellmehowtoprepareabowlofcerealswithmilk?Toosimple,right?Youcanprobablygivemeaseriesofno-brainerinstructionsthatIcanperforminlessthanaminute.Nowtrytellingacomputertodojustthat.Whatbeganasasimpletaskhasnowbecomecomplicated.It’snotjustamatterofdumpingacupofcerealsinabowlandpouringmilkin.Withcomputers,it’ssomuchmorethanthat.Soundsexciting?Itshouldbe.Becausethat’swhatyou’llexpectonceyoubeginlearningcomputerprogrammingfundamentals.ThebasicsComputerprogrammingisawholenewworldofpossibilities.Believeitornot,programmingactuallybeganinthe1200s,whensimplemachinesweredesignedtoexecutesimplemechanicaltasks.Ithasgrownbothasanartandasasciencesincethen,providinguswiththetechnologiesthathavemademanyaspectsofourliveseasierandfaster.
Onceyoustartlearningcomputerprogramming,someofthebasicstuffyou’llencounterinclude:
-ThebasicunderstandingofthedisciplineYou’llneedagoodbackgroundinthefieldinorderforyoutounderstandhowitreallyworks.Withasolidfoundationbuiltonknowingthebasicsofcomputerprogramming,itwillbeeasiertocomprehenditsdetails,includingprocedures,stepsandotherinstructions.
-UnderstandingthetypesofprogrammingEssentially,therearetwobasictypesofprogramming,eachofwhichhasitsownusesandsetofadvantagesandlimitations.Proceduralprogramming,whileolder,isquiteusefulparticularlybecauseitisamuchsimplerwaytotellacomputerwhattodo.Itisalsotheheartandsoulofmanycomputerlanguages.Basically,it’saninput-outputoperation,whereauserorprogrammerinputsasetofinstructionsandacomputerreactstoitbyexecutingthoseinstructions.Learningproceduralprogramminghelpsnewprogrammersunderstandelementssuchassequence,selectionanditeration.
Theothertypeofprogrammingisobject-oriented,whichisrelativelynewer.Thistypeofprogrammingtreatsinstructionsasasetofobjects,somethingthatismoreconvenientinmanyoftheprogramsthatareinusetoday.Withobject-orientedprogramming,you’lllearnanobject’sproperties,eventhandlersandmethods.
You’lllearnbothtypesofprogrammingaspartofafundamentalorbasiccourse.Thesewillhelpyouunderstandhowtodesigncodesthatareeasyforacomputertounderstandandeffectiveenoughtoexecute.Usingthecerealandmilkanalogy,forexample,youwillbeabletowriteacodethatwilltellacomputerhowtopourtherightamountofcerealintoabowlandhowmuchmilktouse,inthatorder.Andifyou’retrulygood,youcaneventellthecomputerwhatspecifictypeofcerealandmilktouse.
-UnderstandingthenatureofthecodeAnotherimportantbasicknowledgeyoumustlearninprogrammingisunderstandingcodes.Whiletheirfunctionsaregenerallythesame–thatis,topoweracomputerprogram–codesdifferindesignandusedependingonthelanguage.Codesareattheheartofa
computerprogramandwillbeoneofthebasicsyouwilllearninprogramming.-Learningproblem-solving
Muchofyourtimeasafirst-timecomputerprogrammerwillbespentporingoverproblems–howtocreateasourcecodeforadesiredendresult,howtofixabug,howtosolveaglitch,howtoputthingstogetherorinsequencesotheywork.You’lllearnhowtolookataproblem,breakitdowntoitssolvablecomponentsandcomeupwithwaystosolveit.
-Thinkinglogically.Ifyou’renotafanofmathematicsandlogic,you’llbedismayedtoknowthatmanyofthecomputerprogrammingfundamentalsyou’llbelearningwillrequireyoutothinkinnumbers,figuresandsequences.However,thesebasicsareeasytolearn,providedyouhavethepatiencetofollowtherightsteps.Onceyou’vetrainedyourmindtothinklikethis,you’rewellonyourwaytoagreatcareerasacomputerprogrammer.
OntheWaytoLearningComputerProgrammingInNano
Today’sdigitaltechnologygivesbirthtoahostofprogramminglanguages.Andthereareseveralprogramminglanguagesbeingusedindifferentapplicationssuchastheweb,Windows,Apple,andUnix.Andrightnow,computerprogramminginNanoisoneofthenewestdevelopments.
ItwasbelievedthataNanomechanicalcomputercouldrunamilliontimesfasterthanamicroprocessor-basedcomputer.Thisisbecausethatoneoutofthemillioncomponentsofacomputerismadeofmechanicalspace.Therefore,ifaprogramminglanguageispatternedonthemechanicalspaceacomputerhas,itwillfollowthatthecomputerwillworkfaster.
Butthenagain,engineerswouldhavetocreateanentirelynewlineofcomputersystems.ComputersthataremoreenergyefficientandconsumerslesserspaceistheonesthatwouldworkwellwithaNanocomputerlanguage.
However,theNanocomputerlanguageisbelievedtoworkwellwiththepresentdaycomputerssystemsaswell.Theprimaryuseofthisprogramminglanguageisongraphics.WiththeNano-Xgraphicssystemyoucouldcreatemuchfanciergraphicalprograms.Tomakeitwork,youhavetospecificallycreatetheprogramwiththeWindows,Unix,orMacintoshinterfaceinmind.
TheNanocomputerlanguageprimarilycamefromthenanotechnology.Nanotechnologyrefersfromthefieldsofappliedsciencethatcontrolmatteronitsmolecularandatomicscale.Thetechnologycanbeusedinmaterialsscience,appliedphysics,andofcourse,computerprogramming.
Japanisoneofthepioneersofnanotechnologyandnanoprogramming.Infact,theyareveryactiveinholdingsymposiumsandconventionsonbothprofessionalnanotechnologiesandaspiringyoungscientists.Theyareconstantlylookingfornewideasandconceptssurroundingthenanotechnologyandtheimprovementsonthenanocomputerlanguage.
Rightnow,theinterestinlearningandimprovingcomputerprogramminginnanoisspreadingtoAsiancountrieslikeVietnam,SouthKorea,andinEurope,France.Thedemandfordifferentapplicationsinnanocomputerprogrammingisincreasing,causingincreasedusersandclientsbase.
Thenanoprogramisbasicallyveryeasytolearnandtoapply.Textscanbetypedimmediatelyintotheinterface.Itisalsoquitesimpletoinserttextintotheprogramwiththeuseofsomeeditingconfiguration.Thereisalsothenanoeditorsoftwarethatyoucanusewiththemainprogrambasesothatsaving,cutting,pasting,andsearchingbecomesfairlystraightforward.
Currently,therearealotofinstructionssoftwareandbasicinstructionalkitsforuseofthosewhowanttolearncomputerprogramminginnano.Sincenanoisbeingoneofthemorepopularlanguagestoday,thissoftwareisbeingappliedinalmostallnewerapplications.
Allprogrammingprofessionalsarechallengedtolearnthisnewtechnology.Withthebasic
knowledgeyouhaveforcomputerlanguages,learningthenanolanguagewon’tbemuchofatrouble.Thebasicprinciplesoftheprogramresembletheotherwellusedpopularprogramminglanguages.Themorecomplexusesandfunctionsofthenanoprogramminglanguageareuniquefromallothers.Butthatisalwaysapartoflearningawholenewprogramminglanguage.
Learnmoreaboutcomputerprogramminginnanobysearchingrelevantinstructionalwebsitesaswellasfromdifferentofflinesources.Thenanoprogramminglanguageisagoodlanguagetolearnasitisexpectedtoimproveovertime.
TheNeedForComputerProgrammingLanguageEvolution
Thedigitalworldconstantlychanges.Newtechnologiesareintroducedandnewdevelopmentsintheindustryarebeingmadeknowntothepublic.Therewillalwaysbechangesintechnology.Andtechnologywillconstantlyimprovetohelpcreateabetterworld.
Andoneoftheprimarymoversoftechnologyandthedigitalworldisacomputerprogramminglanguage.Thisisthelanguagespokenandunderstoodbythecomputer.Thecomputerlanguageismachinelanguage.Basically,whatthecomputercanunderstandandprocessarejustabunchofone’sandzero’s.Itisreallyupontheexpertiseoftheprogrammertocreatespecialsoftwarethatcouldbeunderstoodbythecomputerandthehumanuser.
Computerprogrammingsoftwarefollowsacertainlanguagethatcomputersfollow.ExamplesoftheselanguagesaretheAssemblylanguage,C++,FoxPro,VisualBasic,VisualFoxProandseveralothers.Thesetypesofsoftwarecanmediatebetweenthecomputerandtheprogrammer.Alltheprogrammerhastodoistoinputthecommandshewouldlikethecomputertodo.He’llwritethecommandsinthesyntaxthatthecomputerprogramminglanguageunderstands.Thecommandsarethenprocessedandconvertedintothemachinelanguagethecomputerprocessorunderstands.Thisishowthemanyapplicationsandprogramsdownloadablefromtheinternetarecreated.
Differentcomputerprogramminglanguagescanprovidedifferentlevelsoffunctionality.Somesoftwarecangivecrispgraphicalimages.Theseprogramminglanguagesareusuallyusedinmakinggames.Gamesarereallywhatmakecomputershalfpopular.Andthisisallbecauseofthecomputerprogramminglanguagecreatedformakinggamesthatpeoplefromallovertheworldlove.Gamesarecomplexindividualprogramsthatareinterlinkedtogetherbythemaingameapplication.
Asidefromcomputergames,programminglanguagesallowsforthedevelopmentoffunctionalsoftwaresuchaswordprocessingprograms,databaseprograms,webbasedapplications,andseveralothers.Thesoftwareismadepossiblewiththecreationoftheprogramminglanguagesthataremostfittingtothedesignandinterfaceoftheprogrambeingcreated.Therearemanytimesthatasingleapplicationcanbecreatedmultiplelanguageplatforms.
Butthenagain,alloftheseprogramswon’tbepossiblewithoutthecreationofanoperatingsystem.Theoperatingsystemisthesoftwarebywhichacomputersystemruns.PopularexamplesofsuchsoftwarearetheWindowsplatform,Linux,Unix,andMacOS.TherearealotofoldoperatingsystemsbeingusedbeforeandthemostpopularofwhichisDOS.Theoperatingsystemservesasagoodmedianforthecomputerandtheprocessor’slanguage.Itsmainjobistotranslateeverysingleprogramcreatedfortheoperatingsystemandallowthemachinetoprocessthemaccordingly,sothatpeoplecanrunandusetheprogram.
Theevolutionofcomputerprogramminglanguagesisrequiredinthisever-changingworld.Itismandatorythattheyhavetokeepupwiththedemandsofthecurrenttimes.Before,computersareusedagainstablack,monochromebackground.Rightnow,
computersusesimages,colors,andinteractiveicons.Thecontrastisverystrikingthatyoucanjustimaginewhatwouldhappenediftherewerenoevolutionthathappened.
Theintroductionofnewcomputerprogramminglanguagesshouldbeawelcomeadditiontothegrowinggroupofcomputerlanguages.Thenewfeaturesandabilitiesthesecanbeusedwidelyindifferentapplicationsareincurrentlyindemand.
YourGuidetoComputerProgrammingMagazines
Ifyouwanttobeupdatedwiththenewgadgetsandthenewtechnologiesdealingwithcomputerprogramming,youhavetosubscribetorespectableindustry-relatedmagazines.Thankstotheinternet,thesemagazinesarealsoavailableforpublicviewingovertheweb.Thismeansyoureallydon’tworryaboutmissingasubscriptionorso.Inothercases,youdon’tevenhavetopayforsubscriptionsanymore.Allyouhavetodoistologontoyourinternetandreadthenewentriesorthenewissuefromtheprogrammingmagazinesoffyourdesktoporlaptopcomputer.
Herearethedifferentcomputerprogrammingmagazinesyoucancheckoutonline:
1.ApplicationDevelopmentTrendsThismagazineprovidesalltheinformationyoumightneedaboutnewlyreleasedsoftwareandallthenewtrendsininformationtechnology.Theaudienceofthismagazineisusuallythetechnicalmanagementgroupsofbigcompaniesandenterprises.
2.C++SourceThisonlineprogrammingmagazineisgoingtobeindispensableforC++professionals.ItcontainsinformationabouttheC++language,itsphilosophy,andthedirectionitistakinginthischangingworld.Asidefromthat,italsooffersfeaturearticlestoitsreaders.TherearealsorelatedtopicsaboutcomputerprogrammingandC++tutorialsthatareperfectforthebeginners.ItalsohasanewssectionthatgivesupdatesaboutC++.
3.DeveloperNetworkJournalIfyouarea.NET,ASP,COM,andADOtechnologyaficionado,thisisthemagazineforyou.Everyissueisrightwitharticlesthatsoftwaredevelopersaregoingtofinduseful.ThisistheprimarymagazineoftheWindowsandMicrosoft-basedplatforms.
4.DeveloperDeveloperisanindependentmagazinethatisprimarilycreatedtocarryinformationaboutdifferenttopicsofinterestacomputerprogrammerneedstoknow.Itcontainsfeaturesaboutsoftwaredevelopment,programming,architecture,databasecreation,andotherthings.
5.DoctorDobb’sJournalDoctorDobb’sJournalorDDJistheforemostprogrammingonlinemagazinesthatfeaturesrelevantsoftwaretips,tricks,andtoolsforbothaspiringandprofessionalprogrammers.Itisalsorichinsourcecode,articles,bookreviews,productresources,andawholelotmore.
6.JavaWorldJavaWorldisyouroptimumsourceofallJava-relatedprogrammingresources.BothprofessionalandamateurJavadevelopercanuseit.Italwayshasfreshnews,API’s,tutorials,tools,featurearticles,andinterviewswiththeexpertsthatalldealswiththeJavatechnology.
7.SYS-CONMediaSYS-CONmediacurrentlyistheleaderininformationtechnologymediaintheworld.TheyspecializeinAJAXdevelopment,aswellas.NETandJAVA.Buttheyarealsothe
authoritywhenitcomestoXML,Coldfusion,WebLogic,andFlex.
8.MSDNMagazineIfyouwanttogetaheadwiththenewesttechnologiesthataffecttheMicrosoftnetworkingsystems,thentheMSDNmagazineiswhatyouneed.Theirissuesarealwaysrichwithsourcecodesandhelpfularticles.Theyalsohaveanarchiveofbackissues,shouldyoubeinterestedinthemtoo.
9.LeadingEdgeJavaThismagazinecouldqualifyasthepracticalJavahandbooksforJavadevelopers.Itcontainstutorials,news,tools,andcurrentusesoftheJavatechnology.
10.LuminaryLuminaryisafreenewsletterpublishedmonthly.Itcontainsfeaturesonsoftwaremanagement,consulting,anddevelopment.
Thesearethe10mostusefulprogrammingmagazinesyoucancheckoutovertheinternet.Ifyouwanttotakeaglimpseofhowwhat’snewandhotintheprogrammingworld,justcheckoutthesemagazinesandknowyourself.
LearningComputerProgrammingTerminology
Computerprogrammersareprofessionalswhoareindemandthesedays.Thisisbecauseofthefactthateverythingisonthestageofbeingconvertedintodigital.Nottoosoon,therewon’tbeanalogsystemsanymore.Allsystemswouldbecreatedaccordingtothedigitalgeneration.
Rightnow,therearedifferentschoolsandinstitutionsprovidingtrainingforcomputerprogramming.Youcanenrolltoeitherofflineoronlineschools,dependinguponyourtimeavailability.Forthosewhorecentlygetofffromhighschoolandwouldliketopursueacareerincomputerprogramming,theycaninquirefromthedifferentschools,colleges,anduniversitiesaroundthem.Theseinstitutionsaresurelyofferingprogrammingcourses.
However,forthosewhoarecurrentlyholdingdownajobandwouldjustliketolearncomputerprogrammingasahobby,theycanenrollinanonlineschoolthatfollowsadistanceeducationsetup.Theyarefreetocatchupontheirlessonsduringtheirfreetime,whenevertheyare,providedtheyhavealaptopwithaninternetaccess.
Herearethedifferentschoolswhereyoucantaketrainingcoursesoncomputerprogramming:
1.CollinsCollegeCollinsCollegeislocatedinArizona.ItispreviouslyknownastheAlCollinsGraphicDesignSchool.Rightnow,theschoolfollowsemphasizedprogramsforvisualcommunicationsthroughgraphicdesign,computeranimation,anddigitalvideo.Theyalsooffere-commerceprogramming.
2.BrownCollegeBrowCollege’smaininstitutionisinMinnesota.However,theyareacceptingenrolleesfromvariouslocations.Theyareimplementingqualityprogramsincomputerprogramming.Theschoolemployscompetentfacultymembersthatimplementthem.
3.InternationalAcademyofDesignandTechnologyThiscareer-orientedinstitutionisdedicatedinprovidingacademicexcellencetotheirstudents.Computerprogrammingisnotaveryeasycourse.Butthisschoolisoneofthefewthattriestofindawaytomakethelearningprocessmorefunandrewarding.
4.AmericanInterContinentalUniversityTheschooloffersdifferentdegreesrelatedtobusiness,industrial,andgovernmentcareerpaths.Andalloftheirgraduateshaveadequatecomputerprogrammingunitstobackthemup.TherearealsoMaster’sDegreeandAssociate’sDegreeprogramsbeingoffered,ontopoftheschool’sBachelor’sDegrees.
5.ITTTechnicalInstIfyouwanttrue-bluecomputerprogrammingtraining,youhavetogototheauthority.TheITTTechInstisaspecialeducationalinstitutionthatfocusesoninformationtechnologycourses.TheschoolsoffersbothBachelor’sandAssociate’sdegree.
6.TechSkillsIfyouwanthands-oncomputerprogrammingandinformationtechnologycourses,youshouldgotoTechSkills.Theyareofferingdifferentprogramsrelatedtocomputersand
technology.TheirprogramsincludetrainingandcertificationforOracle,Microsoft,A+,Cisco,andawholelotmore.7.UnitekUnitekisthepremierproviderofcertificatecoursesforbothCISCOandMicrosoft.Theyarealsoofferingtrainingcoursesforthesetwo.Theycanprovideassessmenttestingforanybodysituatedacrossthecountry.Theyhavepreparedaskillstestonlineforaspiringstudentswhowouldwanttojointheirbootcamp.
8.KaplanUniversityKaplanUniversityisanonlineschoolthatoffersclassesaroundtheclock.Thisisoneofthebestschoolsofferingprogrammingcoursesforbothteensandadults.Theircurriculumisfocusedontheindividualizedcareerpathoftheirstudents.
Thesearetheeightdifferentcomputerprogrammingtrainingcentersyoucancheckout.Lookfortheschoolthatisequippedtoimproveyourskillsandabilitiesthemost.Thisway,youcanmakeyourfuturelookalotbrighter.
HowToImplementCreditCardComputerProgramming
Therearedifferenttypesandapplicationsofcomputerprogramming.Computerprogrammingisveryessentialanywherethere’sacomputeroradigitaldevice.Programsaretheprimaryrequirementbeforeasystemordevicecouldrun.Andinthisdigitalage,theyarerequiredbyalmostallapplications,includingweb-basedones.
Creditcardcomputerprogrammingisoneofthemostvitalformsofprogrammingthesedays.Thisispreciselywhatmakesonlinebankingande-commercepossible.Withthesesetsofprograms,peoplecanfreelybuythingsovertheinternet.Andmerchantscanalsogettheirearningeasilyfromtheissuingbanksofthecreditcardsusedtopaythem.
Themainrequirementofcreditcardcomputerprogrammingissecurity.Theseprogramsshouldbecreatedwithmultiplelayersofsecuritysoastoprotecttheinterestsofboththeonlinesellerandthebuyer.Creditcardprogrammingrequiresaseriesofintricatecommandsandtestrunsjusttoavoidtheloopholesintheprogramming.
Adequatesecurityisalsonecessarysothatidentitytheftandotherillegalactsarenotcommittedovertheinternet.Themainreasonwhyidentitytheftisrampantovertheinternetisbecausetherearenotsufficientsecuritymeasuresthatbothonlinesellersandbuyersfollows.Itisreallythetaskofcreditcardcomputerprogrammerstomakeindestructiblesecurityprogramsfortheirclients.
Identitytheftistheactofstealingone’ssensitivefinancialinformationsuchascreditcardnumber,socialsecuritynumber,name,address,andage.Allofthesearerequiredbeforeanonlinetransactioncouldpushthrough.Butbecauseoftheimprovingabilitiesofhackersandfraudulentindividuals,theysomehowmanagetofindwaysonhowsqueezeouttheinformationfromunsuspectingvictims.Theydon’trunoutofcreativewaysofenticingpeopletofreelygiveouttheinformationtheyneed.
Awebsitethatusesafaultycreditcardcomputerprogrammingprotocolisexposedtotherisksassociatedwithrefunds,fines,andevenlegalcosts.Butmorethanthat,thewebsite’scustomerswillbeveryirritatedwiththeirexperiencearisingfromthetransactionwiththewebsite.Worse,theycouldevensuspectthatthewebsiteispartofabigscamoperatingintheunderworldoftheinternet.Thisiswherethingscouldgetnastywithlegalfeesarisingfromsuitsfiledbytheaffectedconsumers.
Therefore,itisveryimportantforsmallandmedium-scaleinternetbusinessownerstoavailofcreditcardcomputerprogrammingservicesonlyfromreputablesources.Foralltheyknow,theprogramthattheyareusingarecreatedwithabackdoorthatonlytheprogrammersknowabout.Ifyoucanrequestforacustomizedprogrammingcompletewithdocumentationandalegalcontract,itishighlyrecommendedthattheyavailofthat.
Butifthatseemsalittletooexpensive,theycandefinitelytryoneofthemanythirdpartypaymentprocessorsinoperationtoday.Thisisagoodalternativetobuyingorcreatingaspecialsoftwareforyoure-commercewebsite.ExamplesofathirdpartypaymentprocessorarePayPal,GoogleCheckout,FirePay,andothers.Thesecompaniesareofferingtheprocessingofpaymentsincash,checks,andcreditcards.However,thesecompanieschargeacertainamountorapercentageofthepaymentreceived.
Thisdealshouldbejustfine,becausetheynormallyassumeallresponsibilitywhenitcomestotheproperhandlingorcreditcardchargerequests.Andforthemtodoitright,theyensuretheirclientsthattheyhaveaverycomplexcreditcardcomputerprogrammingsysteminplace.
LookingAdeptlyatProgrammingFunctionExamples
Beforelookingatthedifferentexamplesofprogrammingfunctions,itisbesttounderstandthepurposeanddefinitionoffunction.Afunctionisthemeansbywhichsomeonewhousesaprogramcanexecuteacodeblockwhichhastwopurposes:tofinishacertaintaskandtoreturnvalues.Althoughfunctionsareexpectedtoreturnacertainvalue,itisnotalwaysthatvaluesarereturned.
Afunctionisalsoconsideredasaprocedureinsomeprogramminglanguages.Ontheotherhand,functionsarecommonlyknownasanytermthatisbeingusedinreferringtonamesofcodeblocks.TakenotethatitistheCprogramminglanguagewhichsolelyusesthekeywordfunction.Functionsacceptrestrictions,theyalsoreturnvalues,andtheyaremaintainedonaseparatelocationfromthecodeofprimaryprogram.TheClanguageusesmainfunctionasthepointofentrytocertainprograms.
Functionscanshowupinasingleortwolocations.Thisisdependentonwhetherthefunctionissinglelineormulti-line.Havingasinglelinefunctionmeansavalueisreturnedaftertheperformancesofwork(inasingleline)whilethemulti-linefunctionisbroadenedoverdifferentlines.
Perhaps,themostcommonexampleofaprogrammingfunctionisamathematicalfunction.Logandtanareexamplesofmathematicalfunctions.Theothertwoknownfunctionsarestringfunctionsandthedatefunctions.
Simplydefined,aprogrammingfunctionallowsyoutoassigncertainvalueswhereresultscanbecalculatedinamatterofsecondswhilesavingyourselffromthetaskofdoingthecomputationsmanually.
Onthedeclarationorcallingofafunctionwhichhastwoormoreparameters,theuseofcommaisneededtoseparatethedifferentparameters.Onefunctiondeclarationcouldresemblethis:
functionprint_two_strings($var1,$var2){echo$var1;echo“\n”;echo$var2;returnNULL;}
Forthesefunctionstobecalled,avaluemustbeassignedtotheparameters,hence:Functioncall:Printtwostrings(“hi”,“guys”);Theoutputshouldappearas:higuys
OneothergoodwaytohaveactiveparametersistheuseofPHP’sintegralfunctionssuchasfuncgetargs,funcgetarg,andfuncnumargsfunctions.Thesefunctionsareabletocalculatearithmeticmeansofanyvaluesthatareplacedontothemandanoutputisderived.Anexample:
mean(35,43,3);
Theoutputisthen:Mean:27
Aprogrammingfunctionisusuallybestwhenitreturnssomevalueorinformation.Functionsdocalculations,indeed,butitisalsousefulinindicatinganyerrorsthatareencounteredanyfunction.Toreturnaninformationfromfunctions,youcanusereturn()statementonthespecifiedfunction.
AnexampleofscriptforPHPisthefollowing:
<?phpfunctionadd_numbers($var1=0,$var2=0,$var3=0){
$var4=$var1+$var2+$var3;return$var4;}
$sum=add_numbers(2,4,6)echo“Theresultof2+4+6is{$sum}?>
Theresultis:Theresultof2+4+6is12.
Takenotethat{}statementendedthecourseofthefunction.Ifmultiplevariablesaretobereturned,agroupofvariablesshouldbereturned,notasinglevariable:Anexample:
functionmaths($input1,$input2){$total=($input1+$input2);$difference=($input1-$input2);$ret=array(“tot”=>$total,“diff”=>$difference);
return$ret;}
Therearealsowaysofaccessingfunctionswithouthavingtotypeafunctionnameor{}syntax.Thiscanbedoneintwoways:thecall_user_funcorthecall_user_func_array.Onecomplexexampleisthefollowing:$one=“One”;$two=“Two”;$three=“Three”;$callback_func=“my_function”;$result=call_user_func_array($callback_func,array($one,$two,$three));echo$result;
Theseequationsmayshowasabunchofgibberishlettersandnumbersbutthesesymbolsactuallyaccounttomakeacertaintaskeasier.Andthat,forus,isthemostimportantthing.
ComputerProgrammingFunctions:GettoKnowWhatTheyAre
Whenitcomestocomputerprogrammingvocabulary,therearesomanyterminologiesthatpeoplewhodonothaveenoughknow-howtendtobecomelostandconfused.Onetermcouldbetranslatedintosomanydifferentnamesindifferentlanguages.Forexample,thefollowingwordsarequitesimilar:Functions,Programs,Subroutines,Procedures,Subprograms,orSubqueries.Theonlyquestionnowiswhichofthesetermscouldstandontheirown.
Theoreticallyspeaking,computerprogrammingavoidstheduplicationofanycodeinmultiplespaces.Forexample,oneinstitutionutilizingtheprogramscouldhavesomelibrariesofdifferentthousandsorevenmoreprogramswithbillionsofbasiccodelines.Withsuchintricatecase,duplicationcouldstillbeavoided.Letussaythatanerrormessageoccursbecausethecollectionnowneedstohaveanadditional‘member’.
AgoodexampleistheadditionofanotherglobalcurrencycalledtheEuro.Ifeachandeveryprogramwillbetoldtoupdateitselfbecauseofthisnewaddition,itcouldbecomplex.Butwithsub-programsorfunctionsspecificallydesignedtohandlediversesituations,thentheonlyfunctionthatwouldtakecareofthechangewouldbetheoneassignedtohandlesuchascenario.
Inthesamewaythatwewritenewprograms,manyofthecomponentsthatitwillneedarealreadyinexistence(e.g.accessingacertainfiletodigupacertaindata,computinginventoriesonhand).Incasessuchasthis,agoodalternativetowritingdifferentsourcecodelinestoworkonthenewfunction(andeventuallyreplicationofthecodeontonumerousotherprograms),thesub-programisaccessedtoworkonthespecifiedfunction.
Inahandfulofprogramminglanguages,therearecertainparametersthatarebeingpassedfromaspecificprogramnametotheprogramthatisbeingcalledtodoatask.Asecondaryprogramusuallymakesthevaluesalteredandthenthecontrolisbroughtbacktothemainprogram.Theseactionscouldbelevelsdeeper.Thevariousprogramsthatarebeingusedtocalleachotherarewritteninsomanyvaryinglanguages.Thereasonsbehindthisare:tohaveareasonablecontrollablefunctionpiecesandhavingvariouslanguagesmeansbeingbetterabletosuitdifferentfunctiontypes.
Tofurtherdefinetheusesofprogrammingfunctions,afunctionmayappearintwodifferentlocationsorevenasinglelocation.Thisdependsonwhetheritismulti-lineorsingle-linefunction.Afunctionthatissinglelineisonethatgivesbackavalueafterperformingtasks(allofthisinasingleline).Themulti-linefunction,however,isstretchedonmanydifferentlines.
Asinglelinefunctioncouldshowinacodeblockallbecauseitonlyrespondswhencalledbyacertainname.Themulti-linefunctiondoesotherwise.Ifitisamulti-linefunctionthatisbeingdefinedinablockofcode,thenthestatementsthatfollowthedefinitionaredoneinanon-sequentialmanner.
Initssimplicity,functionsarecodeblocksthatcanbereusable.Thesecodeblocksoftenreturnsinglevalues(sometimestheydon’t’).Commonexamplesofthesecodeblocksare
Mathematicalfunctions(e.g.tanorlog),datefunctions(figuresbetweentwodates),orstringfunctions(lookingforincidentsof1stringlocatedwithinanotherstring).Functionsarealsokeptseparatelyfromtheprimaryprogramcode.Alotofprogramminglanguagehasspecificfunctionswhicharedelegatedasentrypointstoacertainprogram.
Knowingwhatfunctionsareincomputerprogrammingcouldtakesometimetononcomputersavvyindividuals.Butthebasicsareallhere.Lookingatthemanycomplexthingsthatfunctionsdo,yougettoappreciatethethingsthatthecomputerdoesforyoueachday,don’tyou?
TheFutureofComputerProgramming
Computerprogrammingisalsoknownassoftwareprogramorsometimesitissimplycalled‘program’.Whatevernameit’scalled,itspurposeistoprovideinstructionstoacomputermachine.Ifthereisonethingthatacomputerneedstobeabletofunction(asidefromelectricity,ofcourse!),itwouldbecomputerprograms.Theexecutoroftheinstructionsisthecentralprocessor.
Computerprogrammingiscategorizedintotwofunctionallineswhicharetheapplicationandsystemsoftware.Andwhenitcomestoworkingonthesematters,theexpertsaretheso-calledcomputerprogrammersorsoftwaredevelopers.Butwherethereissoftware,thereshouldalsoexistthehardware.Generallyspeaking,hardwaredevicesareanyphysicalthingsthatarebeingusedincomputermanipulation.Examplesarecircuitboards,keyboardsandprocessors.Thedevelopmentofhardwareplaysamajorroleontheadvancementofcomputerprogramming.
Thisisbecausemostcomputerprogramsareembeddedinhardware.ThismeansthatsomeprogramsthatarestoredinthecomputercanbeaccessedbyaninitialprogramthatisstoredinitsROMforbooting.Theprocessofbootingistobeabletorecognizeandalsoinitializeallsystemfeatures.
Aftertheinitializationprocess,theprimaryprogramofthecomputerwouldloadtheoperatingsystemwhichwouldsettheprogramcounterstoinitiateusualoperations.Totallyself-sufficient,ahardwaredevicecouldhavesomeembeddedfirmwareincontrollingitsoperation.
Nowadays,thereareanumberofhardwaredevelopmenttoolsinthemarket.Alongwithsomesoftwaredevelopmentkitsarethehardwaredevelopmenttoolsthataredesignedtoallowuserstohavecontrolondesignflowprocesses.Therearemanydifferenttypestochoosefrom.Therearedevelopmentboardsforhardwarethatareusedinassistingdesignersforsystemsandsoftwaretovalidatedesigns.Forexample,therearetoolsthatareusedinSoCprototypes,ortherearetoolsthatcombineseveraldevicefeaturessuchasFlashprogrammerorMemoryemulator.
Goingbacktothebasics,therearenumerouscomputerprogramsthatwouldrunconcurrentlyonjustonecomputer.Thisprocessiscalledmultitasking.Andmultitaskingcanrunoneithersoftwareorhardwaresystems.
Operatingsystemsthataremodernareabletorunseveralprogramsthroughthesocalledprocessscheduling—thisissoftwaresystemthatswitchesthecentralprocessingunitamongstprocesses.Bydoingthis,usersareabletointeractwitheverysingleprogramwhileitisbeingrun.Astohardware,modernmultiprocessorsorcomputersthatareequippedwithmulticoreprocessormightrunseveralprograms.
‘Heardofthetermopensourcehardware?Thereiscurrentlynorealdefinitionofthistermbutthisisgenerallyunderstoodasopensourcesoftwareusagealongsidehardware.Also,thisisthefreedischargeofinformationonthehardware(releaseonschematics,size,designandotherinformation).Thisisthelatestinopensourcehardwareinformationandlogicdesignsharingisaknownopensourcehardwareform.
Designersofopenhardwareoftenmeettodiscussdesignproblemsandtheircorrespondingsolutions;theyalsoassisteachotherinlookingforparts;theyalsomeettoconverseaboutrecentdevelopmentsintheirworks.Sinceitisbelievedthatthedevelopmentofsoftwareisquitelimited(andmightevenhavereacheditspeak),thefocusonprogressionisnowonhardwaredevelopment.Withthemanyhardwaredevelopmenttoolsinthemarketnowadays,theworldcouldlookforwardtomoreinnovationsinthenot-so-distantfuture…ormaybeeventomorrow.
ComputerProgrammingandItsRichHistory
Ifit’sthehistoryofprogrammingthathastoberetold,thenitissafetobeginanaccountwiththedifferenceengineofCharlesBabbagewaybackin1822.Evenfromthetimewhencomputersweresosimple,theystillneededtohaveinstructionssothattheywillbeabletoperformtasksthatareinputtedtothem.Thissetofinstructionsiswhatisknowntodayascomputerprogramming.
Duringthedifferenceengine’sera,thegearsneededtobechangedmanuallywhichwouldthenresultintothecalculationsbeingmade.AllofthatwaschangedwhensignalsofelectricityreplacedphysicalmotionwiththeUSGovernment’s1942machinenamedENIAC.Theconceptofacceptingprogrammingwasalsofollowedbythismachine.
Tomakeprogrammingfaster,twovitalconceptswhichdirectlyinfluencedprogramminglanguagesweredevelopedin1945byJohnVonNeumann,whowasthenwiththeInstituteforAdvancedStudy.Thefirstconceptwasknownastheshared-programmethod.Thisconceptdictatedthatthehardwarehadtobenoncomplexandneednotbehand-wiredforeveryprogram.Intricateinstructionswereusedtocontrolthistypeofhardwarewhichmadereprogrammingquicker.
Thesecondconceptcalledthe‘conditionalcontroltransfer’gavebirthtocodeblockswhichcanbeusedevenindifferentordersortheso-calledsubroutines.Thenextpartoftheconceptwaslogicalbranching.Withthis,theconceptofhavingcodeblocksthatcanbeusedandreusedwasborn.
By1949,theShortCodelanguagecameout.Itbecamethemotherofelectronicdevicecomputerlanguage.Withthislanguage,theprogrammerwasrequiredtouse0’sand1’sinsteadoftheusualstatements.1951markedtheappearanceofcompilernamedA-0byGraceHopper.Thisprogramtranslatedallthe0’sand1’sforthecomputer.Thisgavewaytomuchquickerprogramming.
FORTRAN(FORmulaTRANslatingSystem)wasintroducedin1957whichwasalsothefirstkeylanguage.ItwasdesignedforIBMforscientificcomputation.ThislanguageincludedtheGOTO,DOandIFstatements.FORTRAN’sfortewasnotbusinesscomputing,though.Itwasagoodprogramfornumberhandlingbutnotforbusinesscomputations.
COBOLwasthendevelopedin1959.Itwasdesignedasabusinessman’slanguage.TheCOBOL’sprogramwascomparabletoanessaywherethereare4-5sectionscomprisingamajorwhole.Thismadeiteasiertostudy.
TheLISPlanguage(developedforartificialintelligencestudy)alsoknownastheCambridgePolishwasdevelopedin1958byJohnMcCarthy.Thisprogramminglanguageishighlyabstractandspecificthatiswhyitisstillbeingusedtoday.TheLISPcanstorelistsandmodifythemonitsown.
Inthatsameyear,theAlgollanguagewasproduced.ThisbecamethemotherofthePascallanguage,CandC++,andalsoJava.AlgolalsohadthefirstpropergrammarcalledtheBackus-NaarformorBNF.Algol68,whichwasthenextversion,wasaharderversiontouse.Duetothisdifficulty,Pascalcameintoexistence.
NiklausWirthintroducedthePascallanguagein1968.Itwasanecessarymeansofteachingthen.Itwasacombinationofthefollowinglanguages:ALGOL,FORTRANandCOBOL.ItwasalsoPascalthatimprovedthepointerdataform.Itsdownfallwascausedbyitslackofvariablegroups.Modula-2thenappearedbutCwasalreadypopularamongmanyusers.
CbyDennisRitchie(1972,usedbyUnix)wascomparabletoPascalbutitsprecursorsweretheBandBCPL.ItisalsobeingusedinWindows,LinuxandMacOS.OOP(ObjectOrientedProgramming)wasdevelopedin1970’suntilthe80’s.ThisdevelopedintotheC++languagein1983.Thislanguagecanmanipulatemanytasksallatthesametime.ThisisalsothechosenlanguagecoursesinAPComputerScience.In1987,Perl(PracticalExtractionandReportingLanguage)wasdeveloped.
Javasoonfollowedin1994.Ithasyetmanygoalstoreachespeciallywithitsslowrunningprograms.Buttherearehighhopesthatalotisinstoreinthefutureforthislanguage.MicrosofthasalsodevelopedVBorVisualBasicwhichuseswidgetsandthesearenowwidelyused.
Thefutureholdsmanymoredevelopmentsforcomputerprogramming.Itmayhavestartedonacrudemethodbutlookingatthelanguagesinusetoday,thereweresomanydevelopmentsthatwecanonlywonderwhat‘impossibilities’couldbemadepossibleverysoon.
InformationonComputerProgramming
Manyoftoday’scompanies,businesses,andorganizationsdependlargelyoncomputersandcomputersoftware.Nearlyallourbusinessandorganizationalprocesses,fromaccountingtoauditing,editingtowriting,andcommunicationstoscheduleorganizing,allworkbestwiththehelpofcomputers.Therearemanydifferentprogramsthatareassociatedwithalltheseprocesses,andtheydealwithhelpingcomputerusersmakespreadsheets,tallyearnings,checkforgrammaticalorspellingerrorsinadocument,andorganizeaperson’sschedule.Thesecomputerprogramsaremadeby,andareconstantlyupdatedbycomputerprogrammers.
Theprocessofcomputerprogrammingisbynomeanseasy.Itstartswithdevelopingaprogram:here,computerprogrammerswilloftenworkwithmarketersorevensociologistsorsocialpsychologists.Together,thisteam,alongwithmanyothermembers,willdeterminewhatcomputerprogramsamarketmightneedinordertofunctionbetter,whetherintheworkplaceorathome.Theprogram’sfeaturesaredeveloped,withthepsychologistsormarketexpertsmakingsuggestions,andcomputerprogrammerslookingatthefeasibilityofthesesuggestions.
Oncetheprogram’sfeatureshavebeendetermined,it’stimeforthecomputerprogrammerstogotowork.Theywillthenstartwritingtheprogram.Thisisdonethroughtheprocessofcoding,whereintheprogrammertypesinhisorherspeciallanguage,withtheaimofgivingrisetoaprogramthatwillfunctioninthewaythatitisdesired.Therearemanydifferentcomputerprogramminglanguagesthatareavailable:allofthemhavetheirownspecialfeatures,anditisnotunlikelyforprogrammerstobeadeptinonlyoneortwolanguages.Thiscanmaketheirworkeasier,becauseacomputerprogramminglanguageneedstobelearnedinenoughdepthtowriteitoutandidentifyerrorslater.
Oncetheprogramhasbeenwrittenout,ithastobetested.Thiscanbedone,atthefirstlevel,bythecomputerprogrammer:theprogrammerwilltesttheprogramondifferentoperatingsystems,withdifferentmicroprocessorspeeds,andthen,eventually,withbetausers.Inthepast,softwarecompaniesdidnotimmediatelyreleasetheirsoftwareunlessitwascompletelyfreefromerrors.Today,however,manyerrorsmightnotbepinpointedearlyon,sobetaversionsarereleased,oftenwiththerequestthatusersreportanybugssothattheycanbeimmediatelyfixed.
Oncetestinghasrevealeddifferentkindsofprogramerrors,theprogrammercanthendebugtheprogramortroubleshoottheseerrors.Theerrorswilloftenarisefromcodingerrors,andthecomputerprogrammerwilloftengobacktothecodeandmakethenecessarycorrections.Iftherearenocodingerrorsandtheprogramisstillnotfunctioningproperly,thentheprogrammermayhavetomodifythecodeorrewritetheprogramaltogether.
Acomputerprogrammerisalsoinchargeofupdatingaprogramandmakingsurethatitfitsagrowingmarket’sneeds.Inthiscase,thecomputerprogrammermayhavetocheckbackwiththemarketingteamandthesocialpsychologistinordertofindoutiftherearenewthingsthatthemarketmightbeinterestedin.betteryet,thecomputerprogrammercanaskforsuggestionsfromthemarketitselfinorderfortheprogramtofunctionbetter.
Formoreinformationoncomputerprogramming,talktoacomputerscienceexpert,orreadoncomputerprogramsandtheprocessofcoding.
TheBenefitsofComputerProgramming
Manyofthetechnologiesweenjoytodayaretheresultofcomputerprogramming.TechnologiesthatallowustoutilizeandenjoytheInternet,desktopandlaptopcomputers,mobilephones,videogames,eventhosethatrunautomatedprocessesinhomes,offices,banksandairportsareavailablethankstothegeniusofcomputerprogramming.However,theusesofcomputerprogrammingarenotlimitedtothesealone.Itactuallyhasnumerousbenefits,suchas:
Itallowstheprogrammertohaveabetterunderstandingofcomputers.Computersarerunbyprograms.Withoutprograms,computersarenothingbutsteel,plasticandalloy,essentiallyuseless.Withabackgroundknowledgeinprogramming,itmakesiteasiertounderstandhowcomputerswork,whichhelpsusersviewtheequipmentasmorethanatool.
Abetterunderstandingofcomputersalsoallowsuserstodeterminethehowsandwhysofthesystem,whichhelpsthembecomemoreeffectiveinusingtheequipment.Knowinghowprogramsworkmakesiteasytounderstandtheirlimitations,suchaswhattheycanandcannotdo.Thishelpsusersmaintainrealisticexpectationsaboutcomputersandlearnhowtomaximizetheirequipment.
Programmersareabletocreatenewer,moreusefulprograms.Computerprogrammingisresponsibleforcreatingveryvaluableprograms.Operatingsystems,forexample,theheartandsoulofeverycomputer,aremadeupofthousands,evenmillionsofsmallerprograms.Ifyouhavetherightskillsincomputerprogramming,itwillbeeasytoliterallybuildaprogramfromscratchandcreateaveryusefultoolthatmaybeutilizedinmanydifferentfieldsorindustries.
Programmersareabletocorrectbugsinaprogram.Abackgroundincomputerprogrammingwillallowyoutolookataproblematicprogramanddomorethanjustsithelpless.Ifthereisaglitchorbugintheprogram,itwillbeeasyforatrainedindividualtolookatthesystem,detectandlocatetheproblemandmakethenecessarycorrections.Testingtheprogramwillthenbeeasieronceyouunderstandwhatthedefectiveissuewas.
Itallowsprogrammerstoimproveanexistingprogram.Modifyingaprogramistherealmofprogrammerswhodealwithspecialistapplications.Computerprogrammers,especiallythosewhohavethetrainingandexperience,cantakealookatanexistingprogramanddeterminewhetherornotithasthenecessarycomponentstobecomeahighlyoptimizedprogram.Ifitisnot,theycanmodifytheprogramandimproveit,creatinganewer,betterversion.Thisisusuallydoneiftheprogramisproblematicoriftherearebugsinthesystem.
Itprovidesprogrammersmorecreativewaystoentertain.Thereisahugemarketforgamesandotherformsofentertainmentthatcomputerprogrammingcansupport.Newvideogames,mobilegames,animations,graphicsandfiletypesaretheresultsofprogramming.
Computerprogrammingisanexcitingcareer.Forindividualslookingforagreatfutureininformationtechnology,computer
programmingisanexcellentcareerpathtofollow.AccordingtothefiguresestimatedbytheBureauofLaborStatistics,thefieldofcomputersciencewillcontinuetogrow.Theneedforprogrammers,forexample,ispredictedtoincreasebymorethan70%by2010,whichismorethana50%increaseinthenumbercurrentlyrequired.
ComputerprogrammingandthefutureOneofthemostexcitingbenefitsofcomputerprogrammingisthatitoffersusaglimpseofthefuture.Thepossibilitiesbeingofferedtoday,suchasCGIs,voiceautomatedtechnology,artificialintelligence,moresophisticatedprogramsandthelikearejustafewofthethingswecanexpect.Withcomputerprogramming,manyaspectsofourliveshavegotteneasier,quicker,saferandmuchmoreinteresting.
ComputerProgramming:WorkingInaTeam
Computerprogrammingrequiressomeveryintricatework.Thisisthetypeofworkthatthrivesondetailsandpeoplewhoworkinthisfieldunderstandthattheabsenceofeventheminuteelementscanspellahugedifferenceintheoverallresult.Ifaprogrammerfailstocorrectthisproblem,itcanleadtoerrorsdowntheline.Asaresult,bugswillappearinthesystemanderrorswillemergelateron.Programmingisalsotaxingwork,requiringhoursuponhoursofwriting,testinganddebugging.Thisiswhycomputerprogrammingthrivesonteamwork.Withoutteamwork,asinglecomputerprogramcantakedecadestocomplete.
Althoughoneprogrammerhasthenecessaryskillsandknowledgetoworkcompetentlyonaproblemorevencreateaprogram,heorshecanonlydosomuch.Creatingthesourcecodeforanoperatingsystem,forexample,willrequirethousandsofmanhoursfromasingleprogrammerandmostprobably,heorshewillonlybehalfwaythrough.Therejustisn’tenoughtimeforoneoreventwoprogrammerstoworkeffectivelytoproduceausableprogram.
TeamprofileSowhatconstitutesateamincomputerprogramming?Ateamisusuallyheadedbytheteamleader,suchasasystemsanalystorseniorprogrammer.Theseniorprogrammerisusuallyapersonwhohashadyearsoftrainingandexperiencebehindhim.Histaskistosupervisetheteam,leadinbrainstormingandproblemsolvingsessions,delegateassignments,checkthecorrectnessofthecoding,dispenseadviceandrecommendationsandleadindebuggingandsoftwaremaintenance.
Theteamleaderistheonewhoholdstheteamtogetherandensuresthereisawellcoordinatedeffortthatwillleadtothedesiredresults.Allteammembersreporttohimanddependingonthesizeoftheproject,theteamleadermayhaveanassistantoranotherleadertoworkwith.
Theteamisusuallycomposedofjuniororentrylevelprogrammers,particularlythosewhomayhavethequalificationsbutnotthenumberofyears’worthofexperienceyet.Dependingonwhattheteamleaderwants,ajuniorprogrammermaybetaskedtoworkonhisownonmuchsimplerassignmentsorhemaybeassignedaspartofagroup.Thisgroupmayconsistofotherentrylevelprogrammersormoreexperiencedprofessionals.
Themembersofateamarechosenbasedontheirexpertise.Atthebeginningofaproject,theteamleader,alongwithothermoreseniorprogrammers,willtrytobreakdowntheproblemintocomponents,whichwillconsistoftasks.Taskscanvaryaccordingtocomplexityandfunctionandwillbeassignedtoateamwhohastheskillstocompletethem.
Thenumberofprogrammersinateamcanbeassmallas3oritcannumberinthedozensorevenhundreds.Again,italldependsonthesizeoftheprojectandtheavailabilityofresources.
Teamworkisanecessarycomponentofcomputerprogramming.Ithelpspoolagroup’sresourcesandformacoordinatedeffortinordertoproduceaparticularprogramorsoftware.Insomecases,suchasinexceptionallyhugeprojects,someteamsmaywork
alternatelyorinshifts,whichmakesitnecessarythatateamiscapableofsustainingcoordinationamongthem.
Teamworkdrivescomputerprogramming.Avastmajorityofthecomputerprogramsandsoftwareweenjoytoday–fromtheoperatingsystemstothevideogamestothetechnologythatrunourphones–wereproducednotbyasingleprogrammerbutbyateam.Whateveritisthathasmadeusingcomputersandotherformsoftechnologythatmucheasierandmoreconvenientissomethingweowetoateamofwell-trainedandhighlyskilledcomputerprogrammers.