background preloader

Learn to program

Facebook Twitter

Advanced Programming Languages. Introduction Research Syntax Semantics Static Semantics ( Type Theory ) Dynamic Semantics Semantic Related Developments Abstract Interpretation Program Transformation Decompilation Partial Evaluation Pragmatics ( Software Patterns , Generic Programming , Visual Programming , Persistence , Reflectiveness , Hyperprogramming) Semiotics Implementation Techniques: Garbage collection , Abstract Machines Some Conferences (not updated) People and Groups Teaching Introduction to Programming Languages Selecting First Programming Language Courses about Programming Languages Courses about Foundations of Programming Languages Courses about Language Processors Paradigms Comparing Programming Languages Functional Programming ( Haskell, ML) Logic Programming (Prolog) Object Oriented Programming (Java, C++, Smalltalk, ...)

Cross Paradigms : Logic-Functional , Object Oriented-Functional , Object Oriented-Logic My List of Programming Languages Selected Bibliography Selected Papers Selected Books Acknowledgments Backus Naur Form (BNF) C. The Art of Assembly Language Programming. 50 Places You Can Learn to Code (for Free) Online. If you’re curious about learning a programming language then you’re in luck: there’s no shortage of resources for learning how to code online. University-level courses, tutorials, cheat sheets, and coding communities all offer excellent ways to pick up a new language, and maybe even a new job, too. Read on, and you’ll discover 50 great places to learn how to code, for free, online.

University Many big names in education including MIT and Stanford offer programming courses, absolutely free. General If you’re just dipping your toes into programming, or you want to find a variety of resources, these sites offer several different ways to learn how to code. Community Learn how to code on these sites with a heavy community influence ready to offer help to newbs. Language Specific Drill down to the language you really want on these sites, offering expansive learning in one or two specific languages.

CIS Department > Tutorials > Software Design Using C++ The C++ Standard Library: Index. Everything you need to know about pointers in C. Style used in this document This is regular text. This is a , some code, and some sample output. This is a line of code. This is output you'd see on your screen. Definition of a pointer A pointer is a memory address. (Mmm, short paragraphs.) Starting off Say you declare a variable named . int foo; This variable occupies some memory. Now let's declare another variable. int *foo_ptr = &foo; is declared as a pointer to int. As I said, occupies some memory. Think of every variable as a box. is a box that is sizeof(int) bytes in size.

This is true of all variables, regardless of type. The point of that is that the pointer is not the variable! The pointer has a type, too, by the way. Multiple indirection . Interlude: Declaration syntax The obvious way to declare two pointer variables in a single declaration is: int* ptr_a, ptr_b; Given this, what is the type of ? *bzzt* Wrong! The type of is int. C's declaration syntax ignores the pointer asterisks when carrying a type over to multiple declarations. Lvalue . Network Theory Ltd. NetworkingProgramming.com. Getting Started. C++ Style Languages: C++, Objective-C, Java, C# - Hyperpolyglot.

A side-by-side reference sheet grammar and invocation | variables and expressions | arithmetic and logic | strings | regexes | dates and time | fixed-length arrays | resizable arrays | tuples | dictionaries | functions | execution control | exceptions | concurrency | file handles | files | file formats | directories | processes and environment | libraries and namespaces | user-defined types | generic types | objects | polymorphism | reflection | net and web | unit tests | debugging and profiling General version used The compiler version used for this sheet. show version How to get the compiler version. implicit prologue Code which examples in the sheet assume to have already been executed. hello world How to write, compile, and run a "Hello, World!

" file suffixes For source files, header files, and compiled object files. The gcc compiler will treat a file with any of the following suffixes as C++ source: .cc .cp .cxx .cpp .CPP .c++ .C block delimiters How blocks are delimited. statement terminator c++ January 2006. One more set of features that we need to learn, and then we get to go play. This is an important lesson -- we have reached the point where you can start doing some interesting stuff. So, just to get it under your fingers, there will be more than one assignment this time. Arrays In any sort of non-trivial application you are going to need to track collections of things. In the last program, you input one value and calculated one value. But, what if you needed to calculate -- and save -- 10 values, or 100? You'd never want to have to name those individually, it would just get too messy. This is where the notion of collections comes in. The first, the simplest, and BY FAR the most common sort of collection is called an array.

Suppose we wanted to declare an array of 10 integers. Int[] myArray; Now, in Java, an array is an object in its own right. MyArray = new int[10]; The number of elements in the array is called its dimension. Now, be very careful here. MyArray[0] = 0; myArray[1] = 1; int i; Introduction to Java Programming. 10 places where anyone can learn to code. Teens, tweens and kids are often referred to as “digital natives.”

Having grown up with the Internet, smartphones and tablets, they’re often extraordinarily adept at interacting with digital technology. But Mitch Resnick, who spoke at TEDxBeaconStreet, is skeptical of this descriptor. Sure, young people can text and chat and play games, he says, “but that doesn’t really make you fluent.” Mitch Resnick: Let's teach kids to code Fluency, Resnick proposes in this TED Talk, comes not through interacting with new technologies, but through creating them.

The former is like reading, while the latter is like writing. The point isn’t to create a generation of programmers, Resnick argues. In his talk, Resnick describes Scratch, the programming software that he and a research group at MIT Media Lab developed to allow people to easily create and share their own interactive games and animations. While we’re at it: bonus!

Perl. By Sam Hughes Perl is a dynamic, dynamically-typed, high-level, scripting (interpreted) language most comparable with PHP and Python. Perl's syntax owes a lot to ancient shell scripting tools, and it is famed for its overuse of confusing symbols, the majority of which are impossible to Google for. Perl's shell scripting heritage makes it great for writing glue code: scripts which link together other scripts and programs. Perl is ideally suited for processing text data and producing more text data. Perl has horrors, but it also has some great redeeming features. This document is intended to be informative, not evangelical. Dislike the official Perl documentation at for being intensely technical and giving far too much space to very unusual edge cases learn new programming languages most quickly by "axiom and example" wish Larry Wall would get to the point already know how to program in general terms don't care about Perl beyond what's necessary to get the job done.

Lists.