Solution planning. Programming in Linux 4

Solution planning

Following with this series Aimed at improving our programming skills in Linux, we are going to analyze the second stage of the programming activity.  We had established that although coding is a part of the programming task, this includes all those that go from determining the problem to be solved by an application until it is ready for operation.

Stage 2: Solution planning

Anyone who has ever undertaken a project knows that the ideal solution rarely matches the possible one.. Or we don't have the financial resources or the skills to implement them. At this stage we make decisions about what we can do about what we need:

So that you understand what I mean, I am going to give an example that has nothing to do with programming.

A married couple with two children, he is a lawyer and she is an accountant. They each rented an office. They decided that they could save that money and add a floor to their house, leaving the ground floor for work and the first floor for family housing. With the plans made they found a problem. The city council does not allow to build a second floor.

They have at least four different solutions:

  1. Move
  2. Re-rent the offices.
  3. Make a room multipurpose.
  4. Make a second floor with recycled shipping containers.

In the same way, It is likely that when we undertake the task of planning our application we will come across something that we cannot or should not do. Of course it is possible for a professional programmer to take those restrictions into account at the design stage of the problem, but, we are writing this for amateur programmers.

The good news is that just as we have restrictions, we also have facilitators.

Before continuing with the topic, we need to define some terms:

  • Algorithm: According to Wikipedia it is a set of defined and unambiguous, ordered and finite instructions or rules that typically allow solving a problem, perform a computation, process data and carry out other tasks or activities. Given an initial state and an input, following the successive steps a final state is reached and a solution is obtained.
  • FIRE: It is the acronym in English for application programming interface. It consists of a set of definitions and protocols that allow two independently developed applications to communicate with each other, without the need for those responsible to know the code of the other. For example, many cities have mobile applications that tell citizens how to get from one place to another. For that they rely on map services such as Google Maps or OpenStreetMaps. Through an API, either free or paid, it is possible to save a lot of programming time and incorporate features that would otherwise be impossible or partial to access.
  • Library:  Some call them a bookstore, making a direct translation from English, but since my bookstore is a place for selling books, a library seems more appropriate.. These are general and specific purpose applets that can be used by other programs. For example, print a file in PDF format.
  • Frameworks:  Do you know the Lego? They are those plastic bricks that are embedded one on top of the other and you can use to build things. Good, frameworks are various components and templates on which you can build your project. Many of them are available under open licenses.
  • Programming language: It is about un language with well-defined grammar rules that can be used to describe a series of instructions or sequence of commands grouped into algorithms. There are languages ​​for specific purposes (data analysis, game creation) and others for general purposes.

I call them facilitators because anything you need to program, surely someone has already done it, and with a search on the web or you can find the code to copy or paste, or to serve as a guide to make modifications

It is at this stage that we gather the materials with which we are going to build our solution. We select a programming language, an integrated development environment, libraries, and if available, a framework. As in so many other things in the world of free software, each tool has its fans and detractors. It is best to try until you find the combination that is most comfortable for you.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.