17.03.2013 Views

We love SMS!

We love SMS!

We love SMS!

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!