Fog Creek Software
Discussion Board




Reluctance to Learn

One my coworkers is a VB programmer and thinks other languages are too hard and doesn't seem to have the willingness to learn other languages (C in particular).

Any solutions to this?

Alai
Tuesday, March 11, 2003

Get a new employee.

One of the fundamental characteristics of our field dictates that things evolve, languages included.  If one chooses to not evolve with it, he is subject to the laws of natural selection.

That's why most universities teach concepts rather than languages.

Walt
Tuesday, March 11, 2003

I have to whole-heartedly agree.  I can't imagine a programmer saying anything is too hard.  Isn't that why we do what we do...  because it's hard, or so we think?

If he's not up to C or whatever, be gone with ye!

B#
Tuesday, March 11, 2003

Is there a reason that he needs to learn C, besides earnning "geek points" in your eyes?  VB to C seems like a large jump - if all he's ever done is VB, C can be daunting, especially if he's dropped into a production app too early.

Perhaps he is not reluctant to learn in general, but sees no point in learning C in particular.  The truth is that C is a good thing to know, but many (most?) programmers have no need for it.

Tim M.
Tuesday, March 11, 2003

Learning C alone is not of particular benefit, but it is very helpful to know C when you want to start using C++.  And C++ still has many years left in it.

But I am an idealist, and I don't think that specific languages are the issue at all.  A good programmer doesn't limit himself to one language, since it may not be around in a few years.  Tons of VB6 programmers are jumping to C# and ASP.NET.  C++ people are learning Java.  And we don't know what will come tomorrow.

New languages should address old problems, and provide new innovative solutions.  If I had an employee that was unwilling to change because he doesn't want to learn, then I'd look for someone who would.

There are tons of them out there looking for work right now.

Walt
Tuesday, March 11, 2003

This topic is like saying:
- my coworker is a C programmer and thinks assembly language is too hard and doesn't want to learn it
- my coworker is an MFC programmer and thinks that writing kernel-mode device drivers is too hard
- my coworker speaks English and thinks that learning to speak Sanskrit is too hard

Why do you think that the VB programmer needs to learn C? If there is no specific work reason for the VB programmer to learn C, just stay out of his/her way and let him/her continue to be much more productive in VB.

It is true that some people seem unwilling or reluctant to learn new things that would be useful in their work (or lives), but being unwilling (or uninterested) to learn the C programming language (or some other specific language) is probably not a good indicator of whether someone is unwilling to learn in general.

I am personally "unwilling" to learn (or uninterested in learning) Ada, C++, Lisp, Java, etc. However, I have learned many new things over the years - XML, SOAP, XHTML, HTML (years ago), CSS, JavaScript, some new design patterns, Win16 API, Win32 API, VB1, VB3, VB5, VB6, VB.NET, better user interfaces, database modeling, Access, SQL Server, Oracle, stored procedures, moving from client/server to 3-tier to n-tier programming, transactions, stateless programming, and on and on (not to mention all the non-programming learning - how to pour a concrete patio, etc).

anonymous
Tuesday, March 11, 2003

>> Any solutions to this?

Solutions are needed when you have problems. What is exactly the problem in this case?

I know many people who know the only natural language -- English, and don't want to learn other languages. Is it a problem?

Probably, it's not.  However, I personally speak 6 languages and think that mono-lingual people definitely miss something. The same is true for programming languages.

"Learn a new language, get a new soul" -  a (Czech?) proverb.

raindog
Tuesday, March 11, 2003

I don't think is about requiring people to learn old languages.  For that matter, VB is old and outdated as well.  Large scale desktop applications written in VB are bulky and the code base is a huge mess.  And if you want to do something later that you can't do in VB (such as inheritance), plan a major rewrite.  VB can build you software quickly, but the long-term return on investment is horrible if you have to maintain it.

Programmers need to be aware that any language is not all powerful, and different tasks require different languages.  C is not dead by any means because if you have a small task you want to run very quickly (like doing floating point calculations), you don't want to do it in VB.  My company uses VB for a main UI, yet all calculation intense operations are done in C and C++ DLLs.

What one language can do in x lines of code, others take 3x lines.  And no one will say that 3x lines are easier to maintain than x lines.

In summary,
1) Programmers should be open to learning new languages so they are capable of solving problems in different ways
2) Large scale projects often require more than one language.
3) You don't want to keep a stoic, single direction programmer on his single, stoic path for years and years, only to find that once he's gone or that the path doesn't work any more, you don't lose all your money in a total rewrite.

Walt
Tuesday, March 11, 2003

Threads like this seem to indicate that techies have a say. In technology oriented companies in technology rich areas they do. In any other circumstance they generally don't.


>> One my coworkers is a VB programmer and thinks other languages are too hard and doesn't seem to have the willingness to learn other languages (C in particular).


Uh, in my area, a guy like that usually makes more than me or other people who are "serious developers".


Why? Mainly because he's not smart enough to intimidate anyone, therefore is known as a "good guy", not one of these "overly smart pricks" that know too much ...

Being an uber-geek is generally a recipe for career suicide because it invokes jealousy, on the part of everyone else.

Because he probably partied in college (if he even went at all), therefore can hold his liquor, and therefore comes off as funny at parties, so he's more socially oriented - which means a candidate for management grooming.


The most "serious developers" are generally at a SEVERE political disadvantage in most companies, unless the owners of the company or top management are technically oriented and they know such developers personally. Which is usually not damned likely.


Being a serious developer, career wise, means sitting in the midst of a domain where you are nitpicked over trifling style disagreements with management.

As far as the VB lightweight goes, more power to him. He'll probably make more than all of us soon if he plays his cards right.

Bored Bystander
Tuesday, March 11, 2003

THERE'S NO CRYING IN BASEBALL! kill him immediately and make room for an actual developer.

trollbooth
Tuesday, March 11, 2003

If the organization strongly resembles the Dilbert universe, then anything is possible.

If you are a serious developer (meaning you probably have a degree and are versatile as to your programming abilities), you will generally look for a job that supports that.  If your company hates you for what you are, find one that appreciates it.

If your company's a .com and all it cares about is having a really cool web site and making a quick buck before backruptcy, then they'll stock their pond with cheap programmers that probably never went to college, and are usually limited to a single domain (like VB).  They are very good at what they do, but that's where they end.

If your company is striving to produce quality software, and plans to keep doing so, then you need a higher class of developer.  In that case, being smarter doesn't make others jealous, since one person's raise doesn't mean another's paycut.

I have good fortune to work in a team of 4 developers, all of whom have different strengths.  And I am first to admit to being the low man on the totem pole.  But rather than be jealous, I've learned from them, and in the time I've been here, I've moved from straight C++ to COM, C#, and a little VB as well.  And the pay raises don't come from just sitting in a cubicle and programming with blinders.

Walt
Tuesday, March 11, 2003

Wow...some serious cynics here.

Interesting excuses aside, a true professional in this field will always be striving to learn something new, be it a new language, technology, etc.

I've met lots of "I know <insert relatively outdated technology here> and that's all I care to learn." I have *no* use for most of these people on my projects because I want people who have a passion for this industry. I want people who feel the constant need to learn something new.

Once, I was just a happy programmer writing assembly language. Nobody asked me to learn all the languages I've since learned. I took it upon myself to expand my horizons and adjust to industry changes. And that's a good thing. There ain't a lot of work out there for guys that only know assembly language.

Hey, if someone wants to stick with VB and not learn anything else, then that's fine. Good luck to them. As for me and the people I work with, that's not good enough.

Go Linux Go!
Tuesday, March 11, 2003

I find this silly in the extreme.  Inherent in the original post is the fact that there is some need to learn other languages.

Alai didn't say:

"A co-worker is unwilling to learn to remove his own gall bladder with a spoon and, although there is no good reason for him to do so, I was just curious why he doesn't want to learn.

Can we assume that there is some requirement to learn and he/she is simply refusing or reluctant.  No?

Naw that's silly!  Less learnin' more earnin', that's what I always say.

B#
Tuesday, March 11, 2003

One my coworkers is a VB programmer and thinks other languages are too hard and doesn't seem to have the willingness to learn other languages (C in particular).

Any solutions to this?

^^^

That would depend on what the problem is exactly?

Is the problem that the co-worker is unable to do the job they are hired to do? In that case, it should be put to them that they _need_ to learn to keep the job and action taken to replace them if they fail to take the hint?

Is the problem that you feel offended that he doesn't laugh at your jokes about common C bugs? In other words, is the problem that you think the co-worker "Should" be learning C because "It's a good thing". In that case, the solution would be for you to get on with your own work and mind your own business.

Robert Moir
Tuesday, March 11, 2003

I would also think twice if I would be asked to invest heavily in a technology that in my mind is a dead end. I am not implying by this that C somehow qualifies for this and that VB or wathever does not. That is a value judgeent everyone makes for himself.
But if tomorrow it was decided I should invest the next year to become our specialist in <insert a technology you think is running on its last legs within your company and is probably unmarketable anywhere else>, would you jump at this opportunity to aquire this new knowledge?

Just me (Sir to you)
Tuesday, March 11, 2003

The general idea is to get slightly more structure and more reliability then I can see in VB -- one example is trying to get a timer control to be consistant across different speeds of processors.  C# might be a good idea -- I don't know much about it, but I"ve heard it's fairly easy to pick up.

Alai
Tuesday, March 11, 2003

B# - I don't like to post "yeah, what you said" posts but:

>>  "A co-worker is unwilling to learn to remove his own gall bladder with a spoon and, although there is no good reason for him to do so, I was just curious why he doesn't want to learn.

ROTFL! Excellent! Is that copyrighted? :-)

>> Less learnin' more earnin', that's what I always say.

Could be that the VB programmer is "onto" this.  Businesses value whatever earns them more money. Very often, "lightweight" people who take the low road have figured this out.

Seriously, whether this guy 'should' learn VB will be related to several factors: his career goals and interests, his interest in continuing to code for a living; and his management's plans for him, being predominate weighting factors.

Also, I've observed that developers with only one language experience commonly just don't know and aren't aware that their tool *is* limited. To be elitist about it, this happens most with the ones that have no professional credentials such as some college or otherwise narrow technical experience. They kind of think the whole world is BASIC or Progress or Access.

I worked with an ex-machinist who had made the jump to programming (VB) back in the "we need warm bodies" mid-90s, and he would assert loudly that "you could use VB to do anything!". Obviously he knew nothing about device drivers, OSs, databases, engines or low level programming in general, and he would drunkenly kick your ass if you tried to tell him....

Bored Bystander
Tuesday, March 11, 2003

This is also a generalized consensus between the two of us that C might be more flexible then VB for the things that we need to do (custom video playback, and networking). I might just explain things badly, but some concepts (like bitmasks and recursion) are things that I would have difficulty getting across. Is the problem on my end?

Alai
Tuesday, March 11, 2003

Alai,

You mentioned custom video playback and networking as examples. Are there defined performance requirements for the application? VB is not known for being nimble when it comes to speed.

What kind of networking? Client/Server, peer to peer? With winsock, VB can easily be a client or a peer, but if you are having to make a server then that just flat leaves VB out. (Doing things like IO Completion ports in VB just won't happen.)

Anyway, if there really is a concern that VB won't work, then try to hammer down some performance requirements...and then hang him with 'em. :')

Go Linux Go!
Tuesday, March 11, 2003

This networking is both peer-to-peer and acts as client to server, with the VB program being the client. I'm not sure on the limitations of VB, but my coworker feels that VB is very limiting in certain respects (he's been programming in it for years).

Alai
Tuesday, March 11, 2003

Why does he think it's hard? Is that specific to C or with new languages in general? If it's the former, try addressing those specific concerns. If it's the latter ...

Very, very early on in my career as a Web Developer, we had a CGI/Perl script that needed writing. I didn't know how to do so, I told my manager.

"Well then learn how!" she rudely demanded.

But after my initial defensiveness, I realized she was right.

No one's born knowing this stuff. All it takes is intelligence and hard work. And if they're missing either attribute, you don't want them as a coworker.

Joe Grossberg
http://www.joegrossberg.com

Joe Grossberg
Tuesday, March 11, 2003

It's not a matter of lacking intelligence or hard work -- he has both, and works extremely hard. He just feels that even though he thinks that C or something like it is the way to go that it would not be a good investment of his time, and is struggling with recursion. In the meantime, he has many other duties that make his time very tight, and so doesn't feel like learning this, although it would be the way he feels things should go.

Alai
Tuesday, March 11, 2003

Alai:

That last description of the situation makes it sound to me like he's using a familiar tool for the job because he doesn't have the time to learn the correct tool (Not that C necessarily is the Right Tool, but if we assume it's not VB...).

This sounds like a management issue to me. It seems like your friend is being asked to do many tasks, and the only way he knows to get them all done by the deadline is to do it with what he knows.

That sounds reasonable to me. If the quality of what he's outputting is good enough, then fine. But if his VB work won't cut the mustard here, then management should get someone with the skills needed, whether that be through replacement or just giving him a week to play with C or whatever magic bit of syntactic sugar is needed for this project.

Maybe there's another option here, but it sounds like he's not being given the opportunity to do his job better (Assuming it isn't good enough now).

Mike Swieton
Tuesday, March 11, 2003

Don't underestimate the secondary skills people with 'lesser' languages usually have. I'm not comfotable with vb myself, but many I know who are, and they tend to be very good at things like the business end, they are closer to the end user, or better at integrating with office, champions of the quick and funtional etc etc.

Imo, the benefit of learning new languages is mostly that you get a better look at a different level/aspect of programming. If someone isn't interested in C, there is no reason to feel superior. Maybe device drivers just don't float their boat. I don't get more into vb because the 'around the office' part of programming doesn't interest me, and that is where vb seems to shine. If you see a vb person making more money than you, don't right it off to brown nosing right away. There is a good possiblity that they are bringing more value to the company. Maybe because VB is easy, in fact.

I've gotten very familiar with actionscript through animation. The programming was easier than now, but the concepts that came with it weren't. Of course the hard part of learning any new language isn't the fourty odd keywords, its understanding what it exposes. Something to keep in mind I think when rating one's intelligence based on how 'hard' their language is, I think.

Robin Debreuil
Tuesday, March 11, 2003

>> ...and is struggling with recursion.

What does recursion have to do with learning C? You can do recursion in C (or in VB for that matter), but it's not a fundimental part of learning the language. Most of the time when recursion is the answer to a problem, either it's the wrong anser or the wrong question was asked.

RocketJeff
Tuesday, March 11, 2003

What is your company doing to help enable him to learn?

Sign him up for a class, get somebody to mentor him, buy him some books. After he's gotten his feet wet, he probably won't be so reluctant to learn C.

Just because he's not as self motivated as many doesn't mean he can't learn it. He may lack self-confidence, or time, or motivation, or support. Granted, these are something you want the employees to have, but why throw him out on ear until he's been given these tools to turn him into a better employee? Proper co-employees and managers should be able to turn him into a better employee.

Sunshine
Tuesday, March 11, 2003

These are the types of issues holding this industry back.  Programmers (or whatever fancy title you want to give them) who refuse to learn new things.  Whether those things are software development concepts they should already know (that might be learned through another programming language) or communication and business skills that help provide customers (whether internal or external) what they actually need to perform their tasks.  What other supposedly "professional" industry can you think of where people read one For Dummies book and then declare themselves trained?  Doctors? Lawyers?  Accountants?

I have yet to see a case where replacing a "good enough" programmer with a great programmer wouldn't generate additional revenue or decrease costs.  This includes everything from higher support costs because of utterly pathetic code that some of these people write to unhappy customers because the programmer seems to feel that usability is a training issue.

Do you think that any of the truely successful software development companies hire these poor excuses for programmers?  Think Microsoft and IBM.

It is no wonder that these jobs are being shipped overseas.  While it is questionable whether or not overseas developers are better in what I mentioned above, they are certaily cheaper and probably just as good at creating code that is "good enough".

Anonymous
Tuesday, March 11, 2003

Let's get this straight.

This guy is producing software to a tight schedule, and you expect him to learn C in his coffee breaks and produce production level code in it at the same time?

It seems to me that it's all the guys who are criticizing him who need to do some quick learning - like the neurons firing before fingers on keyboard technique.

Stephen Jones
Tuesday, March 11, 2003

Actually, Stephen you may want to take your own advice.

Who said anything about in between his coffee breaks? Regardless of whether or not he should learn C, programmers should take an interest in learning new technologies on their own time.

This will probably upset a lot of people, but if about the only time you learn new software development techniques is while you are working your 40 hour week, then you are very likely stagnating. Sure, you may be able to hold down a job without ever picking up a technical book during the evenings or weekends, but rest assured that over time you will become a relic with outdated skills.

Mark Hoffman
Tuesday, March 11, 2003

I guess I didn't make that clear.  Learning should be done on your own time if necessary.  I would expect anyone who wants to be a software developer to have at least that much interest in their profession.

Anonymous
Tuesday, March 11, 2003

He is very good at the business end, and more of his time is being soaked up by this; I don't expect him to be an expert, but it would be nice if he was familiar enough to get the gist of something that have explained before and now have code for.

I have noticed that VB is very good for prototyping and getting a mockup; often the mockup becomes the real thing because redoing part of it to fit comments produced before release would involve more development time and that cost is easier to see then the cost of a redesign of the interface to accomodate changes, but that's a whole other can of worms.

I suppose that this reluctance to learn something that we've said might be better to work with is partially due to the fact that he has me handle that end, and is thus a more efficent use of time.

Alai
Tuesday, March 11, 2003

put out an add for a programmer with C and VB skills. Then dump the hundreds of resumes you get on his desk and ask him to pick out his replacement.


Tuesday, March 11, 2003

I think one of the real problems of this industry is the blame the victim attitude I see here.

I keep hearing the phrase "world class coder" and if a guy (or gal) isn't one of those then they should just lie down and die.  Anything that happens to them can't possibly be worse than they deserve.

I'm sorry, but the phrase "world class coder" brings to mind about 500-1000 people.  Now how much of the world's work are these folks supposed to be able to get done?  Should all the rest of the programming in the world just stop until these gods get around to it? 

What I see here is a valued VB programmer, good with business rules (the heart of VB work), being treated like dirt because his C colleages are untalented enough to be able to explain what they are doing in their part of the project in plain English.

Two points: 

1. Constant learning is part of the computer world.  I take a community college or extension course each year in a new or related area.  If recursion is his problem, having a teacher would probably help.  I had to hear this stuff a couple of different ways (teacher, TA, a book or two) before it sunk in.

2. The methods out there for learning computer math on your own are crap.  I got a 5 on my AP calculus exam and a B in differential equations in college.  When I came to programming later, the math gave me fits.  And there was very little help available.  Someone at O'Reilly needs to write a math for programmers book like the physics for game programmers book. 

Contrary Mary
Tuesday, March 11, 2003

-------"Regardless of whether or not he should learn C, programmers should take an interest in learning new technologies on their own time. "-----

You still don't get it Mark. The guy is stressed out doing a difficult business application to meet a deadline; he probably is too tired to do much studying during the week, and will need half of the weekend at least to wind down.

How quickly do you think somebody can learn C to the extent of being able to write mission critical code in it? A couple of weekends? It probably took you most of a year at college to get anywhere near that level.

This thread is mistitled "Reluctance to Learn"; it should be called "Reluctance to Learn C" which is a different matter.

Now this guy doesn't need to learn C because it's a useful extension to his present skills; as other posters have pointed out there are plenty of other things (VB.NET. C#, ASP.NET, XML, UML as well as domain related stuff) that are more relevant to the typical VB programmer's normal work. The company wants him to have C now for the program he's writing to a deadline.

I speak three or four foreign languages; if somebody told me that Chinese was necessary for a business project we had in China for the next three months, and that it was my job as a professional linguist to keep learning other languages, I would laugh in their face. By the time I had even a smattering of Chinese the project would be over.

Why do these self-appointed guardians of the programming flame find it so difficult to apply common sense to their situation?

Stephen Jones
Wednesday, March 12, 2003

Look at it this way (I'm deriving all the "facts" from indirect hints in the posts here):
- You colleague is a hard worker with a lot on his plate.
- He is bright and very productive with a certain tool, VB, and this is the reason he manages to keep the plate from overflowing.
- There is this new project added to his workload, that has a tight schedule associated with it and can be done in VB
- It could also be done in C and in theory the result could be more performant
- Your colleague has no C skills, and basically would have to learn this new skill while pumping out the production code on the tight schedule

My advice: Finish the thing in VB. Look at the actual performance bottlenecks (if any). A possible solution could be rewriting selective parts for performance (maybe in C).

It is unclear to me what your role in this project is. If you are involved and have the required C skills already, why not take on some of the parts you intuitively feel would benefit most from the C approach? I see no reason why you could not produce some components for him to consume? Why would it have to be 100% C or 100% VB?
Unfamiliar with C component development for VB consumption? Now here is a great opportunity for learning on your part.

Just me (Sir to you)
Wednesday, March 12, 2003

Stephen,

Relax. Chill...Read what I said. I said the argument *isn't* over whether he should learn C. You even quoted me then went off to rant why he shouldn't be forced to learn C.

Forget about C. It's moot.

Once again, my point wasn't that he should learn C. My point in general is that many programmers make zilcho effort in advancing themselves. Does this describe the programmer in question? It's impossible for any of us to say unless we know him personally.

Since I don't know him personally, I can only draw from personal experiences. And in that experience, I have met many "Cowboy Coders" who know one technology and that is all that they want to know. Often, it's VB programmers. They know jack about architecture, jack about software engineering, jack about how to do unit or system testing, yada, yada. All that would be fine if they could be isolated and left to focus on what they are good at. But therein lies the rub. All too often these "Cowboy Coders" are allowed to run amock.

I'm not picking on this particular person. I'm making a broad generalization about many programmers that I have worked with that sound a lot like this person. (In this case, he doesn't understand recursion. That's a pretty *basic* concept. If he doesn't understand that, he needs to advance himself. Period. Recursion is a freshman concept in college.)

Mark Hoffman
Wednesday, March 12, 2003

To me, this is the difference between a Programmer and a Software Professional/Engineer/Whatever.

A programmer knows one domain, one specific tools / language. He is like an artisan, he knows his trade well, but never looks beyond it.

The professional, on the other hand, is a little bit of an artist, knows several domains well and peripheral ones moderately well, eager to learn new tools that will make his 'art' more 'avant garde'. The professional has an easier time adapting to new technologies and concepts.

Both have their place, both have their price. A good manager will know when he needs which and how to best make use of these human resources.

Tal Rotbart
Wednesday, March 12, 2003

I'd say the professional is the one who delivers the goods. I don't very much care about his artistry.

Just me (Sir to you)
Wednesday, March 12, 2003

No Mark,
              You should read what you wrote. You took this guy as an example of a particular type of programmer you (probably rightly) don't like.

                The point is that all the evidence we have about this guy is that he is perfectly competent but doesn't feel there is sufficient time to learn C. This doesn't he doesn't want to learn anything, or that he  never does learning in his own time. What the poster and many of the "hard-core programmers" don't seem to understand is that if he is going to learn in his own time he's going to learn what HE sees as important, and for reasons clearly given elsewhere in the thread C is not high up on his list.

-----"n this case, he doesn't understand recursion. That's a pretty *basic* concept. If he doesn't understand that, he needs to advance himself. Period. Recursion is a freshman concept in college."----

You're making the typical mistake of presuming that what is "basic" for you is basic for others. First of scarcely any VB programmers took CS at college. Many of them arrived at VB programming through gradually taking on more and more computer related jobs at their workplace. They very probably have other skills and find things basic that you would have trouble to understand.

I got my degree in English and modern languages. I have no difficulty in understanding the idea of a phoneme, or that Standard British English has twenty vowel phonemes, Network English has fourteen and Canadian English ten. And I find it self-evident that languages are never learned but always created, and that you don't get your mother tongue from your mother.  These "basic" concepts present considerable difficulty to other people.

One of my interests is the study of evolution. I am constantly amazed in arguments how people have the most elementary misunderstandings of the mechanisms of evolution. But I don't think they are stupid or intellectually lazy (well not all of them!), because I remember how much time and study it took me to intenalize these "basic" assumptions.

Recursion is not "basic" to somebody who does not have any Math trianing past GCSE, and that is more math than most business applications require. Believe it or not I have read many tomes on database design, as well as UI design (both of which are key to many business applications) and only ever came across the word recurison as a buzz word on these forums. As a result of your post I went and dug out my Math reference book (stll unread because it's low down on my todo list) and come across this in the Introduction, six lines down.

---"to define a function  with the set of nonnegative integers as its domain

1. Specify the function at zero."------

Problem is I'm not at all sure of what the domain is, nor what it means by at zero, I have an inkling but would have to go through the Math book, or a previous introduction to introducition to Math book to be sure. And I only know what a "set of nnnegative integers is" because I have to teach basic math vocabulary as part of my ESL job.

You can't begin to function as a C programmer without understaniding this. Yet VB and Access programmers have written top class business apps without ever needing it.

What you are saying he needs to know is important but so are other things. To give you a simple example our college database was built by various programmers who being computer science graduates presumably had recursion down to a tee  - or maybe they had it recursively down to one of the letters of the alphabet that came before presuming we had remembered to dimension them as integers :)

However knowing recursion didn't stop them designing reports that cut out the students surname on the attendance sheet, so that when we call the roster we have to guess the surname from the first two initials and thus have many students think we are taking the piss out of them, or have us forced to reenter the date when we are entering attendance for another secition because the date (which has to be entered manually with a four figure year) comes after the section in the form, although the standard procedure is for everybody to enter the attandance for all sections at the end of the day, nor to producie schedules wihich give students and staff their first session to begin at seven in the morning and their last session to finish at ten-thirty at night!

Stephen Jones
Wednesday, March 12, 2003

My urge to learn is overwhelming!  Subsequently, I must request a cite.  I couldn't find a reference as I'm not a cunning linguist like yourself... well not really! <g>

"...and I find it self-evident that languages are never learned but always created"

B#
Wednesday, March 12, 2003

Well, I'll go ahead and take this completely off-topic....

Stephen, while there is no doubt that linguistical challenges may come easy to you because of your education, that really has no bearing here since we're talking about the software development industry. What is considered "basic" in other areas really has no bearing on what is considered "basic" in software development.

Was the definition you posted a definition of recursion? Heck, it confused me and I'm an accomplished C programmer and I've used recursion in everything from VB to C#. You seem to be trying to paint it as this abstract mathematical concept that only gurus can grasp. It isn't.

Once again, I'm not saying that everyone has to know C to be a professional developer. However, I will suggest that most professional developers will have a desire to learn C since it's virtually the lingua franca of software development. Not being able to understand C (or C like langauges such as Java) can represent a large hole in a developer's knowledege base.

Yes, yes...I know, there are lots of corporate developers out there slogging away with VB 6.0 and they have no need to understand C. And that's fine for them.  However, when they start having problems with their COM+ application, or they have to integrate into a C++ library or work with JavaBeans, or find some way to tweak that network code, or whatever....having a broader and deeper background can make a lot of difference.


(And yes..maybe I am just bitter...I've had to work with some "one trick ponys" in the past that insisted on using VB or even Turbo Pascal for applications it was totally unsuited for because it is all that they knew. To make things worse, most of these were so-called "architects" and had egos the size of Mt. Everest....

although they didn't understand something as simple as recursion. <g>)

Mark Hoffman
Wednesday, March 12, 2003

Ten vals? Ya musta mist oat a few.

Robin Debreuil
Wednesday, March 12, 2003

----"What is considered "basic" in other areas really has no bearing on what is considered "basic" in software development. "----

My point is that what appears basic to you is not at all easy to others; that is the only reason I bought in examples from linguistics.

You keep maintaining that  C is "the lingua franca of software development" is simply not true. It's the lingua franca of a sub-set of software development (the real lingua franca of course is hexadecimal); if you're wiriting native code for Windows or Unix then, since much of both OS's was written in C, you have a point. But a large amount of software work is dealing with databases, forms and getting the forms on to the web, and transferring data between formats. C just doesn't enter into it.

How many of these "true developers" you refer to have studied the basics of user interface design; I bet you'll find most of them have no interest in this whatsoever, and yet you don't say they are complete disgraces even though a crappy interface causes many more problems than non-optimized code.

I'm sorry to have to repeat this but because somebody isn't interested in learning what you think he should be learining doesn't mean he's a couch potato.

The quote on recursion was the first example in a textbook on discrete mathematics intended as an introduction to the topic for computer science students - that is to say a textbook you should have studied before you start on computer languages. I'm sure it's easy as anything for those with basic high school algebra, but to those of us who haven't got it it requires time, which is why the subject of this thread finds it difficutl, and doesn't feel he will be able to learn enough to be productive.

Stephen Jones
Wednesday, March 12, 2003

B#,
      For what I mean by languages not being learned do a search on Google for "Skinner + Chomsky + Verbal Behaviour" That should gfve you a fair number of sites.

Stephen Jones
Wednesday, March 12, 2003

Dear Robin,
                  I can't remember where I was told that standard Canadian English had only ten vowel phonemes, but the figure definitely stuck.

                    The twenty vowel phonemes for Standard British English I have come across time and time again; the fourteen for American Network English I remember from using an Anerican spelling book with third graders (drove me crazy - I had to check with the only kid in the class who had just moved from America how the word was supposed to be said).

Stephen Jones
Wednesday, March 12, 2003

The important question here is whether the organization that the VB programmer works for does a significant portion of development in C, or has a trend of doing more development in C.  I personally don't see any reason now to learn any more C than I did in college, as the trend at my company is towards Java.

If that company is trending towards C, this programmer should wake up and learn C or find another company before too long - especially if management has announced that they want most or all future projects to be done in C.  If not, I don't see any reason for them to learn C at this time, unless VB alone is too limiting to get the job done.

T. Norman
Wednesday, March 12, 2003

Lol! I don't doubt it. With a vocabulary of a thousand words you don't need a lot of sounds. Then again, I've been to London at it seemed to me they only pronouced about five consonants, maybe that would explain it too : )

(h)ey ma(te) (h)ow bou(t) (y)ou a(nd) (m)e (g)o fo(r) a pi(nt) a bi(tt)e(r)?

You want to be vowel rich in that case!

Robin Debreuil
Wednesday, March 12, 2003

T. Norman,
                  How many companies do you know that have migrated from Vb to C?

                  "Mmm, the demand for custom based payroll packages haas realy gone down. Let's refocus our company and do missile guidance systems for the Pentagon instead!"

                    If the company is finding that C is better for certain parts of its application, then management needs to sit down and work out with each worker what the best split of their abilities is. This is why HR stands for Human RESOURCES

Stephen Jones
Thursday, March 13, 2003

What you've been hearing is called the glottal stop.

The really interesting case was what happened with the intermediate vowels in medieval Prakrits. Prakrits were the spoken languages of India from about 1,500 BC to !,000 AD One example is Pali which the Buddhist sacred texts are written in, and another is Romany which is the language used by gypsies even now.

The double consonants of Sanskrit in intervocalic positions became reduced to single consonants and then many of thoseto glottal stops. And the written language reflected it. So you would get one Prakrit word that actually was 48 different Sanskrit words, with more than 48 different meanings. The breakdown in communication was such that the single consonants came back so we see them in Modern Hindi. Strangely enough the single consonants that came back were by and large the same as those that were there before, so presumably the golttal stop had never replaced them in all variants of the language.

Stephen Jones
Thursday, March 13, 2003

Migrating from VB to C is not likely, but it's not impossible. Anyway, I didn't mean they might be actually migrating from VB to C, but that they may have a trend of doing a larger percentage of their development in C.

Sure, in an ideal world HR would sit down with the workers and point their skills in the direction where the company wants to go.  However, in the real world that rarely happens.  HR is too disconnected from technology to proactively do things like that.  Their idea of matching people with technology is to hire somebody with an exact laundry list of languages, or to send employees to a 1-week training class immediately before putting them on the project in the new language.

Regardless of what HR does, a *good* programmer should spot the trends and take the initiative to learn the other languages that the organization requires.  A programmer who isn't willing to do that shouldn't be surprised if they end up unemployed for a long time.

T. Norman
Thursday, March 13, 2003

I can understand someone trying to control the amount of stuff they are trying to learn, but unwilling to learn? Get thee to management (waste management that is). He can practice VB while there is still work in it (but likely in a different company).

That said, migrating VB developers to C is just plain bad. They are already spoiled goods (the reverse works fine though, but the C guy mightn't like it).

Migrating to testing, UI development, web work, fine. Many people who are perfectly capable of developing in unstrict languages like VB, are there because they couldn't grok C or other more challenging language concepts, or couldn't spend the years involved to learn it.

Richard
Thursday, March 13, 2003

You know about ten times a day I have to blur an image to create a shadow effect, which of course involves choosing a filter. Now the one that looks best is usually Gaussian, and I used it happily for years - until one day I found out the terrible truth -  it is a very easy algorithm. Not only that, but the paticular one I had been using wasn't even written in C (and reliable sources told me it was that elegant to boot)! Obviously a tainted developer got loose somewhere, must have been pre-management. Dang. We do quality work, it was a real blow to the organization. They have to get a better labeling system for software, but that is a rant for another time.

After some careful research, we found a real C plugin that was very well written - the guy obviously grok'ed C, oh boy, very complex, beautiful structure. Sure it looks a bit crappy on shadows, but that is mostly the candy cane stripes. Anyway, we have a reputation to uphold, so the decision was a no brainer. We now insist that all our designers not only know C, but they get special training to recognize non C (or simple C) software as well.

Our productivity increased by 2.5 timesevery month since then month, and we don't make mistakes anymore.

We are sooo smart. So sooo smart. Lifetime employment too.

Robin Debreuil
Thursday, March 13, 2003

So if I may be permitted to sum-up:

C phreak:        Get a brain weak tea!
Non C phreak:  Oh yeah, get a life geek!

Repeat as required...

That about cover it?

B#
Thursday, March 13, 2003

*  Recent Topics

*  Fog Creek Home