The Programmers Idea Book
Five Books aims to keep its book recommendations and interviews up to date. If you are the interviewee and would like to update your choice of books (or even just what you say about them) please email us at firstname.lastname@example.org
The Programmers Idea Book
Answer this: Every social network operates a little differently. Instagram allows photos. Facebook allows anything. Twitter allows short bites. How would your social network be different? What would make it special?
When this book is read to young girls, it reinforces the idea that girls are smart and that girls CAN have jobs in programming (or technology, science, math, or engineering). It implants that idea early in their lives.
On the other hand programmers need more knowledge to begin with. You'll need to know how to create and work with algorithms, how to design websites, how to debug and test your code, how to manage projects, and of course how to work with programming languages.
On the other hand a programmers will work to give a whole working application or piece of software that people will use in the market. They're also responsible for following up and maintaining what they build to ensure it's running smoothly without any glitches.
After completing these steps, the coder's role comes in play. They take the ideas the programmer creates and transform it into a machine-readable form by writing code to perform the tasks specified. After the magical process of coding, the programmer comes back in play.
The Pragmatic Programmer, 20th Anniversary Edition by David Thomas and Andrew Hunt is a practical book that encompasses almost all aspects of professional software engineering: from basic skills such as working in the console and text editing to writing code, software design, testing, deployment, requirements, management, and communications in teams.
[Leonardo da Vinci] embraced the profound interconnectedness of ideas from multiple fields. His goal was to combine, advance, investigate, and understand processes in the natural world through the interdisciplinary view.
I wish I\u2019ve read this book when I was just starting my programming career. Now as I\u2019m a more experienced programmer, reading \u201CThe Pragmatic Programmer\u201D was still a good overview that reminded me of the areas that fell out of my attention.
There is obviously some truth to this idea. Trying things out is a way to learn. However, the idea appears underdeveloped to me. Will Larson\u2019s Magnitudes of exploration is a more better-thought take on it, in my opinion.
\u201CThus said Zeno, thus said Cleanthes, indeed!\u201D Let there be a difference between yourself and your book! How long shall you be a learner? From now on be a teacher as well![\u2026]What then? Shall I not follow in the footsteps of my predecessors? I shall indeed use the old road, but if I find one that makes a shorter cut and is smoother to travel, I shall open the new road. Men who have made these discoveries before us are not our masters, but our guides. Truth lies open for all; it has not yet been monopolized.
Programmers should realise that in many situations, even ideal decisions, planning, management, and design won\u2019t save them from doing hard and unpleasant work, sometimes a lot of it. There may be just no way around.
The quality bar doesn\u2019t need to be very high though. It should be chosen consciously based on the demands of the project. But whatever the bar is, programmers should stick to it without exceptions.
So you know a little bit about programming (perhaps you've read the free book, "Invent Your Own Computer Games with Python", a free programming book for beginners whose author shamelessly plugs at every chance) but you want to get better at coding. You can't seem to find any open source projects that are at your level or easy for new people to contribute to. You've gone through a few of the practice problems at Project Euler but you want to create something more substantial, or at least a cool thing you can show your friends. (Not that finding the 31337th prime number isn't cool.)
Here's a list of game clone ideas for you to implement. Each has a short description of the game, links to videos of the game, and descriptions of what kind of algorithms you'll need to know in order to implement them. These games have been selected for their simplicity, so you don't have to spend several weeks designing art, levels, scripted dialogue, or complicated AI. These are clones designed to be doable in roughly a weekend. A Mario or Zelda clone would be complicated to put together, but a Tetris or Asteroids clone would be doable in a weekend.
Board games are a good source for game clone ideas. A game like Monopoly has far too many rules to put together in a short time frame, but here's a list of board games that have simple mechanics. Chess, Go, and Stratego may be too complicated to create an AI opponent, but in that case you can just make it a two-player game. These games don't really have variants,
My first computer was an Amstrad CPC464, a home computer that had a then-massive 64k of memory and a built-in tape deck. At first, I had the green screen version. I later upgraded to an Amstrad CPC6128 with a disc drive.Today, I write books about computers and technology, and I think a lot of us who work with computers today are able to do so because of what we learned on those 8-bits in our bedrooms.The Amstrad also gave me my first opportunities to be published. During the 1990s I contributed type-ins and the odd article to Amstrad Action and Amstrad Computer User. In 1993, I wrote the advanced Amstrad Basic programming book 'The Basic Idea'. Now you can download my Amstrad games and utilities and read the book in full online.
You can now play many of my Amstrad CPC games using an online emulator, without needing to install an emulator or download the disc file separately. Thank you to Andre Weissflog, who created the emulator, and to Amstrad who allow the CPC ROMs to be used in emulators.For programs that appeared in magazines as listings or type-ins, I've included scans of the magazine pages online so you can see the code as it appeared in print.Play The Further Adventures of FredPlay Alien Intervention (an Amstrad Action type-in)Play Gribbet (an Amstrad Action type-in)Play Wallbuster (an Amstrad Computer User type-in)Watch Fishtank (an Amstrad Computer User type-in)Play Misfit (from my book The Basic Idea)Play Paclone (an Amstrad Computer User type-in)Play Chords Tutor (an Amstrad Computer User type-in)Play 3D Mapper (an Amstrad Computer User type-in)Use the User Defined Graphics generatorReset the machine and program something yourselfHow to embed the Amstrad CPC 464 / CPC 6128 emulator in your websiteYou can download my Amstrad CPC games and utilities disc to use these programs in your favourite emulator.Need help using an Amstrad CPC emulator?How to use a CPC emulator on your PC - Play popular Amstrad games using a free Amstrad emulator on your PC. Read my instructions for using Winape here.How to embed an Amstrad emulator in your website - Instructions for using Andre Weissflog's emulator which powers the games on my site.How to use a CPC emulator on your Nintendo DS - Get retro on the Nintendo DS with my blog post about using the CrocoDS emulator to play Roland on the Ropes, Chuckie Egg and more.Discover the revived Amtix magazineAmtix magazine is being published again, now as a full-colour A5 quarterly magazine. Find out more about the revived Amtix in my blog post, which includes my "Doctor, Doctor!" listing for speech synthesisers. You can also read (and listen to) my article Top of the CPC Pops, counting down the biggest pop hits to feature in Amstrad games.Find out about the Amtix! CPC Annual 2023 here.
B is for Basic: Discovering the joy of Amstrad CPC BasicThis article introducing Amstrad Basic appeared in Wacci as part of its 'A-Z' of the Amstrad, and introduces Amstrad Basic and the programming culture that surrounded the machine.A comedy of errols: Debugging common errors in Amstrad Basic programsHow to debug Amstrad Basic programs, including a quick lookup table for each error message.Downgrading: How to convert Amstrad CPC6128 programs to the CPC464How to make programs for the Amstrad CPC6128 or CPC664 work on the 464. Includes a table of commands that don't work on the 464, and a routine to add FILL to the CPC.The protection racket: Protecting Amstrad basic programsHow to protect your Basic programs, and circumvent some of the common protection methods.A character building experience: How to define your own characters in Amstrad BasicExploring user defined graphics, used for creating customised typefaces and special effects. This section includes a lookup table of control codes, together with demonstrations of how they can be used for screen layout.The colour of magic: How to use colour swapping in Amstrad CPC Basic programsBy using colour swapping, whole screens can be quickly animated. This includes several demonstrations of the technique and full instructions to use it in your own programs.This is a journey into sound: Creating music and sound on the Amstrad CPCHow to write sound effects and music for your games, including a sound effects editing program.The road to code: Adding machine code to Amstrad CPC programsHow to integrate machine code with Basic programs. This includes a program for making DATA statements from code and some tips on using CALL and relocating machine code programs.The sprite idea: How to make sprites for Amstrad CPC Basic programsA full toolkit for putting machine code sprites into your Basic games is included on the disc. This extends the version which appeared on an Amstrad Action covertape with a more precise and more compact sprite driver.Misfit: Sliding puzzle game for the Amstrad CPC computerBringing a lot of these techniques together is our final game, the sliding puzzle game Misfit.This game is now playable online!Hacking and updating The Further Adventures of FredIn 2020, I revisited my machine code game The Further Adventures of Fred to see if I could improve it. There were things that always niggled me about the game. The question was: could I fix them, 30 years later?You can now play the new version of The Further Adventures of Fred online!