Yesterday I was looking at a problem on the HackerRank web site. The title is “Self Balancing Tree”. The challenge is to write the insert() function / method in such a way to insert new elements and keep the binary search tree balanced. As usual, no matter how familiar the subject might be, I always research the subject before planning a solution. By doing so I refresh my knowledge and in many cases learn one or more things. To research I try to use Google research and go for Wikipedia articles. Based on what I find I tend to go into different on-line articles or books. Continue reading “AVL Tree”
As I have mentioned on different blog entries, I always try to read books, watch videos, take courses and experiment with technologies that I will be using in a project. For example, I have been developing software using the C and C++ programming languages for a long time. That said, I have read a couple dozen books on the subjects. It amazes me that every time I learn something new or question a way I view some concept. In this case I am starting a project using the Spring Framework. The first version was written by Rod Johnson, who released the framework with the publication of his book Expert One-on-One J2EE Design and Development in October 2002. A lot has changed in the past 14 years including new enhancements and tools. Continue reading “Static versus Dynamic Polymorhism”
I tend to wake up early morning and spend some time reading on my phone. Today was not different. I browse my Tweeter account about three times a day. Typically I do not reply or re tweet. I am a firm believer that software engineering and understanding the inner works of computers and how operating systems run applications is extremely important in producing quality software.
The following is a tweet from David Mwathi (re tweeted by Marcus Biel):
“Good programmers are good because they make a diagram before they start coding”
As I have mentioned in a previous blog, it is very important to reduce as much as possible distractions (i.e., email, phone, texting) while at work and to dedicate a percentage (i.e., 10% to 15%) of your daily workday to learn something. On occasions I decide to learn a new technology (e.g., Spring). Sometimes I decide to spend time polishing on topics I know (e.g., Java) while sometimes I need to refresh concepts (e.g., Huffman Codes and Tries) that I learned in school but seldom use at work. Continue reading “Huffman Coding”
I have dedicated my professional career to different disciplines (i.e., graphics, software engineering) within Computer Science. In this blog entry I would like to summarize some observations regarding computer languages. At different stages in life (e.g., college, work, self study, and business owner) most developers are required or just decide to learn different programming languages. An issue that frequently comes up with project managers is: “Knowing and using multiple programming languages is better or worse for a software developer?” In this blog entry I would like to provide some insights on how to respond to this question. Continue reading “Multiple Programming Languages”
Earlier this week I was talking with a colleague about sites that are becoming quite popular with software developers (e.g., HackerRank https://www.hackerrank.com). The format is quite similar between sites. A problem is described. You need to write correct code to solve it.
All have a window in which you can write the necessary code. Most of the constraints for the problem are described. The better sites provide some sample data sets to test your solution. Continue reading “Coding Exercise”
This past week I read a couple articles about what hiring managers are looking for. Having co-owned and managed a software development business for over a decade and worked for small, medium and large size companies, encouraged me to write this post. Continue reading “Top Dozen Qualities”
This is the last entry in a sequence of blog posts that resulted due to a conversation with two colleagues regarding the most efficient way to implement a piece of code to address some made up requirements.
Let me start by saying that the first choice for most developers would be the use of vectors. Once such implementation is tested, if the performance is not there, one should / must look for alternate ways to optimize and / or redesign the software. Continue reading “C++ Lies, Damned Lies and Statistics”
This is the fourth blog entry in the sequence that deals with a conversation with a couple colleagues.
This blog entry shows the implementation using the C++ programming language for the problem described in the first blog entry using an array. As in the previous blog entry, let’s first look at the code used to implement the main() function. Continue reading “C++ Implementation using an Array”
This is the third blog entry in the sequence that deals with a conversation with a couple colleagues.
This blog entry shows the implementation using the C++ programming language for the problem described in the first blog entry using a vector. As in the previous blog entry, let’s first look at the code used to implement the main() function. Continue reading “C++ Implementation using a Vector”