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.]
Current CS courses include a lot of generic college-degree rubbish, like CMA (Cost and Management Accounting), and Information System Budget Planning (Accounting etc etc). Unfortunately, for advanced research, these kind of subjects don't help. This is compounded by the fact that most CS students are learning C and Java in their courses - without touching languages used by Real Programmers of old - Forth, Fortran and Assembly. (Fortran and Forth are the reason we got to the Moon. I'm not kidding about that).
Looking for serious Linux programmers...check out Mojolin (http://mojolin.com)
I recently worked as a team lead for a software group at a very large government funded physics lab. I have graduate degrees in both CS and Physics. All of the advice to "get scientists who can pick up some hacking" are to me, misguided. I had several folks on my team with Ph.D.s in Physics who simply could not handle complicated coding tasks. Sure, they could write code, they could even use (often too much) all the cool wiz bang features of a language. But they did not understand true CS design, and their code was invariably slow, unmaintainable, and unmanageable. Some did fine. More often, my CS folks with strong math skills picked up the physics. Don't expect someone to be able to just "pick up a language, hey just read a book" and code, anymore than one could expect a CS grad to pick up Nuclear Physics "hey, it's just some E&M and a bit of Quantum". Look for someone who knows both (it is hard, but they are out there) in a formal sense -- a computational program (as mentioned at the beginning) or a science department (but students who have taken real CS courses on design, SW Engineering, and Algorithm Analysis) is the place to look. You know the science -- they don't need to know it all -- explain what they need to know and let them do the design and coding work. One side note. Once you have them, don't treat their efforts as somehow less important than the efforts of the core scientists. I eventually decided that since I was "marked" among the other physicists since I didn't do only pure physics (I respected CS as a legit academic discipline and studied it as such, as well as studying physics), I had to choose, and the $$$ of CS won in the end. I left for indsustry and have not looked back. Make sure that you respect these people and don't treat them as lesser contributors to the scientific effort or you WILL lose them to higher paying industry jobs.
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
I can't even begin to agree with this poster enough.
In science, there is a (usually quite healthy) avoidence of ``management'' in any sense. And for small enough projects, that's ok.
But if you are going to be doing any serious amount of computational work and you don't have any in-house computational experience, you will be setting yourself up for disaster. (Can you imagine trying to start a large experimental project without any in-house experimental experience?) There will be a guaranteed disconnect between you and your programming staff (who will almost certainly be inexperienced if they are to be affordable). And there's no good outcome possible here. Even if they are the most talented coders in the world, if you two can't speak a common language, you can't possibly expect things to work well.
Hire someone experienced in scientific computing -- it could be a graduate of the field who does computational work now, or it could be someone from the more CS side of things -- to be in charge of computational work. If it's a small enough project, they can spend some time doing coding, too; but likely you'll have a young coder or two, too.
Please trust me on this; I've seen projects fail or do very poorly because of exactly this problem.
I'm a little shocked at this question actually, because for me the correct answer is SO absolutely obvious.
Of the gang of friends that I had in high school and into university, lots of them were studying a field of science or engineering - about 5 out of 10 that spring to mind. Of those 5, I can only think of 1 who didn't turn away from science and get into computers/programming/networking/ sysadmining/webstuff when we hit the job market. That was where the job opportunities were, and we were all computer literate and generally smart enough to transition into one or more of those rapidly growing fields. None of the fields that any of us we were studying offered nearly comparable opportunity.
My background was in Nuclear Power Engineering and I got so angry and depressed after completing 3 years of university - considering the unimaginably crummy (and in my case locally unpredictable) job market, that I chucked it all and went into the job market with no degree. I'm one of the 4 (of the 5) now earning a good living as a computer guy. I do programming and system administration in the technical computing field - Computer-Aided Manufacturing (CAM) specifically.
My point is actually very simple: There is an abundance of people who can do the job for you. But you have to get the resume points the right-way round. They are the ones schooled in science, but with work experience with computers. NOT the ones schooled in computers, but with work experience in science.
ELIMINATE CS degrees from consideration. Look for scientific schooling, then job experience in programming. There are lots of us who fell into our jobs, many would like to do something more scientific, and some would jump at the kind of position which you describe.
-- Mike Greaves
You might look up some older EE types. They all have decent math backgrounds. I know a couple that are retired that work in university labs for free, just for the fun of it.
Good judgement comes from experience, and experience comes from bad judgement.
Good judgement comes from experience, and experience comes from bad judgement.
- W. Wriston, former Citibank CEO
You could always contact Taylor or other schools specifically asking about "Scientific Programming" tracks.
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.
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.
Yeah, I actually do these things. I'm working in air traffic control research and development. My degree is applied math, BS, and I write code as needed to solve problems. Here's my resumé as an example (I'm not actively looking, and - don't tell my employer - I actually LIKE what I'm doing).
Look for someone who programs to solve problems, not a person who programs for the sake of programming. There's a difference. You want someone who can do the Right Thing - a simple shell script if that's what's needed, or a processor efficient C program if that's instead what's needed. You want a mathematician/scientist first, programmer second.
Look for someone who loves to solve problems. You want someone who can take a fundamental question and can answer it all of the way from high level concept to bit manipulation. Accordingly you want someone who can ask all of the questions inbetween. You need someone who is essentially a systems engineer, where "system" isn't so much a computer system, it is a collection of related items or elements. (A dictionary definition of "system" will give a better idea.) The person should be able to effectively communicate with everyone from the executive managers through the scientists through the computer system administrators through the secretaries.
A few posters recommended older geek types. In some ways they're right, as long as the older geeks are current. Yet, I would also consider the younger geek types. The older ones might tend to have a deeper understanding of systems, and can draw from many more patterns. The younger ones might tend to just have more enthusiasm and drive, and a hunger to learn and improve.
Graham
Graham
Linux - Fast Pane Relief
What you need someone with a forceful personality and a good deal of experience. You're probably not going to get either hiring new grads.
You need someone with a forceful personality because they're going to need to shout and yell to get the scientists to sit down and write actual specs for the programs they want to be written. A couple of post-its with some scribbled bits on them do not count as a proper spec. And a passive introvert is most likey going to try to figure out the post its, get it wrong, and then nobody is happy.
Unless they did their undergrad study at Hogwarts, no programmer has taken any magic courses. They do not know how to pull rabbits out of hats, nor do they know how to read minds. Chances are, if someone goes off to write a program and comes back with something that nobody wants, it's not because the programmer isn't good, it's because that programmer was given an incomplete or (most often) non-exsistant spec.
So if you want in-house development, you're either going to need to find a progammer that's willing to argue in meetings, or you need to find a manager for those programmers capable of doing the same. You can't just assume that because someone knows how to program that they'll be able to write software in a vacuum that satisfies anybody.
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:
/. have a <pre> or a <code> tag?
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
-"Zow"
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"
On a similar vein - look for postdocs from science subjects. Many researchers go into computing after doing their PhD because (like me) computing was the best bit of their research. If their research involved a lot of computing then they understand both programming and research. One word of warning - their programming skills may not be that good (a CS education is some use ;-). So if you can find someone who's also had a few years experience in industry, you might find that they are better programmers.
Anyway, to find postdocs, advertise with the local university careers service.
http://www.acooke.org
PS What (and where) is the job? I might be interested ;-) CV at http://www.andrewcooke.free-online.co.uk/andrew/in dex.html
http://www.acooke.org
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.
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.
If I read your description of who you are looking for without the words [Computer Science | CS] I first think of engineers, not Computer Science majors... What you want is a problem solver with a broad range of interests (maybe more so than broad experience).
Most computer science majors I know fall into one of two categories -- slackers who think they will be the next great game designer, and couldn't think their way out of a wet paper bag; or the kind I would *hire*, who have a great deal of intellectual curiosity, know their way around a Unix like system, and can solve any problem if they know where to look for documentation. But to have someone who readily straddles the hardware/software divide (despite the fact that they are the same thing..) and better fits your description, you want perhaps a Mechanical or Chemical engineer that is less than gung-ho about Mech/Chem engineering. I know because I am one...
I'm currently working as a Mechanical/Manufacturing Engineer, mostly for the broad range of problems I get to deal with -- but unlike ANY of the folks I graduated with in MechEng, I love programming, setting up systems that work, interfacing hardware and software and PEOPLE (you know, the important part of the system) and generally doing the things you describe -- but I never would have *dreamed* of majoring in computer science; I didn't fit that profile I guess. I had a scholarship for a pre-med program, and an academic scholarship for Engineering, which is what i ended up majoring in.
The broad-based thinking one acquires from engineering is FAR more valuable to me than the stuff I would have learned in Comp Sci (though I did minor in CS at the last minute because it was so easy). So, when you post for jobs, don't limit it to CS, invite all Engineers and free thinkers with relevant interests to apply and I think you'll get more applicants like the ones you are looking for. Another clever idea is to request interviews with people who meet certain Meyers-Briggs types. Either INTP or ENTP is probably what you are looking for.
A computer without Microsoft is like ice cream without ketchup.
Are you one of the clueless morons who emailed Michael? Try reading all of the words, in order!
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.
--
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
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.
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.
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.
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.
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.
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
of course, there are those CS schooled (myself) that would *LOVE* to do exactly what they're describing, and would be quite capable of it.
:(
for years i've been saying to myself that i need to break out of this terribly boring business mold and go toward the scientific or manufacturing side of the spectrum. (the problem is that in the city i live, these are quite rare)
i had lots of math, physics, chemistry, biology, materials sciences, etc. i want to use those skills again. it's a shame to have those diluted by typical business problem-solving
Peter
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!
well, considering the kind of thing you mention is right down my alley, and that i am a poor grad student trying to stay alive while i finish my thesis, all u need to do is offer me a respectable looking monthly bribe, and not be based in UTAH.
:)
Sigura Non Grata
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.
--
Tweet, tweet.
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.
I've seen a lot of discussion here about hiring people with CS, Math, Theoretical Physics degrees, etc... If you are insistant on a 4-year degree, maybe an Applied Physics degree would be good, but if you are really looking for an "all around lab hacker" and none of you want to do it, maybe it's not a job for a scientist. If what you really want is someone who can get your lab equipment to talk to each other and automate some of your research, look for someone with maybe a two-year Technology degree and a process control type background. Try searching for keywords such as "Wonderware", "Lab View" or "Instrumentation". You may find just the person you are looking for in a 28 year-old Technician at a refinery who is tired of climbing a cracking tower at 2 AM on a winter morning to re-calibrate a temperature transmitter. This person also likely has over 5 years experience networking the types of equipment found in a typical lab. This would include several different serial standards (RS-232, RS-485) and protocols (Modbus, Data Highway+)and probably some scripts (I use perl myself) to get these things to talk nice to each other. A place to look for people like this would be the ISA web site.
Do this don't do that Can't you redesign.
Have the most technically skilled individual who is most like who you want to have working for you and have them tell you how to hire someone good. Also don't worry about a degree worry about the individual. Throw everything you think you know about hiring people out the window because it will not work for CS/hacker types at all. Remember always your best CS/hacker types do a lot of hacking and may not dress perfectly or have the best communication skills but they may be able to program everything you need better than anyone.
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'.
I'm an engineer, but I couldn't code.
I wrote some programs to do analysis and so did some of my peers. We could never get the computer to do exactly what we wanted quickly and easily. It was hard (The internet was in its infancy so as a reference we had to use books which we had very few of....)
I went back to school to get a MS degree in CS. I look back at some of the old programs I wrote. They were awfull. I think the CS background helps you understand things that a pure scientist would not:
-. What you options are (language wise)
-. How to design a program
-. Data structures
-. Database design
A lot of my EE friends in school jumped right in to programming after graduation. You can learn all this stuff at work.
Now I have the opposite problem, finding scientific programming positions is hard.
Amen.
I'm have a engineering and a computer science degree. I think the broad background helps alot.
Isn't this what grad students were invented for ?
get grad or even undergards in the field you want the work done. they can learn the computing part by themselves
my particular bias is life science it will show with the following URLS: bioperl.org, biojava.org, biopython.org. Find projects like these in whatever dicipline you are interested and you will find lots of science-capable programmers either actively contributing or participating in discussion. Don't spam the mailing lists with job listings of course - be a bit more subtle and find out things like what school programs are producing these folks, what conferences & events they attend etc. etc.
I am at UNH right now studying for a degree in Integrated Mathematics: Computer Science. I know many other schools (BU, RPI, for example) offer similar programs. In this field, i get a lot more math experience, and i learn more about the basics of CS (i.e.- Assembly, FORTRAN, etc.). perhaps you should look towards graduates with a degree in this field?
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.
... and Physics and Math. At NASA, most of the good programmers seem to have Electrical Engineering or Physics degrees. For scientific programming, it is important to understand the science. CS majors are less likely to have the background and interest, and are often not very hardware oriented. It may also help to get people with experience rather than entry-level types.
http://www.mindspring.com/~anuta/volodya/resume.pd f
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.
The biggest problem in attracting well-qualified candidates is salary (or stipend). In my field, the going rate is about $18k for grad students and $25k for postdoctoral researchers. Not at all competitive with what industry can offer a talented programmer.
The only reason we can attract anyone at all with these stipends is that we're not hiring employees, we're training students and researchers. They're here for the education, not for the earnings. Or at least they should be.
It's unrealistic to expect someone who already has all the skills I need to be interested in working in my lab for peanuts.
By the way -- if anyone is interested, I'm currently looking for a postdoctoral researcher to work on a comp. chem. project involving object-oriented parallel processing in F90. Email me or see web page below for details.
-Steve Stuart
http://radar.ces.clemson.edu
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
I have a B.S. in physics but for the last 4 years I've made my living coding. Research-oriented coding would be an interesting change. I happen to have my resume up at sourceforge and I live in Baltimore, MD.
Wow, job trawling on slashdot, I feel so dirty.
--
You can be an atheist and still not want to succumb to some weird cross-over sheep disease -- AC
Everyone in my CS PhD program who dropped out (meaning took a job in the industry) were all strong scientifically and mathmaticaly but just didn't want to deal with the way out there the theory needed to complete a thesis. That kind of person sounds perfect for you.
Bright enough to do research, but not spacey enough to give up programming for the rest of their lives in order to get papers published.
Physics undergrads develop general problem solving skills that are applicable to a wide variety of topics. All you need are a few who happen to be adept with computers--that's hardly uncommon these days.
With the recent slaughters in the automotive industry there is probably a flood of experienced engineer programmers. If you're willing to pay for exoerience and proven track record you should have no problem.
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!
If you want a talented person to work in your lab and you expect them to be flexible and able to problem solve, you should consider paying more, or at least advertising that you will pay more. The reason is that the person you are looking for might have already taken a higher paying job.
This is not to say that it is just money, but if you advertise a higher base pay, you will get a larger pool of applicants to pick from.
I would LOVE to program in a lab environment. I love science (I have a BS in Physics and in CompSci, with a Masters in CompEng) However I am not freshly out of school willing to burn many hours coding to solve the latest emergency.
At this time I consult for a living. To be honest I can choose from a lot of different job opportunities, but I generally choose jobs that pay well. (I have a wife and two kids to think about) I would bet that many people out there with family responsibilities work in a similar manner. It is not for a lack of wanting to work hard for a company like yours; it is a matter of making ends meet.
Good skills cost money, plain and simple!
~Sean
1. fscking is not an adjective it's a verb - it has to do with checking your file systems for errors. File systems are something that computers have not human beings. I know you find Europeans strange and all but we are still human!
While 'fscking' may not be a true adjective, it can be either the progressive form of the verb 'fsck,' or a verbal: a gerund, that acts as a noun, or a particple, which can act as an adjective or an adverb. His use of fscking as an adjective is correct, grammatically, even though its original meaning may not fit in the sentence.
---------------
Yes! That guy!
Sounds like a dream job to me, I know all sorts of people looking for and getting into that sort of thing.
Try finding someone in YOUR field with the skills, snagging an undergraduate at a local school early is probaly a good way to try before you buy.
I personally love goofing off in labs, lottsa toys, interesting problems, a true hackers paradise.
But again I'm a Mechanical Engineer, not a CS guy.
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]
I am in the same situation: I'm a SciComp'er (M.Sc. in applied mathematics) and I cannot find any fun jobs. The people/companies I have contacted range from universities and engineering comps to consultancy, but they all say: "Gee, that IS exiting, but, we do not have that kind of interest". My old professors never told me, that this could be a problem =/
...
I have now taken this initiative: I am founding Danish Scicomp Association, which is to be a portal for those who are interested in sharing scicomp ressources: Universities, employers and employees. Check out www.scicomp.dk in a few weeks =) There will be job ads, CVs/resumes and university contacts. I have a lot of potential contacts already, but if YOU can help me, don't hesitate to contact me!
My hope is to make this world a better place =) by creating a place for frustrated employers and employees to turn in order to meat each other. I have missed such a place for a long time
Eih bennek, eih blavek
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.
Unfortunately, most recruiters can't tell the difference between muck and gems. Or rather, they can't tell the difference between gems (that which looks good) and good software developers.
Excellent article, by the way. It pertains to most skills, not just software.
I've still kept it even though all my old BYTE mags are long gone.
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."
I have BS degrees both in Chemical Engineering and CS. I worked as an engineer for several years, fell into programming and liked it so much I got another degree in CS. I am working mostly on business apps at the present time, but I find it a little boring. I would love to work in a scientific context and solve scientific problems. I have experience in FORTRAN, Perl, and C++.
Calaf
"How to know if they are qualified?"
"How do I find candidates?"
I believe that you have done it. So many of us in this industry are sick and tired of the constant travel, the irresponsible deadlines, repetitive problems, and lack of a worthwhile goals. I for one would be very interested in putting my brain to use solving good problems with good goals, that I would be willing to take a pay cut to do it.
[
The kind of person you're looking for will be very hard to find. A person who is adaptable and also knows software engineering. I like to believe that I'm a person like that. Actually I'm pretty sure I am the kind of person you are looking for, so I know the job hunt habbits of the type of person you're looking for.
1. You have to be lucky, and find a person who isn't happy with their jobs. The good thing is, is that most large companies still don't understand that Computer Scientists & Engineers, and 'real' software engineers have different needs then your typical factory worker. You might be able to find a high powered, adaptable scientist from one of these larger companies.
2. Most of the people you're looking for don't post their resume to the internet, or to headhunters, so going through those channels you might not find them. They also don't look in the newspaper want ads. They talk to their friends, and their friends ususually know of a job from a friend of a friend of a friend. The last time I got fed up with my company I wrote an email to a friend, got a responce back and basically got a 40% raise a month later at a different job. I didn't post to the internet, and didn't talk to a headhunter.
3. You have to snag their interest. The only way you're going to get the type of people you seem to want is to snag their interest. A lot of the adaptable scientists are like the hippies of the 60s, they want to change the world. If you offer them a chance they might hop onto it.
4. With the economy of today everyone is skitish about switching jobs. You'll have to offer rock stable stability (not California or Washington rock, they have a habbit of shaking and knocking down buildings). While it is true that the 'real' engineers (not web developers) are still high in demands, they're still nervous about switching jobs because of the economy, if you offer alot but not stability you won't get them.
Still the most important thing is who you know that knows the type of person you're looking for. And getting a reference from someone you know also gives you a better chance at finding a jewel in the rough.
Software Engineer & Writer of Military Science Fiction and Fantasy Blog: petermwright.com Twitter: WrightPeterM
I'm about to graduate and I feel like some kind of alien because I'm looking for jobs in science. I don't really want to work making websites for tennis shoes or making products for corporate america.
I've been looking for jobs at astronomy labs and physics labs and they're really hard to find. There aren't really a lot of resources dedicated to finding these jobs. Do you guys know where to look for this kind of thing?
Although there are some good points discussed here, such as the value of having your skillset up to date. But I don't see why you can't apply current techniques like web development, xml, sql, blah blah blah to scientific development? I'm sure scientists can benefit greatly from using the latest technologies, they just need a kick ass programmer to inform them about what they CAN do. Of course my other concern is that scientific institutions won't have the same budget as big software/deign houses, but there's always a price to pay for doing something you care about.
anyway, feel free to contact me. See my flash website to get my email address. (spam sucks)
http://www.hyperpoem.net
hyperpoem.net
This really rings a bell with me because I am in that situation, except that I am benefitting from it. I am currently doing research in chemistry at Stony Brook but my research doesn't involve any real chemistry - I just help design algorithims to "solve" the packing problem. It's funny because I am really a philosophy major with a strong science background (i'm pre-med). The person who I do research under was telling me about this problem. There isn't enough money to attract good CS students into research type stuff. The one guy who does no CS has so many perks - can come in late, leave early, long lunches, always needed. Its more than just the average "my printer won't print" stuff too. In my case I get an A because otherwise the problem is screwed until they find someone else.
I like food.
You shouldn't be considered, because Computer Science is largely an overview of tools and technologies to make programming easier and has little to do with making a product work properly.
It's not enough for a product to "look good enough", it has to be engineered.
The message on the other side of this sig is false.
The person you are looking for might have a computer or electrical engineering degree. I am working on my computer engineering degree and can attest for the rigorus mathematical education the curriculum affords. The candidates for these degrees often work on designing and constructing scientific computing systems because they often employ the most pure and bleeding edge ideas in computer science.
C ompEngr
WARNING: blatent cheerleading
check http://ece.www.ecn.purdue.edu/ECE/Research/Areas/
to see one school's description of the major
I graduated last December with an ECE degree from OSU, and am now working in a human factors research laboratory attached to a defense contractor. Business programming is mind-numbingly un-inspiring. My work is really cool - one-shot programs to solve individual problems. Unfortunately, we lost out on the contract re-compete, so I'll have to see if I can transfer to another research arm of our company, or I'll have to a) work in the business arm (still defense related, but not as cool) or b) find a new job.
Cheers,
Brian
So, your deparment teaches mathematic? What's a mathematic? Just because you can't properly use english grammar doesn't mean that anyone else shouldn't.
Also: pluralise - Standard spelling in UK english
pluralize - Standard spelling in US english (and incidentally, Canadian english)
Yes, yes, and yes.
Also, you'll lose them if you fail to give them a chance to learn the latest technologies. I have been amazed and dumbfounded for many, many years at the short-sightededness of organizations that refuse to spend money to let their developers learn new things "because we're afraid they'll leave and get a better job elsewhere." In my experience, one of the major reasons developers (especially the good ones) leave our current jobs is to go learn new technologies. We worry more than anything else about becoming obsolete or irrelevant. ..bruce..
Bruce F. Webster (brucefwebster.com)
Again, I agree. The single best software engineer/architect I ever hired was a 24-year-old high-school dropout (he did get his GED). But this was someone who kept up on leading-edge issues and technologies and was doing leading-edge development on his own at home. I believe he's now retired, having won the 'geek lottery' at a subsequent startup.
On the other hand, there's a lot of folks who mistake knowledge for skill and skill for talent. You really want all three. ..bruce..
Bruce F. Webster (brucefwebster.com)
Brilliantly concise: irrelevance, ignorance, illiteracy, and vulgarity all tucked into a mere six words. My hat is off to you. ;-) ..bruce..
Bruce F. Webster (brucefwebster.com)
(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)
You see, I started programming while studying for a physics degree in the late 1960s, at a time when CS was a rare academic discipline even at the postgraduate level, and like many acquaintances in the math/ physical sciences/ engineering fields I went into the IT business because it paid us well for work that we found easy and even (at that time) fun. And my impression is that since that time, knowing how to use computers as a tool has become a standard part of the curriculum in just about any university-level scientific discipline.
It sounds to me as though there's a mismatch between your field and what you're wanting done, and it's difficult to suggest useful approaches without knowing more about both.
because he's got enough karma? duh?
Voting Moo Anyway!
I'm not sure how the Cs system works in the States, but here in Canada the program you would be looking to hire from would be University grads from either Computer Engineering. College grads here aren't the same as in the States, as they are mostly technicians and don't learn anything theoretical.
The Cs program at my university revolves moslty around the pure theory of writing software. (ie : why use a stack over a deque in certain applications, Big O notation for every last function in every last application, optimisation). The program doesn't involve much practical applications, or much math or physics either.
The Software engineering program here (to be accredited at the end of the year) is just like Cs, but with a tiny bit of hardware background, and more practical applications in their course load like kernel design (using Linux as a basis) and a lot of business classes. Again no maths of physics.
The Electrical Engineering program revolves around everything that touches hardware, from DSP to microwave tech and microprocessor design. The program is very math and physics intensive, but contains almost no software courses.
The Computer Engineering program is almost the same as the electrical engineering program, with a software load added. We take physics (the dreaded electromagnetics), a lot of Math, and no business courses. We still learn DSP, uW, and microprocessor design and such, but added to the program are software courses dealing with everything from theoretical (data structures, optimisation, AI) to applied (OS design, kernel design, driver design).
Again I can't speak for the US system because I know there are a multitude of differences (like engineering being accredited for colleges), but from the description of your needs it seems like CE grads from a Canadian University would do the trick for you.
I am Dyslexic of Borg
Resemblance is fertile
Your ass will be laminated
Talented anything is rare, simply because that's what shapes the definition of talented.
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
I've been trying for rather a while to get into the research arena.....
please contact me on gazZ@silverhand.eidosnet.co.uk
Current CV is at http://angelschool.cjb.com/cv.doc
it's the taking apart that counts
www.sourceworks.com SourceWorks has a total staff of 30+ with an average experience of 12 years. Our resources inlude 3 PhDs, 5 Masters, and numerous degrees in Computer Science, Mathematics, Engineering, Physics, Chemistry, Mechanics, Meteorology and/or Business Administration/Accounting.
I elected to take a course in Fortran inorder for me to get into the Science Field of CS. The Science field is where all the cool coding is. Buisness coding is cut and dry with no creativity. And system coding is fun but you often dont get any fancy results. But it is true that it is hard to find good CS Students who will do the job. Mainly because a lot of the CS Student to take the degree are just looking for a Highpaying almost blue collar job, where they can put the thinking to a min. But my experence at my school is that about 5% of the CS Majors would jump in the field. 25% would go into Systems level programing and 60% Will go into a Buisness programing, 5% will go into teaching. and 10% will go on some other job field. As for Engeners with programing skills watch out for them as well, After looking at some programs that some Engeners make (Students and Faculty) There code lacks a lot of elegance and is just a big mess. But it also depends on the school too. Some schools have a really strong engenering department that teaches good CS skills while other schools have a good CS Department that teaches strong Math/and Physics skills. My school has a Small CS departent so it is link with Math and Physics. But if you are insted in hireing just E-Mail me your E-Mail address to send a Resume to at the above email address (without the nospam_ ) and add a .edu at the end of hartford.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
> 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.
...because stability problems might be trickier. If you are using a GMRES solver for a huge matrix, for example, Funny Things(tm) might happen, and you got to be really good at it to spot them and deal effectively with them.
...because there are no decent worked out recipes for what you need. If, for example, you want to do some fluid mechanics code, forget about buying a book and implementing some examples. They invlolve too much, are just too big, and are full of devilishly subtle but highly important details. You got to be really good at it to get them right.
so basically for this sort of stuff you are looking for a cross between a good mathematician (for getting the math right), a good engeneer (for the sake of good design) and a good programmer (for the implementation). That's like the mesiah.
Teams for this sort of stuff are also pretty hopeless to form because the devil lives in the detail and these are hard to track down beneath deep oceans of lack of understanding of the other discipline.
rmstar
money
degrees
:-)
use them
OTOH your article reads more like "how can I know I found them ?" No answer here - if you don't know that for yourself, find someone who does
...but you couldn't prove it by looking at the majority of trade press out there related to computers. What you need is someone who is not in computers for the money first, someone who has ambitions of programming more than payroll or trading systems. An interest in C++ over Java or Python would be a good indicator. Linux over Windows. An interest in modelling the real world versus modelling money. I'd start with the computer science department at your local university, and follow leads from there.
I will relate some of my experiences in college, hopefully this will provide some insight. I went to school originally as an Electrical Engineering major, finished almost all of my core/science requirements. That was when I decided that my love was definitely Not EE. I swiched to Computer Science mid stream, which is not that big of a deal for EE majors.
Switching curricula proved to be a change however. The emphasis was mathematics, and a lot of computer science. CS majors were not required to take a full load of Chemistry, Physics, Biology, etc. Sure, there was a number of credits that they had to amass, but it wasn't enough to give a strong base in sciences. It's not surprising that the true computer jocks were only interested in pure computer science, they probably were ignorant in any other science. (Mind, this is just a subset of all computer scientists.)
I have a full base in science, which is unusual for CS majors. I now attend a school where most of the Computer Science majors don't know what an AVL tree is, nor do they care. These are the types that end up doing database programming, since they have an interest, but not a love (once again, this does not apply to all database programmers). Given, once I attain my degree, I won't be able to fly very far with it alone.
Those that you are most likely looking for are those who not only have a vested interest in science, but also are articulate. If there is no middle man for you and an inarticulate programmer, you'll be in for a confusing and tedious project. Engineers (Computer engineers are probably your best bet) are who you should really be looking for. If they happen to have a background in the liberal arts, so much the better. I find that if someone has that background, they are much better equipped for the duties you need them to perform.
You need to restart your computer. Hold down the Power button for several seconds or press the Restart button.
Sciencific programming is a bitch. Not because of the complex data structures or a difficult object model or a difficult language, because the reverse is true of those. Its because the debugging is a bitch. You enter equations into the program, can run it for up to a weak, and then you plot your results and wow lookout the results come out wierd obviously unphysical. What happened? If you luckly your find a subtract instead of a plus sign in your maths or the program after hours of searching, if your unlucky, one of your matrixes was ill-condictioned, or your problem was outside the convergence domain of one of your methods, of it gets trapped in a local mimimum instead of a global one.
None these mathematical problems are like anything a normal programmer has learned to deal with. Scientic programming is an art that takes a lot of training to learn.
These positions aren't easy to come by - whereabouts is this one located?
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
News for Geeks in Austin, TX
I work for an institute that is having the exact same problem. We've got work that seems sexy, novel and of benefit to society (heck, even Open Source now!) But we can't compete with even mom-and-pop businesses in terms of pay. We'd like to find someone who is experienced at many levels of software/hardware dev/maint/manage. Are people who've made their money likely to head out and seek jobs with less tangible bennies?
~It might look like I'm doing nothing, but at the cellular level I'm really quite busy
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
1. When did they start programming? The best answer is a long time ago, i.e. before they got into college.
2. How many computers do they have at home. The answer should be more than one (and it should be because of their answer to #1).
3. Which leads us into the next question. How are they connected? If they're not, then this isn't the person you're looking for.
4. And finally the last question. Why do you program? Remember, you're looking for someone who actually likes programming.
The current atmospheric model the group uses is about 20,000 lines of FORTRAN that has been hacked on and augmented willy nilly since 1978. And runs primarily on a DEC Alpha running OpenVMS There are no comments in it whatsoever. I'm trying to convince them that it should be re-written from scratch (maybe in a more modern language, for a more widely supported OS, with some comments...) But they (a couple of older professors) seem terrified of letting the code out of their hands, and are having trouble absorbing the idea of version control, among other things.
I'm very frustrated. They're about to get a herd of academics (none of whom has a CS background) working on code with no forethought, and I think I'll go nuts if I have to sit there and implement horrible things for them. Can anyone give me some eloquent ammunition to convince them this needs to be treated like a software engineering project - not atmospheric science?
---
--
If we don't change direction soon, we'll end up where we're going.
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.
That is really interesting in that I am a computer engineer (EE degree w/CS minor) with a math minor and am getting a MS in Physics... I can not seem to find a job such as the one you describe. I wonder if it is the fact that so many "hackers" just go into CS and just want to program only. For instance, I teach Physics labs at the university (I have a TA) and the CS people do not seem to know what is going on in Science. They take the courses because they "have to". I always thought that (in the past at least) the majority of CS people would end up working for a scientific firm....
If you need some tips on how to evaluate candidates for a programming position, here are some suggestions:
Getting undergraduates might not be such a great idea, particularly if you're looking to hire them for only a little while. I make daily use of a software package that was developed that way and am in charge of mofifying it for our lab and it's a complete mess. It's made up of a whole bunch of complete spagetti code with no adequate modularization and features bolted in with no adequate thought. It's a nightmare to maintain and modify because it was built by aggregation rather than design. I've talked to the director of the lab where it was developed, and he says that the underlying problem is that it was designed by undergraduates who were only in the lab for a few months at a time. They never had a chance to go through and heavily rework sections that needed reworking, and in a lot of cases they took obvious approaches to problems that didn't scale well so that the system starts to collapse when it exceeds the load it was originally designed to handle.
Note that I'm not saying that the problem here is that the programmers were undergraduates, per se. The problem is that they were only around for long enough to solve one or two problems, so they didn't see how their solution was going to cause problems for the next guy to work on the problem. The difficulty is that the approach of hiring cheap undergraduate labor to do your programming naturally tends to wind up resulting in that kind of problem. If you can find a competent and reliable undergraduate to do it you're just fine, but grabbing a random guy who's going to stay for only 3 months is going to cause problems.
There's no point in questioning authority if you aren't going to listen to the answers.
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.
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.
Yes I agree whole heartedly. CS courses tend to concentarte on the Buisness world. Students are told about how much the can earn and therefore expect a lucrative career in the business world, far beyond what a University can afford. Science graduates however have a general degree and are much more open to what they do.
Offer them a desk made out of lego and a caffeine IV drip. And an expense account at ThinkGeek.
Score:-1, Funny
Currently the main sector of computer science that is using all of those neato physics equasions is the Gaming Sector. In fact, they are always complaining about not having enough horsepower to create a TRULY accuret simulation of the world, so hell, give them a few dozen super computers and they'l;l be happy as a bird..
What's more, since they have been forced to work in an enviroment where code resuse and readability are of some importance, you might actualy get lucky and have readable code on your hands, no promises though;)
As an added bonus, they will add that much needed bit of Nerf to the lab enviroment.
Need help treating your acne? Come here!
Wait a second now, last time I checked, aren't we supposed to be the same thing?
You know, PhD in CS, PhD in physics, etc? A person who has dedicated their life to science is a person who has dedicated their life to science, no matter what branch of science it is. It IS called Computer Science after all.
Besides, it is not like nerds have any better of a personality ya know, shit, we DID come stamped from the same mold, just depends on which direction we went in after that.
Graphing the electrons, are making the program that graphs the electrons, heh.
Need help treating your acne? Come here!
Thanks!
The middle mind speaks!
i work as a neural modeler at a lab in a major university. we keep several "general purpose hackers" in the lab for things like optimizing our modeling code, making new random number generators, etc. here are some of the ways that our director recruits these folks:
-- he gives talks at 300-level cs classes and sees who shows up after class
-- he sends out a letter to the incoming students that have been chosen for the university's presigious scholarship programs in the fall (since if these people program, they're more likely to do it well)
hope this helps...
Recursion (n): See recursion
I found, in my experience with the CSIRO, that the job wasn't just involved with programming but required me to go the next level and actually get involved in the research. In order to achieve that I needed knowledge outside that which would normally be encountered in a standard comp-sci course ie chemistry, physics, maths, numerical modelling/analysis, stress analysis and the odd bit of management and report writing. Since then I have completed my Bachelor of Engineering and a separate Bachelor of Computer Science. From that I can say I was unimpressed with the range of material presented to comp sci students. There often is too much focus on a particular set of languages rather than a good broad problem solving background and grounding in basic science and knowledge. Just how much time do any of you actually spend in simply coding - I'd bet not all that much if you are doing it right :-)
So look for the engineers to solve your problems, even more than Comp sci students they are trained to solve problems, analyse and think through solutions. Since then I have found that employers have liked most my broad scientific training over my comp sci experience. No disrespect meant to anyone with only a comp sci degree but in my experience I have found that the best programmers / software engineers have been those that have a broader background eg Physicists, Engineers, Mathematicians and the like who also have comp sci degrees or significant experience in the field.
Happy hunting
With the recent collapse of many .com's, all sorts of geeks are dusting off their resumes. They're going to hit the avenues they know (headhunters) and you'll probably need an agent to sell the position (ie remind recruits of .com hell.)
... And I completely understand this.
Very, very, very few CS students have good enough math skills to do this kind of work. And even many of the really good CS students just don't have the math experience. Not to mention, most wouldn't want to do this.
And almost all of my peers have no programming experience or no practical experience. I am a moderate programmer and I am far better than all of my peers and at least all of my physics profs. (my university is not that big though). I find it sad that we are not required to learn some CS, but we can barely graduate in 4 years as it is.
When I write scientific programs I always have to translate the math into a code algorithm first. Because the way a human approaches a problem requires insight that a computer doesn't have. This translation requires good math skills and wizardry to get the algorithm into its most consice and simplest form.
The next problem is the tools. You need to find good routines for stuff like numerical DE and integration. Most of the time you don't have the time to write these things your self. This is why there is so much Fortran crap left around. There are many powerful and fast Fortran routines and not very many people want to rewrite them.
Most new projects are written in C and maybe some Fortran if there is any old code left around. Though some people like to use C++ for code reuse, it is slower. Things like Java are never ever used. Unfortunately most CS institutions today only teach Java and C++.
Then optimization also requires lots of math skills as well. Many formulae can be reduced. Lots of constants can be factored out and determined beforehand . . . A vanilla CS student may not be able to do this kind of optimization.
Then comes debugging. There are always many bugs in math code (at least in my code). If you are bad at algerbra xor logic, then you will never finish the program.
The only advice I can possibly give is to learn to program your self, like I have, or to find a bright student in your field that can program well, or that can program some and is interested in it.
I would only bother with a CS student if they had a strong math background like a double major math/CS or at the very least a minor.
The only incentive I could see for a nonscientific programmer would be to work with really big machines and clusters, but if you have big machines then you probably don't have the problem of finding programmers.
Good Luck
I about died when I saw this. I graduated with a BS CS. I would have loved a job like this and made a point of selling myself as a lab-rat at interviews. Now I'm quitting the field. This field is completely screwed-up and I don't think any of the employers know what they want, or what they need. Worse yet they don't seem very interested in trying very hard to resolve what they want and what they need. They just hire and fire at random. I get hired one place because I know OOP and C++ and they don't use it and then I can't get hired anywhere else because they want OOP and C++ but I havn't used it. Or its not the right flavor of tools and platforms. No company I ever interviewed at emphasized "thinking" or "problem-solving". For a "programmer" to survive you cannot afford to consider jobs that are not "hot". That might explain the problem. My advice is if you're looking for programmers who think, hire thinkers and let them program.
"Maths" is, as people have pointed out, a colloquial abbreviation in the-language-of-the-English for "mathematics."
"Math" actually means "a Hindu convent of celibate mendicants."
Based on this, I'd take "Maths" lessons rather than "Math" lessons any day.
What would Lemmy do?
I am one of the poeple you seek, but, unfortunately for you, I'm not for hire!
/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.
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
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.
Hi. I have a cog science background. I will be finishing a CS masters in November. Email me if you are interested...
Because Maths is a concatanation of Mathematics
I am not who you're looking for, but I definitely am in close contact with these types of people. You are looking for Computer Engineers of a very specific flavour.. namely, the ones who should've taken math :)
In my school, there is a program in the Engineering Department that is called Engineering Science... These guys have the math background of a math minor, with an engineering specialty. Some inevitably specialise in Software Eng, but they are _expensive_ and are hotly contended for in the job market.
There is one guy - recent graduate - I know who is a math wiz and writes solver programs for one of my engineering professors when he finishes work in the evening. He works for some consulting firm.
My advice is, look for Computer Engineering or Applied Physics or CS graduates with a background in Digital Signal Processing (math) who have scored some extracurricular lab time hacking. There is a club of these guys which meets on Friday nights with the said professor to put together some really cool software and hardware while mixing in a pleasant (though not extreme) dose of math. We mostly try to get new multimedia hardware to work with Linux - few have the background to advance the math aspect, because it requires function estimation modelling on a graduate level.
This is the page you might want to look at to see where these guys hang out
Janimal
Being a CS student about to graduate, I can only hope I get a line on a job like this when my time comes. The reason I went into CS was my love for computers, but the further I get along, the more I realize the likelyhood of doing mundane corporate work such as coding DB fron-ends and maintaining accounting software.
I can't imagine that finding candidates who have strong mathematical backgrounds, but would like to have more contact with software development than doing pure CS research would entail. Granted, if you are pursuing science (as opposed to doing more commercially oriented R&D) coming up with the money to properly compensate the best & brightest in the field (we're grostesquely overpaid in the US). Perhaps you should put more work into playing up some of the other aspects of the position, which I can imagine would be exciting, dynamic, challenging, and would most likely end up being a great learning experience.
my sig's at the bottom of the page.
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.
It is no fun working for scientest. I'd not recommend it. Perhaps the difficult personalities are known well enuf that that is the reason they are having trouble attracting the "right element" of people? In other words the smart guys know how hard they are to work for and avoid them?
He is the best sailor who can steer within fewest points of the wind, and exact a motive power out of the greatest obsta
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? :)
Hire someone who has done a computational physics degree. They will have a good grounding in mathematics including numberical analysis. There should be plenty of them that would be happy with that sort of job.
If I get fired, I don't mysteriously have this *huge* money tree to get cash from like some people 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.
Getting priorities straight, the programming aspect of the stated goal is seconday to the primary objective of the unnamed area of scientific (semi?) research.
It should be Obvious that it's a matter of narrowing down the search by using constraints consistant with the primary objective within the field of the seconday constraints of programming.
But it's probably not obvious because CS in general hasn't quantized the set of "actions constants". A failure so far in CS to do or even be motivated to do. For to do so would certainly lower the general pay scale of the software industry to the point of being reasonably inline with workers in all other industries.
In fact, I'd say programming in general would then become more a sub field item, like the ability to type at a reasonable speed in applying for an office position regardless of what the hiring company does. Leaving genuine software engineers free of the psuedo software engineering majority, to really engineer high values to be used by acts of applying the "sub field item" of programming.
3 S.E.A.S - Virtual Interaction Configuration (VIC) - VISION OF VISIONS!
I'd meant to put 'middle-aged' in quotes and forgot. Since I haven't seen a lot of 60- and 70-year-old programmers out there, I figure that 30-50 pretty much covers the middle range in this profession.
-deane
Gooroos Software: plugging you in to Maya
-deane
I'm not, really, I'm just using it as a shorthand here for "someone who has been programming for several decades". It's easier to say "middle-aged programmer". If I were actually interviewing it would be years and variety of experience that I'd be looking at and questioning, not age.
The chronological bias does apply to the issue of ego, though. Not that there aren't self-effacing newbies and prima-donna oldbies out there, but the tendency is toward the reverse: developers who have been in the business for 10 or 20 years generally seem less inclined to want to rewrite libc on each new project than those who have only been coding for 4-5 years.
-deane
Gooroos Software: plugging you in to Maya
-deane
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
1. fscking is not an adjective it's a verb - it has to do with checking your file systems for errors. File systems are something that computers have not human beings. I know you find Europeans strange and all but we are still human!
2. Both MATH and MATHS are shortenings of MATHEMATICS (note the s here). So technically neither are formally correct since they are contractions not the word itself.
3. The EU does not have subjects it has citizens.
4. The EU covers many millions of non-English speaking people. I suspect the majority of the EU do not refer to either MATH or MATHS but their own language equivalent.
5. The UK has subjects who bizarrely are also EU citizens - but that's a quirk due mainly to the fact that whilst we do have a constitution (despite what you might have heard) it's not a written one.
6. "There is only one correct math, you know." That's incorrect - there are many types of maths - all you really require is a set of axioms and a logically consistent way of stating and proving arguments. If anything that makes MATHS sound more correct than MATH - since it's a collection of disciplines rather than a single one.
7. I think you mean "There is only one correct way to spell math." But that's untrue also. Maths is accepted as correct in the UK and Math in the US. Correct spelling is a relatively new concept anyway. Language is fluid - attempts to define it and then set that definition in stone always fail. In a hundred years they could be calling it Mat (or Mats).
8. Or perhaps you really meant - "All your MATH are belong to us"
Have a nice day.
In cryptonomicron there is a great passage describing how the main character (forgot his name) starts a masters program, sometime shortly after he foolishly hints that he knows *nix, the next line is something like "three years later, without a degree, he left...". Its funny cuz its true.
only infrmatn esentil to understandn mst b tranmitd
The graduates of most CS departments are not going to have the background for programming for scientific applications. That's just a fact. Math and numerical analysis courses used to be a part of the CS curriculum long ago, but they no longer are. Many CS departments don't like supporting this sort of research or courses and many academics interested in scientific computing are now in math or engineering departments.
Where does this leave you? You need to look around and find people with different (i.e. not straight CS) backgrounds. Many CS, math and engineering departments are collaborating on creating degree programs in scientific computing. This is often for graduate degrees, but not in all cases. Many math departments have an emphasis on scientific computing and computational mathematics. Many engineers become quite good programmers either in the course of getting a degree or on the job.
If you look around you will find people. I can assure you there are a lot of people interested in this sort of thing who are annoyed that most of the jobs seem to be in business related programming.
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:
I've seen this KIND of problem countless times in my 25 years of experience programming, designing, and testing.Suggestions:
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.
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!
(1) Are you willing and able to pay for established professionals?
Amen. Look, you're between a rock and a hard place. You want excellence but don't want to pay an industry salary for it. You might have been able to get away with this ten or more years ago, when academic and starting industry salaries were not THAT discrepant, by touting the virtues of academic life -- flexible schedules, good benefits, smart colleagues, etc. Unfortunately, the gap between industry and academic salaries has grown so wide that it's a much tougher sell these days. (I know, I've been a "research programmer" in academia off and on during the past twelve years.)
That's the rock. The hard place is that you say that your project is not sexy enough to attract the pure computer science types with deep mathematical skills. Are you surprised? Abstract thinkers of this sort are in the game to chase Platonic ideals, not administrate systems. The lab in which I work has two full-time system administrators that support everyone's work, including mine. If you want people with big brains, you can't expect them to clean your toilets too.
To sum up, I think you're in a bad position Your main hope would seem to be to split the position, hire a sys admin for the sys admin duties (or share someone else's), and try to lure a talented programmer who's more interested in the presumably cutting-edge nature of your research than in salary and stock options.
I can sympathize with the problem of an outsider trying to hire a technically proficient programmer. It's not that easy to evaluate people's skills even as an insider.
If I have a chance to look at some of the work the person has done, I'll pick the most glaring programming style faux pas and ask them how they feel about it. A really good programmer will react a little sheepishly and offer that that's something that definitely needs to be fixed, etc. If I get a negative answer, I might ask a few more probing questions to see if they can figure out the problem (thus showing potential). If the light hasn't clicked on by then, they're either really green or clueless.
(Note that I'm not talking about controversial matters of style like preferred tab width or "vi or emacs". I'm talking about problems like "massive code redundancy in desperate need of refactoring" that good programmers will normally feel quite uncomfortable with.)
--Mike
"Not an actor, but he plays one on TV."
I think that part of the problem here though is that you do not have the tools to discriminate between who would be good and who would not be. Ultimately if you want to build a lab based on software then you the lab heads have to have some idea how the process of programming works. You have to have some project management skills. Otherwise you are going to end up getting a poorly performing, unmaintainable code base.
On the question of where to find programmers, I think that you are just going to have to take a leap in the dark, and advertise for people who are interested but who do not necessarily have the skills. When I took my first job working predominately as a computer programmer, I had skills as a lab biologist. I still have no formal education in programming, nothing on paper that I can show for it. I spent the time to learn though. Perhaps I just got lucky though in discovering my own apptitude. I have seen others take the same leap who have found it much harder.
Still never mind. With the economy about to crash I am sure that there will soon by lots of unemployed programmers looking for jobs. Of course you research funds will have dried up also...
Phil
Many Applied Math majors have a focus in some other engineering discipline, and many choose cs. Not only do they have the math background, but the hacking skills you probably require. Remember, they can always learn new languages and put the problem in algorithm form if they've solved the problem. kg
replace 'berserkeley' with 'berkeley' to respond via email.
I'm sorry, I couldn't resist... but the, Damn Lameness Filter made me second anyway...
But since i'm here. (On-Topip stuff starts here)
I think it is rather difficult finding someone with adequite Math skills and who would want to do things other than 'Pure CS'. I know too many people who have a very good education, But want to do nothing but mess with their systems. All day and night, tweaking... building...
I call them 'cave-dwelling' nerds as I find this 'No-Life' attitude very sad. One example would be one of my somewhat closer friends, had straight A's though high school. In my opinion, Physicist material. Could work for NASA. But all he wants to do is make web sites... But I guess that just leaves better jobs for me...
What do you guys think?...
It seems like you have hit the nail on the head. Too many computer science types overlook the fact that science is one of the most computationally hungry and cutting edge field for programmers to work in. A lot more novel algorithms and insights need to be developed to analyse gene sequences and astronomical spectrographs than are needed for a B2B dynamic fully buzzword compliant e-commerce portal.
Whats more, the probability for the work of a scientist to interest me, and keep my brain engaged and stimulated is a lot higher than that of, say, an accounting firm. Science, such as physics, interests me, and it's garunteed you'll produce better code if you are interested in what you are doing. If you understand some of the principles behind the code you're writing, you can see more to make better design choices.
But many computer science students see those big dollar salaries and get all gooey eyed. I think jwz put it best when describing the decline of Netscape (And this quote is from memory so I may get it slightly wrong) "We had too many people that wanted to work for a sucessful company, than people who wanted to sucessfully work for a company". And yet, many skillful programmers first took up the habit for the joy of the code, and the striving for the perfect code to do a task. I would say that for these people, working in a research setting would be just as or more satisfied than a business oriented job.(At least I would, but I'm me)
Now I would love to work in a place like yours. But I fear I am in the wrong place (Tasmania), without enough Qualifications (CCNA, just started BCompSci from UNE, TCE. No PhD sorry), and stuck in a place where my programming skills are not likely to be used.
Good luck in your search for a hacker. The programmers are out there, and many would jump at an opportunity to work in a research setting. You've probably now found a few likely candidates from this. It's just annoying that the field has many people that are in it for the money alone. At least we have a few good geeks around, doing some useful coding.
Good Luck,
James
If you sponsor an open software development project, or expose parts of your research effort to open source, you wil lbe able to attract people.
I'm still trying to figure out what people mean by 'social skills' here.
Here at University of Oulu they teach quite a lot of programming in Theoretical Physics, so they can code their own programs for scientific calculations etc. It might be because it's hard to get "normal" CS people to work for "non-business" projects.
This is the place where you write something that will make you seem like a complete idiot.
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.
I've met/hired/worked with brilliant folks with no degrees and idiots with paper from questionable institutions. However, I've never been disappointed with the capabilities demonstrated by recent CS grads of good schools with good gpas from those schools.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ the real world is much simpler ~~
--- -- - -
Give me LIBERTY, or give me a check.
I don't know about other countries, but in the US I'm noticing more and more "universities" and "colleges" that produce graduates with BS and advanced degrees in computer science predicated solely on the student's ability to pay for the classes. I'm not kidding.
There are reputable schools that have academic standards and programs that are relevantly engineered. The school matters. The major matters. The gpa matters.
As a hiring manager, I am more ready to interview graduates of good schools than I am to interview those of schools I already know have weak academic integrity.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ the real world is much simpler ~~
--- -- - -
Give me LIBERTY, or give me a check.
Unfortunately, there are only four or five good schools that people intrested in computer science degrees go to.
Not true. In the Washington DC area alone I can think of at least 3. If I go out another 100 miles, I can add 2 or three more.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~ the real world is much simpler ~~
--- -- - -
Give me LIBERTY, or give me a check.
Based on years of experience coding and managing development teams for a living, including both scientific coding (in optoelectronic engineering, scheduling algorithms, and mathematical economics) and "business" coding, I have found little correlation between a CS degree and competence as a programmer.
Furthermore, there seems to be little correlation between a CS degree and skills in mathematics.
I think the question you have to ask yourself is, "What am I really looking for?" Most professional programmers with years of experience wouldn't necessarily be interested in scientific computing because it doesn't grow their skill set in the areas that are of most value to programmers; i.e., the scientific projects I've worked on tend to be small projects using a small team of programmers working against a limited budget and not necessarily using the biggest, baddest technologies out there. And frankly, the most experienced and talented coders would not find scientific programming a good use of their time. It would be like having a physicist wiring your house.
I've very much enjoyed working on scientific programming projects, but for personal gratification rather than professional development.
What you should do is find one person who will maintain intellectual continuity for the project and who you trust to really know (or learn) the art of software project management and architectures (and it is an art!) and who you know gains personal gratification from the tasks they're working on (so they don't just jump ship a year down the line for a higher salary) and use them to assemble a team of motivated students or others whose skill levels and (most importantly) personal interests are allied with the needs of the project.
You'd be better off finding a good 2nd year physics undergraduate with a good reputation and who you could trust to work with you for a couple of years and having them learn how to code than to take a 4th year CS undergraduate, who has learned how to code technically but not how to code in reality and could really care less about what they're coding. The physics student will learn a skill that will be much more marketable after graduation than physics (unfortunately) and you will gain the benefit of a bright employee whose interests are allied with those of your project.
-- My choice of computing platform is a symbol of my individuality and belief in personal freedom.
Forget MIS, CIS, IT majors - couldn't make it in business and their computer knowledge is a joke. Forget anybody with Certified/overnight (read 300 pages and you are an expert too) degrees. Forget "undergraduate" only CS/CompEng majors - They are in it only for the money. Do look into graduate Cs/CompEng. Do look for graduate math/physics majors working in computer labs.
For example, my degree is in history, but I am interested in advanced programing concepts, AI, etc. I bring to the field some things that I could not have seen were it not for my history background. At the same time, I have also studied Fortran, though I never plan to progrma in it again because the compiler does not handle large matrices gracefully. (My father has an MS in Mathematics) so even for math programming, I much prefer C.
Also, your project may also suffer from the vast numbers of newcommers into the field who are drawn by the changing economy. These types are not what you are looking for either (particularly the MCSE in a week types or their developer equivalent), and if you advertize that you are looking for programmers, you may find too many of them.
My overall suggestion here is to advertize the project more than the position, and advertize it widely where there are competent programmers. That way the people who reply are already interested in exactly what you are doing.
At any rate, whatever you are doing sounds interesting, and I wish you the best of luck. Shoudl you wish to contact me regarding my responces, please feel free to do so. My address is chris@basementmedia.net.
LedgerSMB: Open source Accounting/ERP
I also don't understand why he could not find the type of people he wants. I think it comes down to either their working environment or there compensation.
Try to look at any decent CS programs in last ten years and you could find most of them contains numerical analysis courses and facaulty members whose research interests are in numerical analysis.
Of course my unversity (university of british columbia) is one of them:)
Ricky
Sigh...
What you says are so common sense i don't understand why so many people miss it.
I understand why young people don't get it (I am young, but work full time for three years.)
But for experienced people? I guess there may be some ego problem.
I got one explanation. When these people are younger, CS university programs are still in the immature stages. So they apply what they knew back then to the current situation. But nowadays, most decent CS programs are pretty darn good. But of course some young people are so arrogant!:)
Ricky
Wrong. He could talk science, but just not experienced in using or building real or pratical numerical analysis software.
Don't be judgemental. (Well maybe i am judgemental on you. If that's the case, i apologize.)
Ricky
I would mod you up if i could.
A humble person would know what he/she knows and know he/she does not know, or doesn't know every thing.
So i guess, the best people would be CS major+Science/Engineering (or other applications) minor or Science major/CS minor. Or experienced professional software developers.
Ricky
I believe most decent computer science departments nowadays have faculty members whose research interests are in numerical analysis and offer courses in numerical analysis.
So again as i replied to other posts, the problems most probably are the compensations or working environments that the poster's job offers.
Ricky
If you're based in Southern California, here everyone wants a 4+ experiance w/ BS and other crap. Got an email to send a resume to?
Lord Arathres
stainless steel
I am a M.S. in Mathematics and I started programming when I was 6. I started my Ph.D. in Maths, but I quited because I found an opportunity as a programmer for an Internet company. I know graphics programming, networks, some neural networks, 3D, particle simultaion... an I am looking for a job. I am probably a good candidate for that position, and maybe /. is a good way to attract people for it, but there is no contact information. So, where do I send my resume?
Now I'm not saying MANY people do this... what I am saying is that there's an awful lot of people in this computer science field that have no business being here. And as we all know, most of the good ones are already working in the field by the time they graduate. Therefore, by looking to find good, inexpensive programmers from a graduating crop that has already for the most part been picked clean is like going to the bar at 1 AM looking for classy, beautiful women. Sure, every once in a while you may find one--but that happens what, once in a life time?
This is perhaps the fifth article I've seen on slashdot which spawns a lot of hemming and hawing over what to study in school. I was a computer science major in college, and hence did not come into the working world with a lot of expertise in quantitative science. However, a good computer science undergraduate program, or any science program for that matter, will teach you how to *learn*. I am now working for a federally funded defense contractor on projects which happen to involve some physics, but this does not make me ill suited for the work. I have simply had to learn what I need to know for the project at hand, and in the meantime the skills I learned as an undergraduate have helped the project, without my having to focus on learning quality programming practices. The point is, it's not what you majored in in college. College is only there to show you how to learn more. You can do that as a graduate student, or as a professional. Either way, you have the ability to acquire the knowledge necessary to do a job in an efficient and effective manner.
This is perhaps the fifth article I've seen on slashdot which spawns a lot of hemming and hawing over what to study in school. I was a computer science major in college, and hence did not come into the working world with a lot of expertise in quantitative science. However, a good computer science undergraduate program, or any science program for that matter, will teach you how to *learn*. I am now working for a federally funded defense contractor on projects which happen to involve some physics, but this does not make me ill suited for the work. I have simply had to learn what I need to know for the project at hand, and in the meantime the skills I learned as an undergraduate have helped the project, without my having to focus on learning quality programming practices. The point is, it's not what you majored in in college. College is only there to show you how to learn more. You can do that as a graduate student, or as a professional. Either way, you have the ability to acquire the knowledge necessary to do a job in an efficient and effective manner.
You have a very difficult task indeed. Just hiring someone who knows 'C' and a bit of textbook Calculus (or whatever you were looking for) will be far from enough to go into scientific applications.
Usually, most science (even art) departments have a resident geek who knows the subject AND has been around computers enough to be a pseudo-expert (as good as any real expert of course). Look around in your department before hiring outside help. You're going to find someone who is much more familiar, and even maybe interested, in the subject for which he is actually solving a problem for. Hiring someone who has been given a stamped CS education, or worse, a horrid vocational certification which are more and more popular, isn't going to be nearly enough, especially if you are heavy in the maths and numerical analysis. Science is so tied with computers today (see recent article), it's really hard to think there isn't one single person in a science, math related department who isn't a complete geek.
If it comes down to it, you're going to have to convince a student to take up programming or learn it yourself. It probably isn't as difficult as asking a CS major/graduate to take up your subject.
Best of luck!
I work in subatomic physics and when I consider future jobs I just go to http://www.hep.net. Quite a few of the jobs listed on that site are mostly computing jobs. One obvious example: most of the DATAGRID-related jobs may be very interesting for non-physicist CS people. I am not a GRID guy (yet) but this (big, international) project involves developing everything that is needed so that scientists will be able to run mega-analysis jobs (e.g. analysis of huge amounts of data from huge particle detectors) in a distributed way, using computer resources all over the globe.
I am sure that other sciences (genomics, astronomy, meteorology+environment, you name it) have similar central job market sites. For this occasion the scientists among us could post now their equivalent to www.hep.net (with a little luck the field of the asker is also covered); but a more permanent solution would be to have a link site, say www.sciencejobs.net or so, in which any geek can decide may decide where he might contribute to find the Holy Grail. Apart from links to www.hep.net et al. there might be section where scientific geekseekers might post their more interdisciplinary (let's call it that way, for now) vacancies.
Probably such a site already exists (please post it if you know one). Somebody wrote here about a site called DreamJobs.net or so, which sounded a bit like it, but it seems not to exist anymore. If such a site does not exist at all (yet/anymore), somebody should (re)create it.
I have been thinking about a similar problem for quite some time now. I'm about to finish my Ph.D. (in org Chem) and am faced with what to do next. pure research positions are not where I see myself being and have focused on either infometrics or teaching.
Seems from some of the postings here in the field of infometrics, that I will have a hard time getting in since I'm a fully trained chemist, yet lack the resume power of a CS degree as well.
I might not be the best at plain vanilla coding, but that's cause I only code when I have to solve a problem and work on learning the language I need to know based on the requirements of the project (one day it might be a qbasic program to control a really old instrument the next it might be a set of php/sql scripts to control lab chemical inventory).
I've always had a love for computers, but never made it my "day job" cause that was chemistry. of course it seems people hire PhD's and expect a complete ready to do exactly what they want package. But in reality if you already trained in one way of doing things based on a class taken in undergrad, does it really make you that much more able to solve a new research project, or would someone who knows the science side and has a will to code whatever it takes to solve the problem (of course coding standards need to be applied and can always be learned) be better suited?
I know this doesn't seem to help the orginal poster, but it does show that there are scientists out there who want to work in the computers side of science, are just unsure how to pursue it as our advisors are typically full research scientists and in my case they barely can use word and a drawing program let alone know much about the infometrics side of things
You could do a lot worse than looking for disgruntled games programmers. They tend to be talented, highly motivated, interested in science, flexible, badly paid, and are often sick to death of being treated like dirt.
Offer a sexy project, a decent environment, some toys, plenty of caffiene, then stand well back and watch the results roll in.
If you were blocking sigs, you wouldn't have to read this.
(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, ... does it start coming back to them when you talk to them?
(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
(c) Are they (to put it bluntly) smart enough to understand the application domain?
I'm currently a soon-to-be-graduating fifth-year senior CS&E major at a UCD. I might be an exception, but prior to college I had extensive experience; however I do believe that many programmers in practice do not have CS degrees, and the ones that do are business oriented (only want to code). Coding to solve a math problem is cool, I've had a few classes where such is the case: in networks class we had to build a model and plot the result of a packet-based communication channel with noise, attenuation, inertia, buffering, and packet-loss; and in a statistics class, we had to run various Monte-Carlo methods on different distribution functions and plot the results. Fun stuff. Yeah, so, I'd like to not program *all* the time.
ProblemSolving = Good = Fun++;
Gimme a break, I'm taking modern physics and chemistry soon :)
(Maybe this is a bad place to do this, but I really need a job for the summer.)
The biggest trick the devil pulled was letting lawyers become politicians so they can write the laws.
Umm... no. There should be no confusion about the difference between permutations of the following (CS degree/no degree | hacker/cracker | self-taught/schooled). Just because people gravitate toward where the money is doesn't mean all geeks are equal. 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. That's the whole idea behind accredited engineering degree programs. That's why I switched majors from CS to CSE
That's Computer Science.
NOT:
- CounterStrike
- a 6-week seminar, were everyone gets an "A"
- a For-Dummies (TM) book
- something you can find in a cereal box
- a Napster(TM) download
Do you think a CompSci degree is easy? I'm busting my ass; not taking the quick&ez route of profit now w/o a degree. I don't plan on falling into a job, that's what this magical piece of paper called a "degree" is for! Look at a degree as an investment.I know that people need something to pay the bills; so IT/Computer-related work seems to be the quick and easy solution. Pretty soon, geek jobs won't be cool and the mainstream (and money) will shift. I don't care, I'm in for the long-haul.
School is really my plan to avoid work. Maybe I should get into research! Then, I won't have to produce anything of marketable value!
The biggest trick the devil pulled was letting lawyers become politicians so they can write the laws.
I'm just the domain knowledge expert (not a programmer) at my job ,but I have seen a failure
to start cause more problems than starting to code
without design.
Have you tried software that is supposed to be oriented towards getting non-programmers to be able to do scientific research? This person seems to be looking for something that a program like Mathematica (or similar) "should" be able to provide.
Maybe instead of looking for hackers/developers they should look for software that lets them do what they need to get done without the need for programming...
"On the Internet, nobody knows you're a dog!" - a dog
As a Geology student, I've been asked by teachers, system admins and executives of our faculty to work in any direction involving computers for four years now. People come by my room at work 3 to 5 times a day to ask me about stuff or for help.
:-)
Reason? I studied CS for roughly 3 years before I decided that a decent CS education is nice, but the way It was tought there bothered me. I decided to switch to something completely different, but always stayed coding/hacking and fooling around with computers.
Now I'm still not finished in geology, but my carreer for the next 2 years has been set already, many many invitations left aside. When I start to compare the level of experience I've had for the last couple of years in computers, while studying something completely different at the same time, to someone just doing geology and trying to get around PC's, they just can't compete! Most people need a whole year of decent training before being reasonably well at coding (or even web-publishing for that case).
So, from personal experience: First learn to code (well), then do your study in (insert your favorite topic here), and then wait...
Of course, now you'd have to find me for all your geology-specific coding jobs!
The hard part is recognizing it. The current educational system does a poor job of rewarding people who can do original work. It is a shame that the way we assign grades and the way grades are perceived has twisted the way people view education.
The biggest question that students have is how can they find places like the one mentioned. There are almost no ads that say "looking for computational mathematician" (except maybe at the www.siam.org site). It is very difficult for young people to figure out how to sell themselves and let potential employers know what their talents are.
Some managers seem to understand this and are able to "steal" away good people. My feeling has been that there are a lot of managers who do not have open minds about these sorts of things and are really missing out on a lot of talented people.
You could start the ball rolling and introduce a scheme where you pick up good students from the undergraduate programs and mix them with people with programming experience. Would that work?
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
On after thought, its not fun at all... You get to see your limitations full force. Basically you take a strong core of computer science, then take a handful of sciency courses. Of course, later I realized I was applying forced masochism upon myself... If only I could take back the last 6 years and went to state college instead. Ugh Carnegie Mellon is hell. I hate my life.
God spoke to me
The worst thing you can do to turn off a CS-type is to insist that he program in Fortran. No hacker, unless threatened at gun-point will agree to program in Fortran. And please do not justify the use of fortran by saying the produced code is "faster" - It is just does not make an impression on a hacker. Open your eyes! you can have fortran and C modules co-exist in absolute harmony - give the hacker the freedom he wants.
You can ofcourse attempt to "bribe" the fellas. Promises of access to ripping machines at National Labs always has a positive effect.
there are recent grads out there who would LOVE to do scientific programming - such as myself. i'd much rather write a prog to control a telescope than a cash register! but i haven't been able to get ANY coding jobs since i've graduated (in december), so i've given up on going for my 'dream job'. as far as my former classmates go, most of them were just in it for the $$$. they also didn't really care enough to understand what they were doing, much less want to apply it on anything besides what we did in class. my point is that there are people who like scientific computing, but can't seem to find the right opportunity.
More than a decade ago, a Stanford President (sorry, don't remember his name), discussed the need to conduct "interdisciplinary" research. While receiving open acclaim, a department head, behind closed doors, made note that his department needed more money than another department. Here, interdisciplinary interests were not a major consideration. Similar relations can easily be recognized in how some professions relate to programmers, be they scientists, administration, engineers, etc.. I got my first job as a programmer back in the late 60's, even though I was a college drop-out, over two math graduates. The boss said he did not want values of variable filled, he wanted to try to synthesize formulas from the ether. It was 10 years before I really came to appreciate his desires. Having worked in academia for 15 years, I judge a staff programmer to be a non-entity compared with faculty. Having worked with an ME based firm designing control sysytems with micro processors, programmers (and EE's) were similar non-entities. I then asked ME's who worked for EE firms, getting similar answers. Having interviewed with a CE firm, whose main products were software(!), programmers were appendages, even though it could be viewed as a software firm. I, and I would presume "hackers" in general, program as they do because it is very hard to find a scientific environment where they are as much a part of the interdisciplinary effort as the one who pays the bills (About the only well known exception I've heard of are financial institutions using mathematicians and physicists to study financial patterns. They have no idea what or how they do their reserarch, but they leave them alone). Programmers who might be interested in scientific research and even have exceptional credentials - experience, personal, motivational - have a hard time finding a suitable project. The unfortunate thing is that a scientific programmer, unlike an author who can write entirely indepentdently, needs interdisciplinary involvement. Like the Stanford U President back in 80's noted, while some rant about the "team" organization of scientific research, it is rarely practiced (my own paraphrase). ernest_g
If you hire someone with a math/physics/ee degree you know that you are getting someone who can learn to be a programmer. I work for a DOD laboratory and most of us started there without much programming experience.
I've done my share of research and it could be described as computational physics for the most part. I've seen many people who could say the same about their degrees (BS in a science with a lot of programming experience). Some are great, so are so-so. The only way to hire competent people is find those with the skills you need, then talk to them in person. Someone will fit your picture. Period.
Our problem is we just can't reach the people who would be interested in this job. The traditional methods of advertisment and head hunters are all geared towards finding someone who is going into the business world. I'm guessing that people who would want the job just don't look there, because we haven't had so much as a nibble from anyone who is qualified. Further complicating the problem, it is considered to be poor practice to hire from within the University student population.
The people who would be most interested are members of communities such as slashdot where "trolling for candidates" is generally looked on as something disgusting. We haven't broken these taboos and so having this opportunity to post is somewhat liberating.
I know the job is interesting, because while we are lacking help, I have some of the best and brightest ND engineering students coming over to my lab to work for fun. We do, for instance, 3-D motion capture of human subjects interacting with each other and with animated avatars. It's good toys and interesting projects.
The problem as I see it is how to get those individuals for whom these research jobs would be a "dream job" together with those people who have these dream jobs available. After reading through the comments, I still don't have an answer to that question.
However, [SHAMELESS PLUG] for those who are interested in an all-around programming position primarily working in the interface between cognitive science, robotics, perception and memory, and who are also interested in working as we used to say, close to the iron, my email is sboker@NOSPAMnd.edu [/SHAMELESS PLUG].
I'm the founder of a java user group filled to overflow with the types you seek. A primo example: the co-founder of our group just got his Ph.D. in theoretical physics supported in part from his Linux startup company that he launched during his graduate years. He's now an OOP designer (as a fresh grad) at a local prominent scientific software development company, making an excellent salary AND has very interesting work, I've heard. The guy is good, and there's more where he came from. If you send the specs to eliz112@hotmail.com, I'll put it on the site for our members to peruse. Cheers.
Hope this is useful
---
-----
I know a good tagline when I steal one