On this episode we discuss algorithms, puzzles and how to approach them when asked to solve one in the interview process. We discuss many of the problems programmers face when being asked to solve these types of problems as well as steps to alleviate some of these common issues. We also provide a number of resources for sharpening your problem solving skills and of course our favorite tips!
Sponsored by Infragistics
This episode of the Coding Blocks podcast was sponsored by Infragistics. Sign up for their webinars coming up at the end of April to learn about moving from the Desktop to the Web by going to:
Also, check out what’s new by heading to:
News / Updates
SwanseaCon 2015 – Agile Development and Software Craftsmanship Conference
Andy Joiner pointed us towards Swansea Con – September 7, 8 in Swansea, South Wales
Thank you for all the reviews! If you haven’t left one yourself, please go here and do so!
Sharpen your programming skills, while making money?!
Finding vulnerabilities and making cold hard cash for your efforts at Pwn2Own
What is Pwn2Own?
BIG winner at 2015’s Pwn2Own:
Michael uninstalls Resharper?!?
Progress Updates on New Year’s Resolutions
Michael – Nada
Joe – Mostly Nada
Allen – Yet another tangent – TypeScript – pretty impressive for people coming from “real” OO languages like Java, C#, etc.
A Somewhat Failed Segue – Kind of…Algorithms
What is an algorithm? As per https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=define:+algorithm
“a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.”
It’s essentially the recipe you have to follow to get your expected output.
Your program / code is your implementation of the algorithm, not the algorithm itself.
Ain’t Nobody Got Time for That
Is a Design Pattern an Algorithm? If not, what is it?
Why do so many programmers fail at outputting 100 to 1 and what’s the correlation to other pieces of the interview?
How to Solve Algorithm / Puzzle Problems in an Interview, or on the Job
- Determine the problem that’s attempting to be solved….this part is so important – really take the time to FULLY understand the problem so you can come up with an appropriate solution
- Write down the steps you would take in order to solve the problem – creating your algorithm – DO NOT WRITE CODE at this step – this is simply the thought process
- Turn your steps from #2 into pseudo-code – if you have a hard time not writing actual code, check out this resource:
- Now it’s time to replace your pseudo-code with actual code – again, refer to the link in step #3 for some example pseudo-code to real code transitions
- Refine – take a step back and look if there are pieces that can be simplified or removed altogether. If there are, then start cleaning up your code from step #4 until you get to the promised land!
Listen to the Serial Podcast – It’s Incredible
Project Euler – Mathematical and Programming Challenges
Joe is a LEVEL 2!
TopCoder – Programming challenges with monetary rewards
Pluralsight Video – By John Sonmez – @jsonmez
Cracking the Coding Interview
ROSALIND – Learning Informatics and Programming through problem solving
Code Golf on Stackexchange – Programming challenges
Google Code Jam – Solving difficult algorithmic problems
Big thanks to @DreYoung79 for these additional resources!
Exercism.io – deep focus on improving your coding skills
Smarterer.com – skills tests
Tip of the Week
Git tab completion for commands – turns out this is for Git Bash and not the Git runtime…so it’s kind of a tip, if you’re using Git Bash!
Revised his tip to use one of Allen’s previous – ConEmu!
Joe’s – tip via Andy Joiner – @tekkiesuk
Using a database transaction to test out your queries before you actually run the statement (helpful for updates / deletes) – this helps you do a sanity check before pulling the trigger
Allen’s – Video speed controller – Chrome plugin – tip via Mike Barlow – @bardev