|
Prev: looking for design patterns of interacting state machine
Next: Passing a lot of parameters in constructor?
From: Jerry Coffin on 27 Feb 2007 01:32 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 27 Feb 2007 01:32 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 27 Feb 2007 04:51 "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 27 Feb 2007 05:38 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 27 Feb 2007 06:03
"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. -- |