Locrian
- 1,881
- 256
D H said:Floid's stretching a weekend programming project into something that it wasn't is a lie.
He never suggested any such thing. You're misrepresenting what he said.
D H said:Floid's stretching a weekend programming project into something that it wasn't is a lie.
Floid said:Don't lie, but emphasize the strong points and don't mention the weak points unless they specifically ask.
Locrian said:My emphasis. That's pretty clear.
In other words, Don't lie[/size] (wink, wink) but do stretch the truth beyond the breaking point. That's a lie. You might not see it as such, but a potential employer will. And they will not hire you. 93% of managers do not hire a candidate if they think the candidate lied. http://www.careerbuilder.com/share/...ail.aspx?id=pr330&sd=10/17/2006&ed=12/31/2006.Floid said:3.) Spin and hype. Don't lie[/size], but emphasize the strong points and don't mention the weak points unless they specifically ask. You didn't do a weekend programming project, you created a program that performed statistical analysis on a database of historical stock data. And you didn't do it to learn to program, you did because you didn't like the tools available for free on the internet or because you thought you had some novel approach to stock analysis.
orWrite a program that gets historical stock data from the internet and stores it into a SQL database. Then write a program that pulls it out of the SQL database and performs some kind of basic analysis on it. Make it variable so you can examine stock or group of stocks starting at any date, for any window length, or find any stock whose price or volume deviated more than 1 STD in a certain length of time, etc. ... Throw a GUI on it and plot if if you want GUI or maybe openGL development experience.
If someone did a reasonably good job at them then I would say they have at least an entry level understanding of programming and whatever tools they used to do them in. If you think someone who completed those projects is lying if they said they had a entry level understanding of the programming language/tools they used then we have a very different expectation level on what an entry level understanding is...If you want something more mathematical, write a set of libraries using various numerical techniques to solve ODEs or PDEs. Figure out a way to use them and compare their results, processing efficiency, etc. Even better, compare the results with different compiler options or between different compilers/programming languages.
If you want something more mathematical, write a set of libraries using various numerical techniques to solve ODEs or PDEs. Figure out a way to use them and compare their results, processing efficiency, etc. Even better, compare the results with different compiler options or between different compilers/programming languages.
Mistake said:But in any case, where do I find some projects that would be easy to contribute to? Projects can be huge. I'd hate to spend a few weeks learning how the code works just to give up because it's too complicated for me to understand.
AlephZero said:The projects you can contribute most to are probably the ones that you already use. That way, at least you know what the app is supposed to do, and you probably already have some ideas about how to improve it.
You don't have to jump in at the deep end. On almost any software project, you could start by rewriting the some of the documentation so it makes more sense (or even any sense at all!). To do that, you will have to start reading the code to find out which parts of the documentation are just "spin and hype"...
Making "simple" contributions to open source projects is still useful, because it means the "project gurus" can spend less time doing the simple stuff, and more time being gurus. And once they notice you are contributing SOMETHING regularly, your questions about harder stuff will tend to get more of their attention.
D H said:The one page resume rule still applies to people fresh out of college, which is the subject of this thread. When you use that much space to describe something you've done, I'm going to poke at it when I interview you. I might even do something unexpected if you really pique my interest (and you have piqued my interest with that little blurb).
What I might do is ask some of the really nasty physics/math/programming questions that I typically reserve for the best candidates. I don't ask those nasty questions because I'm trying to trip you up. Everyone stumbles a bit on these. I want to see how you frame the problem, how you stumble, how you recover, what kinds of questions you ask back at me. If you can't even start framing the problem, now that's a real problem. It means that I completely misgauged you. It might well mean that you have crossed that fatal line that distinguishes embellishment from lying. Now I'm really going to poke at your little writeup.
Every interviewer has a personal concept of truth / embellishment / lie. Even crossing from truth to embellishment is a problem for some interviewers. Crossing from embellishment to lie is a huge problem for all. That you don't think you lied is irrelevant. All that counts is whether the interviewer thinks you did. If your interviewer thinks you lied, you're toast. You will not get the job. Something to keep in mind when you are writing that resume.
StatGuy2000 said:Let me ask you something then. Suppose I am a proficient programmer with experience in say, MATLAB and C, but do not know how to program in SQL, for example. Now let's suppose that I want to learn to program in SQL because knowing how to do so will open up job opportunities. So I take the opportunity to go through the material online, write up programs, go through all the manuals and books, and I develop some code to do various things. Say, within a few months, I feel like I have a grasp on the basics of SQL.
According to you, should I include "proficient in SQL" in my resume? If not, what should I say about my knowledge in this language?
I've learned SQL. Nonetheless, that knowledge never, ever, ever, ever goes on my resume. Sometimes a little knowledge is dangerous -- to your career, that is. Claiming knowledge of databases in the world of scientific programming is one of those "dangerous to your career" kinds of knowledge. I've seen what happens, multiple times, to people who claim to be "proficient in SQL". They no longer get to do anything related to scientific programming. Ever. Anything that is technically interesting: They aren't allowed to do that. That database knowledge is too important to waste.StatGuy2000 said:According to you, should I include "proficient in SQL" in my resume? If not, what should I say about my knowledge in this language?
D H said:I've learned SQL. Nonetheless, that knowledge never, ever, ever, ever goes on my resume. Sometimes a little knowledge is dangerous -- to your career, that is. Claiming knowledge of databases in the world of scientific programming is one of those "dangerous to your career" kinds of knowledge. I've seen what happens, multiple times, to people who claim to be "proficient in SQL". They no longer get to do anything related to scientific programming. Ever. Anything that is technically interesting: They aren't allowed to do that. That database knowledge is too important to waste.
D H said:This is very bad advice. Spinning and hyping a weekend programming project as a significant endeavor is a lie.
Never lie on a resume or during an interview, and that includes excessive stretching of the truth. If you are going to lie about something as petty as a weekend programming project, what are you going to lie about when it comes to something significant?
D H said:Suppose even one person detected that that claimed experience in programming and statistics was a merely weekend project to learn how to program and how to do statistics.
D H said:Everyone embellishes to some extent. This is beyond embellishment. It is a lie. You might not look upon this kind of "spinning and hyping" as being a lie, but potential employers will see it as one.
Exactly. When you boast about something in a resume, be prepared to be grilled about it. If it turns out to be all spin and hype, but nothing's there, no job.twofish-quant said:Whether it's a lie or not depends the underlying reality of the situation. If you go to a Wall Street interview, and you talk about your stock analysis program, then you are putting a big sign on yourself saying "crush me with questions on stock analysis."
D H said:You guys might even relish spin and hype on a resume. Don't take your narrow view of how your small corner of the world works as exemplary of how things work outside of Wall Street.
Excessive spin and hype on a resume are not appreciated elsewhere. Almost everyone embellishes their resumes to some extent. There's a line where embellishment becomes a lie, and that line is one that in general should not be crossed. Outside of Wall Street, that is.
StatGuy2000 said:The point of my question was if I had studied programming language X on my own (but without any courses in school, certification or practical work experience), should I include my proficiency in the language in my resume or CV (you had argued previously that putting "proficiency in programming language X by developing Y project" would be lying if this amounted to self-study and self-developed project). If so, what should I state in my resume.
D H said:What I might do is ask some of the really nasty physics/math/programming questions that I typically reserve for the best candidates. I don't ask those nasty questions because I'm trying to trip you up.
If you can't even start framing the problem, now that's a real problem. It means that I completely misgauged you.
All that counts is whether the interviewer thinks you did. If your interviewer thinks you lied, you're toast. You will not get the job. Something to keep in mind when you are writing that resume.
Mistake said:Open source projects are pretty intimidating for me. People who have been coding for years contribute to the project and I'm supposed to do something on their level? I'm just afraid my code won't be up to their standards. Yeah, I know that's all in my mind.
But in any case, where do I find some projects that would be easy to contribute to?
Projects can be huge. I'd hate to spend a few weeks learning how the code works just to give up because it's too complicated for me to understand.
StatGuy2000 said:According to you, should I include "proficient in SQL" in my resume? If not, what should I say about my knowledge in this language?
TMFKAN64 said:This is a much better answer than mine. Documentation is something that *always* needs work and no one really wants to do!
D H said:Exactly. When you boast about something in a resume, be prepared to be grilled about it. If it turns out to be all spin and hype, but nothing's there, no job.
You work in a very small niche of the programming world, twofish, a world that lives and breathes spin and hype.
Almost everyone embellishes their resumes to some extent. There's a line where embellishment becomes a lie, and that line is one that in general should not be crossed. Outside of Wall Street, that is.
You didn't do a weekend programming project, you created a program that performed statistical analysis on a database of historical stock data. And you didn't do it to learn to program, you did because you didn't like the tools available for free on the internet or because you thought you had some novel approach to stock analysis.
chiro said:It took me personally many many years after being introduced to programming (for me this was at the start of high school or what the US call junior high: I'm basing this off the TV show degrassi junior high).
Back on topic!Dickfore said:I just want to say that there are undergraduate programs in Computational Physics, which DO give a solid foundation in programming and knowledge in hardware.
And one more thing, by the same token EE majors have equally bad preparation in programing, but you still see these degrees advertised for their job opportunities as a programmer even more so than physics, or math majors. And, companies even hire more of them as well (maybe it's because of the sheer discrepancy in the number of candidates).
chiro said:Also I get a feeling that a lot of people who call themselves "programmers" (and apply for jobs) really underestimate the actual screwing around that it takes to just get to the level where you jump in and can suck up the information to be able to do what you need to do very quickly.
I can't really see how it's possible to really do dev work without spending many years and more time than what you would spend in university learning to code.
If you don't do a lot of those weekend projects, the screwing around with your own projects or with other code, on top of all the really over-simplified assignments in uni (yes that's what I think of them) then I can't really see how you could develop code for a living.
To me 3 or 4 years is too short to become the kind of developer that is expected nowadays due to so many things attributed to the realities of modern software development: it's just way too short IMO.
Mistake said:Isn't a CS program heavily math dependent, but more so on the proof side?
twofish-quant said:Getting back to the OP. The way that physics is taught is different from place to place, but it turns out that my education in which the politics and business of science was taught along with the differential equations was excellent preparation. I remember how the "astrophysics salesman" prepared for his interviews with Congress people, and that gave me some starting points for how to prepare for mine.
twofish-quant said:This is another example of "spin" and "marketing." When I apply for jobs, I often specifically avoid calling myself a "computer programmer" since a "programmer" implies shoveling code and getting your job sent to India. "Software developer" is a better term and for finance "quantitative analyst" and "quantitative developer" are the preferred terms. "Scientific programmer" is also possible, but in a lot of the jobs that I apply for "scientific" is bad.
D H said:Back on topic!
The following is based solely on my experience, so take it with a grain of salt. The reason that physics majors, EEs, aerospace engineers, et al are hired to do what is essentially a programming job (but with a strong scientific/mathematical/engineering flavor) is that as bad as they are at programming, the typical computer science major is even worse when it comes to scientific programming. Engineers, and maybe scientists, can be taught to program well, or at least to recognize why their programs aren't so good. The engineering principles that distinguish a good system design from a bad one also apply to software. A good chunk of CS majors took that route specifically so they would never have to take another math class again. They don't grok filters and noise, ODEs and PDEs; a lot of them don't grok and can't grok F=ma.
chill_factor said:When physicists say that they are good programmers, what they really mean is: I'm very smart and learned how to program myself. They do not mean that a BS (or even a PHD) Physics trains you to be a programmer.
jkl71 said:I do have some speculation why physics might be as useful (although I don’t believe either it or computer science is as useful as actual experience working on a real project). One thing I do think physics could be useful for is that a large part of physics is building mathematical models of the natural world, to me this is analogous to building software models of a business. However, I can’t say whether it’s just a common set of skills that make someone more likely to be good at physics and software, or the experience in doing physics substantially helps in developing these skills.
D H said:Back on topic!
The following is based solely on my experience, so take it with a grain of salt. The reason that physics majors, EEs, aerospace engineers, et al are hired to do what is essentially a programming job (but with a strong scientific/mathematical/engineering flavor) is that as bad as they are at programming, the typical computer science major is even worse when it comes to scientific programming. Engineers, and maybe scientists, can be taught to program well, or at least to recognize why their programs aren't so good. The engineering principles that distinguish a good system design from a bad one also apply to software. A good chunk of CS majors took that route specifically so they would never have to take another math class again. They don't grok filters and noise, ODEs and PDEs; a lot of them don't grok and can't grok F=ma.
Dickfore said:I just want to say that there are undergraduate programs in Computational Physics, which DO give a solid foundation in programming and knowledge in hardware.
chill_factor said:Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".
chill_factor said:Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".
elkement said:I agree - I have been told that nearly literally by Siemens many years ago: We rather can train physicists to become programmers, but the CS majors cannot be trained the physics / engineering basics. This was illustrated by: They will never get how a transistor really works.
Dembadon said:The title of the thread does not refer to programmers; it refers to software development, which is something completely different.
D H said:... physics majors, EEs, aerospace engineers, et al are hired to do what is essentially a programming job (but with a strong scientific/mathematical/engineering flavor)...
elkement said:I could not agree more - I have worked in the IT industry for many years. I picked the term programmer because the posting by D_H referred to
and the Siemens jobs I referred to were programming jobs with an eng. flavor.
As I said in an earlier in this thread, this has changed over the past 15-20 years. When I entered the IT world my impression was that only a minority of my colleagues actually had a CS or any IT related degree or training at all - IT was a sector that was particularly open to people with uncommon CVs. Anybody from zoologist to philologist (genuine examples) could become a computer expert, developer, programmer, architect.
I guess this was simply a matter of supply and demand of trained computer scientists. Many self-educated developers or IT professionals I know went back to school later and worked towards a CS degree while employed full-time.
I do not at all underestimate the value of a CS degree.
Dembadon said:I should have read the thread before posting, something I normally make a point to do; my apologies for misrepresenting your position.
It refers in particular to whether a physics major is good preparation for a career in software development. Software development is a big, nebulous term. Does it prepare you for developing a massive transaction based system that uses a number of different processes written in multiple programming languages and that needs to be extremely reliable? No. Does it prepare you for developing a massive system that simulates the weather, the performance of a new physical device, or rockets in space? That's a different question. Does it prepare you for developing a game with a significant physics engine? That, too, is a different question than that transaction-based system.Dembadon said:The title of the thread does not refer to programmers; it refers to software development, which is something completely different.
That's not common. I just picked three schools off the top of my head, the University of Texas at Austin, the University of Maryland at College Park, and the University of Massachusetts at Amherst. Maybe one math class beyond freshman calculus and six to eight semester hours of science, any science. Biology and physics for poets, for example.Moreover, it is intellectually naive to suggest that CS programs don't teach engineering basics. CS at my university requires three semesters of physics (the first two are from the standard US sequence, while the third is focused on developing programs that act as models of the physical world), 1 in electronics, and 1 in circuits.
For a typical science-based application it's the other way around. Only a tiny, tiny percent of scientific software involves searches and sorts. Most of the software involves mathematical models of some sort.coalquay404 said:Someone once said that 90% of software development consists of searches and sorts. Assuming that to be true (and ignoring the remaining 10%, which is actually a quite important 10%), a typical physics degree isn't going to teach you how to search and sort data to any acceptable degree.
Yep. One of the concepts that I've found is hardest to teach engineers and scientists is that a statement such as is_ok = x<y; (a) is valid, (b) makes sense, and (c) can be very useful. The things you put inside an if test can be variables? And its best to not even start talking about things such as preconditions, postconditions, and invariants. Concepts such as cohesiveness, coupling, fan in and fan out, and complexity are also hard to get across.chill_factor said:Mathematical models for the natural world. True. I use Matlab for that. That is far different from programming something from scratch on C. The whole thing about "oh its just mathematical modeling"... no its not. There's a type of "programming logic", not just math, that goes into it. Some people can handle the math concepts and even do some numerical stuff on Matlab or Mathematica but can't handle the "programming logic".