JavaScript • CoffeeScript • Ruby • Assembly • C • Elixir
Current Working Area
The Definitive C Book Guide and List - stackoverflow
C - Dennis Ritchie -
Dennis M. Ritchie's homepage -
Dennis Ritchie's video interview June 2011 -
Ken Thompson -
Unix - unix.org -
UNIX Programmer's Manual -
Unix First Edition Manuals
Ken Thompson - C Language - Systems Architecture, Design, Engineering,
and Verification
Good C IDE for Mac? - stackoverflow
Is there an easier way to type and compile C on Mac OS X? - stackoverflow
Welcome to Vim Vimeo - derekwyatt.org
How to run mvim (MacVim) from Terminal? install: $ brew install macvim --- $ mvim -v - terminal: version 7.4.258 - works! :-) - :quit - stackoverflow
GCC and Make - Compiling, Linking and Building C/C++ Applications
The Basics of C Programming - howstuffworks.com
C11 (C standard revision) WP
Computer Science for Everyone - 5 - Types of programming languages YT
The C Programming Language 2nd Edition (ANSI C) - Brian W. Kernighan, Dennis M. Ritchie - 1988 (1st Edition 1978)
Preface - 6
Chapter 1 - A Tutorial Introduction - 9
Chapter 2 - Types, Operators and Expressions - 35
Chapter 3 - Control Flow - 50
Chapter 4 - Functions and Program Structure - 59
Chapter 5 - Pointers and Arrays - 78
Chapter 6 - Structures - 105
Chapter 7 - Input and Output - 124
Chapter 8 - The UNIX System Interface - 138
Appendix A - Reference Manual - 154
Appendix B - Standard Library - 199
Appendix C - Summary of Changes - 214-217
p6 - 2nd Edition - Changes since creation of C 1978 - 1983 ANSI (American National Standards Institute) standard for C - this 2nd edition as defined by ANSI standard - ... - thanks - we use Bjarne Stroustoup's C++ translator extensively for local testing, and Dave Kristol's ANSI C compiler for final testing
p8 - 1st edition - C not very high level language nor a big one - but absence of restrictions and its generality make it more convenient and effective for many tasks than supposedly more powerful languages - ... - book ment to teach reader how to program in C - contains tutorial introduction to get new users started as soon as possible, separate chapters on each major feature, and a reference manual - all examples tested - besides showing how to make effective use of the language, we have also tried where possible to illustrate useful algorithms and principles of good style and sound design - book is not an introductory programming manual; it assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions - nonetheless, a novice programmer should be able to read along and pick up the language, although access to more knowledgeable colleague will help - thoughtful criticisms and suggestions of many friends and colleagues have added greatly to this book and to our pleasure in writing it - thanks - Kernigham & Ritchie
begin quick introduction in C - show essential elements of the language in real programs, without getting bogged down in details, rules, and exceptions - not trying to be complete or even precise (save that the examples are meant to be correct) - get reader as quickly as possible to the point where he can write useful programs, and to do that we have to concentrate on the basics: variables and constants, arithmetic, control flow, functions, and the rudiments of input and output - we are intentionally leaving out of this chapter features of C that are important for writing bigger programs - these include pointers, structures, most of C's rich set of operators, several control-flow statements, and the standard library - tutorial, by being brief, may also be misleading - more detailed descriptions ch 2
hello world ... - $ gcc helloworld.c -o samp --- $ ./helloworld --- terminal: Hello, world! - Wed 2015-2-25 3:58 First Hello, world! on C - ...
Yann Dauphin, Researcher and Bass player - Khan Academy :-) ♡
Difference between CC, gcc and g++? - stackoverflow
C: A Reference Manual (5th Edition) - March 3, 2002 by Samuel P. Harbison and Guy L. Steele Jr. - careferencemanual.com
howstuffworks.com - 41 online pages - TW 94.8K - written by Marshall Brain, Founder of howstuffworks.com - Yann Dauphin, Researcher and Bass player - Khan Academy :-) ♡
p1 - C popular, widely used to create computer programs - programmers around the world embrace C because it gives maximum control and efficiency to the programmer - benefits of learning C: read and write code for large number of platforms, everything from microcontrollers to the most advanced scientific systems can be written in C, and many modern operating systems are written in C - jump to C++ easier, C++ extension of C - artikle walks through entire language and shows how to become programmer starting from beginning - we will be amazed at all of the different things we can create once we know C!
p2 - ...
p3 - Start Hello world, write in editor, save file as helloworld.c:
#include
int main()
{
printf("Hello world!\n");
return 0;
}
compiling steps on UNIX machine: type gcc helloworld.c -o helloworld (if gcc does not work, try cc) - this line invokes the C compiler called gcc, asks it to compile helloworld.c and asks it to place the executable file it creates under the name helloworld - to run the program, type ./helloworld (or, on some UNIX machines, helloworld) - should see the output "Hello world!" when we run the program. Here is what happened when we compiled the program: (if we mistype the program, it either will not compile or it will not run - edit it again and see where we went wrong in our typing - fix the error and try again)
p4 - explain Hello World ...
p5 - VARIABLES - int b; // type integer --- b = 5; // stores value 5 --- standard types for variables: int - integer (whole number) values --- float - floating point values --- char - single character values (such as "m" or "Z")
p6 - printf statement allows you to send output to standard out - for us, standard out is generally the screen (although we can redirect standard out into a text file or another command) - learn more about printf - create file add.c:
#include
int main()
{
int a, b, c;
a = 5;
b = 7;
c = a + b;
printf("%d + %d = %d\n", a, b, c);
return 0;
}
compile with gcc add.c -o add --- run with ./add (or add) - explanation: ... --- = is assignment operator - %d are placeholders for variables at end of line, C matches up the first %d with a and substitutes 5 there etc. - prints line to screen: 5 + 7 = 12 --- +, = and spacing (repeated spaces will also be printed) are part of the format as specified by the programmer
p7 - C ERRORS TO AVOID - Using the wrong character case - case matters in C, cannot type Printf or PRINTF, it must be printf - forgetting to use the & in scanf - too many or too few parameters following the format statement in printf or scanf - forgetting to declare a variable name before using it
--- Reading user values:
#include
int main()
{
int a, b, c;
printf("Enter the first value:");
scanf("%d", &a);
printf("Enter the second value:");
scanf("%d", &b);
c = a + b;
printf("%d + %d = %d\n", a, b, c);
return 0;
}
man scanf (opens manual) - q quits - man printf or man 3 printf -
gcc --version
C syntax WP
C comments: // one line --- or /* multi-line or inside of code-line */
Show file in shell: cat hat tail tac (reverse output)
Syntax across languages
cprogramming.com - Tutorials C C++ Java Game_Programming Graphics_Programming - Alex Allain TW 2K - works at Dropbox - Computer Science teacher at Harvard
The Definitive C Book Guide and List -
The Definitive C++ Book Guide and List - stackoverlow -
Bjarne Stroustrup: Why the Programming Language C Is Obsolete YT - The Essence of C++ YT
Compiled vs. Interpreted Languages - stackoverflow
C Language Tutorial
High-level programming language WP - 1960s high-level languages using compiler called autocodes - examples are COBOL 1959 (common business-oriented language), introduced records (structs) and Fortran 1957 (Formula Translating System) - First high-level language was Pankalkül 1948 - Algol 1958 (Algorhythmic Language), introduced recursion, nested functions, lexical scope, distinction between value and name parameters and their corresponding semantics, structured programming concepts while-do if-then-else, syntax first to be described by a formal method called BNF (Backus-Naur form) - Lisp 1958 (LISt Processing), introduced a fully general lambda abstraction - unlike low-level assembly languages, high-level languages have few, if any, language elements that translate directly into a machine's native opcodes - popular high-level programming languages today may include C++, Java, Python, Visual Basic, Delphi, Perl, PHP, ECMAScript, Ruby and many others - some decades ago, C language, and similar languages, were most often considered "high-level" - assembly language was considered "low-level" - today, many programmers might refer to C as low-level, as it lacks a large runtime-system (no garbage collection, etc.), basically supports only scalar operations, and provides direct memory addressing - it, therefore, readily blends with assembly language and the machine level of CPUs and microcontrollers - alternatively, it is possible for a high-level language to be directly implemented by a computer – the computer directly executes the HLL code - lacks an assembler, having only a compiler, with machine code simply being a bytecode representation of a HLL program - HLLCAs are intuitively appealing, and have had occasional popularity over the years, but have been very minor compared to general-purpose computers that are not adapted to any particular language - HLLCAs date to the Burroughs large systems (1961), which was designed for ALGOL (1960), and the most well-known HLLCAs are the Lisp machines of the 1980s (for Lisp, 1959) - at present the most popular HLLCAs are Java processors, for Java (1995), and these are a qualified success, being used for certain applications
Timeline of programming languages WP -
History of programming languages WP
C++ WP -
old
aggregation - Ansammlung, Anhäufung, Verdichtung, Gesamtsumme, Aggregat, Aggregation, Vereinigung, Zusammenfassung - ch1
hence - daher, deswegen, folglich, demzufolge, infolgedessen ab jetzt ... ch2
implementation - Umsetzung, Ausführung, Anwendung, das Implementieren, Inkraftsetzung, Durchführung ...- ch1
indispensable - unabdingbar, unerlässlich, unumgänglich, lebensnotwendig ... - ch1
instance - ch1
leverage - zum Durchbruch verhelfen, wirksam einsetzen ... - ch1
parentheses - Klammern
plrthora - Unmenge, Vielfalt, Überfluss ... - ch1
property - Eigenschaft, Merkmal ... - properties - Verhalten, Bestandteile, Wirkung, Wirksamkeit ... - ch1
notion - Idee ... - ch1
tweak - optimieren, zwicken - ch1
<span> - spanned text (small) --- <div> - division (large)
stackoverflow.com
- non-breaking space
key bindings: Meta = command key
shift+command +space =   (non-breaking space)
+0 = col orange
--- +2 = duplicate file
--- +3 = screenshot (Mac)
--- +6 = view EOL markers
--- +7 = search
+8 = col red
+9 = col light_blue
+a = <a href> URL link
+c = id="c"
+d = day session
+h = <h3> heading
+i = <img> image
+j = <script>
+k = <kbd> keyboard monospace
+o = ♡
+p = <p> paragraph
+s = save as
+x = typeof
+> = //> command >
shift + return = <br/> break
command + < = jump to
Shift + command at a color code or name = shows color in Komodo :-)
Chrome command + alt/option + j = JS Console
- --- ß
ß - ...
: - Ö
; - ö
< - ;
> - :
+ --- `
? - _
_ --- ?
' - ä
" - Ä
[ - option/alt 5
] - option/alt 6
Google Chrome Developer Tools - JavaScript Console refresh: window.location.reload(true);
Basic Shell Commands - Jeremy Sanders - October 2011
An A-Z Index of the Bash command line for Linux
cd - home directory (change directory)
cd folder-name - change directory to folder
cd dir1/dir2/dir3... - change directory to folder
eject - eject removable media
exit - exit the shell
pwd - show working directory
date - shows current day, date and time GMT
# - comment
mkdir folder-name - make a directory (folder)
rmdir folder-name - remove a directory (file)
rm file-name - remove file
ls folder-name - shows list of files or folders
process.exit() - exit / quit
control + c - exit / quit --- press twice!
dc - desc calculator --- works with postfix notation; rather like many HP Calculators - basic arithmetic uses the standard + - / * symbols, but entered after the digits - so entering: 100 0.5 * p will return 50 --- q - quit
echo "something" - shell output: something
echo something - something
echo 5 + 4 --- 5 + 4
echo $PATH - shows path
nano - simple text editor, exit with command + x (^X), save etc.
bzip2 - compress or decompress named file(s)
cal - display a calendar
clear - clear terminal screen
rename - rename files
sudo - sxecute a command as another user
uname - print system information --- Darwin
whoami - print user-name
which - search the user's $path for a program file
who - print all user-names
### - comment / remark
1/1 - one whole
7/8 - seven over eight, seven out of eight, seven eighth
altitude - Höhenlage, Höhe ...
numerator - Zähler
perimeter - Umfangslänge
denominator - Nenner
elevation - Bodenerhebung
gravel - Kies
scope - Bereich, Spielraum, Umfang, Geltungsbereich, Reichweite, Handlungsspielraum, Abgrenzung, Aufgabenbereich, Bandbreite, Betätigungsfeld, Entfaltungsmöglichkeiten, Rahmen, Raum, Regelungsbereich ...
Go (programming language) WP -
golang.org - Ken Thompson, Rob Pike, Robert Griesemer, Google Inc. - 2009 - filename.go -
Google I/O 2012 - Meet the Go Team YT -
Google I/O 2012 - Go Concurrency Patterns - Rob Pike YT -
Why Learn Go? Rob Pike YT
List of programmers
UNIX 1970 Assembly - 1972 C
C 1972
C++ 1983
Python 1991
HTML 1993
CSS 1994
PHP 1995
Java 1995
Ruby 1995
JavaScript 1995
CoffeeScript 2009
Computer science -
Charles Babbage 26.12.1791 – 18.10.1871 England -
Ada Lovelace 10.12.1815 – 27.11.1852 England -
Programming language - syntax (form) and semantics (meaning)
- the term computer language is sometimes used interchangeably with programming
language - 1943 Plankalkül - 1949 Short Code - 1950 Autocode using compiler to convert automatically
into machine code - Flow-Matic 1955 - Cobol - Aimaco - Fortran
APL - Algol - Simula and Smalltalk (object-oriented) - C 1969 - Prolog (logical) 1972 - ML and
Lisp 1978 - most modern programming languages count at least one of them in their ancestry
1980s consolidation - C++ Ada Pascal Modula2 PL/I
Growth of Internet mid-1990s created new languages - Perl dynamic websites -
Java server-side - Microsoft's LINQ - JavaScript 1995
4GL (4th generation programming languages) domain-specific languages - SQL returns sets of data - Perl can hold multiple 4GLs or JavaScript
programs
If language can run its commands through an interpreter (such as a Unix shell or other command-line interface), without compiling, it is
called a scripting language
Programs can 1) occupy more programmer hours 2) have more code lines 3)
utilize more CPU time - difficult to determine most widely used programs:
COBOL strong in corporate data center - Fortran in scientific and
engineering applications - Ada in aerospace, transportation, military, real-time and embedded applications -
and C in embedded applications and operating systems - other languages
regularly used for different applications - Combining and averaging information from various internet sites,
langpop.com claims that in 2013 the ten most popular programming languages are (in
descending order by overall popularity):
C 1972 by Dennis Ritchie
Java 1995 by James Gosling and
Sun Microsystems
PHP 1995 by Rasmus Lerdorf
JavaScript 1995 by Brendan Eich
C++ 1983 by Bjarne Stroustrup
Python 1991
Shell 1950s
Ruby 1995
Objective-C 1983 by Apple Inc.
C# 2000 by Microsoft
11-Assembly (
What is int 80h? by G. Adam Stanislav) -
12-SQL 1974 by Donald D. Chamberlin and Raymond F. Boyce -
13-Perl 1987 by Larry Wall -
19-Actionscript (dialect of ES and JS used for Flash Adobe) -
20-Coldfusion by Adobe, Jeremy Allaire and JJ Allaire -
23-Pascal 1970 by Niklaus Wirth -
25-Scheme 1975 (2nd dialect of Lisp) by Guy L.
Steele and Gerald Jay Sussman - 27-Lisp 1958 by Steve
Russell, Timothy P. Hart, and Mike Levin - 29-Erlang
1986 by Ericsson - 30-Fortran 1957 by John Backus -
34-Smalltalk 1972 (dev since 1969) by Alan Kay, Dan Ingalls, Adele
Goldberg etc. - ...
Comparison of programming languages -
Python not a standardized
language?
Top 10 Programming Languages - Spectrum’s
2014 Ranking
What Is The Most Valuable Programming Language To Know For The Future And Why? - Forbes
Redhead Talk - G. Adam Stanislav, born 23.4.1950 in Bratislava, Slovakia - whizkidtech.redprince.net - redprince.net - pantarheon.org
Bjarne Stroustrup: The 5 Programming Languages You Need to Know
- C++ Java Python Ruby JavaScript C C# - and one of the functional languages -
Why I Created C++
Larry Wall, creator of Perl: 5 Programming Languages Everyone Should
Know - JavaScript Java Haskell C (Python Ruby) Perl
Ruby Conf 2013 Living in the Fantasy Land by Yukihiro "Matz"
Matsumoto - creator of Ruby
Five Best Programming
Languages for First-Time Learners - lifehacker.com
Are
JavaScript and C++ too similar to learn at the same time? - stackoverflow.com
30 Most Influential People In
Programming
Java -
java.com - JVM
Java virtual machine -
James Gosling -
nighthacks.com -
Oracle Academy
What is a good road map for
learning Java? - reddit.com
10 Ways to Learn Java in just a Couple of Weeks -
codingbat.com -
Java Puzzles Joshua Bloch
What is
the best way to learn Java from scratch and how many hours do I need to put in? - quora.com
Top 10 Most Influential Software Programmers -
how can i become a good programmer -
code.org
Top 10 Java Books you don’t want
to miss
How do I learn to code? What
language should I start with? - quora.com
Structure and Interpretation of Computer
Programs - second edition - Harold Abelson and Gerald Jay Sussman with Julie Sussman -
Lisp -
Scheme
14-Year-Old Prodigy Programmer Dreams In Code - Santiago Gonzalez -
hicaduda.com -
Is Prodigy Programmer The Next Steve Jobs?
Information technology (IT)
Session 1 - Tue 2015-2-10 London 1:45-4:10=2:25 R CoffeScript ♡♡♡ Alex MacCaw - Jeremy Ashkenas - Backbone.js Underscore.js = 2:25 = 2:25 total time
January 2015 - 31 Sessions, 279:35 total time = (34d+) 7:35 total time - (+ December 2014 =) 344:40 = (43d+) 0:40 complete total time
December 2014 - 9 Sessions, 65:05 total time = (8d+) 1:05 total time
________ Start February 2015 --- End of January 2015 ________