I thought "professional" was a designation of one being employed doing
something?...
have a job as a programmer => "professional programmer".
don't have a job as a programmer, but still a programmer => "hobbyist
programmer".
granted, WRT competence I am probably around a similar level I think to
many
commercial developers, and I have maybe around 12-15'ish years C
experience,
but since I don't have a job, as I see it, I am a hobbyist...
although, I guess traditionally, "professional" does not apply to
unskilled
labor, such as picking fruit or being a frycook... (then again, maybe
there
are professional frycooks around, I don't know...).
<--
To me professional applies to people who work in a particular field
and are competent at what they do. Misleading and lying to people to
get a job does not make you professional even if you get paid to do it
(might make you a professional liar though). The point I'm trying to
make is there are a lot of people out there who label themselves as
professional developers when in reality they have little to no
accountable experience and are only someone basically aware of
language semantics and syntax.
-->
yeah, seems reasonable enough...
so, 'professional' means employed+job skills, fair enough...
it would be about like me going around promoting myself as a mathemetician.
I have basic skills and some familiarity with 'esoteria' (errm... because I
actually know what a quaternion or a tensor is...), but alas would be
totally 'pwned' if competing with someone who had any idea what they were
doing...
<--
Which is why you see "adults" floating around espousing how awesome VB
is because it has less of a learning curve than say C or Pascal or
whatever. The reality is they don't really understand what they're
doing at any useful level and they view C as "harder" because they
actually have to have half a clue about computer science to make use
of it.
-->
this is what happened when my dad did programming for a while...
"wow, I can use VB to do data entry frontends for an MS-Access backend!...",
and for maybe 2 or 3 years I was bothered about how VB was so much better
than C and was the most common language for business and so on...
but, alas, I stick with C, one of the main languages of ACTUAL software...
even if a lot of my stuff only really looks like text in a command shell...
well, at least this has sort of died off, followed now by a lot of
"esperanto is the world language of the future...".
<--
Some might shake that off as "oh well my $fav_lang has a standard tree/
heap/vector/whatever class and I don't need to implement it" but
without failure there will be a time where understanding the
primitives will pay dividends in terms of optimization or debugging.
Worse yet, because a lot of people don't have the fundamentals of
computer science down pat they don't even know of, or when, or how to
use specialized algorithms to make things possible.
-->
yep.
a lot of C++ promoters say this...
"there is std::sort and std::array and thus no need for people to know
sorting algorithms...".
or, further, that hand-written sorting algos couldn't possibly match these
in terms of speed, ...
I say, there are reasons to use custom sorting, and many places where
sorting is useful may not even be clear to be sorting problems (such as, for
example, spans-based memory allocation, ...).
one may have no vision of where they apply unless one knows the algos...
it is much like how, even though the computer trivially provides things like
sqrt, exp, sin, cos, ... there may still be some value in understanding
things like the taylor series, ...
doesn't mean that one can't just use sqrt or cos, but it doesn't mean either
that someone is inferior because they burden themselves with knowing such
things (and, in fact, I have implemented a few things in the past where I
have had reason to make use of these series...).
<--
This is why you see people using bubble sort, or ECB mode in crypto,
or countless other common trivial mistakes. They don't understand crap
about what they're doing, they just know enough rudiments to glue
things together into what seems like a workable solution.
And that's friggin scary.
-->
yep.
I use bubble sort sometimes (usually when it is small and I don't care if it
is fast, and usually it is in the form of cocktail sort, which works well
with certain distributions), quicksort for others (when it might actually
matter if it is slow), ...
learning quicksort has had many uses beyond sorting though, such as in
optimizing spatial and geometric calculations, ... (in this case, it takes
the form of real-time variants of the BSP algo, ...).