Algorithmic problem solving skills is one of the most important skills for a programmer. Great programmers are able to conceptually come up with solutions by visualizing and breaking down the problem into smaller parts. Afterwards, it is up to the programmer to write a clean, effective solution.
With the hope that this article will help you in your journey to become better at problem solving, I am going to write down my though process as I write up a quick solution to the merge sort algorithm. Depending on how much refactoring I plan on doing, I may write multiple parts to this post.
Anyhow, the purpose of this post is to journal my thought process when writing up the merge sort algorithm. Bear in mind that I have not written an implementation for merge sort in quite some time. In other words, I needed to start from scratch.
If you would like to skip straight to where I actually start coding, I recommend clicking on Implementation in the table of contents.
The command line is often considered a monolithic, esoteric interface used only by the battle-scarred veterans and hardcore programmers. I was indeed one of those people who avoided the command line like a plague.
Before continuing, let me tell you that my mindset towards the command line has completely changed. After seeing and tasting, I now understand why some developers opt for using the command line when performing certain tasks.
Historically, the command line was the only way to interact with a computer. Nowdsys, the computer is often considered an essential household item. Because of the personal PC, computers now come with an operating system that provides Graphical User Interfaces (GUIs) that runs commands with merely a click of a button/mouse.Continue reading
The Java StringBuilder is a class that most Java programmers are familiar with. It is of utmost importance, especially when you want to avoid creating unnecessary string objects when looping through tens or hundreds of thousands of records.
In the Java programming language, Strings are immutable. This means that Java strings cannot be altered once created.
The StringBuilder is a common interface available in some of the high-level programming languages such as C# and Java. They are wrappers classes that provide a great deal of utility when working with character arrays, which is the underlying data structure used to store the characters. We will examine the Java String Builder class, discuss the reasons for using it and also take a sneak peek at how it works.Continue reading
This is a brain-friendly introduction to algorithms for beginners, written with the intent of guiding readers in their journey of learning algorithms more streamlined and less intimidating.
For those with little to zero experience with programming, the word algorithms evoke a lot of fear, mystery, and suspense. It is portrayed as an esoteric, cryptic black box that none but the smartest of individuals dare open and attempt to decode.
Well, I am here today to blow away some myths regarding algorithms.Continue reading
Implementing the queue using the linked list as the underlying data structure is much simpler than using arrays as the underlying data structure.
I will assume that you understand the fundamentals of the queue data structure.
In this post, we will be writing the queue using the linked list as the underlying data structure.
This tutorial exists not only to show users how to implement the queue using linked lists but to also demonstrate how important it is to master the fundamentals.
Having a solid grasp on the fundamentals not only gives you a greater arsenal of tools to work with. It also accelerates the speed at which you learn other topics, including more complex data structures.
If you don’t know what a linked list is, I strongly suggest that you come back after learning how the linked list works.
From experience, bad code is often born out of the desire for instant gratification. Instead of writing a couple of extra lines of code and being more intentional with how we structure our code, we just love copy and pasting solutions on the internet to reach our goal.
Why? Because it is easier, quicker and more convenient.
This post is aimed mostly towards new developers. Developers who are new to the game are mostly focused on just making things work. While not inherently bad, without guidance, new developers can quickly develop bad habits that will set them back in the long run.
This post aimed at opening the eyes of developers by pointing out common code smells. Also common actions and habits of that usually result in bad code. Before the desire to see some visible results degenerates into bad coding habits.
To those that are interested, prepare to feel the sting!Continue reading