26/09/2024
How I became a Programmer and Software Engineer
Open to collaboration… Read to the end
In Poland (August 1979 - February 1982) during the first year of the Shipbuilding Engineering high studies, in the workshop practices I had an introduction to programmable machine tools by alphanumeric codes, and in the second year the beginning of a subject called Electronic Techniques of Calculation which had to be on computers with FORTRAN programming language.
In another story I talked about EXPEDITRANS the logistics state-owned Cuban enterprise where I was a Computer Operator for Accounting (March 1983 – December 1984).
One day in mid-1983, an instructor of computer science came to the enterprise with a group of his students to show them printout of the codes of the systems I operated they were programmed. It was a kind of Machine Language similar to those aforementioned alphanumeric codes. The teacher noticed that I was very attentive to his lesson, and at the end he asked me if I would like to be a Computer Programmer. I answered “Yes”, and then he mentioned and explained to me what Licenciatura en Cibernética Matemática (Bachelor's Degree in Mathematical Cybernetics) was about: Software Design and Development. I saw an opportunity for the future and decided to start it.
However I didn't know what would happen to me at first.
I knew that I could restart high studies in the third year of Mechanical Engineering at the CUJAE (a polytechnic high studies center in Havana), but when I went to the University of Havana (UH) with the first year of Engineering completed, the high studies center told me that the Bachelor's Degree in Mathematical Cybernetics was a career of Exact Sciences, that I came from Engineering field, that only the subjects of Political Economy of Capitalism and Socialism would validate me, and that I had to start the new career in the first year. I was asked, “Do you take it or leave it?” I thought for a while and made a decision that was for everyone “I was crazy” except for my mother RIP. I said “Yes, I accept”, filled out the forms, the race through the career turned out to be “a walk” due to the high level of knowledge received in Poland, and six years later, in 1989, it turned out that my “backward” decision was the correct one:
I became one of a few Software Design and Development graduates in Cuba from the very difficult career of Licenciatura en Cibernética Matemática, and we were, and still are, in high demand here.
I started and finished these studies at nights as a worker. During the second semester of the first year, in 1984, I received an introductory subject I learned to Programming. In December 1984 it allowed me to change for a better job as a Computer Programmer, having no official qualification.
As an Introduction to Programming I learned Algol-60, the father of the Pascal language. At the beginning, at UH there was a microworld as a data center called “laboratory”, to which we students had access only through a chain of intermediary personnel. The process was actually very uncomfortable:
--- The program was given written on paper to a secretary who received it at the entrance to the laboratory. The student had to go back every single day to check if “the compilation” was done.
--- Someone typed the program, the result of which was a group of punch cards.
--- Someone “compiled it” and printed the program, which had to be exactly the same as the one given to secretary.
--- The student was given the program printout and the group of punched cards.
--- If an error was found the student had to look for the card, make a report on what needed to be corrected, go through the entire process to make a card! maybe more of course, saying where it had to be interleaved, the laboratory recompiled the card group and another program printout!
A simple activity’s assignment could take a month to give the correct results. Well, this is how the advances in data processing computing began, whose history is very difficult to understand today. I have found and selected some videos showing how this process was carried out:
--- Punching Data on Computer Cards
https://youtu.be/oaVwzYN6BP4?si=Q6mK3AnWVrkqIPZr
--- The IBM 1401 compiles and runs FORTRAN II
https://youtu.be/npgvV_-Nh60?si=oe11MZcRmpCkE97c
--- Data processing, an introduction 1972 key punch computer & magnetic tape, educational film
https://youtu.be/uOYJtnux2sA?si=WcRRkTWD9U4loznP
This was one side of the equation, because when I got other job I had to learn another programming language that was also like a Machine Language.
It was 1985, in the second semester of career I had assignments from the subject of Numerical Mathematics to solve on computers. I had the option of doing them in the university’s laboratory in Algol-60 language with the explained awkward mechanism, but one student asked the professor if the task could be solved on a personal computer and in another programming language, he answered "Yes, as long as the program solves the problem of decimal precision", many students were very happy, but I know no programming language for personal computers. Then I remembered that at EXPEDITRANS I had heard about the BASIC language for personal computers, asked the professor if it was possible to do the assignments in BASIC, and he said yes.
What did I do? Well, I went running to learn the BASIC language on my own, where? Well, at EXPEDITRANS. I had left there good relationships with their administration, went there, spoke and they allowed me to use that computer in the Operational Department whenever I needed it.
That computer was similar to the one in the video and the language was the GW-BASIC onscreen:
https://youtu.be/ZhNX_tyBvq0?si=Z0o1pvQQ4Y238uhK
That season of 1985 was crazy in my personal life.
My unique son was born and additionally to earn more I learned there to work in two other tasks as an Operator. Sometimes I got extra jobs as Translator Interpreter and made written translations from Polish into Spanish.
I worked during the daylights in one programming language at my workplace; I attended university at nights; from there I frequently went to EXPEDITRANS to learn and practice the BASIC language; from there, in the early morning I went home to sleep for a while and go to work. This route deserves a map because they are long distances between the places, the public transportation system was not good, and I got to the books at bus stops and during crossings, whether standing or sitting, sometimes when walking where knowing all holes to not falling down.
Results: I learned the BASIC language, I did my Numerical Mathematics tasks in the BASIC language, and this programming language helped me for other tasks in the future. The following year, 1986, I was not afraid to start learning the English language on my own and in June 1989 I obtained my first certificate of this language.
I described my crazy start in the world of Programming and in the following years I learned other programming languages both for the laboratory system (LAB) and for personal computers under the MS-DOS operating system (PC-DOS).
During the career until 1989:
--- The PL/1 but we did not do extensive practices. It could only be used in LAB, there were problems with the location, so it remained rather in theory useful later.
--- The Assembler (PC-DOS).
https://youtu.be/hZs6Jwm8Xl4?si=dDY-m---j-2nf-11
--- dBase III plus Relational Databases (PC-DOS).
https://youtu.be/x37gAnVoJE8?si=jvXdyCbyaW3YMsoi
--- The ProLog for Robotics and Artificial Intelligence, whose tasks I carried out in Turbo ProLog (PC-DOS).
https://youtu.be/svcxu0xiH34?si=4rA9fpSX1ipLOYDa
--- FoxBase and the Relational Database Clipper type dBase III plus (PC-DOS) but individually for the degree thesis, as I did previously with BASIC.
https://youtu.be/Opv647iFbAk?si=rMq9dNDBCA-6ncDS
After the career for PC-DOS:
--- The object-oriented Turbo Pascal:
https://youtu.be/cdbZ904TJgw?si=jap6qwbntvPHPB3p
--- The object-oriented Clipper for Relational Databases type dBase III plus.
--- The Foxpro Relational Data type dBase III:
https://youtu.be/G6iG1_Fhwjg?si=sXw0xAr1H21yCXzZ
I delved deeper and became very Expert in Turbo Pascal, Clipper and FoxBase Plus (PC-DOS). Due to the nature of my work, I never programmed for Windows environment, nor for the Internet global network, in this case because I had no access. I made some programs that ran on local networks.
Summary:
--- Years later I was told this career abroad by its Curriculum and mission for graduate specialist is called Computer Science or Software Engineering. There were difficult subjects like 1) Data Structure; 2) Building Programming Languages and Compilers, 3) System Programming in Assembly Language, and; 4) Architecture of Operating Systems, that other software careers in Cuba didn’t have.
--- In 90s decade the career’s name was changed to Licenciatura en Ciencia de la Computación (Bachelor's Degree in Computer Science). That’s why we all Cuban graduates of Licenciatura en Cibernética Matemática or Ciencia de la Computación are Software Engineers and/or Computer Scientists.
--- For long time the “Cibernético” was widely known in software communities by “The Strongly Use of Pointers and Virtual Memory” because of the scarcity of memory on computer’s RAM and data storage media. Other professionals were regretting instead calling for better computer..
--- I have been an Instructor of Computer Science in operating systems, word processors, spreadsheets and databases.
--- I have been a Professor in Management Techniques.
--- Two Curriculums in my graduate file as Licenciado en Cibernética Matemática (1989), one of Engineering subjects (Poland) and the other of Exact Sciences subjects (Cuba).
--- My thesis on Optimization of Productive Chains was evaluated as Relevant and Innovative in Software and Theory, with the nomination to continue it to Candidate to Doctor’s degree (1989).
--- Scientific level achieved: Minimum Candidate to Doctor by Curriculum (1991).
--- Awarded in 1991 as National Vanguard, one of the highest national distinctions given by the Cuban State, for The Work of Life between 1986 and 1990, as Innovator and Rationalizer.
--- I worked as a Computer Programmer and Software Engineer between December 1984 and April 2010, for 26 years, having created software of various types for different companies and fields, both individually and in teams of specialists.
--- I had to deeply study, process and understand many types of different business organizational structures.
--- I have been a Technologist and Industrial Technical Advisor, and my experience together with others no computational enables me to be very useful to Counseling and Advising, “to pave the gap between the failure and success”.
Now, let’s look to the future…