background preloader

10 More Puzzle Websites to Sharpen Your Programming Skills

10 More Puzzle Websites to Sharpen Your Programming Skills
My recently published Six Revision guest post, 10 Puzzle Websites to Sharpen Your Programming Skills, got a great response, hitting the front page of Hacker News, Reddit, and doing fairly well on Digg too. Lots of comments were left pointing out some sites which weren't included in my list, so I'm following up here with a list of 10 more top programming puzzle websites: 1. Code Chef Code Chef has lots of practice puzzles, and monthly competitions with cash prizes. The Sphere Online Judge contains 1871 different programming problems. 3. The aim with code golf is to submit a solution using the fewest characters possible.Solutions can be submitted in Perl, Python PHP or Ruby. 4. Over 2600 great programming puzzles, and also regular contests. 5. An online competition site that automatically checks your submissions. 6. The code jam is a programming contest from Google. 7. 8. A British version of the computing olympiad. 9. 10. A site dedicated to practical Java programming problems.

How to write a simple operating system in assembly language (C) 2013 Mike Saunders and MikeOS Developers This document shows you how to write and build your first operating system in x86 assembly language. It explains what you need, the fundamentals of the PC boot process and assembly language, and how to take it further. The resulting OS will be very small (fitting into a bootloader) and have very few features, but it's a starting point for you to explore further. After you have read the guide, see the MikeOS project for a bigger x86 assembly language OS that you can explore to expand your skills. Requirements Prior programming experience is essential. For this guide we're using Linux. Installing Linux is very easy thesedays; grab Ubuntu and install it in VMware or VirtualBox if you don't want to dual-boot. sudo apt-get install build-essential qemu nasm This gets you the development toolchain (compiler etc.), QEMU PC emulator and the NASM assembler, which converts assembly language into raw machine code executable files. PC primer foo: db 0 Building

karan/Projects Codecademy Labs Recommended reading from Coders at Work I really enjoyed reading Peter Siebel's Coders at Work , in which he interviews many prominent developers including Donald Knuth, Ken Thompson and Peter Norvig. A question that gets asked to the majority of the developers is what programming books do they recommend. I've complied some of their suggestions into the following list: The Art of Computer Programming TAOCP is mentioned throughout Coders at Work. Programming Pearls A book about good programming practice with examples in C, this classic has stood the test of time. Beautiful Code The tagline for this book is "Leading Programmers Explain How They Think". Structure and Interpretation of Computer Programs SICP is recommended several times in the book. Purely Functional Data Structures Describes data structures from a functional programming point of view, rather than the more common imperative perspective (such as Java and C++ data structure books). Higher Order Perl Code Complete The Practice of Programming The interviews are really great.

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++

Coffee Time Challenges As many of you know, I proudly work at facebook. 1) Two Bases Challenge: Find three digits X, Y and Z such that XYZ in base10 (ten) is equal to ZYX in base9 (nine)? Click for hint There are more elegant ways to solve it, but the solution set is so small, you might as well just brute force it. Click for solution 2) One Million Challenge: Write 1,000,000 as the product of two numbers; neither of which contains any zeroes. What are the prime factors? 3) High Product Challenge: Use the digits 0-9 to create two numbers. Bigger numbers go at the front. 4) Exactly a third Challenge: Arrange the numerals 1-9 into a single fraction that equals exactly 1/3 (one third). 5823 / 17469 or 5832 / 17496 5) Three dice Challenge: I roll three dice, and multiply the three numbers together. You should be able to do this without a computer! 6) Word Doc Challenge: I open up a Word document and type all the numbers 1-10000, separated by spaces, (I did not use any 'thousands' punctuation; just raw numbers). 7) Legs 28 dogs

Free Programming Resources Developer News - How media queries allow you to optimize SVG icons for several sizes Happy first birthday to Blink By Bruce Lawson · Thursday, April 3, 2014 0 Twelve months ago today, I stayed up past my bedtime to blog about the new rendering engine, Blink, being forked from WebKit. As it's Blink's first birthday, let's take a brief look at where we've got to. Read more… Introducing the world’s most useless extension By Andreas Bovens · Tuesday, April 1, 2014 0 We're proud to introduce the world’s most useless extension for your daily use and enjoyment. Read more… Removing showModalDialog() from the Web platform By Mathias Bynens · Thursday, March 27, 2014 0 The showModalDialog() API is being removed from the Web platform. Practical application and usage of the W3C Device Orientation API By Rich Tibbett · Wednesday, March 26, 2014 0 The W3C's device orientation API allows us to determine the orientation of a device in physical space.

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. 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; and so forth. We also have some shortcuts that we can use when we go to declare these things. int[] k = new int[3]; Or, we could declare, dimension and init the array all at one throw.... float[] z = {1.414, 3.1415, 1.6815}; i++;

re2 - an efficient, principled regular expression library SDK Before installing Android Studio or the standalone SDK tools, you must agree to the following terms and conditions. This is the Android Software Development Kit License Agreement 1. Introduction 1.1 The Android Software Development Kit (referred to in this License Agreement as the "SDK" and specifically including the Android system files, packaged APIs, and Google APIs add-ons) is licensed to you subject to the terms of this License Agreement. 2. 2.1 In order to use the SDK, you must first agree to this License Agreement. 3. 3.1 Subject to the terms of this License Agreement, Google grants you a limited, worldwide, royalty-free, non-assignable, non-exclusive, and non-sublicensable license to use the SDK solely to develop applications for compatible implementations of Android. 3.2 You may not use this SDK to develop applications for other platforms (including non-compatible implementations of Android) or to develop another SDK. 4. 5. 6. 7. 8. 9. 12. 13. 14.

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 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. At Codecademy, you can take lessons on writing simple commands in JavaScript, HTML and CSS, Python and Ruby. 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 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. This document is intended to be as short as possible, but no shorter. Hello world and

Related: