# Programming Languages

## Code books

Thinkster. A roadmap to becoming a web developer in 2017 – freeCodeCamp. These charts were created by GitHub user Kamranahmedse.

They visualize three roadmaps to becoming a web developer. Even though I disagree with some of his suggestions (I recommend you starting building projects almost immediately — and you will with freeCodeCamp’s curriculum), I still think this is worth reading. It will give you a birds-eye view of the modern tools that web developers use. Here’s his chart for front-end development: And for back-end development: And for DevOps, which he views as an extension of back-end development: Of course, these just the tools.

## Angular2

SOLID Development Principles – In Motivational Pictures. I found the Motivator this morning. It lets you create your own motivational pictures. So, here’s my first run at creating the SOLID software development principles in motivational picture form. I ‘borrowed’ the images from google image search results. I hope you find them to be as fun as I do!

I have them all hanging up in my team room, already. :) (Update: I never expected the response to this post to be so great! Update: Due to the continuous request for prints, posters, calendars, etc, we (LosTechies) are looking into what it would take to get these turned into high quality prints of various types. Update: Steve Smith and the NimblePros crew have created their own version of the posters, along with other principles, in a Calendar for 2011. Software development is not a Jenga game. DZone: Programming & DevOps news, tutorials & tools.

## HTML5

Why 3%: How Toptal Finds Top Talent. Blogs. Comparing Floating Point Numbers, 2012 Edition. This post is a more carefully thought out and peer reviewed version of a floating-point comparison article I wrote many years ago.

This one gives solid advice and some surprising observations about the tricky subject of comparing floating-point numbers. We’ve finally reached the point in this series that I’ve been waiting for. In this post I am going to share the most crucial piece of floating-point math knowledge that I have. Here it is: [Floating-point] math is hard. You just won’t believe how vastly, hugely, mind-bogglingly hard it is. Seriously. Previously on this channel… This is the fifth chapter in a long series.

Comparing for equality Floating point math is not exact. Here’s one example of the inexactness that can creep in: This code tries to calculate ‘one’ in three different ways: repeated adding, and two slight variants of multiplication. Sum=1.000000119209290, mul=1.000000000000000, mul2=1.000000014901161 So what happened, and which one is correct? What do you mean ‘correct’? Nope. Combining Static and Dynamic Polymorphism with C++ Mixin classes. This is the first in a series of blog posts which describe an interesting way to combine both dynamic and static polymorphism.

My day job is as a PhD student in Geophysics, focusing on Full Waveform Inversion, and the application space will be one I’m personally familiar with: numerical analysis using the finite element method. This being said, the techniques presented can be applied to a range of problems, numerical or otherwise. Please read on for a (hopefully) informative and (maybe even) entertaining look at the C++ Template Mixin Pattern. How to Implement IComparable<T> Interface in Base and Derived Classes. Generic IComparable<T> interface was introduced in .NET Framework 2.0 to allow comparison between instances of a type.

Interface defines only one method, CompareTo(T), which receives an instance against which current object should be compared. CompareTo method returns Int32 indicating the order between this instance and the argument: negative return value means that this instance is less than the argument; zero indicates that two instances are equal; positive value indicates that this instance is greater than the argument. C++ Mixins - Reuse through inheritance is good... when done the right way. Conventional Wisdom Conventional wisdom tells us that code reuse through inheritance is evil.

Go ahead and Google it if you're not clear on the stance in the community. The majority of articles that I've read encourage the programmer to favour composition and delegation (for example, by using the strategy pattern) over inheritance in order to attain code reuse. In general this advice is good as code-reuse-through-inheritance (as it is commonly implemented) does suffer from many problems. However, composition-and-delegation suffers from its own set of problems...

In this article I introduce the concept of the C++ Mixin. Tutorials on C++ mixins tend to be a bit confusing and use contrived examples that make you wonder why you'd bother with this obsure technique. The example. Combining Static and Dynamic Polymorphism with C++ Mixin classes. How to Implement IComparable<T> Interface in Base and Derived Classes. Rosetta Code.

Rosetta Code is a programming chrestomathy site.

The idea is to present solutions to the same task in as many different languages as possible, to demonstrate how languages are similar and different, and to aid a person with a grounding in one approach to a problem in learning another. Rosetta Code currently has 1,081 tasks, 219 draft tasks, and is aware of 810 languages, though we do not (and cannot) have solutions to every task in every language. Places to start Recently-Updated Tasks Ways to Contribute Recent Discussions.

## C++

Design patterns. Python.