Slashdot Mirror


Programmers for Scientific Research?

An AC submits: "We have recently had a lot of trouble trying to hire competent programmers for a research project. We are not programmers, so it is somewhat difficult to evaluate the competence of CS graduates. However, it seems that many of them are quite business oriented and that is not what we are looking for. On the other hand, the ones with adequate math skills etc. are often interested only in 'pure' CS. We would desperately need some kind of 'all-around lab hackers' capable of scientific problem solving, and confortable working with all sorts of software and hardware, but have not been able to find such persons. Does the Slashdot audience have any suggestions of how to attract the hackers having 'by programmers for scientists' - attitude?" [Update: 03/24 09:24 AM by michael : Note that although my email address is the only one on this submission, I'm not the one looking for programmers - I work for slashdot (although I used to program for a DOE laboratory, and that's why I found this question interesting and posted it). I've received a bunch of misdirected emails from people who thought this was interesting work, so if the submitter is reading this story, he/she might want to put contact information in a comment below.]

46 of 213 comments (clear)

  1. Re:Reply from another old geek by Paul+Komarek · · Score: 2

    I'm not sure, but I think we're talking about scientists and non-commercial research here. Nobody gets paid what they're worth, and it's always been that way. In this environment, demanding what you're worth is like telling everyone else that they're only worth the pittance they get paid. Just a cultural thing.

    -Paul Komarek

  2. Re:Forget CS students by jsproul · · Score: 2

    I think this is an overbroad generalisation. You can find good software engineers with all sorts of backgrounds, from biology to linguistics. In my experience, there is no correlation between educational background and software development skill. Attitude, experience, and a love of learning are the most highly correlated factors.

    The best way to attract good software developers is to offer a reasonable and competitive salary and a great work environment. Until recently, it has been very difficult to compete with commercial employers willing to pay high salaries even to substandard candidates, with the added lure of stock option fantasies. Now, fortunately, people are realising that most startups fail and stock options aren't such a great deal. Salaries for good people are still going to be high, but this doesn't mean you can't afford us.

    Creative alternative forms of compensation for research institutions associated with universities include free classes and access to athletic facilities. More general forms of compensation are a low-stress environment, flex time, a private office (with a door and preferably a window), and the option to use resources for personal side-projects. Showing a developer that they will be working in an attractive, pleasant environment, rather than a high-stress cube farm, is worth real dollars.

    Above all is the opportunity to learn new things, so if the candidate has a track record of learning quickly and applying new skills on the fly, consider hiring them even if they don't have the specific skill you need. Chances are they'll pick it up very quickly.

  3. Look for people in your field who can code by Jonathan · · Score: 2

    While I may be biased (because I am an example of the sort of person I'm suggesting), I'd suggest looking for people who have studied your scientific field and also know how to program. That way you can make sure they understand the problem being solved.

  4. Re:A few blunt comments from an old geek. by "Zow" · · Score: 2

    I'd say it's funny, but then if I were trying to hire, I would say it's worrying. This goes back to the Ask \. a week or so ago about how to improve CS programs - the fact is most CS programs these days don't teach ANSI C - usually it's C++ or, more and more often, Java. Try asking them if they can see what's wrong with:

    void echo() {
    char *str;
    cin >> str;
    cout << str;
    }

    Somehow, I doubt the results will be too much better, but I'd be really interested to know how how many more people catch the mistake in the C++ version than the C version. If you ever find out, drop me a line.

    And why doesn't /. have a <pre> or a <code> tag?

    -"Zow"

  5. Easy solution! by "Zow" · · Score: 2

    Post to Ask /.! You'll get so many responses from people who are looking for such positions that you're sure to find someone who'll fit the bill.

    -"Zow"

  6. You already found a good way by djarb · · Score: 2

    You've already found a good way of contacting such people: a lot of them read slashdot.

    Were I not still involved with university, I would send you a resume.

    --
    -- Out of cheese error! Redo from start.
  7. Play up the science part by JanneM · · Score: 2

    The kind of programmer you want is probably already fairly interested in science in general, but (as you say) would choose CS or mathematics as their field of study. I believe that what you need to do is to use your own field (whatever it is) as a strength, and offer the applicants the possibility to learn your field from a computational perspective even as they are working for you as programmers. Depending on your field and organization (corporation, university), this might mean things like assigning a mentor or adviser to the applicant, allowing the applicant to co-write papers, having a bit of free time for projects of their own, etc.

    The additional upside to this approach (apart from actually finding a qualified employee) is that after a couple of years you will have a highly competent person, conversant both in your own field as well as in all aspects of computation surrounding it -- in house and already familiar with your work. That is the kind of competence that can't be bought.

    /Janne

    --
    Trust the Computer. The Computer is your friend.
  8. Ha! Companies are reluctant to hire scientists... by Pig+Hogger · · Score: 2
    Ha! Companies are reluctant to hire scientists...

    A friend of mine got his PhD in nuclear physics. To do so, he toiled quite a few years writing his own software on SGI boxen.

    When he heard from a common friend, who works at a major flight simulator maker, that they needed guys that know the SGI platform very well, he applied (of course).

    As you can guess, the fuckenly-clueless-as-usual HR department replied "you're overqualified". Never mind he had 5 years experience programming high-speed graphics on SGI.

    But he was fortunate that in the meanwhile, the manager of the department who needed him got to know him personnaly, and was ultimately able to persuade a senior V.P. to overturn the HR department, so he finally got the job.

    Of course, you can expect the HR assholes to try to can him at the first occasion, though.

    --

  9. What did you expect? by rnturn · · Score: 2

    You complain that the CS graduates are all business oriented but did your research laboratory donate several million in new computers or provide free software to the college? No-o-o.

    Seriously... I think what you're seeing is the trend of the vast majority of Universities to become training grounds for businesses. ``We'll donate X dollars in equipment and software (and take a nice tax write off to boot) if you'll include the following areas in your curriculum.'' Do you think they do this for the advancement of knowledge in the field? Or do you think it's for the benefit of the company -- making it easier to find new and cheaper employees?

    I can remember the days when companies actually trained their employees in the processes that they used. Many firms hired new engineers, for example, and had them in an orientation program for the first six months to a year moving from division to division getting first hand experience by working on a variety of projects in the company. After that year or hands-on orientation, you and the people in charge of those divisions made a decision on where you would be able to work best. Nowadays companies expect that the Universities have done this training for them so that their new hires can ``hit the ground running''. Then we wonder where the innovation went. Orientation consists of a short talk by the benefits people and a ten minute lecture about how to fill out your time and expense sheets. IMHO, Universities should be more concerned with training the people who come up with tomorrow's ideas rather than training folks to solve today's problems using today's tools.



    --

    --
    CUR ALLOC 20195.....5804M
  10. Re:Skill != degree by FallLine · · Score: 2

    If you are so correct, then you should be able to defend your point of view without having to resort to ad hominem comments. Do you really want to tell me that a CS degree from any institution, let alone all, is some kind of guarantee of _all_ of the necessary skills, abilities, and knowledge? Yes, a 4.0 from an excellent institution can provide some assurances that a person has attained a certain level of understanding of some material, has a certain kind of intelligence, and is willing to at least go through the motions. However, none of these necessarily make a person an excellent programmer. The required skills are often quite different. The kinds of intelligence are often quite different. The level of work is often quite different. Likewise, the volume and the difficulty of the material can exceed that person's abilities. This is not even mentioning other abilities, like the desire to work hard, the desire to learn, a certain level of humility, the ability to work well with others, maturity, etc etc etc. The point is simply that it's not a a guarantee; ask just about any employer. Good programmers are rare. If the degree were this much of a determinant, hiring would be much much easier.

    FYI, I am none of your suggested stereotypes. I got a 3.8 from a very respectable 4 year instituion, while working 10-50 hours in a position of considerable responsibility. I was also fortunate to attend private school for most of my life. I can count family, friends, co-workers, and acquaintances at virtually all of the well respected institutions (e.g., Princeton, Harvard, MIT, Penn, Stanford, UW, etc etc). In short, I come from a very privileged background, both economically, academically, and socially. In other words, I am not bitter, I have little reason to be bitter. What I have had is enough experience with most of the highly regarded institutions at a personal and professional level so as to know better than to deify the curriculum, the institutions, or the students.

  11. Re:Skill ?= degree by FallLine · · Score: 2

    Yes, I'll give you that such a degree can give _some_ assurances that a person has a certain level of understanding of some material, has a certain kind of intelligence, and is willing to at least go through the motions. However, these few guarantees, to the extent that they can really be called that, aren't enough to make a person good at their job. I have had experiences very different from yours. Yes, some are good but some are also mediocre. Yes, All things being equal I'd hire the person with the better degree, but all things are not always equal. In any event, it's not a guarantee, especially if that person essentially plans on being a professional alum the rest of his or her life.

  12. Re:Skill != degree by FallLine · · Score: 2

    Shrug. I don't think I'm *that* passionate about it. I just disagree strongly ;) First, I happen to like the truth. When I know I'm right, I'm willing to argue my case. Second, this particular kind of mistake bothers me for a whole bunch of reasons. For instance: I think it's unfair and untrue to those that have less than sterling academic credentials. It's a mistake for an employer to fall too much into that trap. It's a mistake for investors [e.g., "Why can your company do this, when a team from MIT et. al tried and failed?"] It's also unfair to those that really accomplish things later in life, to act as if one can master a field with only 4 years of experience. Who are they kidding? I've also seen normally intelligent and open minded people that clam up in the presense of people that wear their degrees on their sleeves.

    I also find some aspects the education in the system less than optimal [I think that approach is somewhat contributory]. e.g., the often crappy public school system. How can we honestly say that we're getting the best and the brightest graduates from the Ivy leagues, or where ever, when the majority of the public is at a considerable disadvantage due to recieving a mediocre education in HS? Likewise, I really don't believe the top universities to be that demanding [baring perhaps the engineering and related programs to some extent]. One need look no further, in my opinion, then the absolute lack of attrition at these schools to determine that, unless they really buy into the SAT as being that accurate of a predictor. Likewise, I'd also point you to grade inflation. Or the reduced course load....

    I could go on, but let's just say that I think it's harmful to society on the whole.

  13. Skill != degree by FallLine · · Score: 4
    CS degreed geeks are certified geeks! CS degreed geeks are assumed to have intimate knowledge of computers at every level of detail; down to where the Physicists and Material Scientists take over.
    Oh please. I've known CS grads from tons of schools, "certified" or not, they vary from mediocre, to ok, to excellent, to merely acceptable. To put it simply, the skills, abilities, and knowledge that are "tested" in CS (same can be said for engineering and many ohters) programs are often quite different from what is required to excel in industry or even academia. Now this is not to say that a degree can't be an immense help, but it's certainly not a guarantee of knowledge, skill, or ability by any stretch of the imagination. If you think that mere performance in school is going to assure you a place in this world, you're simply kidding yourself.

    It's ironic that you scoff at people that view IT as being a gravy train, yet you clearly view a piece of paper as a gravy train. Mere intelligence and a degree is not enough. In fact, I'd argue that the degree is relatively insignficant compared to _actually_ being willing to work hard (working "hard" in school is almost never quite the same thing) and being willing to _really_ learn (there is learning and then there is learning...). Just as the merely "certified" MSCE is doomed to mediocrity, so to is the merely "certified" CS-degreed grad; all that seperates the two is their personal backgrounds, a piece of paper, attitude, and a relatively insigificant amount of knowledge.
    1. Re:Skill != degree by brad3378 · · Score: 2

      &gtWere you a 4.0 student? I doubt it by your comment.

      Were you modded to +4 Karma? Doesn't look like it.

      The truth is, the grandparent to this post was correct. Not all 4.0 students are worth more to an employer than say a 3.0 student. In fact, I was damn near a 4.0 student when I graduated from college the first time arround, but was I better than my one of my friends with a 3.0 GPA? In all honesty, no I wasn't.

      From my humble experience, 3.7 students (just to pick a number) actually perform better than 4.0 students because the 4.0's spend too much time on all the little details. The 3.7's seem to know what corners to cut, and can almost earn the same grades in just a fraction of the time. (law of diminishing returns). Now don't get me wrong, some students (especially computer folks) that devote their lives to their careers skew my observations because of an amazing ability to learn with little or no effort. I'm ignoring those folks for this discussion.

      From your comment, I sense that you probably are a 4.0 student, but resent the fact that others that don't work as hard as you can say stuff like that. I know it sucks, but working_hard != sucess either. Just like having a 4.0 GPA helps, it's no guarantee. Lighten up with your judgement of others, try to stay open minded, and you will likely encounter success as well. Best of luck to you my friend.

      Don't you just love having Karma to burn?

      --

  14. Opposite problem: business-savy grad students by peter303 · · Score: 2

    I work in a vertical software industry,
    that is scientific programming for industry
    customers. The business grew because many of
    customers downsized their in-house developement
    during 1990s re-engineering because they lacked
    the critical mass for respectable software support.

    Our problem is the opposite of yours.
    We have many candidates who are graduate students
    who know scientific programming,
    but never learned the other 90% of the software
    business cycle. Our best sucesses are domain
    experts who've worked for our customers,
    yet maintained a strong ability in computers
    and want to move into that side. Recent grad
    student business skills are too unpredictable.
    Pure comp-sci types job hop a lot (until recently)
    and not domain savy.
    The drawback to this approach is that you have
    to pay computer industry standard salaries and
    not academic slavery salaries. The former is
    about 50% higher.

  15. funny, I have been wondering the opposite by joshv · · Score: 2

    How exactly could I get such a job, for the last 5 years. I have an advanced degree in physics, and undergrad degree in physics and math, and left the field due to the exceedingly poor career prospects in the field. I have since been very bored (though well paid) programming in the business arena. I have often though my dream job would be programming in a scientific setting, because thats exactly where I learned to program - but have never run across such a job...

    To answer these guy's question, look for someone like me. There are plenty of people that bailed out of math and science at the graduate level for a more lucrative career in programming. The only problem is you will probably need a lot of money to entice them back into the fold...

    -josh

    1. Re:funny, I have been wondering the opposite by NMerriam · · Score: 2

      . I have often though my dream job would be programming in a scientific setting, because thats exactly where I learned to program - but have never run across such a job

      Geez, go to any university campus in the western world. WE've been trying to hire a decent programmer for about six months now, but the simple fact is no one with any experience has been willing to work for the kind of salaries that a public university pays (we can offer 50k or so, for someone who would expect 100k in the private sector).

      I know I could double my salary in the private sector (or at least could, before the dot-bomb) but getting two months off every year and having a fascinating job is worth more to me right now than making SUV or toilet paper ads for Madison Avenue...

      ---------------------------------------------

      --
      Recursive: Adj. See Recursive.
  16. Re:Good luck.. untrue by josepha48 · · Score: 2
    I think he needs to shift from CS to CE. Computer Engineering. Most computer engineers are now required to learn C programming and Calc I-III and Diff Equ.

    I am a semi skilled programmer and may even fit there 'requirements'. I studied Electrical Engineering in school and now I have been in the industry as a programmer analyst. I have done Perl, C, C++, Java, JavaScript, HTML, Tcl/Tk, COBOL, Pascal, and Fortran. When in school I programmed a few scientific applications, but nothing fancy. I did not know enough C at the time to do programming for Digital Filters, but now I think that I could and am actually interessted in doing so. I of course may be rare. Most programmers are not interested in scientific programming they are more business oriented.

    So where is this job located? I live in SF, CA and am not interested in relocating.

    How is this job funded?

    I had signal and systems, Microwaves, semiconductor design (really cool class with awesome instructor) and digital filter design. What kind of scientific stuff are they doing???

    I don't want a lot, I just want it all!
    Flame away, I have a hose!

    --

    Only 'flamers' flame!

  17. Use Journals, and Email people like me :) by weston · · Score: 2

    I'm finishing up a math degree at BYU right now. I'm also a developer and have made my living that way for the last 7 years. I've seen the dichotomy that you're talking about.

    One thing you might want to do is scan some professional journals for people who are working on using computers to solve the kinds of problems you're working on. Or even other problems: the important thing is that you'll know that they are interested in applications, not just pure CS. Maybe you're looking for someone not quite so far into their career: that's OK, lots of universities have undergrad research journals now.

    Finally, you can email me (uvm@sun.he.net or weston@csoft.net). Depending on the actual project, this would be great. I'm a math student, but a bit tired of living in the abstract or ecommerce world. I'd like to contribute to something solid/real/applied for once.

    --

  18. Reply from another old geek by geophile · · Score: 4
    From your article: Others become prima donnas, demanding large salaries and extreme benefits.

    Why is it that a great software developer who demands rewards commensurate with his talents is necessarily a prima donna? Executives do this all the time and no one blinks. I think the problem is popular conceptions: executives are driven by greed while software developers are driven by love for what they do. In other words, it is out of character for a software developer to raise such base concerns as salary. Well that's ridiculous. If you love what you do, and you are a master of your craft, why not insist on what you are capable of earning? You can be sure that the managers and executives you're negotiating with take exactly the same approach.

  19. Programmer/Scientist by the+eric+conspiracy · · Score: 2

    I am a Sr. programmer working for an internet consultancy, and came to this job after working as a scientist for 20 years. I have a Ph.D. in Chemical Engineering. I spent a good part of my career working in the lab doing some of the tasks that you describe, however I was a scientist first, and then a programmer.

    Speaking now as a programmer, I find the type of job you are describing to be totally uninteresting and perhaps actually dangerous from a career point of view. Programmers live and die by developing skill sets that are in demand in their marketplace. The type of work that is described in this article would result in my skill set (carefully built from years of hard work) failing to be interesting to the vast majority of employers.

    The reason that you are having a hard time attracting programmers is that the job market is oriented towards people with certain job histories, and what you are offering is not likely to give a programmer the backgound he needs for that next job.

    Try instead recruiting scientists or math majors with an interest in programming, and get them some training.


    MOVE 'ZIG'.

  20. Stay in your field... by J.J. · · Score: 2

    I don't know what kind of field you're in, but I'd tend to agree with the idea that you find someone in your field who happens to have the skills you're looking for.

    Most techies are inquisitive by nature, and would jump at the chance to get involved in a position like you describe. You've got a whole lot of good things that you're offering: flexible and everchanging job requirements, a sense of ownership, 'status' by being someone who's needed - as opposed to just another coder. Most importantly, you're offering the chance to do something different, by applying coding skills as a tool - it gets really, really old spending your days making the newest widget that no one is ever going to use.

    However, the 'code as a tool' concept is defining characteristic of your ideal person - most Computer Science graduates enjoy code for code's sake, not code for your experiment's sake. You need to get outside the CS mindset and find other scientists and engineers who enjoy the research itself, and not just the code. There was an interview with John Carmack (highly respected coder) where he made a great point: most coders are all about instant gratification - code, compile and run. If it doesn't work, tweak, compile and run. Repeat until it does work. The folks you find with a pure programming background might not like the longer lead time that's associated with whatever you're trying to accomplish.

    Random thoughts,
    J.J.

  21. Plumb the engineering departments by mav[LAG] · · Score: 4
    Don't look in Computer Science - too many of the types you don't want. Rather see if you can't find second or third-year engineers with some programming experience. At the varsity I was at, a goodly proportion of engineers realised that the field wasn't for them halfway through the course. They were engineering-minded certainly, but some were already seduced by the ease of software development vs. hardware development, others just didn't want to pursue it full time.

    The point is: look here first. You'll get bright people with some programming experience, maybe some exposure to numerical analysis of real-world data and precious little purism.

    --
    --- Hot Shot City is particularly good.
  22. Re:A few blunt comments from an old geek. by Mr.+Slippery · · Score: 2
    So, what is the problem with that?

    The problem is that str is pointing to whatever miscellaneous address happened to be in the memory allocated to echo()'s stack frame. It points to unallocated memory that quite likely isn't even in the programs address space. Passing around uninitialized pointers is a bad idea; you're crusing for a SIGSEGV or a SIGBUS if you try this on a Unix-oid system.

    Tom Swiss | the infamous tms | http://www.infamous.net/

    --
    Tom Swiss | the infamous tms | my blog
    You cannot wash away blood with blood
  23. Reminds me of DreamJobs.com by ZahrGnosis · · Score: 2
    Does anyone remember dreamjobs.com? Back before HotWired destroyed it, that is. They used to post all sorts of jobs that were CS crossed with something else. One of the ones I remember applying for was a job out in Berkely where someone wanted a person with a computer background to anlyze some data about protein interactions. They specifically wanted someone who didn't know anything about biochem, so they could have a fresh view of the data.

    I imagine there are tons of these out there. Heck, there's another article on Slashdot today that talks about how computers have beome important to every other aspect of science; maybe it's difficult to find computer talent because of that; it's not that people aren't interested (heck, send me a note i'd love a job like that), it's just that the interested people have had lots of opportunities to find jobs already; you have to find a way to contact them and entice them away from existing jobs.

    Posts on Slashdot are probably a great start, just let us know who you are!

  24. science grads by TMB · · Score: 2

    I agree that looking for CS grads is a bad idea, but I would take a physical scientist over an engineer. Anyone going through a physical science degree (physics, chemistry, astronomy) these days is guaranteed to have significant programming experience, and it will be experience directly of the kind you are looking for. Moreover, they will be used to the kind of problem solving necessary. I find engineers are very good at applying things but not so good at problem solving.

    If I were particularly cynical, I'd recommend finding a local university with a well-respected but very hard physics department with assholes for professors. Then find a 2nd or 3rd-year grad student who is underpaid and miserable, and offer them a well-paying job doing essentially the same thing they've been doing. You and they will probably be happy with the results.

    [TMB the happy grad student]

  25. Hardware Layer by selectspec · · Score: 2

    Look for a software engineer with hardware experience; with driver coding, kernel coding experience. Someone with experience bringing new machines up, etc. While not all great engineers fit into this catagory, my experience has been that most engineers who are knowledgeble about the hardware layer are pretty good generalists about all computer science.

    --

    Someone you trust is one of us.

  26. ... and the maths departments! by Bassthang · · Score: 2

    There is a flipside to that. I did my MSc and PhD in applied Numerical Analysis, and I am concious of the number of people in the field who have very good skills in modelling and in algorithm design, but are basically self-taught when it comes to implementation. Hence there is a lot of NA code out there which is very fast and solves interesting problems, but is written so badly as to be unmaintanable.

    Perhaps you could offer these kind of people a chance to do some more formally structured (and colaborative) software development, including some training in software engineering (which us mathematicians rarely get a chance to study).

    --
    "What I look forward to is continued immaturity followed by death."
  27. A few blunt comments from an old geek. by bfwebster · · Score: 5
    (1) Your quest is constrained in large part by the fact that only a small fraction of the population has any actual talent in software development and engineering.

    (2) Even many of those individuals with talent have insufficient knowledge of (and/or, apparently, desire to learn about) the art and science of software engineering and so persist in making the same stupid mistakes that have been well-documented for 30+ years.

    (3) As a result, anyone who has had to recruit software developers can tell you how much muck you have to sift through to find the gems.

    (4) I can't speak for the relevance of most CS departments; I know that my undergraduate CS program (BSCS, BYU, 1978) helped me tremendously when I went out into the real world. But that may have been an anomoly; I had some brilliant teachers with real-world experience (one had worked at Bell Labs; another went on to co-author and co-found Word Perfect).

    (5) After some years in the workforce, many of those with talent and skills find they can double or triple their salary by becoming a consultant. This leads to a talent-flight from organizations.

    In short, you're trying to find someone with talent, training, inclination to your topics and circumstances, and a lack of awareness of how much s/he could be making elsewhere. :-)

    Best of luck. ..bruce..

    --
    Bruce F. Webster (brucefwebster.com)
    1. Re:A few blunt comments from an old geek. by Kristopher+Johnson · · Score: 2
      In short, you're trying to find someone with talent, training, inclination to your topics and circumstances, and a lack of awareness of how much s/he could be making elsewhere.

      As a mid-thirties geek, I'd say that reality isn't quite as bleak as that. My salary has doubled over the last couple of years, and I could probably make more, but I'd gladly take a pay cut to do work I found interesting. I think the same is true for a lot of the top-notch people I've worked with.

      The best programmers are generally more interested in having "cool" work than in maximizing their incomes. As long as you pay them enough and keep them interested and happy, you'll keep them. But you'll lose them when the work becomes boring/tedious, if they have an opportunity to work on an even cooler project, or if you piss them off in some way. Good people generally know that they're good people, so they expect to be treated well.

      The difference between talented programmers and untalented programmers is truly staggering, and it's not easy even for knowledgeable people to tell the difference during the recruiting process. You really have to work with someone for a few weeks to figure out if they know what they're doing. But it is fairly easy to judge the results: if their programs work, and they're enthusiastic about improving them, then they're good people. If their programs suck, and they get defensive when that fact is pointed out, then they should be let go.

  28. Depends on your need by blackrazor · · Score: 2
    I run the bioinformatics department for a biotech company in Cambridge, MA, and I face this problem every day. I have found that the specific type of programmer you need really depends on the application. Learning to program is not all that difficult- pretty much anyone can learn a programming language with just a sort period of study, at least to write simple scripts in something like perl or python. If all you are doing is 'all around lab hacking' it might be enough to look for ex-scientists which have gotten interested in programming. About half the resumes we get are from this type of individual, and they have the benefit of knowing quite a bit about science and the laboratory activity.

    Where this approach breaks down is when larger-scale projects are being contemplated, where the activity of more than one programmer must be coordinated, or where the software is going to be shipped as a shrink-wrapped software product. Even if is is just in-house software, but it must perform to certain specific standards (such as required by the FDA or other standards groups) you are going to need more. In this case, I have found that experienced software engineers are required. The best way to evaluate them is to look for applicants who have degrees in software engineering or computer science (with a strong software engineering emphasis) and have been involved in at least one succesful group project. Find out how they specified the project (did they use any specific methodologies?) and find out how they collaborated (listen for the use of version control systems, for example) finally, find out how they did their testing (again, they key here is methodology- not just 'it ran fine and we shipped') You do not need to know that much about software engineering- you just want to see that there is strong experience in the people you recruit. Ask for references, and when you check them, ask them about the candidate's programming and software engineering strengths.

    I know this all seems pretty basic, but I have found it works pretty well. In my case, I have hired a mix of scientific programmers and software engineers, as well as drawing on the expertise of the scientists outside my department. As long as you keep your eye on the desired end result, you can locate and hire an excellent staff!

    Good luck!

    --
    Fortune favors the bold. -Virgil
  29. Where to find hackers? by FTL · · Score: 2
    > Does the Slashdot audience have any suggestions
    > of how to attract the hackers having 'by
    > programmers for scientists' - attitude?"

    My suggestion would be to post your appeal in a public forum. Somewhere that caters to hackers. Hmm, can't think of where you might find such a place...
    --

    --
    Slashdot monitor for your Mozilla sidebar or Active Desktop.
  30. look outside of pure CS/MIS by StandardDeviant · · Score: 2

    Your best bet may be to ask around in the science and engineering (under)graduate populations of a local university. Ideally you'll get some scientist/engineer type that discovered a love for computers while using them to further their own research...[1] They're guaranteed to have at least a minimal brain wave (at least after the second year ;^) ), and more than likely they need money and/or a place to gain experience in as wide a range of things as possible.

    You may also want to consider narrowing exactly what you are looking for. People that are, for example, expert at network administration and coding simulations code and soldering data collection circuits and (...) are rare enough in the tech field without also asking them to be scientists as well. Try segmenting your requirements out into seperate, smaller positions and then be willing to create an environment where learning and cross-training is encouraged.

    Last but not least, look for a local uni that offers courses in scientific programming (UT Austin has them in CS, but also in other places like the Math dept, the ChE dept, etc., so you may want to look a little further than pure CS). Ask the professors if you could put up a job flyer in their class.

    Anyhow, good luck!

    [1] Hey, happened to me at least. :-) (In reality I know several other people that started out in Chemistry and ended up CS or whatnot. Maybe it's becuase the two buildings are across the street from each other on the UT campus?)


    --
    News for geeks in Austin: www.geekaustin.org
  31. Hints from someone still in school by RevAaron · · Score: 2

    I am one of those soon-to-be (ok, well, at least another 2 years) graduates (in IS&T and Biology), and am interested in doing scientific research. I just got offered a undergrad research position at the NRRI analyzing plant population and hydrology data. I see this as my dream job.

    As interesting and exciting as this work is, there's a huge difference between acedemic scientific research such as this and the world of business: money. I'm making a little over half of what I would make if I returned to where I interned last summer. My other possibility for this coming summer was to make even more than half of what I'm going to making this summer. I mean, $20/hr is a lot of money to be making in the summer for a college kid, and I am not surprised that many college kids opt for this type of experience (and later job, where the gap can become even larger), being raised to be good capitalist money-grubbers.

    So, I suppose I'm saying, if you want to get good CS people for research, start getting them as interns, make them care about what their researching, get them to love it- to those that are worth your time, this would be infinately more important than simply more salary.

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  32. are your queries properly written? by small_dick · · Score: 2

    it sounds like your postings/ads are not properly written, if you can't get the people you are looking for.

    another exacerbating factor is cultural. most of the cs i guys i went to school with couldn't adequately explain basic electronics or code in GL.

    assuming you are in the USA, most students don't use their hands to build anything anymore. most assembly/production issues are "overseas" concepts. my university had us writing assembly language and building analog/digital circuits in one class. this class has been phased out of the program now.

    we also had to take data sets and write GL code to visualize them in pseudo real time. this class has been phased out, too.

    examine the want ad and reword it. also understand that you are working in research and the people you are interviewing are being trained for summing rows in spreadsheets...there is a learning curve, so give the kids a break.

    finally, consider something like scilab or matlab for some of your projects. be willing to pop money for training, even if that means setting aside time to develop training materials yourself.

    --


    Treatment, not tyranny. End the drug war and free our American POWs.
    See my user info for links.
  33. Stop looking for CS by bellings · · Score: 2

    Everyone else has said this a hundred times, but it can't be emphasized enough. First, stop looking only at CS majors. Second, stop trying to one person that can solve all your software need and all your hardware needs. Third, it's very, very hard to evaluate what a programmer is doing, especially if you have no idea exactly what he's doing.

    I'm guessing that you're not affiliated with an american university; if you were, you'd have an unending supply of graduate and undergraduate students, and you would have long ago discovered some great computer geeks from the EE department and the Theatre Arts department, and everywhere in between. You'd also have discovered at least one incredibly bright, insanely productuve Journalism School droupout who come to work for you in the mid-70's because you had the tools he needed to work on his motorcycle, and who you simply couldn't imagine how you'd ever get anything done without.

    You'd also quickly realize that the few people that you can find who are insanely good at everything they do -- the ones that understand the physics behind your expiraments, and can write diagnostics software, and can build diagnostics hardware, and can get it all done in a time frame you can both agree is reasonable -- still have to specialize. These things are all suprisingly different skills, and for you to expect someone to spend the amount of intellectual capital it takes to keep up with all of them, and still be productive, is unreasonable.

    And, of course, when you ask someone to do something you don't understand, there are two very important, and totally unrelated, skills for that person to have. They have to be able to do what you ask, and they have to be able to convince you they're doing what you ask. It's pretty easy to find a person that does one or the other; people who can do both are rare, and make a lot of money. As long as you allow yourself to be unaware of exactly what this person is doing, you're going to disappointed again and again.

    --
    Slashdot is jumping the shark. I'm just driving the boat.
  34. Re:Skill ?= degree by bellings · · Score: 2

    A degree from a reputable school with a good computer science department gives some assurance that the holder of the degree has some valuable knowledge and has been trained in relevant ways

    Unfortunately, there are only four or five good schools that people intrested in computer science degrees go to. If this guy manages even manages to interview one of the two or three hundred graduates each year who "aren't interested in theoretical computer science", he's going to discover that they're interested in "the business side of things."

    If someone manages to graduate with a decent GPA from one of the decent schools, and is interested in going out into the world and programming, don't be suprised when that person doesn't want to work for some imcompetent manager who doesn't want to be bothered to figure out what programmers do for a living. This is especially true when you realize that this guy want one person to do all the hardware and software and understand the physics behind the expiraments, which to me is just a diplomatic way to say "we don't have the budget to hire two or three mediocre people, which means we certainly don't have the budget to hire one outstanding person."

    --
    Slashdot is jumping the shark. I'm just driving the boat.
  35. From a different perspective. by cwm9 · · Score: 2

    I am one of the poeple you seek, but, unfortunately for you, I'm not for hire!

    I know exactly what your problem is. I actually started out as as a bright computer hacker who could work magic at the keyboard. I thought myself capable of meeting any computing chalenge. I would have jumped at the opportunities you speak of because I considered my self quite talented at math and loved science! But I later was later humbled when I transfered into Applied and Engineering Physics at Cornell University.

    What I can tell you now is that there is a big three-way misunderstanding between scientists, CS people, and hackers.

    You see, CS people and hackers (me too, before AEP!) have this idea that "good math skills" means you have had core calculus plus differential equations and maybe linear algebra. But scientists have a very different idea of "good math skills." They often want Mathematical Physics too, or maybe group theory, or maybe... one of a hundred other things. When I left my prior university, I had already "taken all of my math requirements." But after getting to Cornell, I found myself suddenly being forced to /prove/ the orthogonality of the Fourier series. Suddenly, lookup tables for Laplace transforms weren't good enough. We had to integrate them directly in complex space using Resuide theory. And that was just my first math class after arriving, and now I can say, with confidence, that I actually really SUCK at math.

    Conversely, many scientists think that good computing skills means that you can code in C or Java and make words print out on the screen. They often have no understanding of the art and talent that goes into the marriage between an idea and the machine it gets implemented on. They strugle with "those darn pointers" and stick to basic reference texts they picked up in, "Introduction to Computing for Scientists and Engineers."

    Finally, many CS people are confined to the relm of formal computing and analysis. They lack the soft squishy "i talk computereeze" part. On the other hand, hackers often lack the discipline necessary to ensure working code!

    How do you find people who have all of the traits rolled into one?

    You pray. Then you write a request to places where hackers hang out, but you make it clear that you are looking for someone who has the specific math and science skills you need. But most of all, you ASK SOMEONE who already has the talent you are looking for to name OTHER PEOPLE who fit the bill. Off the top of my head, I can name only two other people who have all of these talents - even after knowing many people in the CS department at Cornell!

    You then call them, and ask them, and... ok you get the idea. I know of no other way to find such talent.

    Finally you go to places like Cornell and MIT and Caltech. You go to the Applied Physics departments. You go to the Applied Math departments. You go to the places where the MATH is taught, and hunt down the people who also LOVE computers. (Ususally you can just ask any of the students and they will point you in the right direction!)

    Anyway, that is my two cents worth.

  36. Personally, I'd jump at the chance by lpontiac · · Score: 2
    Of course, I'm still an undergraduate (in the second year of my CompSci degree), so by the sounds of things you wouldn't want me.

    However, if you're really struggling to meet demand, why not go with some undergrads on a temporary/casual/parttime basis? If the scientists themselves are doing a lot of the overall design and heavy math that provides the foundations, you might find some undergrads are able to pick up the ball and run with it; one fulltimer and a few casuals might do as well as a few fulltimers.

    For grunt coding, that may be all you need - a lot of the later stuff in a CS degree tends to be more oriented towards the systems analysis and heavy design issues. With a lot of the coding stuff happening earlier on, and a lot of the coding skills being self taught (probably even before they started their degree), some enthusiastic undergrads at your local college might do the trick.

    And after all, if they're just temps/casuals, make sure you make that clear, and there's no problems with scrapping the idea in a couple of months if it isn't working out.

    Sort-of example: I'm doing some systems admin work in the Electronics Engineering department of a local university, on a casual basis. Basically, they needed some labour in a hurry so hired some casuals quick and intend to replace us with fulltimers as they arrive (add time for interview process, people giving notice at existing workplaces etc) Now, I certainly don't have what it takes to run the system, however I have a pretty well-defined area of knowledge, and the stuff that falls into it is delegated my way. It takes the load off the full time staff that are there at the moment, and everybody wins.

  37. Physics grad students are poor and smart by Muerte23 · · Score: 2
    Ever think of hiring physics grad students? At my university, all physics majors were required to take a computational simulation type class, and at the graduate level pretty much _everyone_ I know has a great deal of experience and talent in writing scientific code.

    I myself just recently applied toa simulated annealing algorythm to make a solenoid whose axial magnetic field varied as the square of the distance along the z-axis . . . without any bumps. If you think that's easy, try slapping solenoids together and see how it looks.

    Your best bet are physicists in the Nuclear, Plasma and Astrophysics fields, as almost all they do is intensive computer simulations.

    You might find some motivated BS to do your fun work for around $35K, but a high end PhD might end up wanting between $65 - $120.

    Your ideal target is people with "Masters" in physics, who dropped out of PhD programs because they realized that grad schoool sucks.

    You shouldn't have a hard time finding people wanting to do what you need - I find your job offer quite interesting myself, especially in the face of a possible career in academia.

    Muerte

    ps. what's it pay? :)

  38. Deadlines toss all your skills into the dumpster. by SlushDot · · Score: 2
    Or into what you Brits call a "skip", I think.

    All the companies I've worked for were run by management more interested in "beating the competition to the market". They don't allocate time to do things right. They want them done fast. Designing == no real work getting done, in their opinions.

    "Make it work now, any way you can. Can you? Is there a way? Mr. Junior Programmer here says he can(*). Why can't you? OK. Then do it. Go back and smooth out the design later. Programmers always want to redesign/rewrite everything."

    Of course, "later" never comes. By then, the list of "required features" now has ultimate priority. Bug fixes are high priority too, but IMO wouldn't be so prevalent if the software had been designed correctly from the start. Good design also leaves well defined hooks to make new features easier to add later. Mgmt will hear none of this.

    (*) Management also seems to like to play Junior programmers, not yet appreciative of good design, off against Senior Programmers. So us geezers are forced to sacrifice our principles and do dirty, but fast work, to avoid being fired and not being able to support our families. The Junior Programmer, is single and does not carry this responsibility.

    No wonder so much software is all fucked up.

    --

  39. Look for middle-aged programmers by Dean+Edmonds · · Score: 2
    You might try looking for middle-aged (i.e. 30-50) programmers who have a background in math, engineering or sciences.

    Why go with an older hacker? A couple of reasons.

    First, if someone in their fourties is still programming, rather than managing projects, then it's either because they are incompetent (which you will obviously have to filter for) or because they really like programming for its own sake.

    Second, RMS notwithstanding, it's been my experience that programmers with a lot of years under their belts generally have their egos under better control than than those fresh out of school. As a result, they don't have to be on the bleeding edge to be happy, they just need interesting, challenging work.

    How do you attract these aging gems?

    Emphasize the constantly changing variety of work and be prepared to offer flexible working conditions, such as full or partial telecommuting, compressed work hours, sabbaticals, etc.

    -deane
    Gooroos Software: plugging you in to Maya

    --

    -deane

  40. Classic problem -- you are not alone by martyb · · Score: 5

    There is not much detail in your problem statement, so there's much guesswork going on here, so please bear with me.

    A key factor, I suspect, is your statement: "We are not programmers, so it is somewhat difficult to evaluate the competence of CS graduates."

    The Problem: It strikes me you are running into the classic problem of not understanding what programming can do easily and what is difficult. More than likely, you've been sold a story from some instrument vendor that the XYZZY 2000 can do lots of wonderful things, and you really need it for what you are trying to do, and the best part is that it has a port that allows data aquisition and control from a computer!

    Right. (Sarcasm intended.)

    Here's a guess at what your situation is:

    You've got a feel for the conceptual side of what you want to accomplish in the big picture, and the programming aspect is some vague, nebulous, "black box" where some programmer is supposed to come in and make it all work? But, things take MUCH longer than expected, and does not do what you want it to, and when the programmers try to explain what their difficulties are, it's so arcane (to you) that it sounds like they are just trying to evade their assigned responsibilities.
    I've seen this KIND of problem countless times in my 25 years of experience programming, designing, and testing.

    Suggestions:

    • Learn Programming! A couple courses in Algorithms, Data Structures, and Numerical Computing, I think, would give YOU tremendous insight into the very real challenges of programming. Then, you can BEGIN to fairly assess and understand what you are trying to do.
    • Hire a Seasoned Programming Manager It's one thing to hack together a couple of small little programs to do some ad hoc tasks. It's quite another thing to develop code that has solid error checking, has consistent user interface design, and that is also maintainable, reusable, and extensible. Hire someone who knows the difference and who can act as an interface between what you [think you] WANTt and the realities of what you really NEED.
    • Design, Design, Design! Planning is Key! Step-wise refinement is Your Friend. This is a classic problem I've encountered where the thought is "We need this ASAP! We don't have time to plan it all out... can't you just do blah, blah, blah for now and we'll get to the rest, later?" Build a SOLID foundation in your design, and CLEARLY IDENTIFY the difficulties. If things are well-understood, the programming is effortless. Continual change requests and edge-case surprises will cost you far more time and energy in the long run than it would take to try and do it right the first time. (This IS difficult; human nature seems to want to look at the things we can do, and to avoid the things that are problematic.) In short, if it's hard to design, it's gonna be hard to code until you DO design it. Recognize and understand that truth and you'll have come a long ways!
    • Hold Design and Code Reviews! Get involved, be open-minded, learn! Granted, the coding stuff may look like so much gibberish to you at first. I imagine calculus or particle physics did once, too. If you can learn THAT, you can learn some of this, too, if you want to and understand the need for it. Reviews provide a forum for a "meeting of the minds", an opportunity to openly share what challenges have been faced and the efforts employed to manage them. The abstract becomes concrete and there is a gradual growth of mutual understanding of the scientific challenges (so the developers better understand WHAT you are trying to accomplish - what is important and what is not) as well as an understanding of the programming challenges (NP-complete problems, inconsistent data formats, dirty/inconsistent data, bugs in the instrument's programming interface, etc.) Again, a seasoned programming manager should understand these issues and can help guide things along (but, from experience, DO NOT have the programming manager attend the code reviews! Really closes down communications when the guy/gal who has responsibility for hiring, firing, reviews, and promotions is sitting across the table -- problems just go unmentioned for fear of reprisal!)

    Lastly, it has been my experience that there is a lot of truth in the adages: "The longest distance between two points is a shortcut." and "Good. Fast. Cheap. Pick any two, but you cannot have all three at once." (e.g. if you need it Right Now, and it has to be Bulletproof, it's going to cost you a lot.) I truly wish you well on your efforts and hope that something I've shared here from my own experience has been able to help.

  41. Hey! I can do it.... and I am cheap by Syllepsis · · Score: 2
    I am a graduate student in Mathematics. I have worked on projects in C involving emergency egress simulations, simulated annealing applied to elevator scheduling, and am currently working on Bandwidth problems with applications in multichannel communications (i.e. streaming media over TCP).

    I am also working on using scheme to develop systems for modern algebra, specifically finding SN-forms of matrices over finite fields.

    I am a graduate student, so I work for cheap, and working over the internet is not a problem for me. Drop me a line if interested!

  42. Interview for science knowledge by inonit · · Score: 2
    There are two main questions to ask here:

    (1) Are you willing and able to pay for established professionals? It sounds as though by mentioning "graduates," you are looking to hire entry-level-type folks. Depending how you are funded, this may well make sense -- but if you have the money, I'd suggest getting some folks (at least a minority) with some experience in the field. The habits developed by these folks (if they're good) -- for working on large team-based projects -- are almost impossible to develop in academia (emphasis on almost).

    You might be able to attract some of those folks (at a lower price) simply by the science-y aspect. As a scientist, imagine how numbing it must be for folks with minds like yours to be asked to write the same application over and over ("read this out of our database and put it on a screen, or a web page").

    (2) I think the way to evaluate candidates is whether, during a one-hour interview, they can pick up some basic understanding of the research that you are doing. This helps you on a few important points:

    (a) Do they have any background in the sort of science you are doing,
    (b) Do they care enough to try to understand what you're doing, or are they looking to be directed every step of the way? (This is an important separator of good programmers from merely adequate ones -- in any problem domain.) Odds are, they had a class in college at least peripherally related to your field ... does it start coming back to them when you talk to them?
    (c) Are they (to put it bluntly) smart enough to understand the application domain?

  43. It REALLY depends by BillyGoatThree · · Score: 2

    You give no details about that programmer's tasks, the research project or even your field of study so it's kind of hard to advise you. Why does it matter? Because different tasks require different programmers.

    If you have a model of, say, planet rotation, complete with equations and all you need is someone to type it in with the right syntax--get an undergraduate to do it for you. Or a "business programmer".

    If you need control and data acquisition, find an embedded programmer.

    If you need supercomputer power, find someone with experience in that.

    Or do you need someone with whom you can "talk science" without having to dumb it down before he can program it? (If so, contact me at dazed2d@yahoo.com--I might be interested)

    It all depends on whether you are looking for specific skills or general knowledge.
    --

    --
    324006