From: Jerry Coffin on
In article <h56dnesJ98omL3_YnZ2dnUVZ_hOdnZ2d(a)comcast.com>,
nickmalik(a)hotmail.nospam.com says...

[ ... ]

> I ask you, Jerry, how our friend arnuld is supposed to become good at an
> obscure language without first getting a job in development that requires at
> least some exposure to software design and, ultimately, an opportunity to
> work in that language?

I don't think getting paid to do so is a necessary element of designing
or writing software. There are certainly differences (in at least most
cases) when being paid to do so, but doing it on your own doesn't
prevent one from learning a great deal -- especially about things like
the kinds of problems that you like solving. Being paid affects
mechanics a lot (e.g. few people use version control on their own) but
doesn't change the problems nearly as much, other than the fact that
larger teams make larger problems approachable.

> <anecdote>
> When I was starting out, I knew a fellow who chose an obscure language to
> start with, and really stuck to his guns. You know what? After 10 years,
> he finally got the opportunity to work, in a paid position, writing in
> Forth. Fifteen years later, he's still writing in Forth. He hates it.
> </anecdote>

Well, I certainly don't advocate sticking to something you hate,
regardless of why you started it.

[ ... ]

> > In this case, it's more a matter of a question only you can really
> > answer -- early on, it's perfectly reasonable to do a lot of exploring
> > to find what you like and what you're good at. Once you've found that,
> > it's at least possible to decide to specialize more -- even if you don't
> > pick too narrow a specialty, you can work in reverse, avoiding things
> > you really don't like.
>
> Good to see you come around to my original advice. Perhaps you were more
> clear in reaching it... ? Hard for me to judge. I'm glad that both of us
> ended up in the same place.

Sounds fine to me...


--
Later,
Jerry.

The universe is a figment of its own imagination.
From: Jerry Coffin on
In article <1172503085.627020.188380(a)h3g2000cwc.googlegroups.com>,
geek.arnuld(a)gmail.com says...

[ ... ]

> i love Lisp, UNIX way, design of HURD and the ideas and thoughts
> involved in the construction of EROS and Mercury projects. [1] Bill
> Gates is *extremely* brilliant at brand-development and *extremely-
> poor* when it comes to delivering a technically good product.

I have to disagree -- Bill Gates was personally involved in delivering
some technically excellent products, including some of the early BASIC
inerpreters and other language implementations. Though it may sound
strange now, there was a time was Microsoft was known for "lean and
mean" languages. For one example, years ago I remember a review (in
either DDJ or Computer Languages) comparing BASICs from MS and Digital
Research -- and the conclusion was that MS was generally better, because
it was smaller, faster, while the DR suffered from feature creep, bloat
and sloth.

Even today, MS has some products that hold up quite well in technical
comparisons. The most obvious competitor to MS Office, for one example,
would be Open Office.org. While I'll openly admit that both probably
have more features than most people need or use, the fact of the matter
is that at least in my experience, MS Office starts faster, runs faster,
and runs _much_ more dependably than its competition.

This isn't really new either -- back around the Windows 3 era (or so)
there were lots of rumors that MS software was faster than the
competition because they used "backdoors" into the system. At the time,
I routinely ran the Windows Debug Kernel, which did extra checks for
things like writing beyond the end of a memory block, using memory after
it was released, etc. -- and displayed messages when it found such
things, so you could fix your code.

Under the debug kernel, both Ami Pro and WordPerfect for Windows were
entirely unusable -- they literally spewed debug messages for minutes at
a time before their window first showed up on screen. I don't remember
which, but one of them was bad enough that the debug kernel routine shut
it down before it ran for more than a few minutes.

MS certainly isn't perfect, but I don't think words like "devil" are
appropriate either. Even if it was merited (which I don't believe is
true) such inflammatory language would hardly contribute to a discussion
of software design or implementation.

--
Later,
Jerry.

The universe is a figment of its own imagination.
From: Nick Malik [Microsoft] on
"arnuld" <geek.arnuld(a)gmail.com> wrote in message
news:1172501561.470135.50590(a)t69g2000cwt.googlegroups.com...
>> On Feb 26, 3:04 pm, "Nick Malik [Microsoft]"
>> <nickma...(a)hotmail.nospam.com> wrote:
>
>>
>> When I said "Once you are in the field and working for a few years, find
>> your 'up and
>> coming' language and move." I meant that the OP shouldn't choose a
>> language
>> that he cannot work in, hoping to get a first job. He should choose a
>> good
>> language that he can get started in, and then, once working, if he wishes
>> to
>> move, he can find HIS "preferred" language. In other words, take a good
>> choice, get started, and then, if you want to follow a more passionate or
>> more pure direction, do so with some experience under his belt.
>
> your earlier post did *not* mean that. trust me, this wording seems
> like totally different from what you said earlier.
>

I have attempted to explain my comments. It is your choice if you'd like to
believe me. I apologize again for the lack of clarity.


>> Passion for your work matters. If you want to work, work. But if you
>> want
>> to truly Love your work, you will need to go after the kind of work you
>> want
>> to do. I believe we agree on this point. However, I don't believe you
>> can
>> make that call from the outside looking in. I think you need to take a
>> job
>> in a good language, get your grounding, and THEN look around. If
>> language
>> is your passion, find the language you can love and go there. If an
>> application area is your passion, or project management, or testing, go
>> there... But don't try to decide from the outside. It's an absurd
>> proposition.
>
> what do you mean by "from outside" or "you can't that call from
> outside" ? i really did not get that.
>

I meant that you cannot decide, with full information and context, what area
of computing science you _Want_ to do without context. It helps to get that
context by working in computing science.

There are many aspects of writing code, for a living, that are not fun. All
jobs have that. Once you are working INSIDE the industry, you can see the
different roles that people play. You may discover a passion for one role
or another, and choose to invest in learning that role. Completely seperate
from language or problem space.

I know a fellow who became an established and respected systems architect
who quit to become a game developer. I know programmers who have become
testers, testers who have become project managers, and even attorneys who
have become programmers. Discovering a passion you were not aware of is not
rare. In fact, it is common and quite healthy. It is unlikely you can get
a good idea of what the roles are, or how they work, until you are employed.

Find a company you respect, find the open positions they have, and apply.
If they use C++, learn C++. If they use PERL, learn PERL. Get in the door.
Then decide.


--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--


From: Nick Malik [Microsoft] on
Your remarks are offensive and condescending. I'm reacting late at night.
I will keep my temper in check as best I can. I am human.

>> If
>> you had actually taken the time to write code in C# and then compared it
>> to
>> Java, as millions of others have, I'd be interested in your comments
>> about
>> the relative elegance of the languages. As it is, I can only chalk up
>> your
>> comment to prejudice. It's a shame. There are some very honest,
>> intelligent, curious, and imaginative men and women working at Microsoft.
>> Please don't insult them. I know many of them. They do not deserve your
>> vitriole.
>
> prejudice, vitriol...... Malik, you totally miss the point. read again

Alas, my friend, I did read again. If my advice was not clear (and it
appears to be the case), then I made an honest mistake, for I intended to
share insight that I thought you may find useful. Insight that aligns
almost word-for-word with Mr. Coffin's very similar advice (although it took
about two more messages before he ended up saying what I started with). At
least, his responses were polite.

On the other hand, your responses used some fairly negative terms.

You said:
"C# comes from house of Microsoft, best known for producing 3rd
class software. i can guess he (Bill Gates) must have ordered his
employees to create a technically disgusting beast out of C and C++"

First off, I do not believe that it is fair to say that Microsoft is "best
known" for producing "3rd class software." For each software title that you
consider third class, you are welcome to suggest a "first class" example.
However, there are many different measures of what makes software "good."
While the measuring stick used by various Microsoft product teams may not be
the same as yours, it is nearly always competitive and rational. While I
stipulate that Microsoft doesn't often create a cutting edge v1.0 product,
the products we do create are stable, with relatively few defects, and we
rarely walk away from a customer. That is hardly "3rd class software." To
call successful, profitable, well established products "3rd class" is
intentionally insulting.

Secondly, to say that Mr. Gates "ordered" anyone to do anything is to
demonstrate a massive misunderstanding of how large corporations work. I
have worked at many, and I've never seen a CEO "order" anyone to do anything
that produced a useful result. In Microsoft, as in most successful
companies in the USA, our corporate leaders believe in leadership, not
command and control. They rarely, if ever, "order".

Lastly, to call C# a "technically disgusting beast" is perjorative. Given
that you admit to not being familiar with the language, it is a judgement
made in absense of actual experience. Another term for that kind of
judgement is Prejudice.

I have a healthy respect for people who do not use the same software
platforms as I do. I even have respect for people who are willing to make a
rational case for why their measurements of "goodness" are more appropriate
than the ones used by the Microsoft product teams (where I do not work).

Where my respect, and patience, fails is when someone proudly makes
statements of how bad a product is that they do not use, on the basis of a
percieved impression of the company's former leader that is based on vague
and incorrect notions, in a clear absense of facts. If you have a
measurement of why you believe the C# language is not elegant, share that
measurement. I would love to see it. I may even agree. Otherwise, I fail
to see how I have missed any point. I caught them all. To suggest that I am
incapable of recognizing an insult when I see one is condescending.

>
>
>> If you believe that C# is somehow disgusting, I urge you to actually do
>> some
>> research from independent researchers to find out what languages are more
>> elegant, performant, or maintainable. Perhaps you can start
>> here:http://www.gotdotnet.com/team/compare/
>
> i love Lisp, UNIX way, design of HURD and the ideas and thoughts
> involved in the construction of EROS and Mercury projects. [1] Bill
> Gates is *extremely* brilliant at brand-development and *extremely-
> poor* when it comes to delivering a technically good product.

Bill Gates doesn't deliver products! Do you think Microsoft is a 100-person
company? Microsoft has over 25,000 employees! Bill is not president or
CEO, and soon he will even step completely out of the architecture role he
currently inhabits. Bill is a guiding force for innovation, but he hasn't
personally delivered software in quite a long time.

Oh, and those products that are not "technically good..." run on about 90%
of all personal computers worldwide. I guess that "technically" is not the
only definition of "good" that should be considered in the equation, should
it? Don't get me wrong. I am a firm believer that we should be able to
trust our software to keep our information safe, secure, and available. But
I don't believe in technical purity for its own sake. BTW: IMHO: Apple is
better at brand development than Microsoft is. Hands down. Clearly, brand
isn't the only element of "good" either.


>
>
>> I am being honest
>> with you.
>
> that is good and you do not need "devil in brackets" to prove your
> honesty. the "Disclaimer text" is enough.

The only word in brackets is the name of my employer. Do you believe that
it is not inflammatory to refer to my employer as a "devil" when you have
demonstrated, proudly, a lack of knowledge or understanding of what it means
to work there? This is another example of intentionally casting insults.
There is no room for this kind of name-calling in a civilized conversation.

This is the last I will say on the topic of your clear and demonstrable
prejudice against one of the leading software and programming tools
companies. You can find whatever employment you wish, on or off of the
Microsoft platform. I continue to wish you luck in your endeavers.
However, I do not believe I shall make much effort to provide you with any
more guidance or advice.

Good Luck.


--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--


From: Nick Malik [Microsoft] on
"Jerry Coffin" <jcoffin(a)taeus.com> wrote in message
news:MPG.204d734b61d0db5e989885(a)news.sunsite.dk...
> In article <9ZidnQPlUqM9LX_YnZ2dnUVZ_hGdnZ2d(a)comcast.com>,
> nickmalik(a)hotmail.nospam.com says...
>
>
>> > There is a wide range of choices as to how to approach programming. Mr.
>> > Malik's advice is basically at one extreme: to go with the latest fad,
>> > and plan to learn new languages as they become the latest fad.
>>
>> Interesting interpretation of my words. Not sure where you got that.
>> The
>> OP clearly asked about the OO language direction he should take. Was it
>> wrong to suggest Java (a 10+ year old, very well established language and
>> platform for multiple OS targets) or .Net (a slightly newer platform with
>> multiple languages for one one OS)?
>
> I never said anything was wrong, and I'll openly admit that I may have
> misintepreted what you said. At the same time, do you think my
> interpretation was unreasonable, given what you said (and, perhaps even
> more, what you didn't say)?
>

I admit to being unclear. It should be clear, now, that our positions are
fairly similar in many respects. (A few key differences, but nothing
diametrically opposite).

> [ ... ]
>
>> This is an utterly foolish question to ask a novice developer. With no
>> basis to make this decision, the answer can come only from self esteem,
>> which is a lousy indicator eventual productivity. I've seen truly cocky
>> developers screw up massively, and truly humble developers write
>> thousands
>> of lines of fast, elegant, bug-free code. Neither could have answered
>> that
>> question before writing the code, doing the work, and discovering their
>> strengths and weaknesses under pressure.
>
> I can't say that I agree. For one thing, I think ego (or something on
> that order) often what drives people to become really good at what they
> do. While it's true that there are a few extremely humble people who are
> extremely good, my experience has been that for _most_, becoming good
> was largely a matter of putting in a lot of time and effort. For most,
> the real justification was simply that they wanted to be that good. I'm
> pretty sure for most people if the idea is to get maximum return for
> minimum effort, programming is almost always a pretty poor choice.
>

Perhaps my experience has simply been different from yours. I've met both
the "proficient" and the "excellent". Desire, passion, motivation are all
key to getting to any level of proficiency. Recognition is usually a major
motivator for these folks, so ego shows up as well. However, in none of the
cases where someone had desire and passion could I reasonably predict
success, nor could I say that a lack of ego was a predictor of failure. You
have to love the code. Loving yourself is tangential at best.

Therefore, to ask someone with no formal training, and a year and a half of
LISP, if he thinks he can be a good developer, is pointless and potentially
misleading.


> [ ... ]
>
>> Passion for your work matters. If you want to work, work. But if you
>> want
>> to truly Love your work, you will need to go after the kind of work you
>> want
>> to do. I believe we agree on this point. However, I don't believe you
>> can
>> make that call from the outside looking in. I think you need to take a
>> job
>> in a good language, get your grounding, and THEN look around. If
>> language
>> is your passion, find the language you can love and go there. If an
>> application area is your passion, or project management, or testing, go
>> there... But don't try to decide from the outside. It's an absurd
>> proposition.
>
> While I can certainly see your point, I can't say I entirely agree. In
> fact, I've tended to do rather the opposite: I explored first, on my
> own, and when I was reasonably certain what I wanted to do, found
> somebody who'd pay me to do that.

Two questions come to mind:
1) when you were exploring, were you working in technology?
2) How long, after you chose your first technology, before you changed your
mind?

Most folks choose what they "think" they want, and change their mind within
a year of starting. So, how important, in hindsight, was all that "relative
certainty" to the next set of choices you made?

>
> I may have just gotten lucky on at least some ocassions though. My
> current job, in particular, has allowed me to continue exploring things
> I found fascinating before I started here. It probably helps, however,
> that I was employee #3 and the first "software guy". Instead of finding
> something inside that I'd enjoy, I built the inside out of things I
> already enjoyed. The fortunate part was finding customers who found it
> useful enough that somewhere around 14 years later, I still get to spend
> at least part of my time doing interesting things (though I'm afraid I
> also spend a lot more time in meetings and such than I did when I
> started...)

I certainly have no cause to doubt your experiences. I have heard many
stories like this from others as well. At this point in your career, I'm
sure you have reached the point where you trust yourself, and what you know,
because you've likely invested the time and effort needed to truly excell in
some part of your chosen field or technology. Perhaps I'm surprised that
you chose that particular field or technology before you received your first
paycheck.

If that is the case, you are rare indeed.


--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
--