We love SMS!
We love SMS!
We love SMS!
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
I can still remember<br />
how happy I was the<br />
first time my friends<br />
and I managed to<br />
program a Pong alike<br />
game on our Texas<br />
Instrument calculators.<br />
It took us weeks<br />
before figuring out the<br />
algorithm and months<br />
before being able to<br />
render something decent,<br />
almost playable,<br />
with zeros and ones on<br />
the screen.<br />
By Bertrand Besnard<br />
At that time, we had to understand<br />
low level languages that young folks<br />
can not even name today. <strong>We</strong> had no<br />
debug tool and the only way to understand<br />
why our application crashed<br />
was to try to reproduce the case… on<br />
paper.<br />
Later on, I studied in the only university<br />
in France that was teaching both<br />
Cobol and Java. Their philosophy was<br />
that however important Java was becoming<br />
(it was the beginning of the<br />
two thousands), it was still important<br />
to understand the main concepts of<br />
IT. They also forced their students to<br />
learn the language theory but that<br />
was just for the fun. In my last year<br />
there, only 6 years after programming<br />
my first pong game, we had to produce<br />
an OpenGL 3D first person<br />
shooter game. It was nothing that we<br />
would ever use later on in our lives,<br />
but understanding the key concepts<br />
of 3D and being able to use complex<br />
math was more important than filling<br />
up a CV. The whole project took us a<br />
couple of weeks.<br />
With today’s technologies, you can<br />
build up a playable level of a single<br />
game with the latest lighting and texturing<br />
technologies in just a couple of<br />
hours, thanks to the power, the diversity<br />
and the flexibility of the available<br />
tools.<br />
The same concept applies to pretty<br />
much everything that requires coding.<br />
<strong>We</strong> went from writing eighty characters<br />
per line with no objects, to defining<br />
a variable name and a method call<br />
represented by a box.<br />
Nowadays, most people learn IT the<br />
“fast way” that is, with tools that enable<br />
auto-completion, give coding<br />
advices and have integrated GUI<br />
builders based on drags and drops.<br />
Creating an application has never<br />
been that easy. A couple of clicks here<br />
and there, a Google search or two and<br />
voila!<br />
But is time sparing worth sacrificing<br />
knowledge? What is the big picture on<br />
a long term perspective? What will<br />
happen to hardcore experts?<br />
If programming is that easy, debugging<br />
becomes harder. With all that<br />
generated code and programming<br />
conventions not always being respected,<br />
if someone else than the<br />
original developer has to read and fix<br />
the code, things can become quite<br />
hard and costly. How many of us had<br />
to fix a code which contained variable<br />
names like txtBox1, txtBox2…, or<br />
even worse, ex girlfriends’ names?<br />
How many hours are spent yearly debugging<br />
simple mathematics operations<br />
because precedence rules are<br />
Programming:<br />
from too hard<br />
to too easy<br />
not respected? Those are just the<br />
easy ones, the most common and<br />
harder coding mistakes include, but<br />
are not limited to: global variables accessed<br />
and modified randomly, methods<br />
of tens of lines, exceptions being<br />
caught but discarded…<br />
There are tons of resources out there<br />
for developers to learn from and many<br />
acronyms to discover or to deeper investigate<br />
like TDD or BDD (test driven<br />
deployment), which is an often mentioned<br />
key to high quality softwares,<br />
SOLID (Single responsibility, Openclosed,<br />
Liskov substitution, Interface<br />
segregation and Dependency inversion)<br />
which describes the “first five<br />
principles” of object-oriented programming<br />
and design and so many more.<br />
Thanks to the internet, knowledge is<br />
only a click away, motivation however,<br />
has to be found somewhere else.<br />
On a long term perspective, without<br />
proper training, programmers won’t<br />
learn much more about the fundamentals<br />
and might become somewhat<br />
limited. Their errors’ becoming someone<br />
else’s to fix and their lack of<br />
knowledge becoming time consuming<br />
for others.<br />
Most companies understand that<br />
principle and have found an easy solution,<br />
encouraging through different<br />
means, their employees to develop<br />
their skills through seminars, conferences,<br />
classes and basically everything<br />
that can potentially make one<br />
become better. This tendency has<br />
started in most countries that understand<br />
that programming can be a career<br />
path and not only another step on<br />
a stair that leads to management.<br />
Unfortunately, training individuals<br />
can be costly and not everyone can<br />
afford it. That is where dedication and<br />
thrive to learn kick in, buying a book<br />
and reading it is affordable by most.<br />
The other problem implied is that as<br />
time goes by, experts will become<br />
rarer and busier, leaving new programmers<br />
to themselves, in charge of their<br />
own fixing, eventually leading to chaos<br />
and destruction of the world as we<br />
know it.<br />
Already in 1995, Niklaus Wirth stated<br />
that “software is getting slower more<br />
rapidly than hardware becomes faster”.<br />
A variant by David May is even<br />
more explicit by doing a corollary with<br />
Gordon Moore’s law: “Software efficiency<br />
halves every 18 months, compensating<br />
Moore’s law”.<br />
This proves that knowledge is the key<br />
to a good programmer and IT, as every<br />
single science, always evolves and so<br />
should the people working with it.<br />
Bertrand Besnard is a<br />
French Software Engineer<br />
who migrated to Oslo.<br />
He has since then been<br />
working on some of the<br />
biggest Norwegian<br />
projects as environment<br />
administrator such as<br />
NAV and Autosys. He is<br />
currently employed by<br />
Steria. He is interested<br />
in process analysis and<br />
human interactions and<br />
travels the world to<br />
discover different<br />
cultures, and food.<br />
All kind of food.<br />
14 15<br />
© Cmgirl / Shutterstock.com