The importance of proper communications in Software Development
Product Management

The importance of proper communications in Software Development

This post explains the importance of proper communications in Software Development, how to master it and how to avoid its disasters. The software development life cycle goes through several distinct stages; requirements analysis, software design, coding integration, testing, delivery, and maintenance. The most common approach that many companies unconsciously follow is the old waterfall approach. …

Distributed Database Systems
Technology

Distributed Database Systems

This post explains the basics of distributed systems, defines what a distributed database system is, and demonstrates its three main types: mirroring, replication, and fragmentation. This post also concludes with a simple example of a real-life distributed database system that we use every day. Distributed Systems The first thing that comes to mind, when discussing …

Algorithm design, from static to dynamic.
Business Code

Algorithm design, from static to dynamic.

Algorithm design is ignored by many, especially new programmers who tend to jump immediately into the code for any problem they are trying to solve without prior understand or proper analysis of the problem in hand. Regardless of its magnitude, jumping directly into “coding” is not always recommended. It is the superpower that they have …

6 key elements for successful e-learning
Business Technology

6 key elements for successful e-learning

Using technology in education has been around for years, but it is still a major challenge to many schools, institutions, teachers, and students. That’s due to the huge resistance by some traditional communities who still prefer the face to face education. Many entities or enterprises still do not recognize online education as a formal one. …

stack and queue
Code

Computer data structures: Stacks and Queues

Stacks and Queues are common computer data structures in almost all operating systems, if not all computer programs heavily rely on at least one of them. In abstract, both are a type of linked-lists; a linked list is a dynamic data structure, unlike arrays that have limited capacity and few inefficient data manipulation techniques. The linked …

Top programming languages on GitHub
Code Technology

The best programming language

“What’s the best programming language?” is a very common argument between developers that can go back forever. Each claim his/her programming language performs the best. For example, even though Java and C# have a lot in common; both are object-oriented languages, both are compiled to an intermediate language then interpreted with a just in time …