Hi,

I hope that this isn't too OT for this list and I wish that if you find
it useful you will forward it to as many students, friends you can.

It has been a while since I have talked with students. But, when I used
to, a constant refrain was "Will this Free Software thing get me a job
?" Since it usually came at the fag end of a long drawn Q+A session,
and, keen as I was to avoid trampling on the goodwill of those who
hosted me, the quickest response was "Sure, just look at the number of
folks who consume FOSS components".

The truth is, this FOSS thing won't help you get a job. Period.

What will get you a job is how much you actually learn.

I work at a small Open Source company. We recruit software engineers and
developers. We don't recruit as much as I would like to, but I see
enough freshly minted software engineers to be jolted into writing this.

There are two basic things that need to be comprehended before we begin
a discussion about FOSS, jobs and career.

One, any language is built up on constructs, grammar and rules.

Two, Free Software is a 'science'.

Let's take the last statement first. If 'science' is defined by the
ability to take a set of steps and given similar conditions ending up
with the same result, then by a somewhat stretched definition of
'science' you will see that FOSS development is science. It requires
access to the source code, a knowledge of the options to build software
and mandates that the output and raw materials are subject to peer review.

Curious isn't it. And, it might be a somewhat refreshing change from the
'Free Software as a restaurant' concept that you will read at various
places.

So, to develop FOSS components we need a model of software development.
That's fairly self evident here - collaboration using various tools and
infrastructure. Constant communication leading to a set of improvements.

But, where is the code part in all of this ?

Hmm... there comes the language, grammar, rules and constructs bit. In
this case, if you forget your
<insert_your_favorite_programming_language> aspect and focus on your
mother tongue - the way you grasped it and became proficient was about
learning the atomic building blocks, progressing to more complex grammar
and thereupon to rhetoric.

It isn't too difficult when it comes to becoming proficient in a
programming language. Put particular emphasis to the atomic building
blocks and fundamentals. And, once you are fairly confident of taking
advanced steps, use the power of access to source code (provided by the
Open Source model of software development) to learn about coding in real
life.

There will be companies which will test you for your aptitude, emotional
quotient and what-not. However, at the end of the day what they expect
is a more-than-adequate grasp of programming fundamentals and an
appreciation of the project complexities of 'real life projects'.

And, an awareness of such complexities can come if you have been mucking
around code-bases that are large, complex and sometimes fast moving and
unwieldy. Thus, you will notice that will your academic training
provides you with the knowledge to 'write' code, the discipline of a
good software developer comes from keeping a lookout on the
'implementation' aspect of the academic exercises.

Trivial example here. The curricula mandates that you learn about data
structures and prescribes certain books and the like. However, the
actual implications of using various 'like' data structures or, an
appreciation of the trade-off between algorithms would come if you start
looking at code beyond what is provided by the syllabus.

And, such an effort would stand you in good stead irrespective of which
company you aspire to join or, what programming language you intend to
become a master at.

Having a scientific temper - the ability to grasp the core of the
problem, figure out a pattern to search and adhere to some logical (and
sometimes illogical) reasoning is what will get you a job.

Cultivating such a thing is possible within the scope of your syllabus
and within the time constraints provided by the semesters and your
social life.

Have fun,
Sankarshan


_______________________________________________
Users mailing list
[email protected]
http://lists.dgplug.org/listinfo.cgi/users-dgplug.org

Reply via email to