Tuesday, December 30, 2008

Re: [BLUG] Looking to study further in computer science

If you want a job in the computer field, learning as much Java as
possible could be a big help. It is used extensively in the enterprise
sector.

If you want a job at IU programming, Java is *the* language to aim for.
All IU's big projects are written in Java.

Java is used heavily in the "enterprise" sector. In many cases these are
massive in-house applications. If I remember the job sector, around here
if you want to get programming jobs and not work in Windows, you pretty
much are stuck with programming in Java.

Java has a large enough suite of libraries that learning more about it
will benefit you in the long run rather than adding another language
to your belt.

If you were aiming toward systems administration, then there are a
number of languages I could point you at. However for programming...
Unless you're going to be programming in Windows and/or writing hardware
drivers you may as well suck it up and learn the most Java possible.

A lot of open source software is written in Java. And even more software
plays nicely with Java. For instance, MySQL's Java interface is as fast
as the C library interface. For most other languages it is slower, as it
needs to use the C interface for the work, but for Java it has a true
native interface.

OpenOffice heavily uses Java. If you want to script OpenOffice you can
basically either use Java, or use some odd version of BASIC that comes
with it.

Now, if you're planning to learn a language for fun, I would recommend
you check out Python. Python is easy to learn and use, there is a
wide set of generally well-documented libraries for it, and one of
my favorite things: They've not only standardized on the programming
language, they've standardized on the *documentation* language, so all
Python code should be documented in English.

Also, if you're planning to learn a language for fun, I would recommend
you avoid Ruby like the plague. The "best practices in the industry"
for Ruby produces systems which are unmaintainable and unsupportable.
(Literally, you will be unable to perform a security update, let alone
a distribution upgrade without breaking things.) The language runs
significantly slower than any other language in the class. (Of the
popular set of languages, they are only faster than Prolog.) They've
failed to adopt UTF-8 or Unicode even though the language is as old
as the Unicode standard, and the language was invented in Japan. The
language is poorly implimented, and recommends coding practices which
are staunchly to be avoided in *any* other language. It is over-hyped
to the point where a lot of people mistakenly think it is good for
something. In truth, it is not. (Except, perhaps as a warning.)

You would be better off learning brainf**k than Ruby.
http://en.wikipedia.org/wiki/Brainf**k (Wikipedia redirects that URL
properly to the accurate name of the language. I have seen it called
simply "BF".)

Incase you've never heard of it. Here is "Hello World!" written in BF:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++
++++++++++.>.+++.------.--------.>+.>.

But really, my recommendation is: If you want to make an occupation out
of programming, learn as much Java as possible. Ideally try to make some
nice Open Source Java program, so you can show potential employers your
mad skills.

Cheers,
Steven Black

On Tue, Dec 30, 2008 at 01:28:22PM -0500, Ben Shewmaker wrote:
> I just finished my first computer science class at IU (covering Scheme), and
> next semester the class I'm taking will be covering Unix, Emacs, and especially
> Java. I'm wanting to push myself to learn something more at the same time
> (eventually I would love to get involved with some sort of open source
> project). Would it be wise to try to learn more than one language at once in
> the first place, or would I be better served trying to learn more Java than the
> course covers? What types of projects are developed with Java? What other
> language would be useful to try to self learn?
>
> Thanks for the info and Happy New Year everybody!

> _______________________________________________
> BLUG mailing list
> BLUG@linuxfan.com
> http://mailman.cs.indiana.edu/mailman/listinfo/blug


--
Steven Black <blacks@indiana.edu> / KeyID: 8596FA8E
Fingerprint: 108C 089C EFA4 832C BF07 78C2 DE71 5433 8596 FA8E

_______________________________________________
BLUG mailing list
BLUG@linuxfan.com
http://mailman.cs.indiana.edu/mailman/listinfo/blug

No comments: