Computer Programming Summary

Submitted by reb on Mon, 03/21/2016 - 16:30

logo


Introduction

* This article will list of some of the most basic lingo/terminology associated with Computer Programming, in common English. 
* This article will focus on PureBasic Programming Environment, and will contain my notes as I learn it.
* This article is not professional, and not associated with anything.

 

 


What is programming?

* Creating software, by means of writing computer code and designing ways to interact with information.
* Using one of the many descriptive computer languages to create software. 

 

 

 

What is Pure Basic? Facts.

 

* BASIC is a language invented in 1964. It became the standard computing language for microcomputers in the late 1970's and 1980's. The goal was to make programming very easy, friendly, with small file sizes. BASIC has evolved greatly, is still in use today, and has many versions, from simple to technical. PureBasic started in the year 2000, as a commercially distributed (you pay for it) programming environment. It runs on Windows, Linux, and Mac OSX. PureBasic has lifetime updates. PureBasic has an extensive set of over 1200 native commands, and direct access to specific OS "API" parts. PureBasic is used to create tools and games in a fast and easy way. It comes with it's own compiler and powerful debugger. 

 

 

 

Explaining Programming to a Child

* Work in progress... Human language, what I'm saying right now, is made of words. Each word has a special meaning, like Cat or Cartoon. The same goes for computers, they use a math language. Computers don't speak English, they speak math. It's different than learning Spanish or French. Computer language gives a computer chores to do, and it has to explain every tiny detail to a computer, because computers are not creative. Computers don't know what a Cat is, or a Cartoon. When you write an essay at school, your classmates know what you are saying because they have had similar experiences. Computers don't understand if you tell them "show me cartoons". In computer language, you have to explain what "Show" means, and then "me", and what "Cartoons" are, and how to get them, and how long to show them for, and then you have to explain what color is, and you have to tell it what music is, and this goes on and on. A human baby has a lot more common sense than a computer. A computer has no emotion or thoughts, because it has no brain. It can only do what it has been programmed to. Computer scientists have collected ways of telling computers what to do, and call them libraries. This makes the job of a computer programmer easier, because he can copy the libraries for his own computer. When you write a computer program, you have to tell the computer every tiny detail about that program, and no matter what you do, the computer will not understand some of the things you told it to do, so you find ways to explain to it better. If you try to explain a car to a caveman, he will eventually get an idea in his head what a car looks like, but he has no idea, so you have to add more detail and tell him how a car runs and works and every detail about the engine and all the parts. Computers need every part of their language to be accurate, or they get confused and break. A computer will try to put a square block into a round hole, unless you describe in detail how to do it, and it won't learn. Every time you want it to do something, you have to tell it where to find the instructions to do it. Computer programming started out by punching holes in paper, and the computer would do different things depending on where the holes are. It was a basic calculator. Now today's computers can play movies and video games, and they talk to each other in computer language. 
* Get a jar of jam, butter knife, and a loaf of sliced bread. Have your child explain how to make a sandwich. Intentionally misinterpert what they say, such as placing the jar onto the bread, or twisting the lid without holding the jar.
* Creating computer programs by making lists of instructions for the computer to follow.
* It's like a robot on a TV show who will always do exactly what the someone tells it to do, and when you don't get the instructions just right, the robot does something silly. 
* You take a big problem and you cut it into pieces. Same with math. Then you cut those pieces into smaller pieces. You repeat this task untill the task is so small that you say: "I know how I can make the computer do that".
* A computer's a box with an IQ smartness of 5, which processes math quickly. It doesn't know how to think or reason. All it does is exactly what the program tells it to, without regards for the consequences. 
* Programming is like dealing with a extremely bright, devious child who will do everything you tell him to do. What you want him to do doesn't matter; only what you tell him. He speaks in a unique way, which you'll have to learn. Other people have been telling him to do things, which conflict with what you're telling him. 
* You instruct it on how to take certain inputs and produce certain output.
* Figuring out how to represent real-world problems as math, and how to explain the issue to a box with an IQ of 5 clearly enough that it will do what you want done.
* Programming is like building a factory or an assembly line. If you change one thing to something else, you'll have to change ten other things. 
* Strict directions to be followed. Loops (repeat so many times). Conditionals (for size L do this, for size S do that).
* Programming is like building a robot. Blinky lights, wires, gears, circuit boards. You get experienced after awhile.
* Programming is like building a really big lego car. You have to build it a bunch of times before it's perfect.
* Programming is telling 30 people to line up based on height, and watching them walk into each other for a few minutes until you sort them better.

 

 

 

 

Some of the Many Methods of Programming

* C++
* PureBasic
* Adobe Flash
* Adobe Air: Interact, upload, and monitor Web sites like Flickr and eBay without a browser.
* Sun Java
* Sun JavaFX
* CSS
* Perl
* AJAX (Java + CSS)
* .Net
* Mozilla’s Prism
* GoogleGears
* Microsoft Silverlight 
* HTML5
* CSS

 

 

 


Common Programming Lingo/Terms

* API: 
* Code: 
* Compiler: 
* Compiling: 
* Object Oriented Language: 

 

 

 


What gadgets use software programs?

* full size and Portable Game consoles, such as SonyPS3 and PSP. Even the Wii and DS.
* Operating systems such as Vista, OSX, and Ubuntu.
* Smart Cell phones.
* Tablet PC's and micro pc's.
* Internet Devices.
* Refrigerators with built in screens.
* WebTop OS's
* Automobile dashboard displays
* GPS Devices
* Fancy Dishwashers, Washing machines, and smart appliances which have to made decisions and take commands.

 

 

 


Future of Programming Languages

*

 

 


Status of Current Programming Languages (as of 2011)

* 2011 - HTML5 is really taking off, and now available in major Internet Browsers.
* 2011 - Adobe announces Flash will no longer be supported in many portable devices.

 

 


History of Programming Languages

*

 

 

 

Special Thanks

* Jim Barber my dad who introduced me to Pure Basic, and bought me a copy of it.
* Clint Bridges, one of my dads buddies who has always encouraged.
* George Fragos of Fresno CA, taught me much about the theory of programming at a coffee shop in Fresno California.
* TED.Com has inspirational videos breaking down how to program.
* Ubuntu Linux made linux a lot easier for me to use.
* Kahn Academy has excellent videos on learning math.
* Friends, loved ones, open source projects, and the internet community. 

 

 


About the Author - Royce Barber

* Royce Barber, age 28, knows little of programming, and is learning just now.

 

 

 

Royce's Programming Adventure

        * December 10, 2011. Night 1. Dad asked what I might like for Christmas, and suggested PureBasic Programming Environment. I thought it over carefully, and decided it's time I learn something technical. I'm 28, a tech geek, and don't know programming, how sad is that. Up until now I roughly do photoshop cs4 and video game modding, plus pc building and powertools but that's hardware. Dad sent me paypal funds to purchase PureBasic on Dec 10, 2011. It was a small bunch of files for various operating systems. It installed lightning fast, and was a little yellow window with three boxes. I started a website page at my GooglePages site to log this learning adventure. I know well about the theory and reasons for programming, I've studied it often, but never gave it much of a chance. I've used NeoBook, and played with VisualBasic, but didn't actually input code. I look forward to the raw code side of computers.
        * December 15, 2011. Siiiiigh what a PAIN this has been! Dad spent a hundred bucks on PureBasic, and spent another hundred so I could get it. They have NO support of any kind. No English speakers roam the official IRC Chat Room. The documentation is very limited. The programmers may or may not speak English. No one responds to the support email. It runs okay on Windows7 but the point is to run on Linux and OSX also. The program says it works on Linux; yet it does not, unless you dig around forums for weeks looking for the right collection of scripts, and then you have to know to use the beta version of the program, and then you have to fail at installing the program ten times before it'll install, and then the examples it comes with don't all work. But the up side... Dad modified a forum script, so while I cant get it working in VirtualBox, it's working so far on my linux computer. Ubuntu 11.10 32bit. It's taken four days, and about 12 hours total, and all my efforts amounted to garbage until Dad fixed the script to make PureBasic work right. If you simply run it on Linux, it'll open fine, but it won't load the PB example files. But now it seems to all be working, and I like the latest Ubuntu 11.10 a lot. PureBasic has a cute, simple interface, and looks like an amazing programming environment. If it had installed easy, and if the developer had responded to the email, then I wouldn't have anything bad to say about it. But this has been hell downloading four different versions of linux, reformatting my linux computer three times, installing linux in a VirtualBox about three times, and messing with all sorts of forums. I'm still excited to start programming. Hardly anyone uses Basic for programming, but PureBasic seems like a new way of going about it, and in theory I'll be able to run my software on Windows/Linux/OSX, and maybe some day Android OS. Dad has been very responsive and helpful through this process. He's using Linux right now because his company wants him to develop audio software for Linux. He found Lubuntu to be a very fast version of Linux. People have said they got PureBasic to work in Ubuntu via VirtualBox, but I doubt it does work, and it's too slow to use for programming. It's 2am again. I've been staying up until 4am trying to learn linux and PureBasic at the same time. Linux is getting easier, but isn't entirely stable, and 95% of the software for it is just flat-out awful, horrid, useless. PureBasic is not opensource, it's very expensive, so that's what is frustrating. The developers are laughing all the way to the bank. I don't want a refund, I want the dang thing to work...and an apology from the developer for saying it works in Linux, yet not giving any clue as to how to make it work. I wonder if the developer knows what trouble he caused...if he is still alive out there somewhere..? To install PureBasic on Ubuntu... Buy it and download it at www.purebasic.com, then go to www.purebasic.com/beta and download the beta file. Replace the "purebasic" file with it's beta version. Then run the script my dad Jim made, which is available if you contact me. I think that's all it takes. Before that script, it was impossible for it to work. 
        * December 16, 2011. Printed the 200 page PDF documentation. Double sided printing, with 4 pages per side of paper. Studying. Added "Royce's Future Software Company" to the "Learn Programming" section of my website. Today my dad ended his contract with an international audio chip company. 

 

 

 

 

Royce's Future Software Company: ZUME

Price
* Pricing Model 1: ClosedSource. Free 2 month demo. $1.00 USD provides a software and 12 months of updates. Easy fast registration. Free to public schools. 
* Pricing Model 2: ClosedSource (or open?) Code. NonProfit organization. We accept donations. Free to public schools. 
* Pricing Model 3: ClosedSource Code. Free software. Limited support and community involvement. Free to public schools. 
* Payment alternatives: Community involvement. Achieving goals.

Software I'd Like to Make: 
* Physics Simulation. Such as Gary's Mod. Random city generator. 
* Nature Simulation: A 3d living world with seasons. Random Earth Generator. 
* GoogleEarth-like with nature/seasons simulation. 3d animals/creatures according to statistics, caverns. Earth geography timeline.
* Zoomable vector flow chart. 
* Tabbed organizational software. A mix of MS OneNote, MS Access, MS Excel, Neobook. Huge database support. Integrated interface designer, to make quick easy software. Zoomable "cork board" of all your live projects/taks (photo editing, programming, video game, etc), with a trash heap at the bottom.
* Movie file to Animated Vector. Idea for YouTube? Possibly built into HTML6? 30GB MP4 to 10MB Animated SVG? 
* 3D Modeling: Like Google SketchUp/Cad. 
* 3D Modeling Organic: Like clay, zBrush. 
* Life Improvement: Speed Read, Memorization, Organization, Skill Enhancement, Goals, Mental and Physical Health, Access to Education/Counseling/Help/Tutoring/Online Courses.
* Bible Study Activities: Timeline, Ways to Memorise, vector graphics, eBook features, eBook support, Sunday School Activities, etc.
* Programming for Children: Simple math, fun graphics, create fully featured software. 

Full Documention: Simply written for young learners. Grammar checked. Not wordy. Audio book of developers discussing how to use facinating new coding styles and theories. 

Customer Support: Forum, IRC Live Chat (with easy website interface), Email. Phone if finantially possible. 

Advertising: Social websites like Twitter, Facebook, DeviantArt Fan Art Community, Flickr, etc. Contests. X-Prizes. Community events, trade shows, collaborations with Costco/Walmart/AppleStore/etc.

Disability Features: Touch-screen buttons mode? Black/white mode?

OS Independent: Linux, Win7, Win8, OSX, iOS, Android. 

Community Modding: Extensions API, Color Themes, Flexible multi-function features and interface.

Misc Feature Ideas: Tiny file size, pretty, scallable graphics for old pc's, semi crash proof, Internet/Wifi/Blutooth Sync Between PC's, Goal Achievements, Gamepad support.

Organization Services: Software. NonProfit Consulting (What Not to Do). 

 

 

 


Internet Resources
* Wikipedia for PureBasic. 
* Wikipedia for Computer Programming.
* Wikipedia for Computer Software.
* Wikipedia for Outline of Computer Programming.
* Wikipedia for Programmer.
* Wikipedia for Programming Paradigm. 
* Wikipedia for List of Educational Programming Languages.
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikipedia for 
* Wikia for Programming.
* PureBasic Official Website.
* PureBasic Official News Blog.
* PureBasic Official Online Documentation.
* PureBasic Official Support Forum.
* PureBasic at Open Directory Project.
* Pure Basic's Official Recommended Links.
* YouTube Video Search for PureBasic.
* MIT's incredibly highly rated book "How to Design Programs" (free online) and in-progress 2nd Edition (also free online).

 

 

 

Misc Notes
*

 

 


Sources Cited
* Mostly Wikipedia with it's various sources.