Software Engineering Series |
I started programming at 14-15 years old with logical schemas made on paper, based mainly on simple mathematical algorithms like solving equations of second degree, finding prime or special numbers, and other simple tricks from the mathematical world available for a student at that age. It was challenging to learn programming based only on schemas, though, looking back, I think it was the best learning basis a programmer could have, because it allowed me thinking logically and it was also a good exercise, as one was forced to validate mentally or on paper the outputs.
Then I moved
to learning Basic and later Pascal on old generation Spectrum computers, mainly
having a keyboard with 64K memory and an improvised monitor. It felt almost like
a holiday when one had the chance to work 45 minutes or so on an IBM computer with
just 640K memory. It was also a motivation to stay long after hours to write a
few more lines of code. Even if it made no big difference in what concerns the
speed, the simple idea of using a more advanced computer was a big deal.
The jump
from logical schemas to actual programming was huge, as we moved from static
formulas to exploratory methods like the ones of finding the roots of equations
of upper degrees by using approximation methods, working with permutations and
a few other combinatoric tools, interpolation methods, and so on. Once I got my
own 64K Spectrum keyboard, a new world opened, having more time to play with 2-
and 3-dimensional figures, location problems and so on. It was probably the
time I got most interesting exposure to things not found in the curricula.
Further on,
during the university years I moved to Fortran, back to Pascal and dBASE, and
later to C and C++, the focus being further on mathematical and sorting
algorithms, working with matrices, and so on. I have to admit that it was a big
difference between the students who came from 2-3 hours of Informatics per week
(like I did) and the ones coming from lyceums specialized on Informatics, this especially
during years in which learning materials were almost inexistent. In the end all
went well.
The jumping
through so many programming languages, some quite old for the respective times,
even if allowed acquiring different perspectives, it felt sometimes like a waste of time, especially when one was limited
to using the campus computers, and that only during lab hours. That was the reality
of those times. Fortunately, the university years went faster than they came. Almost
one year after graduation, with a little help, some effort and benevolence, I
managed to land a job as web developer, jumping from an interlude with Java to
ASP, JavaScript, HTML, ColdFusion, ActionScript, SQL, XML and a few other
programming languages ‘en vogue’ during the 2000.
Somewhere between
graduation and my first job, my life changed when I was able to buy my own PC (a
Pentium). It was the best investment I could make, mainly because it allowed me
to be independent of what I was doing at work. It allowed me learning the basics
of OOP programming based on Visual Basic and occasionally on Visual C++ and C#.
Most of the meaningful learning happened after work, from the few books available, full
of mistakes and other challenges.
That was my
beginning. It is not my intent to brag about how much or how many programming
languages I learned - knowledge is anyway relative - but to differentiate
between the realities of then and today, as a bridge over time.
No comments:
Post a Comment