last updated:06 Aug 2003 14:22 UK time
|
 |
|
(Comments added for week ending Sun 22 Jun 2003) | View Other Weeks
|
|
| Paper Trails and CYA | Sun 22 Jun | Joel Goodwin |
| Reading the thread on distracted managers, it was suggested that if think your manager is making decisions that cast you (rather than the manager) in a bad light that you should get a paper trail to indicate that you were not to blame. This can also extend to user interactions too.
Alright, but I dont think its a good idea.
You really think we shouldnt implement a decent search facility on the forum? Ian might have a problem looking for the comments on vanilla ice cream as he reported before.
I have stopped testing the archiving process as you requested earlier and preparing to release directly to prod. Im still a little concerned about the possibility it will delete the ice cream orders with archiving the flavour statistics history though.
Thing is, this is prevention rather than cure. Its like getting off on a technicality. Sure, you did nothing wrong, but what did you do to help?? is what theyre thinking when it all goes wrong. You didnt make it clear enough. You misled me. is what theyre not saying.
Ive been in a situation where a LOT of CYA was essential - I mean absolutely everyone and his brother was doing it - but I could tell that I was considered non-cooperative even though I thought I did my best to explain the situation before the problems arose. Im wary of triggering that sort of reaction again so, although I still archive mails from the Jurassic era, Ill do anything I can to avoid invoking the paper trail doomsday weapon.
Yes there have been exaggerations here, but thats artistic license for you. Anyone else been in situations like this? Any thoughts? |
| Sun 22 Jun | Philo | Well, if your boss is a *good* boss, then a non-confrontational, constructive email detailing why you think something is a bad move should be both CYA and part of the solution. Sending via email serves to protect yourself, but it can also give you an uninterrupted method to present your argument in a supported, well-thought-out rebuttal.
Include links to white papers or other resources.
And finally, when you've written the email, the boss replies saying 'nice email, but we're doing it my way' then you can always stick your head in his office and say 'by the way, there's a reason I sent that via email...' [grin]
(NOTE: That last step should only be used in extreme circumstances and if you think it's safe)
Philo |
| Sun 22 Jun | Joel Goodwin | Ah, but when you don't have a good boss is when you really need the paper trail. Plus, the situation I came unstuck was when EVERYONE was e-mailing EVERYONE about the smallest item to protect themselves (some of them fairly lengthy too)
Result: Everyone felt absolved as their responsibility had been successfully migrated to mails that no-one ever read.
Another side-effect is that I try to minimize my e-mail output these days to the priority cases. |
| Sun 22 Jun | echidna | It's not CYA. If you're doing your job, you should be alerting your managers and others as to difficulties you foresee anyway.
I've been in numerous situations where memos or warnings issued by me a few months ago turned out to be both correct and prescient and where the existence of those memos ensured there would be no thought of shifting blame away from the true sources. |
| Sun 22 Jun | mb | I always send email decision/meeting notes.
If it's not in email, it didn't happen.
Both good and bad decisions! Make sure it's not just CYA, but regular behavior.
Note that the email often is a summary, it includes alternatives ('we will remove chocolate from the list of flavors. having a ringing bell go off when the user chose chocolate was considered too disruptive.'). but it may not include all of the details involved getting to that point, such as personal political battles. |
|
| software contract / freelance work | Sun 22 Jun | Ben |
| While surfing around the internet, I came across the site www.onlinecoders.com . After doing a quick google search, I found a similar site ( www.contractedwork.com ). These sites both offer an auction-type service where companies can post software project descriptions and freelance coders can place bids on the projects.
I really like this idea (in concept, at least). Has anyone had experience with this kind of website before, from the perspective of a software developer? Are there similar sites that are really good / really bad?
Id like to give this sort of work a try, but I wanted to find out if others here have experiences with or opinions about such sites. My cynical side, Im sorry to say, keeps reminding me that theres probably some negative aspects to that kind of business arrangement.
Any thoughts would be great. |
| Sun 22 Jun | www.marktaw.com | From what I hear, you're always outbid by a 12 year old who has nothing better to do but stay online all day coding.
Maybe it's better during exam time. =) |
| Sun 22 Jun | . | These sites are a great idea if you want to deal with people who think they should pay no more than $800 for a project, and that supporting different file formats is just a matter of changing the menus.
Avoid them like the plague. |
|
| What to do when you reach version 9? | Sun 22 Jun | WASP |
| We are working hard on finishing and releasing version 9 of our software application.
How should we name the app after version 9? Is version 10 ok, in the minds of most people? How about version 14, or 15?
What is a good naming scheme for a large version number? |
| Sun 22 Jun | Dave B. | You could drop the version naming scheme and call your product something like MyProduct 2003. |
| Sun 22 Jun | Chris | Go with years and then strange 2 letter combinations maybe? It has worked for other companies (and it works for cars, you don't see the Holden Commodore Ver. 15.2a)
Or you could do what we have and change it to 'Professional' and others. We had ' 5,6,7' and then we switched to ' Professional, Enterprise etc.' and now we don't even have a 'marketing' version number anymore (which is what the 5,6,7 numbers were, because all of those products were really version 1.0 products - i.e. a rewrite after each version) |
| Sun 22 Jun | Troy King | As a user, I like sequential version numbers. I prefer '15.2' to '2003'. With the sequential numbers, I can tell at a glance if I have the latest revision. I have noticed on many 'year version' applications I have, I cannot tell if I have kept current because I have to go count patches on the download page. |
| Sun 22 Jun | John | We have the same problem here, only we already call our product '2003 Enterprise 8.5'. :)
I wonder what the fsck our manager will do when we reach version 10! |
| Sun 22 Jun | www.marktaw.com | >strange 2 letter combinations
Do the Pentium thing and come up with a fun way of saying 10 in another language, preferably latin because it sound more official, and then name version 11 'Decca 2' or something. |
| Sun 22 Jun | Alyosha` | In the same vein as OSX, X11R6, and Emacs 21.3 ... I suggest you just keep using numbers until you run out of them, in which case you start using letters ... |
| Sun 22 Jun | Philip Dickerson | What's wrong with a version numbered 10 (or higher)? There is no need for version numbers to be a single digit. Doesn't Adobe have 'Illustrator 10'? Besides, it 'takes ten years to get software right', so if you have one release a year, version 10 should be a really good release!!! |
| Sun 22 Jun | Philo | 'Do the Pentium thing and come up with a fun way of saying 10 in another language, preferably latin because it sound more official, and then name version 11 'Decca 2' or something.'
Paraphrasing a Desilu exec:
''deka' means ten of something. 'Deci' means one-tenth of something. 'Decca' is a record label'
Philo <- grumbling about books never being around when you need them... |
| Sun 22 Jun | Marc | Progress Software is about to beta Progress v10.
I thought it would look funny, but it doesn't. I think it is like the whole 2000 thing. Remember all of the 'what will we call the decade' questions in 1999? |
|
| Marc, I am willing to help you out | Sun 22 Jun | one programmer's opinion |
| I am referring to your recent Finding People thread here.
I started a new thread because I would like this thread to focus on helping you find viable job candidates for your open position.
Question 1: How are you currently advertising (local newspaper, job boards, word-of-mouth, etc.) for this open position?
If you posted a help wanted job ad in one of the local Boston newspapers could you post this ad here on this forum (to keep it anon as possible please remove all info about your company) so that I could read it?
Question 2: What are the minimum qualifications you are looking for in a job candidate?
The following is what I think they currently are:
* Must live in the Boston residental area (i.e. only local candidates will be considered).
* The ideal candidate will have 2-3 years of prior paid desktop application programming experience using Microsoft software tools and programming languages (i.e. C++ or VB).
* Must have some type of prior exposer (school or self-study is acceptable) to Visual Studio .NET (the IDE) as well as VB.NET and/or C#.
* Prior commercial software (shrink-wrap) experience is desired but not required.
* The ideal candidate will have prior paid programming experience (writing queries and stored procs) with Microsoft SQL Server. Database administration experience desired but not required.
* Good communication skills are required. This position requires some personal (face-to-face) contact with our customers.
* Recent college graduates that have some exposer to VS.NET are eligible to apply.
I will stop here and let you respond to what I have written so far. |
| Sun 22 Jun | Marc | Wow. Can I cut & paste that for me add? :)
You nailed exactly what my requirements are!
You want to know the funny thing? Joel is yet again saving my butt.
I've got several resumes from my posting here and each of them looks fantastic. Not one of them was off the mark and I'm sure I'll interview each of them. I've also identified someone I think could do some contract work for us in the future.
This is all fantastic if you ask me. |
|
| Thoughts on VCs and entrepreneurs | Sun 22 Jun | Tamas K. |
| Fixing Venture Capital By Joel Spolsky http://www.joelonsoftware.com/articles/VC.html inspired me some thoughts on VCs and founders.
This is only a game. Everyone is going ahead towards their goals.
VCs manage money and all they want is to invest it and get the possible highest return on the possible shortest term. They do this in order to reinvest it and stay in the game.
What do founders want? The same. Invest and get returns. The difference is just they invest more knowledge and work, not money. (We could say founders have other goals then getting returns, but lets keep things simple for now.)
I am sure everyone who plays the game plays with the best useage of their knowledge and power. So I consider the way of what VCs are doing that they are doing it very well. I got to this conclusion because we can say right now they have more power then founders have.
We can go phylosophical and think about why is it like this and how it is going or not going to change in the future.
ktomi
tamas_konyves@hotmail.com |
| Sun 22 Jun | GiorgioG | >We can go phylosophical and think about why is it like this and how it is going or not going to change in the future.
IMO, this is because of the old saying: 'He Who Has The Gold Makes The Rules'
To a founder, the VCs are like clients (in a way they are clients) - without them, they don't exist. So they have to keep them happy. |
| Sun 22 Jun | Daniel Shchyokin | unless a founder can work without the VC's.
Also is the founder willing to trade smaller short term returns, for larger long term returns?
Finally, if VC's are like clients, in the sense you have to keep them happy, wouldn't at least some founders trade the VC money for a)more control and b)more time to focus on the real customers |
| Sun 22 Jun | pb | A game?? |
| Sun 22 Jun | one programmer's opinion | Seems to me that many technology based startup businesses are relying too heavily on venture capitalists for their initial funding. Overall, this type of money source only amounts to 2-3% of the way most companies get their funding.
That said, the sad reality is that over 90% of all businesses that seek external funding fail to find it.
One of my biggest beefs with our government leaders (Bush and Congress) is not that they are pro business but that they are pro BIG business. Instead of more tax cuts for large corporations and the rich how about pouring more money into somthing like the Small Business Adminstration (SBA) and how about making it easier and faster for small businesses to secure low interest loans? |
|
| What Does a Degree Mean? | Sun 22 Jun | Brad Wilson (dotnetguy.techieswithcats.com) |
| So, Im pondering the value of a comp. sci. degree today. Sue me: its Sunday morning, my wifes still asleep, Meet the Press isnt on yet. :-p
With perhaps the exception of some of the very finest comp. sci. schools (and maybe not even then), it certainly doesnt mean you know what it takes to be a professional programmer. Most education is using outdated tools and teaching a lot of things youre not likely to run into on a day-to-day basis, while virtually excluding the idea of teaching formalized teamwork and planning. (fail to plan, plan to fail and all that)
So then I thought maybe what it means is what Ive heard rumored: that it means that you can stick with something that sucks, even when you know its going to be long term. Okay, Im not sure that _thats_ a good thing, either. I sorta want people who arent afraid to take a stand for themselves and challenge the status quo.
So Im stumped. Tell me again why Im supposed to be impressed that someone finishes a comp. sci. degree? I honestly want to know! |
| Sun 22 Jun | Philo | Go check out the thread on leaving a job. It seems a lot of people seem to put value on the idea that a job candidate can stick with something for longer than six months.
It's also an indicator that you have some kind of rudimentary ability to communicate, pursue tasking, complete assignments on time, etc, etc.
While I'd always thought that a CS degree indicated a knowledge of pointers, sorting, lists, algorithms, etc, a recent post by an interviewer seems to indicate this is no longer a safe assumption.
Finally, a degree is a completely legitimized method of 'whack-a-mole' resume elimination.
Philo |
| Sun 22 Jun | Marc | There is no reason to be. I've met with dozens of people in the last few months (see my Finding People thread) and have found a CS degree means little when it comes to skill, talent, or drive.
What gets me is the lack of methodology exposer. Isn't this the one time in their career were they can take the time to learn about XP and other strategies of development?
My cynical opinion is that ever computer science department in the US has only one agenda; hate Microsoft.
Ok, so maybe I'm exaggerating that a bit. But there seem s to be a massive number of professors who are nothing more than embittered CP/M fanatics who still have a rod up their ass because IBM choose DOS.
'Damn you big blue! DAMN YOU!' |
| Sun 22 Jun | Chi Lambda | I think a college degree gets 'your foot in the door.' It also shows that you can take a long-term project and bring it to conclusion. |
| Sun 22 Jun | Tim Sullivan | I've said this before, and I'll say it again: the only use of ANY university degree is problem solving techniques. Yes, someone with a CompSci degree will have experience in C and Java, but not a lot of it. Someone with an English degree who has been hobby programming since they were a kid is likely just as (or more) qualified for a position.
My policy on hiring is that a degree is nice, but it doesn't outweigh my own interview testing (writing code on the spot, problem solving and design questions), nor does it bias me unless I have two perfectly equal candidates in every way (which never happens - one person always stands out).
I look for intelligence, talent and charisma (in that order) in my hires. Degrees are further down the list. |
| Sun 22 Jun | Simon Lucy | Personally, I'd wake the wife and not think about such things on a Sunday morning.
You either need to stay in bed longer, or get out more. |
| Sun 22 Jun | Grr... | I think there's a push to encourage everyone to 'get a degree' as if a degree is some magic piece of paper that will better your life. This is a big fallacy in my opinion. Currently people with bachelors and masters degrees are taking jobs at McDonalds because they can't find work and have to pay for that piece of paper. A degree no longer guarantees a job or a 'better' job. Too many people have degrees. Maybe the government should pay for everyone coming out of high school to get a bachelors degree so they can work on the assembly line at the local plant and say they have a degree, that is until their job shifts overseas due to NAFTA and other stupid political moves. The job market is flooded, everyone wants in and there's only so much room. Dear Mr. Bush, In case you haven't noticed decent jobs in the US are about as rare as WMD in Iraq.
I also have something to say about the difference in degrees. I currently have an Associates Degree. Now some places will only accept a piece of paper with the word bachelor on it. What's up with that. Should I spend money to get a bachelors degree. I would if I knew it would help me get a job but what are the odds of finding work? |
| Sun 22 Jun | Duncan Smart | '...get out more' -- so what are you doing here then? :-p |
| Sun 22 Jun | Simon Lucy | Ahh but I'm at least 5 hours ahead, if not 8. I've had a full and energetic (for me) day. |
| Sun 22 Jun | | What it means to me: This person probably knows data structures and algorithms.
Not that not having a degree means you don't know them, or that necessarily having a degree means you do know them.
And the importance is: Too many people using grossly inefficient techniques or reinventing the wheel very poorly.
This may not apply in all fields. I used to work for a data processing type company and it was important there. Now I work for an internet startup and it's not important at all. Everything here is very high level. |
| Sun 22 Jun | Daimler | I own a small software company - we have 10 employees and make our own products (we are not consulting).
When hiring, I simply don't look at the degrees.
I don't care about degrees, because I know that the mechanical engineer who is in love with computers may be a lot better than some slacker with a CS degree.
I don't imply that CS people are slackers. I hold a CS degree myself.
What I am saying is that I'd rather hire a very good programmer without any degree, than an average programmer with a degree.
After selecting about 20 of the best resumes, I send e-mail them a few programming 'exercises' to solve. Usually I select these 'exercises' from real work.
Funny thing - out of 20 people, only about 2-3 send in a solution, and usually only one, or no solution is correct.
If somebody solves the problem, then I interview them, ask them to solve a few more problems in front of me (to make sure they were not cheating by asking somebody else to solve the problems) and hire them.
It's as simply as that. :)
> While I'd always thought that a CS degree indicated
> a knowledge of pointers, sorting, lists, algorithms,
> etc, a recent post by an interviewer seems to indicate
> this is no longer a safe assumption.
My best employee is a mechanical engineer. Belive me that this guy has a real passion, and knows a lot more about algorithms and data structures than CS guys. It's just that he discovered computers while he was in college already, and in my country, you are not allowed to switch degrees. |
| Sun 22 Jun | Warren Henning | 'people with bachelors and masters degrees are taking jobs at McDonalds because they can't find work and have to pay for that piece of paper.'
Do you have anything more than anecdotal evidence to support this ridiculous claim? |
| Sun 22 Jun | Eric W. Sink | You don't have to be impressed with a degree if you won't want to be. You don't have to make degrees an absolute requirement for hiring. Think of it in terms of statistical correlation.
Over my own career I have noticed that people with a degree tend to be stronger in the fundamentals. They finish things better. They are more disciplined in their work. They handle pressure better.
Yet all of these are generalizations, and I know exceptions to each one. I've known some very fine developers who lack a degree, and I've known some lousy developers with very fine degrees.
The degree itself is probably not a positive -- it merely correlates well with some other positive factors. If you prefer to ignore degrees and focus on the actual factors, that'll work too. |
| Sun 22 Jun | Erik Lickerman | dear Grrr:
NAFTA is the North American Free Trade Agreement. If you really close your eyes and thing hard, you will see that it cannot shift jobs overseas. |
| Sun 22 Jun | somebody | My view of degrees is that they'll certainly allow you to get your foot in more doors, but these often aren't the kind of doors I want to get in. You'll get rejected by clueless HR departments, but do you really want to work for companies with clueless HR departments? And if they're that clueless in their hiring practices, do you think they're really going to be better in terms of general management issues and things like promotions and bonuses?
Judging from my experience in the field, there is absolutely zero correlation between an individual's level of education and their ability to develop software. I know guys with Masters in CS who are absolutely clueless in every way imaginable. I know others with no degrees or with degrees from places that aren't 'real colleges' who are great programmers.
Take a look at this chart from Visual Studio Magazines recent salary survey:
http://www.fawcette.com/vsm/2003_06/magazine/features/salarysurvey/table4.asp
Keep in mind that the numbers for those with only a high school diploma or a 2 year degree don't take into account the expensive loans that most of those with BS's or higher have.
I can speak from personal experience that I, as someone without a BS, am making more money, by far, than others that I know who are the same age, in the same position, with the same level of experience in terms of time, who have degrees. I know people with BS's whose annual income is literally the same amount that I pay in taxes. Maybe not having my degree will hurt my ability to move into higher paid management positions, but I'm on track to have my own company by then where that won't be an issue (and where I'll be making loads more money and having a heck of lot more job satisfaction than those in management positions). |
| Sun 22 Jun | somebody | I should add that I don't have a problem with degrees. I might end up getting one someday myself if I find the time to fit the classes in. What I'm getting at is that a crappy programmer is going to be a crappy programmer whether they have a degree or not, and most crappy programmers do. A degree these days isn't an indication of an ability to do much beyond drinking and partying. Most people getting into things like Computer Science do so because they heard that CS is where the money is at, rather than because they have a love for the field or any special talent. |
| Sun 22 Jun | . | I think a lot of popular thinking about degrees is way out of date.
Fifty years ago, going to a university and getting a degree was the only way to learn certain disciplines. That's not the case anymore. Society has not yet adapted to this.
Secondly, the idea that having a degree is some binary good / not good makes no sense if you analyse it. Does having a degree from 1975 make someone superior to someone without a degree but who spent the last 10 years designing software? Of course it doesn't.
Similarly, many lecturers and professors, especially the older ones, didn't learn their computer science with degrees. They got engineering, math or science degrees and TAUGHT THEMSELVES about computer science. |
|
| wondering if you know a good pop-up killer? | Sun 22 Jun | Dandeeno |
| Guys,
I’ve had it with those lousy pop-ups I get every time I log on to my favorite sites.
Anyone who shares the same disgust? Any suggestions?
NB: someone highly recommended preventpopup… anyone knows it? |
| Sun 22 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Mozilla Firebird. :-D |
| Sun 22 Jun | S.C. | ZoneAlarm(firewall) + Adaware(spy/adware killer) + Proxomitron(Pop-up killer)
They ain't perfect but at least they are free (well, they were when I downloaded them. ) And good enough for average home computers.
All tested on my machine for months and so far so good. |
| Sun 22 Jun | Erik Lickerman | Opera has a good one. It is easy to turn on and off for those rare occasions you need to see the popups |
| Sun 22 Jun | Michael Moser | disable javascript + active x + java (security settings). |
| Sun 22 Jun | Yaniv | Panicware's Pop-Up Stopper free edition for Windows -
http://www.panicware.com/product_psfree.html |
| Sun 22 Jun | Scott | I use Advanced Popup Killer, from http://download.com.com/3000-2366-10177491.html .
Quite a nice program. |
| Sun 22 Jun | JWA | I use an earlier free version of popup-stopper as mentioned above. IT was easily the best that I tried about a year ago when I went looking for one, and it's worked great ever since.
--Josh |
| Sun 22 Jun | Wayne | Popup Stopper Pro is the best. |
| Sun 22 Jun | Frederic Faure | www.privoxy.org |
| Sun 22 Jun | mb | hosts file from smartin-designs.com
simple and low tech, no 'software' beyond what's built in to the OS. |
| Sun 22 Jun | anon | I'll put in a second vote for Mozilla Firebird. |
| Sun 22 Jun | Annon | Any current version of Mozilla |
| Sun 22 Jun | Annonymouse | Using Microsoft IE? You deserver pop-ups.
Use Mozilla or Opera. |
| Sun 22 Jun | www.marktaw.com | Opera. It's a quick preference. |
| Sun 22 Jun | ... | http://www.popupbuster.com |
| Sun 22 Jun | Ori Berger | Moz, Firebird or Opera.
Keep ignoring the IE competition (which is, in many respects, far superior), and you give microsoft no incentive to improve. So you deserve what you get with IE.
You've earned your popups, and you keep earning them every day. |
| Sun 22 Jun | le bob | MozFirebird. I hated Mozilla, but love Firebird, it's just as light as Safari is on my Mac. I can not believe how I lived with popups for so long. |
| Sun 22 Jun | pb | 'disable javascript + active x + java'
Or just don't surf at all!! |
| Sun 22 Jun | Troy King | Another vote for Opera. F12 gives you a quick preferences menu to turn on or off plugins, javascript, java, animaged gifs, popups, and more. And no, it's not 'all or none.' You can selectively set what you want. I surf 90% of the time with no javascript, no animated gifs, no plugins, no java, no audio, and popups turned off. I occassionally turn on javascript if some lame site uses javascript links, or plugins if I want to see a flash animation. It's so quick an easy to turn them on and off (F12) that it's not a pain at all to switch them while surfing.
I don't understand why Opera isn't more popular. It's practically psychic. |
| Sun 22 Jun | Alex Chernavsky | Proxomitron is one of those little programs that I don't know how I ever lived without. It has truly transformed my web browsing experience (I use IE 5). Strangely, though, the Proxomitron website seems to have been hacked:
http://www.proxomitron.org/ |
| Sun 22 Jun | Joel Fouse | I'll toss in my $0.005 for any current version of Mozilla. Popup blocking and tabbed browsing are huge improvements on my browsing experience. |
| Sun 22 Jun | somebody | If you want to kill popups plus get the benefits of things like tabbed browsing without giving up compatibility with all of the sites that target IE, there are a billion replacement frames for the IE rendering engine, many freeware. Here are a few free ones that I know of:
http://www.myie2.com
http://www.crazybrowser.com
http://www.flashpeak.com/sbrowser/sbrowser.htm |
|
| Are my teachers just glorifying assembler? | Sat 21 Jun | grover |
| Im currently finishing up a CS degree at Northern Illinois University, which emphasizes mainframe programming, and assembler language as the most used language in my course plan. All of my teachers are always saying things like if you can learn this language, there is no computer language you cannot learn and statements like that. I know that anyone can learn anything given the time and motivation are there, but do you guys agree with them? Part of me is optimistic and hoping what they say is true, but the other half of me thinks these guys are full of shit....Anyone here have any input on this one? |
| Sat 21 Jun | Andy | I would say they are sort of full of shit, but it's worth learning. Learning assembly language will not help you learn other languages better. Learning a language like C or Lisp would, because many other languages are based on the ideas from those languages.
I think it's worth learning, but I wouldn't say it's the 'foundation of programming', even that at first may seem to be obvious. It teaches you a limited skill, basically how to make a subroutine fast. This doesn't teach you how to do large scale design, how to design correctness and efficiency into your programs, or deal with real-world software development. There are companies which still use assembly language, but it's declining even in the embedded software market.
Besides, every CPU has its own quirks. Until you have something real to build, I wouldn't say it's of much use to learn the ins and outs of one instruction set. Definitely it is important to know the concept of assembly language and what your code gets compiled down to, roughly, but it takes time to master any individual instruction set. There are many other things that I think are more worthy of the time. |
| Sat 21 Jun | Dave B. | Assembly language will not be all that usefull to you in the world of business programming. If you choose a game or embedded systems programming career then it will definitely help, but is still not at the top of list.
'I know assembly language.', doesn't carry any weight when the company is looking for a C/C++, VB, .NET programmer. Chances are that they aren't going to give you time to learn a new language either. You'd be better off saving assembly language for extra credit.
If you are going the mainframe route then it would make sense to learn things like COBOL, RPG, Java, C++ and C along with JCL and ISAM, VSAM, SAM, KSAM, TSO etc etc...
Use a little common sense and ask yourself, what do I want to do when I get out of school and what classes will help me to achieve that goal.
Take everything your teachers and your peers throw at you, even what I'm telling you here, with a grain of salt. Think for yourself first. This is what (the best) employers want. People that think. At least that's who I'd want to work for. |
| Sat 21 Jun | Bored Bystander | >> All of my teachers are always saying things like 'if you can learn this language, there is no computer language you cannot learn' and statements like that.
Uhhhh... in some respects, yes.
Skill at developing correctly functioning assembler demonstrates your ability to use VERY low level operations to achieve a desired result. It's probably almost the most challenging (hardest) tool you could use to achieve a result. So, yes, in theory, if you can use assembler, you can probably mastet anything else in the computer world.
However, grokking assembler is next to useless when you're trying to master the higher level concepts inherent in applied object oriented programming, database design, system design, etc.
Assembler skills do help in gaining insight into the behavior of software at the bare metal level. From time to time it is helpful to have that degree of insight when you're debugging C or C++. But it's not a must have by any means. |
| Sat 21 Jun | Eric W. Sink | >>>'I know assembly language.', doesn't carry any weight when the company is looking for a C/C++, VB, .NET programmer.
Au contraire, assembly language is still a positive from my perspective. Someone who knows assembler is more likely to be the type who understands lower layers in the abstraction pile. That's a Good Thing (tm). |
| Sat 21 Jun | Dave B. | The statement, 'If you can master X then you will be able master Y', is a generic statement and implies that knowing the abstraction/theory/process beneath the one you are currently learning will help you to learn the ones above it faster. The problem with this statement in the real world is that it takes two separate time frames to learn two separate abstractions/theories/processes, which are really different paths in and of themselves. |
| Sat 21 Jun | Dave B. | >> 'Au contraire, assembly language is still a positive from my perspective. Someone who knows assembler is more likely to be the type who understands lower layers in the abstraction pile.'
That's true Eric, but if they don't understand or know the higher level abstraction to begin with it does them no good. |
| Sat 21 Jun | Dave B. | I should say the higher level abstraction you are looking to hire for (.NET) etc. |
| Sat 21 Jun | kaching | I think their comment has some merit. I wouldn't think of it as a useful marketable skill, but more as a means of giving you a deeper understanding of how things work, which will stand you in good stead with other languages. |
| Sat 21 Jun | Dave B. | For example, If I know C++ and 8086 assembly, that's good, but If I just know 8086 assembly and don't know C++ and you want a C++ programmer, which would you hire? |
| Sat 21 Jun | Dave B. | In other words you can change my, 'I know assembly language.' to 'I only know assembly language.' |
| Sat 21 Jun | Nose Tweaker | Anyone want to chime in on a professionalism aspect?
As in, being a professional implies that you understand the underlying technology to some extent, so if you don't you're an unprofessional hack? |
| Sat 21 Jun | www.marktaw.com | Can you be a professional driver without knowing how to change the oil in your car? |
| Sat 21 Jun | The Real PC | Understanding an assembly language means having some understanding of how computers work. Otherwise, I don't see how you could have any idea of what goes on.
Becoming an expert in one of them would probably take a long time and would not help in finding work. But I think curiousity alone would make every programmer want to know something about it. |
| Sat 21 Jun | Alyosha` | I think it's necessary to learn assembly language for at least one processor -- not because you will ever need to know how to program straight assembly at any time during your professional life -- but simply because in knowing it, you become a better, more knowledgable programmer. Should you ever need to debug or optimize a program at the lowest level, knowing the basic theory will do a world of good. |
| Sat 21 Jun | Philo | Of those who are advocating knowledge of Assembler, how many understand circuit design, electronics, and the physics of P-N junctions?
After all, let's get to the REAL basics of how computers work.
I know silicon design, I know electronics, I know Assembler, and I know Pascal. And I think the last on the list has contributed the most towards my abilities as a programmer.
And I personally believe the Assembler advocates are engaging in '*I* know [insert arcane art], and if you don't know [arcane art] then you're not as good a programmer as me'
I still wanna learn C++, tho. Someday. :-)
Philo |
| Sat 21 Jun | Alyosha` | I donno, Philo ... I'd say I've got quite a bit of knowledge in each of those, and yet ... the only one that really ever aided my knowledge of high-level programming was ... low-level programming.
I'm not trying to be smarter-than-thou here ... I'm just arguing on the side that learning assembler isn't useless and isn't a waste of time and I recommend learning it to anyone who's interested in bettering their programming skills ... |
| Sat 21 Jun | The Real PC | [how many understand circuit design, electronics, and the physics of P-N junctions?]
I think programmers should have at least some vague idea about those things. Just like a psychologist should know something about neuroscience.
And if you have absolutely no interest in what happens inside the computer, you probably are working for no other reason than money. |
| Sat 21 Jun | Matthew Lock | > Of those who are advocating knowledge of Assembler, how
> many understand circuit design, electronics, and the physics
> of P-N junctions?
> After all, let's get to the REAL basics of how computers work.
The electronics or the physical implementation how computers work is mostly irrelevant. Computers could be implemented by some other means, like Babbage's mechanical computer, or optically maybe one day.
Computers are symbolic machines, so knowing how semiconductors work really doesn't help you in the same way that knowing assembler would. |
| Sat 21 Jun | Andy | Nah I would say knowing how a P-N junction works is pretty much useless for programming. It is interesting in its own right, but doesn't have anything to do with programming.
As far as programming goes, the abstraction pretty much stops at the computer architecture. You can learn about how many cycles particular instructions take, instruction latency, cost of instruction cache and data cache misses, etc., cost of interrupts, cost of paging, etc. That all can affect your programming, even though most people ignore it (which is of course correct when you're writing for many machines). But I don't think anyone has ever based a programming decision on the physics of the P-N junction in whatever piece of silicon their working on. It simply doesn't affect what you're doing. It's as relevant as what material the PC case is made out of. |
| Sat 21 Jun | Philo | But how many programming decisions are based on how register shifts or jumps work?
Assuming basic programming knowledge, would one's time be better spent learning Assembler, or learning a new area of higher-level programming? There is so much to know, I'm not sure I could justify that someone spend their time on it.
Things I'd recommend before Assembler (in no particular order):
-Basic CS theory (sorts, pointers, lists, etc)
-SQL
-C and/or C++
-Hardware architecture (the *why* of why memory is faster than a hard drive)
-TCP/IP and other communications protocols
-The 'other' OS (Linux if they know Windows, or vice versa)
And if they have higher aspirations:
-Some corporate history of MS, Oracle, Sun
-Economics
-Marketing
-Sales
-Why the movie 'Hackers' is so engrossing when it's so atrociously *wrong*
Maybe if someone's tackled all that and has nothing better to do, I'd say 'hey, check out assembler', but I simply don't see it as that essential.
HOWEVER, this is from the standpoint of *having* a background in assembler, so maybe I can't dissociate it like I think I can, and it *has* helped me. I don't think so, but I can't be sure.
As usual, solely my opinion. YMMV.
Philo |
| Sat 21 Jun | Troy King | Just make sure when you put it on your resume you know the difference between assembly and assembler. It makes you look silly to use the words incorrectly, and there's a whole lot of that going on in this thread. |
| Sat 21 Jun | www.marktaw.com | I noticed that too. |
| Sat 21 Jun | Prakash S | maybe you teacher's main research interest is in Assemblers ? |
| Sat 21 Jun | Philo | Okay, Troy - I reread the thread and did some wandering around online to see if I was missing something.
What, in your mind, makes
'I have to learn assembly language'
and
'I have to learn Assembler'
so significantly different in casual discussion that it's worth pointing out?
Philo |
| Sun 22 Jun | somebody | I doubt that using 'assembly' and 'assembler' interchangeably is going to bother anyone with a life. Pretty much everyone uses these terms interchangeably (as evidenced by this thread), regardless of whether they know the difference or not (I certainly do), probably as the natural result of assemblers of the past adding their own syntactic constructs to the underlying assembly language. Only a pedant with the desire to artificially assert their superiority would care to point out the misuse of one or the other. |
| Sun 22 Jun | Marc | I agree with everyone here. There are reasons to learn it (I sure wish I had) but it isn't going to teach how to write Java.
Everyone says that learning piano makes it easier to learn other instruments. This is true to some extent. But knowing the piano doesn't mean you can play the guitar. And more importantly, it doesn't necessarily make you a better guitar player than someone who never touched a piano.
The same goes for programming. All else being equal, knowing it will make you a better developer. Of course, I've never seen 'all else' ever be equal. :-) |
| Sun 22 Jun | Marc | Somebody,
These are the same people who ran around time square on New Years Eve 1999 shouting that the millennium doesn't *really* start until 2001. :) |
| Sun 22 Jun | S. Tanna | Assembly tends to be the lowest level in a hierarchy of an abstraction. While there are lower levels like microcode or even electronics. I think it is extremely rare you go below assembly in terms of purely programming (as opposed to something which is truly a mix of programming and hardware). Even for programming/hardware combined projects, the hardware is one dimension and the programming is often an entirely orthogonal dimension, as you are far more likely to be interfacing to hardware rather than designing a new CPU or something.
In the other direction in this hierachy of abstract are many branches and layers, such as higher level programming languages, RDBMS, OO, etc.
These higher levels add fundamentally new concepts and methods, so understanding assembly, does not necessarily help at all in understanding these new concepts. To make a (not perfect, but reasonable) analogy, imagine a laser printed copy of Shakespeare's works... assembly might be the layout of pixels on the pages, higher concepts such as a literary criticism of the work, can be not be fully explained (or fully understood by any one person even if it could be explained), in terms of the layout of the individual pixels on the pages.
That said, abstractions in the computer world are imperfect and there are leaks where you can see (or helps to know about) the lower levels, and more specifically assembly. Most programmers these days seem to be writing business/database apps, and for this type of application, with the right tools, it is usually totally unnecessary, and possibly unhelpful, to worry about the lower levels. I think however for certain kinds of programming, even though they are usually/often largely done in higher level languages these days - knowledge of assembly is particularly helpful (either for programming, writing optimal higher level code, or debugging) - this includes but not limited to: hardware interfacing, embedded systems, system programming (writing your own OS etc), some games, some graphics applications,
I am sure there are some people who program 100% assembly, but I think it's far more common to mix C (etc) with assembly. So I'd say if you want to be employable, learn a higher level language or two, too - especially since different assemblies are often wildly different.
Slight Off-topic:
The best hardware interfacing programmer, I ever knew, by far, was totally into assembler. When we tried to get him to write C (which he already knew) it was a struggle for him and us, he found it very difficult to adjust to not writing assembly (and in C he preferred _asm blocks, but we didn't let him).
Slightly Off-topic2:
The best low-level graphics programmer, I ever knew, again by far, was totally anti-assembler, and would never touch the stuff. However he came up with C algorithms that blew you away with their speed, unbelievable. The algorithms that he came up with were often stunning - but what's more even though in C, they usually sort of 'naturally' (in quotes because I'm sure it was a lot of work or brilliant insight) fell into super efficient assembly. I don't think he could actually write assembly - but I think, he probably knew enough assembly, to know what 'styles' of C would produce the best code... |
| Sun 22 Jun | Albert D. Kallal | Assembler is not hard, but is tedious. We have to distinguish between difficult and tedious.
I can go out can cut my lawn with a pair scissors. That is going to take a long time, and is real hard. However, just like assembler, it is not particularly difficult.
I will say that Assembler does however give one a few insights into computers and how they function. It also forces one to have to write algorithms for almost everything. So, while in a high level language I can easily raise a number to the 3rd power, in assembler I will probably just multiply the result 3 times. And, to double a number, we just use a register shift. So, there is very little abstracting in assembler. This lack of abstracting forces one to have to abstract everything in your mind. Thus, we code in the most basic means possible. In this regards, assembler does have some merit..but not much!
So, assembler does show one can distill an problem down to the most basic algorithm, but we don’t do that anymore!
So, knowing assembler is not the ticket to using higher level languages. This reason is simple:
Assembler is missing a good deal of the modern concepts we use.
Assembler is by nature not object oriented at all. So, coding in assembler does not help your OO skills one bit. (pun intended...or should I say helps one byte?). OO is probably one of the largest skills you don’t learn from assembler at all.
Assembler variables do not have scope. (I have to concur whoever commented that they learned more in Pascal about programming then assembler). So, you learning nothing about scope, and the concept of local variables etc.
Assembler does not have pointers. For sure you have indirect reference via registers (or even memory locations) that direct your reference to other memory locations. However, you don’t learn to deal with using pointer types in real solutions. Using a variable to reference another variable does not give one skills to use pointer types.
Due to no local vars, then assembler is not very recursive, so once again you don’t learn some modern programming techniques.
No if/then/else stuff.
Sure, popping a stack can certainly change where the return statement now will go. This kind of stack popping stuff is worse then teaching people about goto. And, while we are at this, assembler is totally goto city anyway. Not exactly a great introduction into good coding practices...is it?
You also don’t get exposed to any of the higher level data types like collections etc.
You don’t learn about concepts like library references, late binding, early bind etc. I will not repeat the other comments about stuff like sql etc..
It certainly might be true that if you can learn assembler, you can learn the rest of the stuff...but if you have not learned the rest of the stuff, then it means nothing. Hum, if you learned to ride a bicycle, then I guess you can learn to ride a motor cycle.....
So, while I think there is a bit of merit to learning assembler, it pretty well misses the whole boat on the modem programming concepts that ones needs today to develop software.
Albert D. Kallal
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn |
| Sun 22 Jun | Twerp | You guys are a bunch of lightweights.
I'm personally not going to stop with knowledge of P-N junctions. That level of knowledge is way too trivial and surface level. Almost like only knowing about application software when you're planning to develop bit sliced microcode.
I am planning to enhance my professionalism by smelting sand into silicon ingots, slicing my own wafers, and developing my own photolithography line in our basement so that I can do my own 8' wafers at .25 micron feature density.
Oh, yah, and I will write my own VHDL interpreter and VLSI CAD system. In assembler.
And my line of private brand microprocessors, developed under the same constraints as fine craft beers, will execute the user's choice of CLR or Java bytecode, selected by software flag. |
| Sun 22 Jun | Matthew Lock | Silicon! Real programmers use valves, and none of those new fangled Von Neumann machines.
Modern day programmers don't know they are born. |
| Sun 22 Jun | Michael Moser | >Assuming basic programming knowledge, would one's time be better spent
>learning Assembler, or learning a new area of higher-level programming?
>There is so much to know, I'm not sure I could justify that someone spend their
>time on it.
higher level languages do change a lot. It sometimes looks like a fashion.
In order to understand the pattern of change it is beneficial to understand the lowe levels.
including assembly, if you want to deeper understaning about performace related issues ... |
| Sun 22 Jun | Michael Moser | an example: if you want to undertstand java, then it is good to know some things about the class file format, and how an interpreter works.
Knowing a bit of assembly it is possible to understand why java will always be slow. |
| Sun 22 Jun | www.marktaw.com | > Everyone says that learning piano makes it easier to learn other instruments. This is true to some extent. But knowing the piano doesn't mean you can play the guitar. And more importantly, it doesn't necessarily make you a better guitar player than someone who never touched a piano. <
Absolutely true. Piano is the mother of all instruments, so to speak, but some of the greatest guitar players in the world don't know how to play piano.
Learning Piano is great for things like sight reading, general theory and composition. You can learn Guitar by ear and never learn any of these things and still be great.
Though there will be some situations where sight reading and composition are important and you won't do so well. That's not to say you can't learn them on guitar, and you can probably learn some of the concepts that assembly teaches you while learning a higher level language.
Let me tell you a little secret. Everyone I know that learned assembly enjoyed it. |
| Sun 22 Jun | Matthew Lock | Anywho it's not like you have a choice of studying at while doing a CS degree.
A spin-off of doing assembly language is that you can program those cool little PIC chips. |
| Sun 22 Jun | Ben Combee | Here's one very good reason for being able to read assembly -- debugging optimized code. If you program in a compiled language, there will come a time when your app works in a debug built, but fails when optimized. When that happens, being able to understand the compiler's mapping of your code to assembly and being able to step through the assembly code will help you tremendously, as you'll be able to understand the optimization, and perhaps know why your code wasn't valid when optimized, or, less frequently, why the compiler did the wrong thing and generated bad code. |
| Sun 22 Jun | The Real PC | There are great guitar players who never learned piano and who can't read music. Analogously, there are probably many great programmers who know nothing about assembly language, or computer hardware, or the history of computers. I think it depends on what kind of person you are.
I feel I have to understand the things I spend time with. In order to be a guitar player I have to know something about the history and theory of music, and of course be able to read it. I am not a great guitar player, but the only reason I'm any good at all is that I have some intellectual understanding of music. That's how my mind works -- intellectual understanding first, everything else after.
For some people, this would probably be a boring waste of time. All educated people used to be taught Latin, Greek and Hebrew and of course this is now considered a waste of time.
But so much of Western civilization is not accessible to us, since most of us don't learn the ancient languages. When I was in high school Latin was available but my parents said don't bother you'll never need it.
But where do you draw the line? There is too much to learn and we are not all aristocrats with leisure time to spend reading ancient texts. (Not that most Americans would spend their leisure time on anything requiring intellectual effort anyway.)
I could not work at computer programming day after day and not be curious about how the darn thing works. I am very glad I learned assembly language. I hardly ever used it for anything, so I can't say I know it well. But I more or less know what goes on in a CPU, how registers work, etc. You don't use this knowledge directly in high level programming, of course, but it does make up part of your mental model.
But I suppose many people don't need a complete mental model of whatever it is they're involved with. Maybe most don't need it. |
| Sun 22 Jun | Martin Cabrera Diaubalick | Grover, i think it depends on what you want to become in the near future.
I learned Motorola Assembler in College and i actually work doing Web Programming. I don't think i'm using all that knowledge nowadays...
But I think it's really interesting and revealling to get to know the machine in such a low level way.
HTH,
Regards |
| Sun 22 Jun | Larry Prince | There is a difference between working toward a degree in Computer Science and just learning to be a competent programmer. While university CS departments are certainly interested in having their students develop useful and practical job skills, that is not their only focus.
To say that learning assembly language is a waste of time because one will never have to progam in assembly is analogous to saying that learning computer architecture is a waste of time because one will never have the opportunity to architect a microprocessor.
I also agree with the earlier comment that knowing one's way around assembly language is helpful because sometimes a compiler's optimizations do unexpected things to one's code. These unexpected transformations are not necessarily bugs, though. Some people, including me at times, think they're writing in standard C/C++ and they're really not. (Full disclosure: I work for a company that makes compilers.) |
| Sun 22 Jun | Troy King | To those of you saying I'm nitpicking to point out that Assembly and Assembler are not the same thing, then put it on a resume incorrectly. Would you say 'I know compiler?' To whoever pointed out most people use them interchangeably, I would point out those are typically the people that don't know assembly.
I’m not one of the people that nitpicked the millennium. I say those zeroes rolling over is a good enough reason to party. But if someone can’t be bothered to get the name of a language correct on a resume, it would make me think either they don’t know the correct name, which means they probably don’t really know the language, or that their attention to detail, even on an important document like a resume, isn’t up to snuff.
It’s about correctness in the correct places. I don’t mind relaxed speech. A resume is the wrong place to blow that off, and to me it’s a flag the person is probably padding, or counting on the interviewer to be intimidated by the presumed difficulty. |
| Sun 22 Jun | old school | assembly language is actually kind of fun. however, the real question you should be asking is 'why am i getting a degree that emphasizes mainframe programming in assembly?' |
| Sun 22 Jun | Philo | No, IMHO 'I know Assembler' is analogous to 'I know C++' - and I don't recall anyone ever stepping in to say 'when you say you know C++ you look like an idiot if you don't specify which flavor'
This is a casual discussion, and it seems that most people (including yourself) understood what was meant, which means the term suffices for communication purposes.
Nitpicking terms foolishly and inconsistently just makes one look like a pedantic prick. IMHO, of course.
Philo |
| Sun 22 Jun | Troy King | Philo -- do you understand that assembler is not a 'flavor' of assembly? Saying 'I know assembler' is equivalent to 'I know compiler,' not 'I know C++.' I could care less what it's called in any conversation, formal or informal, if the meaning is clear. On a resume, though, I think the slight incorrectness could be detrimental, depending on the interviewer.
When listed on a resume, the language should be clear, i.e. 80x86 Assembly, or 68000 Assembly. |
| Sun 22 Jun | Philo | 'I could care less what it's called in any conversation, formal or informal, if the meaning is clear.'
Then why did you bring it up?
Philo |
| Sun 22 Jun | Troy King | On a resume, it should be correct. Since he was using it incorrectly here, when the correct way is less typing, it stood to reason he didn't know they didn't mean the same thing. |
| Sun 22 Jun | somebody | This isn't a resume.
Strangely, I can't recall ever being asked 'what's the difference between assembly language and assembler?' in an interview. |
| Sun 22 Jun | Pablo | You must know Assembly (and Microcode concepts) if you are getting a CS degree. What kind of degree would it be if you don’t know how to handle yourself with basic computer architecture, registers and processors? Besides all this is quite useful in the embedded world. To write software using (macro) assembly is kind of a complex task, so in terms of complexity, if you are used to assembly, other higher level languages will seem easy to pick up. Object oriented languages are a separate Babel tower, it is a different paradigm, but it’s no more complex than programming directly on top of the iron or a microkernel. |
|
| Distracted manager | Sat 21 Jun | The Real PC |
| I worked for my manager for 2 years, in the (very small) R&D group. Recently he was promoted and made responsible for everything in the organization related to computers, including a big project that has dragged on for years and has to be finished within 6 months.
I think he was overly confident in thinking he would be capable of over-seeing the whole IT department, taking over as project manager for the big project, and still continuing to be my manager.
This is an example of why I think so: I had to write a new improved version of an application I wrote last year for a non-local user. My manager told me not to do extensive testing, but to let Greta (one of the help-desk ladies) test it, because he wanted me to get back to working on another project.
Of course Greta didnt test it, and the user became impatient for the new version, so my manager told me to go ahead and make the new version live.
The next day, the application had to be used and of course something went wrong. I had 15 minutes to find and fix the problem. Then something else went wrong which I had 2 minutes to fix, and so on.
I felt that my managers questionable decisions made me look bad to the user.
I expect he will continue to be distracted for quite a while with the big project, along with system administration, and everything else. When he makes what I think is a bad decision I could probably ignore it and do whatever I want, since he isnt paying attention. But on the other hand he can suddenly start to pay attention to what Im doing.
Maybe I should have argued with him about making the new version live without adequate testing. |
| Sat 21 Jun | Philo | Boss says 'let Greta test it'
PC says 'okay'
Two days later, Boss says 'make it live'
PC says 'Greta hasn't tested it'
Boss says 'just go live with it anyway'
Your next step should be:
From: Real PC
To: Boss
I just want to confirm your direction to go live with MyApp 2.0 despite the lack of testing on it.
Sincerely,
Real PC |
| Sat 21 Jun | The Real PC | Philo,
In other words, my response to him should have been in email? Of course I did say 'are you sure about that?' but I didn't write it. |
| Sat 21 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | He's saying to make a 'paper trail' of all your boss' decisions against your recommendations.
It's a tough call, because I don't know the 'politics' of the place you're at, but I'd be tempted to go to my boss' boss (on the promise of confidence) and tell him that you're concerned about the directions you've been getting. |
| Sat 21 Jun | www.marktaw.com | Brad - I wouldn't go over my boss' head. I'd talk to him about it directly, and ask for some more autonomy. Try to spin it so that you're praising him and not criticizing him. |
| Sat 21 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | I assumed he'd already talked to his manager about it. You're right, if he hasn't, he should start there. |
| Sat 21 Jun | The Real PC | No, I have not talked to my manager about this; I don't want to make a big deal about one bad decision. If it starts happening more often, that would indicate he has taken on more responsibility than he can handle.
You know how a person can look like he's doing a fabulous job, so they pile on more and more responsibility until he's overwhelmed (but of course would never admit it). Well I thought that might happen with my boss.
I think I will definitely have to consider trying to be more autonomous and more assertive. Instead of asking his opinion, I should figure out my own opinion and suggest it to him. He'll be so overwhelmed with other things, he might say ok go ahead. He won't be insulted by this, because it would make his job easier.
If he forgets to tell me what to do, I might have to figure that out myself. I'm hoping to turn this potential disaster into something positive. |
| Sun 22 Jun | Simon Lucy | Its the Peter Principle, people are promoted to the level of their incompetence. |
| Sun 22 Jun | Evgeny Goldin | [[ Its the Peter Principle, people are promoted to the level of their incompetence ]]
Excellent !
http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html |
| Sun 22 Jun | www.marktaw.com | I prefer the dilbert principle - when you have a bunch of people doing a job, the one getting the least work done is made the manager.
HEY, do you think scott adams reads the JOS forums? Look at today's comic:
http://www.unitedmedia.com/comics/dilbert/
If they changed it on you, here's the actual image:
http://www.unitedmedia.com/comics/dilbert/archive/images/dilbert2003062174222.jpg |
| Sun 22 Jun | DingBat |
Sigh.
Another common working situation turned into a tirade against managers. I mean, because Lord knows developers never make any mistakes, right? And we're not really involved with the process of actually SELLING software, we just make it, right?
Ok, rant over, but the point is valid. The kneejerk reaction that managers are defacto incompetent is just plain silly.
The reality in my office is that everyone is trying to do 1.5 jobs. Some even more. We (I mean developers, testers, managers, everyone) try hard every day to make the correct decisions, set the proper priorities, etc. Sometimes we screw it up.
Some of us are fortunate to work in offices where others might notice that we're temporarily flailing or possibly making a bonehead move and these people might actually try to help us. They might try to point out the oncoming issue with some grace and civility and maybe make some helpfull suggestions. You may actually run into someone who is not so much concerned with his/her image but the image of the team/group/organization as a whole.
There've been times when I've succumbed to extreme tunnel vision. Sometimes there's been someone there to knock some sense into my head. I've always appreciated it. I don't know about your boss, but you might take a chance. If he's/she's relatively normal they might appreciate the help as well. |
| Sun 22 Jun | The Real PC | I understand why we need managers, and I probably would not like to have their job. I understand why programmers must respect the fact that the manager is the boss -- otherwise it would be chaos.
On the other hand, managers should be aware that they are not managers because they represent a higher order of human evolution than the lowly programmer, who needs and deserves to be led, guided and prodded into doing something useful. The programmer is capable of understanding the goals of the organization and of thinking of ways to achieve the goals. We need managers because they have the big picture and communicate with the higher up leaders. It would be impossible for all of us to talk to the big bosses and to know all about everything.
Progammers/developers should be given their general goals and the reasons for these goals, and should be trusted to work towards them.
I am a 50-year-old adult with a PhD and years of work and life experience. Why do I need my boss tell to me when my application is ready to be live?
When people get promoted they may interpret it the wrong way. It doesn't mean they are godlike and the folks under them are mentally deficient. |
|
| How To Start FTPfile.bat as a batch file | Sat 21 Jun | Snacky |
|
Lets says I got a file which contains
all the information to connect to a FTP file
How can I start this file automatically as a batch file ? |
| Sat 21 Jun | Ross | I use standard imput for FTP program:
C:\> FTP -n -v hostname < ftp_commands.txt
ftp_commands.txt has got this form:
USER login password
CD mydir
...
GET myfile myfile.xt
QUIT
The bad thing about it is ftp_commands.txt has got a login+password info.
I do not like it, even when I make user have to pass login and password when calling to the .bat.
Then internal use of %1 %2 vars, then create the command file, then calling ftp and then deleting command file
I was not able to pass a command file to Win98 FTP *AND* ask user for login and password without have to save them in a file. If somebody knows about it... |
| Sat 21 Jun | www.marktaw.com | Thanks. I was going to ask about this same topic. |
| Sat 21 Jun | mb | Or use curl as someone else mentioned on a recent thread. |
| Sat 21 Jun | Colin Newell | The solution is the -i flag.
Create a file with the commands, for example
open host
user username password
bin
get blah
put something
bye
and then do ftp -n -i < that_file.txt |
| Sun 22 Jun | Simon Lucy | One of the almost forgotten byways of traversing the net in the saturation of HTTP has been the use of email to use other protocols, such as FTP.
In the olden days, say before '92, it was common to have to use the Internet as little as possible (in my case it was because of dial up and using a KA9Q TCP/IP stack).
So virtually all the common protocols, ftp, gopher and so on, that returned data could be run by sending mail to a mail server that understood such requests. Much like web services really. Nothing much changes.
http://www.faqs.org/faqs/internet-services/access-via-email/ |
|
| embedded sql engine? | Sat 21 Jun | ron meyer |
| we are developing a shrink-wrapped software product and we need an sql engine. and we want to make it as cross-platform as possible (at least linux and mac os x).
so far the best option seems to be sqlite (http://www.hwaci.com/sw/sqlite). how do we go and embed it into the software? and where will the database files be stored?
are there any other alternatives? we do not need any fancy sql stuff, just lots of lots of data and some simple select statements. thanks in advace! |
| Sat 21 Jun | FullNameRequired | if you dont need fancy sql stuff, do you really need a _sql engine_ at all?
if the answer to that is no, metakit is _very_ good.
Its not a standard sql engine, but its database engine is fast + reliable + robust + pretty easy to follow + very well supported.
its license allows for proprietry usage as I understand it.
(I certainly hope so anyway, Im using it myself) |
| Sat 21 Jun | Craig | Firebird now has an embedded version. I have not used the embedded version, just the normal server version, and it is very good |
| Sat 21 Jun | Frederic Faure | I spent the past weeks looking at stand-alone, install-free embedded solutions. SQLite is very good, MySQL is also very good, and the FireBird Interbase looks promising but just came out in 1.5 RC3.
Work in progress here:
http://perso.club-internet.fr/ffaure/databases.html |
| Sat 21 Jun | Cletus | Advantage Local Database Server is a free cross-platform server
http://www.advantagedatabase.com/ADS/Product+Detail/Advantage+Local+Server/default.htm |
| Sat 21 Jun | ron meyer | what about sqlite? nobody mentions it - is it any good? by now i thought of sqlite as our best option. |
| Sat 21 Jun | Frederic Faure | Ron : SQLite is mentionned... :-) And very good for single-users at least. No MDAC, no ODBC drivers to take care of. |
| Sat 21 Jun | 20schwarz | I've used SQLite for about a year. Overall my experience has been very positive. I've never run into any strange errors or db corruptions (the db is just a file on disk).
My only complaint is that the query optimizer isn't very good. Often you have to hand tweak relatively complicated queries to get optimal performance. This is true of many queries that other dbs would automatically optimize.
If you are considering using SQLite, I'd recommend downloading the python binding and writing a few scripts. It's a fast and easy way to evaluate whether or not it will be adequate for your needs. |
| Sat 21 Jun | ron meyer | @20schwarz: what would you call a complicated query? |
| Sat 21 Jun | Erik Lickerman | If no fancy SQL stuff is required, I recommend BerkeleyDb from sleepycat |
| Sat 21 Jun | Nate Silva | I'm using SQLite now for a shrinkwrap project, and while my project is in early stages, I've been very impressed.
IMO you don't really need to download the Python bindings to try it out. The sqlite command-line utility will give you a very good idea of how it works. The query optimizer is intentionally simple (i.e. how you write your queries can affect performance more than with a server-based DB). You can use the EXPLAIN command to disassemble a query into SQLite opcodes, so you can see exactly what the query optimizer is doing to your statements. |
| Sun 22 Jun | 20schwarz | On several occasions, I've run across queries that take much longer to execute than they should. The simplest case that you're bound to run into involves ordering tables in the FROM clause. SQLite executes the query in the order the tables were specified in the FROM clause, so ordering your tables from smallest to largest can dramatically speed up queries.
Unfortunately, not all optimizations are as straightforward. Sometimes it becomes an exercise in figuring out how to specify a query such that SQLite executes multiple joins under certain conditions in a particular order. This isn't necessarily difficult, but can eat up some time.
As Nate suggested, EXPLAIN can help, and if you really get stuck you can get relatively inexpensive support from the original founder/designer.
http://www.hwaci.com/sw/sqlite/support.html |
| Sun 22 Jun | Pablo | CodeBase is the way to go. |
|
| Finding People | Sat 21 Jun | Marc |
| I am sure that what I am about to say will generate a rash of emails. But hey, Im a big boy. Bring it on!
Why is it so damn hard to find good people to hire?
For all the talk about joblessness in this industry, my experience is that 90% of those without a job deserve to be. From the mountain resumes Ive seen in the last few months, not one has fit the bill.
I have found plenty of displaced academics who can talk all day long without producing anything worth while. The only real skill they have is the ability to ask for 6 figure salaries with a straight face.
There seem to be a never ending supply of HTML dudes who fancy themselves programmers because that know how to make text bold. I guess we can thank the 90s for this class of code warrior.
Oh, and dont forget the Russians. Anyone need some Russian programmers for 90k a year? I have a slew resumes from them. You can have them for free. I’ll even pay for shipping.
Those that I have found with actual experience and/or skills seem to fall into three categories; people who manage to have less tact than a 4 year old with ADD, people who smell like onion bagels (I have no idea why this is, but it is *always* onion bagel), and people who just plain scare the crap out of me.
So where do the sane developers with skills, tack, and working showers live?
We are looking for someone who wants to work on commercial software (shrink-wrap) using .NET and SQL Server.
If you know someone who would like this, send them to Boston please. |
| Sat 21 Jun | Daniel Shchyokin | Are you taking QA types too or just programmers? |
| Sat 21 Jun | www.marktaw.com | They all have jobs? |
| Sat 21 Jun | Marc | I'm looking for a programmer.
It is a commercial software app that is being built using .NET and SQL Server. It is a desktop application (Winforms) but will also have some web, PDA, and Tablet PC interfaces as well.
This is a re-write from another language and database platform if that matters to anyone.
(Yes, I know. Never re-write. It is caused by a license issue, otherwise we wouldn't be doing it. ) |
| Sat 21 Jun | Marc | I think you are right Mark. I've found three very interesting people on the net (personal website with their resume) but each of them was happy where they were. |
| Sat 21 Jun | Philo | 'people who smell like onion bagels (I have no idea why this is, but it is *always* onion bagel)'
THAT'S what that smell is! I think you've nailed it!
Philo |
| Sat 21 Jun | le bob | yeah, we spent 6 months looking for a developer in silicon valley. you'd think it'd be easy but lots of resumes, a dozens of interviews, but just not the experience or background that we were looking. |
| Sat 21 Jun | Employed Russian | So what was wrong with all the Russians? |
| Sat 21 Jun | Marc | Nothing is specifically wrong with the Russians. But I'm looking for 'Local Candidates Only' and last I checked, Siberia isn't very local to Boston. :) |
| Sat 21 Jun | Marc | Just to be clear, it is stated in every add that we have run that we were looking for local candidates only. |
| Sat 21 Jun | Another Employed Russian | Yeah, I second this question!
And to return insult, the job seems to be not that hard. If you can't find a programmer for THAT job, you're clueless about hiring.
On the other hand, if you can just start liking onion bagels...
On the serious note, never, and I mean, _never_ insult people based on their nationality. You stupid prick. |
| Sat 21 Jun | Another Employed Russian | Ah, I posted after your reply. So you can pay for shipping from Siberia but are too cheap to pay H1B costs? |
| Sat 21 Jun | Marc | I do apologies if I offended anyone with the Russia comment. It really had nothing to do with nationality. And it was meant as sarcasm only.
I really should have used the term 'off shore' because that is really what I meant (um, editable posted Joel?).
As for paying H1B costs, we are a 10 person company. There is no way we can afford to sponsor someone.
Again, I apologies if I offended you. It was complete unintended. |
| Sat 21 Jun | Panna | Marc,
I can't believe you.
Or I don't trust your offers.
Or both.
You are looking for someone working on a mainstream technology.
And all the people are stinking or only able to create a html form??
What are you willing to pay?
60% of the usual. |
| Sat 21 Jun | GiorgioG | Check your email Marc... |
| Sat 21 Jun | Bored Bystander | >> Those that I have found with actual experience and/or skills seem to fall into three categories; people who manage to have less tact than a 4 year old with ADD, people who smell like onion bagels (I have no idea why this is, but it is *always* onion bagel), and people who just plain scare the crap out of me.
>> So where do the sane developers with skills, tack, and working showers live?
I posit that they're steadily leaving programming. Why? Offshoring + no respect + no viable career path + continual planned obsolescence + HR culture that treats us as commodities. The only ones left tend to have the insight of grapes or cranberries.
I remember when I first got into contracting in the mid 90's. Some prospects seemed to be absolutely *amazed* then that someone (anyone!) of my age and skill level (then mid 30s) and relative ability to deal sociably with others was actually willing to do real deliverable software work.
I should have taken that as a hint. To say that I'm a developer in my mid 40s' is pushing the bounds of science fiction in most people's eyes. |
| Sat 21 Jun | Employed Russian | 'looking for local candidates only'...
It is my impression that Boston is literally filled with quite sharp (but unfortunately unemployed) Russian programmers, which is why I asked what was wrong with all of them.
Where you careful in distinguishing between 'local' Russians, and the ones from 'Siberia', or did you just assume that they were all 'non-local'? |
| Sat 21 Jun | Marc | Hey, look. I apologized for what I said. It wasn't indented to offend you in any way. I'm sorry that it did. There was no racist or nationalist indent to it. I can do and say no more than what I have.
Making the remark was stupid and insensitive on my part.
But now you are just baiting. And that is uncalled for as well. |
| Sat 21 Jun | mackinac | Marc, on first reading it is difficult for me to believe that you are having any problem at all. My employer, a small contract software development company, just had its first layoff ever and is losing 1/3 of its technical staff. Since we do mostly telecom and embedded systems type work I don't know if any would be interested in your job, but that is an indication that the job market is really still in bad shape.
You gave us your employer's viewpoint of the job search process. Could you take a look at your company from the viewpoint of the job hunter? If you have read Joel's descriptions of Fog Creek and how they hire people who are 'smart and get things done' you'll see one example of a company that was built with the idea of being attractive to quality employees, not just posting job notices and expecting to be inundated with great resumes. Why would the sort of person you want to hire want to work for your company? Why would they even consider applying?
Where are you getting applicants? As a job hunter I figure my best chance is through networking, finding a job that someone I know knows about. Have you used this process from the other end? Your current empoyees may know a few developers looking for work. Or you may be familiar with other companies in your same line of work that are having difficulties and might be about to have layoffs. |
| Sat 21 Jun | Guy Incognito | Hey German boy, go back to Germania! |
| Sat 21 Jun | Guy Incognito | Russians smell like Vodka! |
| Sat 21 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | It depends on how picky you are on hiring. I don't think it's any easier to hire people when you're being choosy, whether you have 10 or 10,000 applicants to choose from. |
| Sat 21 Jun | Another Employed Russian | Marc, apologies accepted. And please accept my apologies for using the word 'prick'. I was in a bad mood last night! :)) Good luck in your search. |
| Sat 21 Jun | old school | marc, i am a boston based programmer. (happily employeed with too much contract work)
there are a few issues. one is that your job seems really boring, no offense. thus you aren't going to get any of the local MIT braniac types who are looking for something interesting to work on. the other is that you are weeding out people without social skills. anyone in boston with the skills you are looking for PLUS a great personality and people skills is probably making a mint as a consultant. |
| Sat 21 Jun | mackinac | old School, what kind of work is available in Boston? In the MD-DC-NoVA area there are lots of jobs - active security clearance required. That is, jobs for people with jobs. Not much for the rest of us.
Presumably Marc needs someone who has a chance of being able to do development for .NET for an application that uses SQL Server. But he never said exactly what skills or experience are required for his position.
I hope he didn't give up on this thread. There are a lot of us looking for a job that would like to know why he is having such a hard time finding someone. |
| Sat 21 Jun | old school | mackinac, there is work doing almost anything in boston, but you do probably have to know someone. with contacts, it seems to be hard to be out of work here. without contacts, you are probably applying to marc's company without success... |
| Sat 21 Jun | old school | also, to re-ignite the russian flame fest. the job marc describes seems like the perfect type of job (porting an existing system to new architecture) to outsource to an offshore firm. and i've heard the russians are pretty good at that sort of thing. |
| Sat 21 Jun | John Rosenberg | You hire programmers based on how they smell and look? That's your problem. You're too stupid to understand that hiring developers has nothing to do with how well someone is groomed. |
| Sat 21 Jun | Bored Bystander | >> You hire programmers based on how they smell and look? That's your problem. You're too stupid to understand that hiring developers has nothing to do with how well someone is groomed
Hiring is ALWAYS discriminatory. And employers are allowed to discriminate based upon whether they like or don't like someone.
In fact, it's even more stupid to hire someone with absent interpersonal skills and inability to focus, only because they have tech skills. What good are technical skills if the person is a complete misfit and can't work with anyone? |
| Sat 21 Jun | John Rosenberg | Since when did how someone looks or smells have ANYTHING at all to do with their ability to focus? Are you even reading the same thread? |
| Sat 21 Jun | GiorgioG | Well,
I think personal hygene, no matter where you work (even at home) is important ;-) I'm sure you all know an IT person that smells funny or has so much back hair that it deserves its own haircut ;-) No offense, but I don't care what profession you choose - you should have a minimum level of physical hygene... It doesn't matter if the client won't see you =) |
| Sat 21 Jun | Erik Lickerman | What does having back hair have to do with hygiene? If you shower regularly, presumably your back hair would be clean and shiny.
I think this thread raises an interesting point. The high level of tech unemployment of late, though due to the tech recession, is exacerbated by the huge influx of talentless wannabes who found they could temporarily make a lot of money by claiming to be programmers. In my last company we interviewed a Java programmer. I sat him at a computer and asked him to right a 'hello world' program. He looked at me as though the jig was up.
This recession will shake out a lot of the programmers and, when the recover comes, tommorrow or in ten years, those fo usd who are left will have jobs again. Until then, it is government cheese all around! |
| Sat 21 Jun | GiorgioG | >What does having back hair have to do with hygiene? If you shower regularly, presumably your back hair would be clean and shiny.
Let me clarify - a guy I used to work with had so much back hair that it would literally be coming out of his shirt...it was unsightly. People should have a minimum level of personal hygene is all I'm saying =) |
| Sun 22 Jun | Marc | I want to clear a few things up about this.
First, this is a commercial application sold to small businesses with 1.5m or less in revenue. The average system is 5 PCs (our top is somewhere around 100 users in 4 locations). This isn't a large CRM or ERP application, it is a small business management application along the lines of QuickBooks.
Second, we are a small company with a single developer (me) and are looking to add a second developer. This position is for a mid-level developer using C#, VB.NET, and SQL Server. Really, I'm looking for someone moving on to their second or third position. 2-3 years of experience is fine. I'm also open to recent graduates that have some exposer to VS.NET.
As for the personal hygiene, this position requires personal contact with our customers. This stems from my personal philosophy that unless you intimately understand the customer you will never be able to build quality software for them. So we need someone that can represent the company to our customers.
Also, I have to sit in a room for 30+ hours a week with this person. If that person and I cannot click then it is going to create more problems than it solves. To put it another way, if they don't understand why chickens with lips are funny then it just isn't going to work.
On the subject of off-shore development, I don't see how this could work based on what I outlined above. Off-shore works for a number of things but it doesn't allow for interaction with the customer. And as this person will 'own' (in Microsoft terms) areas of the application, it is imperative that they can fully realize the needs of our customer base. |
| Sun 22 Jun | Michael Moser | i think that some companies have just got too picky.
- there are places that look out for
* 10 years of .NET experience
* great interpersonal skills (not always typical for of a programmer)
* yes, MBA would not hurt - you should understand business requirements
- some places look out for people who did exactly-the-same junk.
if you have done-something-very-similar then you are out.
- 'ability to learn' is out; you have to fit in like a screw into the bolt. |
| Sun 22 Jun | Marc | I'm not sure why think this is what I'm asking for.
I'm looking for 2-3 years with exposer to .NET. That doesn't sound very picky.
Maybe I'll write up someone the actual interviews I've had. I don't think I'm being too picky.
One fellow spend 30 minutes telling me how much he hates Microsoft, how much he loves his iBook, and how Linux will win the desktop. That is fine and all, but not when the job is to build Windows applications using the .NET Framework. It would be like auditioning for Matalica and telling them how much heavy metal sucks. |
| Sun 22 Jun | Marc | Oh, and 'ability to learn' isn't out. It is absolutely key. |
| Sun 22 Jun | Michael Moser | 3 years of .net is rare - it means that the person in question would have to be a very early adopter.
Three years ago people would hesitate (at least a bit) with going for .net
few people would take this fresh new thing .net in order build _dependable_ applications.
3 years ago you would be happy with somebody knowing PHP ASP SQL DHTML .... add another ten WEB acronyms stuff. |
| Sun 22 Jun | Michael Moser | ... add to that that the mainstream is still not .net. |
Sun 22 Jun | | Micheal,
I'm looking for 2-3 years with exposer (sic) to .NET
He's not looking for 3 years of .NET experience. Only 2-3 years of software development with SOME .NET. |
| Sun 22 Jun | Stephen Jones | Marc,
How many people will have been using .NET for three years? I seem to remember that Albert, who has years of experience writing stuff for small businesses, only got round to looking at it last weekend or so.
'Exposure to' is a meaningless phrase and most people try and get through life without being 'exposed' to things. If you want somebody with experience writing database business apps ask for somebody with three or four years experience either in VB and SQL or in Java (or even better both) and put a few months working with or studying .NET as a bonus.
If you put something stupid in the ad, then you will only get the bullshitters and the incompetents. |
| Sun 22 Jun | Tom Vu | You never said what you pay? Is your firm profitable? Are you an arrogant prick that no one wants to work with? What happens when the rewrite is done...do you ditch the new guy?
Maybe you should find out why anyone would want to work with you. |
| Sun 22 Jun | Simon Lucy | Hmmm not to seem like I'm heaping ordure on your head, but regarding your interview with the guy who seemed entirely unsuitable; how did he slip past the initial filtering of the CV?
Or is the cult of the minimalist CV and resume making it virtually useless for the purpose its intended? |
| Sun 22 Jun | Philo | Methinks some people have missed the point of this thread...
For those who took on Marc because they thought he was asking for 2-3 years experience with .Net - despite Marc's correction, that would still validate the point. Thread after thread on here berates the job market, yet here's a guy looking for someone that can't even find anyone close. Even if everyone who read the ad thought he wanted 2-3 years .Net experience, there should be plenty of those around. (.Net had a HUGE beta - the beta newsgroups were immensely busy). If the rebuttal to that is 'well of course guys who've used .Net since early beta have jobs' that belies the 'nobody can get a job' argument, doesn't it?
Tom Vu - I find your inquiry abusive and insulting. More to the point, again you miss the root of the argument. People aren't complaining 'only crappy firms are hiring' - it's 'there are NO JOBS'. Anyway, your questions could only be addressed if Marc was interviewing good people and not getting responses to offers. But he can't even find good people to interview.
Simon - I suspect the anti-MS type probably had MS experience. I'm hoping Marc isn't looking at resumes that are 100% Java/*nix and thinking 'I'll interview this guy and see how he feels about working VB.Net on Windows'
Philo |
| Sun 22 Jun | | >> 'good people to interview'
The problem with that phrase is that you use the term good to define people and on top of that you only mean good in the sense that you think about it. I don't like you for reasons X,Y,Z and I'm not going to hire you. Plain and simple. You nor anyone else can judge someone to be 'good'. That's problem with hiring. Maybe we should all become communist and simply say here work with this person or we'll throw you in jail or chop your head off. I find it very insulting to be judged as 'good' or 'bad'. I find it very insulting that people would even think of me in such a way, not worthy of their employment. I am normally upbeat, clean shaven, educated, have military experience and a very nice person and I can't seem to find programming work. Why because I'm being unfairly judged by the people who do the hiring. 'Finding good people' pisses me off. Define not good, that way I'll know if I'm 'good'. |
| Sun 22 Jun | Bored Bystander | From the other side of the hiring fence - I've found (here in the Midwest) that one can walk into interviews literally dripping with the technology that the company is asking for, and be nitpicked to death and treated like a pathological liar because the local techie prima donna du jour who has automatic veto power over all hiring has decided that he simply doesn't like you.
It doesn't sound like Marc has set a very high bar and he's having problems finding anyone who has enough self esteem to bath regularly, use mouthwash, and have a reasonable ability to communicate conversationally with other people. I do find it interesting that even asking for decent personal hygiene and a personality above that of a 4 year old is offending a lot of people here.
Of course (and dont' take this personally, Marc) I could walk into that interview with the exact experience he's seeking, and feel that I was summarily dismissed due to some absolutely unknowable factor that is never mentioned. I don't know. I'd have to know Marc personally and take the interview myself in good faith in order to ascertain whether the criteria seemed fair or not.
Maybe that's the crux of the matter. Usually, the people in this industry doing the hiring are INCREDIBLY discriminatory to an idiotic extreme of their own personal biases, to the extent that even innocuous statements are taken as politically laden with subversion. One big 'problem' is knowing about or having an interest in technology that is different from the hiring entity. IE: if you state in an interview that you enjoy messing with open source and Linux, I know for a fact that many, many MS type shops will mentally withdraw and cross you off the candidate list as 'too open sourcy' or interested in irrelevant and threatening things. A clash will be inferred where none existed.
And, it *never* pays to be smarter than the techies with whom you're interviewing, or to know more or be more accomplished than they are. You're instant threat material and dead meat in that context. |
| Sun 22 Jun | Christopher Wells | Never say never. I jumped at the chance to hire the first person I interviewed: he knew more than I did about assembler programming (I had written an assembler, whereas he had written an entire IDE). I wanted to hire him because, having fired the previous programmer for being drunk and useless on the job, I needed the extra help. |
| Sun 22 Jun | Bored Bystander | Christopher,
You're unusually enlightened. Generally, techies doing hiring are in continual 'avoid threat to my supremacy as the all knowing and all wise' mode. |
| Sun 22 Jun | Marc | Philo: You are correct. I should have been more clear in my description. I hate to think that someone didn't apply because they misunderstood.
Although it seems these days that few people read the description before shooting off a resume. To bring in Joel's cover letter complaint, I've had many resumes that have the exact same cover letter. The last round of hiring we did, I had six cover letters that were cut & paste from the sample at Monster.com. :)
---
Tom: I normally just ignore you (I don't like to feed the trolls) but this time I think I will. Please don't send me your resume. Thank you.
---
Simon: The problem is as you suggest. The resumes today are so cookie cutter that it is really hard to discern what they bring to the table.
As for the guy who was complete off the mark; he came to us via networking and I felt obligated to at least talk to him. And as Philo said, he did have some MS exposer (albeit less than we were led to believe).
In fact, I try to talk with just about everyone who comes in with 50% of what we need. You never know what you might find and twice I have passed on the resume to others that did hire them. In this market we need to help each other out. So while I may not be able to use them, I might know someone who could.
---
Bored: Do my a favor, don't leave this industry. We need more people like you. Too many of us lack the voice to express the issues we face today in terms anyone could understand (as I proved with the ill-fated Russian comment).
The prima donna issue is a major problem. Too often, solid candidates are passed on because the interviewer feels threatened by them. This lead to less than adequate developers being hired and adds to the feeling that developers are lazy and incompetent.
Personally, I have no fear of loosing my job because someone with a 190 IQ walk in the door. If anything, I'll be praised twice as much for finding such a gem. But more importantly, I am paid to deliver a product that our company can sell. The hiring of someone smarter than I simply means that the product will be that much better.
Really, the only reason I could see there being a problem in hiring someone like this is that they likely command a salary that is higher than we could manage. And that is a constraint that I unfortunately cannot avoid.
And I also find it funny that people are offended by the minimum requirements I have set. But fear not, most seem to have understood the heavy amounts of sarcasm in my initial post. Good to know some of us retain a sense of humor. For example, I've received a number of emails about the onion bagel comment. Seems I have discovered something; onion bagel is to bad smell what chicken is too food. :) |
| Sun 22 Jun | Marc | You are correct, most techies fear smart people. But I would bet most of them don't read Joel's site. Most of the people I find here are a step above the average techie. |
|
| .NET Forms Datagrid has made me physically sick | Fri 20 Jun | realist |
| I wonder if I can sue MS for workplace stress?
Three days ago I started the mind numbingly simple(supposedly) task of populating a collection (of business expenses) and putting them in a datagrid, the only requirement was that the user could click on a column heading and sort by that column and there were a few visual things such as the color of the row depending upon how big the expense was. So I learned about the datagrid and assigning datasources and sorting columns etc.
Then came the bit about making a row a different color if, for example, objExpense.AmountOwed <> 0, and Ive got to say that it took me about 1.5 days to get this to work.
I hope Im not stupid, but the effort involved was simply astounding. Resulting in a headache and a vague nausea.
Simply finding an example took hours of web searching.
Even now I think my solution is kludgy.
Ive done similiar things with TrueGrid, MSFlexgrid, Janus, VSFlexgrid etc and its a trivial exercise, I think the TableSyles collection is an elegant burden. I think the older paradigm served us better, even though its not PC to say it.
I know I could have used any of these other grids but I wanted vanilla .NET, and I payed for it with nausea. |
| Fri 20 Jun | realist | PS - I'm not sure what my point is. |
| Fri 20 Jun | Philo | Infragistics DataGrid for .Net costs $500. You spent twelve hours on one basic thing. If your time is worth more than $40/hr you would've paid for it already (okay, different learning curve, granted).
It's a free (albeit huge) download - try it out.
Philo |
| Sat 21 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | A general warning to beware of Infragistics components. We found them to be EXCEEDINGLY heavy on the wire, both in HTML content and their use of ViewState. One of their demos (for a tree control, if memory serves), generated a 2MB response page (800KB of ViewState and 1.2MB of HTML).
That's SERIOUSLY BLOATED. |
| Sat 21 Jun | Marc | I found the same thing with Infragistics. They look great but some at a huge cost.
ComponentOne seems to be a bit better in this regard. |
| Sat 21 Jun | Philo | Hrm. I read that the issue was winforms, but looking at the post, now I don't know why I got that idea - he doesn't say.
If it's web forms, then all that stuff is easy once you understand The Way Of The Datagrid.
Philo |
| Sat 21 Jun | Marc | 'Zen & The Way of The Datagrid' by Philo
:-) |
| Sat 21 Jun | Cletus | You might want to check out DevExpress components.
They have a .net data grid component called XtraGrid
http://www.devexpress.com/products/net/xtragrid/index.asp |
| Sat 21 Jun | realist | Yes the datagrid in Winforms is a bit different, it has slightly less functionality than ASP datagrid.
Basically I got it all to work, but it was way, way too much buck for the bang. I'd be interested to know if the MS Datagrid is getting used much or if people are turning away from it. Then again, it could always just be my problem. |
| Sat 21 Jun | Dave | We're using the MS DataGrid.
But that's just because we spent about 2 months straight fixing Microsoft's bugs and making it work the way we need it to work.
Simple examples: There is no simple event such as 'ComittingRow' or something along those lines, which would allow you to keep the user on a particular row if it failed row-level validation (for example, if it's missing one of the required columns.) We ended up having a custom-code a huge workaround which navigated the user back to the problem row.
Now, there IS a way to have the datagrid display a message and bring the user back to the row they were editing. There are two problems: 1) the message is hard-coded. 2) it gives the user the option to NOT go back to the row! How useless if you're checking for required data!
Nasty.
We have been looking for 3rd-party grids, but none has met all of our requirements. Most seem to implement lots of 'neat' stuff, but we haven't found any that implement what we need in a simple, straightforward fashion. The Xceed grid has come the closest.
Knowing what we know now, both about how much time it takes to get the MS grid working the way we want and the limitations of third-party grids, we would have spent that two months writing our own grid. That would have been the best investment we could have made.
(Note: Our product is heavily grid-based, we have exacting requirements for the user experience with respect to the grid, we need to closely match the user experience of an existing product, our product sells for $6,000 a seat, and our expected product lifetime is five to ten years.)
Just my $0.02. |
| Sat 21 Jun | somebody | Maybe I'm missing some important detail, but why won't the following work?
void TheGrid_ItemDataBound(Object sender, DataGridItemEventArgs e)
{
switch (e.Item.ItemType)
{
case ListItemType.Item:
case ListItemType.AlternatingItem:
if ((Decimal)DataBinder.Eval(e.Item.DataItem, 'AmountOwed') != 0m)
e.Item.BackColor = System.Drawing.Color.Red;
break;
}
} |
| Sun 22 Jun | Duncan Smart | SomeBody: that works for the ASP.NET DataGrid -- I assumed Realist was referring to the WinForms DataGrid (although they refer to it slightly ambiguously as '.NET Forms Datagrid'). |
| Sun 22 Jun | anon | Does anyone know of a good tutorial for dealing with the WinForms DataGrid? I'm beginning on a project using it, and I've had some difficulty myself (not to the point of nausea yet ;-)). |
| Sun 22 Jun | Duncan Smart | George Shepherd's WinForms FAQ is great:
http://www.syncfusion.com/FAQ/WinForms/
And there's some good links and stuff here:
http://noiseehc.freeweb.hu/ |
| Sun 22 Jun | realist | I've 'almost' got the grid working as I want to.
What I need to do is to allow the user to select multiple rows (they must be colored as selected) as well as some different fonts per row depending upon the value of certain columns.
I thought I had it all worked out and then the user wanted multiple row selections.
This throws the color scheme into kaos. I seem to be working far too hard to achieve what I want. |
| Sun 22 Jun | somebody | Ah, I read the discussion of viewstate and naturally assumed we were talking about Web Forms. I guess I should've payed more attention to Realist's posts.
Still, it's surprising that the Windows Forms version of DataGrid is harder to work with than the Web Forms version. If you find a solution as straightforward as ItemDataBound, do let us know. |
|
| Cowardly Programmers??? | Fri 20 Jun | Gordon Freeman |
| Noticed all the heat that Joels comment about the a pointless bookmark redirect dialog caused. Quite a few voices raised explaining that the user knows whats best. The user should run the show.
Can that go to far?
Having worked on projects where users are supposed to come up with the requirements, Ive seen programmers turn meek at the hint of a decision. Users own all the business knowledge - what would you do if you have a choice of functionality between A or B?
Yes, ask the user. But sometimes users dont understand your A and B, and sometimes users dont have time and yes obviously theres not a lot of buy-in on projects of that nature.
But I have seen a *lot* of situations where the developers code in either (a) BOTH A and B with an internal switch which adds redundancy or (b) ask the user EVERY time which one they want.
Anyone else encountered this kind of thing? |
| Fri 20 Jun | Philo | Yep. Personally I suspect that's what's lurking under the surface when developers want to create requirements documents to the nth degree - they don't want to have to make choices; they want a complete roadmap for the entire application.
Philo |
| Sat 21 Jun | Bored Bystander | It's the duty of a professional in any field to forge a usable and beneficial result out of raw user wishes and wants. The real problem is that the programmer is not being acknowledged in the relationship as the party best able to create the result.
In short, most organizations don't treat the programmer as a professional. They shortcut the programmer's stature to happy fingers on the keyboard. That is the real problem.
Programmers may be whipsawed by user demands for a number of reasons. Management may take a political stance that the user (or surrogates thereof) are 'God'. Or, as you posit, the programmers may be meek or overly humble. Or there may be other pathologies at work.
But if doctors or lawyers took their clients' 'wishes' as a literal directive, the patients would die more often and the defendants would lose their financial asses with regularity...
This is just another point that proves that programming is not really a profession, because it's generally not respected as such. |
| Sat 21 Jun | Marc | Board,
I think you have it right. Of course part of the problem is that, unlike doctors and lawyers, we lack a baseline standard of what a programmer is.
One group might classify a programmer as a practitioner of computer science. Another might say it is more of an artistic discipline. If you ask 100 people and you get 100 answers.
The truth is that they are all correct. There is a scientific component, an artistic component, and even a sociological component. And I bet you could think of a number of others as well.
The question is; can we ever come up with a baseline? And even if we could, would a medical board/state bar organization for programmers be accepted? Even more importantly, would a “Board Certified Software Engineer” be treated any differently? Something tells me that the current climate may be too ingrained for it to matter. |
| Sat 21 Jun | Bored Bystander | Marc,
I don't get my hopes up for respect to ever visit programming. If anything, we live in a time where hard work and virtue are sneered at and deliberately disrespected, often due to powerful financial incentives to emasculate certain classes of workers. Engineers have had this state of affairs for years, now it's our turn. See my thread:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=52143&ixReplies=7
I have an exit strategy of sorts, but I give little hope to a resurgence of 'programmer pride'. Most are too clueless to realize when they're being given the shaft. |
| Sat 21 Jun | Marc | And worse, they are often given the shaft by other Programmers. |
| Sat 21 Jun | Quicherbichin | 'This is just another point that proves that programming is not really a profession, because it's generally not respected as such.'
As long as the IT profession is percieved as something that any long-haired, sandal wearing, goatee sporting, I don't need no stinkin college degree, loner, dropout, hacker kid can do, the profession will get no respect. In all honesty, would you respect someone like that?
Think of the other professions that get respect and recognition: doctor, lawyer, engineer, etc. They all have several factors in common: high-barrier to entry, profession education, accreditation, licensing, certification,
professional societies etc etc etc.
If software development wants to establish itself as a serious profession then it's time for this field to grow up and follow the road to establishment as other professions have. Otherwise, quit your bitchin and take it in with a
smile, all the while saying 'Thank you sir, may I have another'. |
| Sat 21 Jun | www.marktaw.com | > I've seen programmers turn meek at the hint of a decision <
Sure. They've been trained to do it. They make a decision and it comes back and bites them. Even a silly arbitrary and entirely temporary decision that the user is meant to change.
'Why did you make the button red?'
'The color of the button is trivial, what do you think of the application.'
'I think it would be better with a blue button... maybe a navy blue.'
I speak from experience. |
| Sat 21 Jun | SteveM | Yes, but how often do you then find yourself arguing violently and passionately in defence of your lovely red button when really it was an arbitrary decision and you couldn't give a damn?
I speak from experience ;-) |
| Sat 21 Jun | Gordon Freeman | I can see that if some developers get beat up by users then, sure, it's a conditioned response. Trouble is, I can take it, but now the developers take their turns beating me up to stop me before I get near a decision. |
| Sat 21 Jun | . | Gordon, the thing about software development is that there are continually other groups - non-developers -claiming greater expertise.
UI design is one of these. It used to be very fashionable for 'UI experts' or even graphic designers to claim superior knowledge of software design. One of their shibboleths was that users are always right etc etc.
During the 90's, as HCI people starting doing real UI design, that discipline slowly discovered an uncomfortable reality - users don't always know what they want, and are sometimes plain dumb. Sometimes, egads, programmers were even right.
Programming needs advocates to stand up to all these various know-it-alls from time to time. |
| Sat 21 Jun | . | Quicher ... the term: 'IT professional' is actually is used by people who are really just para-professionals. They can't call themselves programmers, so they use a vaguer term. |
| Sat 21 Jun | Smurf975 | Actually this time I didn't agree with Joel. Normally I do or have no opinion.
But I would like to get a message is something has changed. The same reason why I don't let IE autosearch when I entered a wrong URL. I prefer to receive a list of options and choice my own. However I'm not your every day user. So maybe for computer handicapped people its usefull. |
| Sat 21 Jun | Smurf975 | I'm just saying this because I have had programs who do everything automaticly mess up. |
| Sat 21 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Don't take past failures as an indication of the soundness of an idea.
'Programs in the past that did things automatically screwed up.' That tells you that they made bad decisions, not that doing things automatically is bad.
As a hypothetical to illustrate my point, imagine looking for someone to compute some mathematical equations for you. In the past, you had someone try to do it with a computer but they failed. So now you summarily reject anybody who uses a computer to do math because of this past failure? The failure was a failure of person, not necessarily a failure of idea.
Evaluate the soundness of an idea independent of any perceived past failures of implementation. |
| Sun 22 Jun | Darren Collins | Brad, I don't think that's quite what Smurf was saying.
If I'd hired a mathematician in the past and he used a computer and failed, I'd want to double-check the work of the next one I hired. The previous failure would make me wary. I wouldn't just not hire one that used a computer - we all agree that'd be ridiculous.
It's the same with these auto-fix-it features. I've been burned by them in the past, and so now I want to double-check each decision they make. I don't want to get rid of them, I just want them to tell me before they make a change. If I find myself always selecting the same option for the change the dialog wants to make, eventually I'll click on the 'don't remind me again' tickbox.
But those dialogs have to earn my trust first! |
| Sun 22 Jun | Marc | I didn't notice when I looked at the site but can SQLite be used in a multi-user environment? I'm thinking 5-10 users or so. |
|
| Rename in DOS | Fri 20 Jun | Horizon |
| Can I remove the 1st character of a hundred of files
using the DOS command RENAME
If yes how ?
All my file have got the same structure
OXYZ123456
I want to remove the O (for Old) for all the files using
a dos command |
| Fri 20 Jun | anon | I beleive you can use wildcards with rename
e.g.
ren O* *
(try it on a sample diretory to make sure). |
| Fri 20 Jun | Tim Lara | I think that wildcards will only work if you want to replace 1 or more characters with 1 or more different characters. I couldn't figure out how to replace a character with 'nothing'.
I had to do the exact same thing the other day, so I just ended up using VB/VBA:
----------------------------
Public Function fDropFilePrefix( _
ByVal sPath As String, _
ByVal sPrefix As String _
) As Boolean
Dim sFileName As String
Dim sTemp As String
sFileName = Dir(sPath, vbNormal)
Do Until sFileName = ''
sTemp = Mid(sFileName, Len(sPrefix) + 1)
Name (sPath & sFileName) As (sPath & sTemp)
sFileName = Dir
Loop
fDropFilePrefix = True
End Function
----------------------------
?fDropFilePrefix('C:\dev\old files\','old') |
| Fri 20 Jun | Tim Lara | oops...disregard the boolean return value. I didn't bother to finish the error handling. ;-) |
| Fri 20 Jun | anon | You're probably right. I'm pretty sure that
ren *.htm *.html
will work |
| Fri 20 Jun | Norbert Burger | Horizon,
If your files actually do begin with the letter O, then you can use the following DOS command to rename them:
for /f 'delims=O usebackq' %i in (`dir /b O*`) @ren O%i %i |
| Fri 20 Jun | Tim Lara | Yep, that does work. Or:
ren old*.* new*.*
seems to work as expected, too, but I don't know an easy way to just get rid of the 'old' part.... |
| Fri 20 Jun | Tim Lara | Wow, Norbert. That is way beyond my DOS capabilities. Now I'm intrigued.
However, I couldn't get it to work on my machine - I get the message:
'@ren was unexpected at this time'
Is there a typo? |
| Fri 20 Jun | Brad Wilson (dotnetguy.techieswithcats.com) | Norbert's 'for' command was, I'm almost sure, going to require that you're using cmd.exe from an NT-class OS. |
| Fri 20 Jun | Marc | Norbert! You have just gained über geek status for that one. |
| Sat 21 Jun | T | I had some problems with 'complex' renaming of files as well in windows, so I made a simple (very simple) utility that rename files using regex.
http://80.111.74.6:8080/~anders/NewHome/projects/rxRen/rxRen.html |
|