Many of us wear clothes produced in China, drive Japanese cars, and put cheap foreign memory in our assembled overseas computers. A few mundane IT jobs go overseas and then we are up in arms, demanding special favors from the government. I don't get it.
VB/C/C++ programmers did not move over in droves as planned and STILL have not. I have yet to find a good reason why they should
Our project is currently using VB6 and C++/COM for our development, and is considering moving to.Net/C#. C# is a much more powerful language than VB6, and is less error prone than C++. Developing in C# is a lot cleaner than developing in COM. You also have a huge integrated, well documented, class library available. The major hang up is that we have a lot of legacy code that will have to be integrated somehow. We don't have a plan for that yet.
Yes, C# is basically Java, but it has one big advantage, performance. My C# programs run about twice as fast as my Java programs, and GUI performance in C# blows away a similar Java/Swing program. I think the performance difference is due to C# being designed to use a JIT from the start without the intervention of a virtual machine. Java requires a virtual machine to be running even after a program has been JITed, since many Java libraries make callbacks into the virtual machine using the JNI facilities.
I hope Mono is successful so that C# will become a multiple OS language.
What most of us would do it we ran across a program this confusing, is to write a little test program find out what happens. When you have a compiler, you really don't need to know every dark corner of a language.
I agree. C++ is a powerful and expressive language. Mature programmers will use that power to create clear, elegant, easy to understand programs. Immature programmers will use it to create programs that nobody can figure out.
I love programming, but I sit at my desk all day, and then go the gym to try to stay in shape. I wouldn't mind switching things around so that I do some manual job that keeps me in shape and then program as a hobby. It would be hard to find something with the same pay and benefits though.
I'm a programmer. I hate giving presentations, so I say I don't give good presentations. If the job requires a lot of that, I don't want the job anyway.
We had a candidate once that performed very well during the interview. Personable, communicated well, familiar with the ins and outs of C++, did outside reading and had read the right books. Someone pointed out a couple of spelling mistakes on her resume. I hadn't even noticed them. I brushed them off and we hired her anyway. She was terrible. Maybe spelling mistakes are a good indicator.
To a certain extent, I agree with you. Large standard class libraries, like those available in Java or.Net and standards like XML help a lot. However. I live in a 15 year old house. If you go down the street and look at a new house, it is pretty much the same. But the programs we are writing today don't look anything at all like the stuff we wrote 15 years ago. Computer technology evolves so fast that you simply don't do the same kinds of things this year that you did several years ago. This makes developing standard components a lot harder.
Look at what visual development tools like Visual Basic have done to demystify the previously "obscure art of programming" and attract millions of new people to programming
I think I found one of the reasons we have so much bad software. Being able to drag and drop buttons to make a GUI doesn't mean you can handle the other aspects of programming. Some things (like GUI appearence) may have gotten easier, but programming is still an art that requires a certain kind of analytical ability. There are many programmers that can write bad, buggy software, but there is a shortage of programmers that can write good, well crafted software.
First, you have to learn the basics about computer architecture and computer languages. You need to know what a compiler does, what an interpreter does, and what an operating system does. You need to know how programs are organized in memory, thing such as the difference between heap allocated and stack allocated memory. I can't really recommend a good book about these things because I have never found one. Maybe someone else can recommend one.
I know his isn't popular on/. but I would recommend buying the C# /.Net personal development system and a good tutorial on C#. C# is a very "protective" language that will catch a lot of errors at compile time. Also, the development system has a very good debugger and has a method completion feature that is very helpful. C# is part of the C family of languages, so learning it will ease the path to more manly languages such as C++ later. These features are useful for everybody, but especially useful for a beginner.
The following are my two favorite programming books:
The C Programming Language, by Kernighan and Ritche - a classic text for clarity, one one the best tutorials written on any subject.
Refactoring, by Martin Fowler. Best book I've read about how to write clear, elegant programs.
Not necessarily true. I have a friend whose company was bought out, and the first thing the new managers did was fire all the people who were "making too much money" (i.e. the best programmers). He's working for a startup now for free. In a year I guess he will be flat broke or a millionaire.
My approach is quite different (but not necessarily better). I usually make a hire decision from the interview. The main thing I look for is that the applicant has in depth knowledge of some aspect of software development. I can't tell that from a resume. Of course, I make mistakes. Some people just don't interview well. We had one applicant who I couldn't get two words out of. He was hired by my manager based on his academic record. He turned out to be a super star programmer. He was a man of few words, but when he spoke it made sense. He was highly respected by his coworkers and his customers.
I consider thank you notes or emails as gimmicks. I don't consider them one way or the other.
There are many different approaches to hiring. I don't think any method is fool proof.
Carl Sagan defined intelligent life as a species that can develop an advanced technology. He defined an advanced technology as a technology that can communicate with other intelligent life in other solar systems. As a species, we just barely qualify. However, individually most of us couldn't invent a spear.
I have always preferred using a good layout manager over a drag and drop GUI builder. Look at most VB dialog boxes. Most of them can't be resized and they have ugly "Chicklet" buttons. The first Grid like layout manager that I used was the Table widget that came with WCL (GUI stuff for X-Windows/Motif). I am looking at the code and it contains the names David Harrison and David Smyth, with dates of 1989 and 1991. I don't mean to belittle your contribution but I just want to add some history to grid style layout managers.
One interesting extension that I have added to the Java GridBag layout manger is to use an array of components to setup the constraints. Here is an example:
The GridBagX layout manager sets up a window where canvas will be resized in both directions and the buttons will only be resized horizontally. The special components freeze and resize are defined in the GridBagX object.
For all practical purposes, China and Taiwan have been separate nations since WWII. It's just that most of the world does not want to antagonize a touchy nation with nuclear arms (not to mention the world's largest emerging market). At this stage of China's development, pretending that Taiwan is part of China is probably the safest course for all concerned.
Most of you are too young to remember when the first Mac came out in 1984. When I first saw it I was reminded of Arthur Clark's "Any sufficiently advanced technology is indistinguishable from magic." I thought, "How did they program it to do that!" It revolutionized how people think about computers.
The same thing happened to me. My wife would always ask me before throwing anything out, but if I said no, she kept asking. Every once in a while, I would be sick or tired or weak and just say "yes, go ahead". That would be the end of my precious stuff.
You forgot about kids. I have two of them. I've tried to educate them, but sometimes they forget.
These drivers have interesting habits also. Turkish Drivers
In the old days, a king who didn't want an artist to "infringe his copyright" would have the artist's eyes put out.
Many of us wear clothes produced in China, drive Japanese cars, and put cheap foreign memory in our assembled overseas computers. A few mundane IT jobs go overseas and then we are up in arms, demanding special favors from the government. I don't get it.
Our project is currently using VB6 and C++/COM for our development, and is considering moving to .Net/C#. C# is a much more powerful language than VB6, and is less error prone than C++. Developing in C# is a lot cleaner than developing in COM. You also have a huge integrated, well documented, class library available. The major hang up is that we have a lot of legacy code that will have to be integrated somehow. We don't have a plan for that yet.
Well, there was nothing else to do.
Yes, C# is basically Java, but it has one big advantage, performance. My C# programs run about twice as fast as my Java programs, and GUI performance in C# blows away a similar Java/Swing program. I think the performance difference is due to C# being designed to use a JIT from the start without the intervention of a virtual machine. Java requires a virtual machine to be running even after a program has been JITed, since many Java libraries make callbacks into the virtual machine using the JNI facilities.
I hope Mono is successful so that C# will become a multiple OS language.
What most of us would do it we ran across a program this confusing, is to write a little test program find out what happens. When you have a compiler, you really don't need to know every dark corner of a language.
I agree. C++ is a powerful and expressive language. Mature programmers will use that power to create clear, elegant, easy to understand programs. Immature programmers will use it to create programs that nobody can figure out.
I love programming, but I sit at my desk all day, and then go the gym to try to stay in shape. I wouldn't mind switching things around so that I do some manual job that keeps me in shape and then program as a hobby. It would be hard to find something with the same pay and benefits though.
"What is your greatest weakness"
I'm a programmer. I hate giving presentations, so I say I don't give good presentations. If the job requires a lot of that, I don't want the job anyway.
We had a candidate once that performed very well during the interview. Personable, communicated well, familiar with the ins and outs of C++, did outside reading and had read the right books. Someone pointed out a couple of spelling mistakes on her resume. I hadn't even noticed them. I brushed them off and we hired her anyway. She was terrible. Maybe spelling mistakes are a good indicator.
Coffee potOfCoffee = new Coffee(water, coffeeGrounds);
Personally, I have never felt constrained by the Object Oriented model.
To a certain extent, I agree with you. Large standard class libraries, like those available in Java or .Net and standards like XML help a lot. However. I live in a 15 year old house. If you go down the street and look at a new house, it is pretty much the same. But the programs we are writing today don't look anything at all like the stuff we wrote 15 years ago. Computer technology evolves so fast that you simply don't do the same kinds of things this year that you did several years ago. This makes developing standard components a lot harder.
I think I found one of the reasons we have so much bad software. Being able to drag and drop buttons to make a GUI doesn't mean you can handle the other aspects of programming. Some things (like GUI appearence) may have gotten easier, but programming is still an art that requires a certain kind of analytical ability. There are many programmers that can write bad, buggy software, but there is a shortage of programmers that can write good, well crafted software.
First, you have to learn the basics about computer architecture and computer languages. You need to know what a compiler does, what an interpreter does, and what an operating system does. You need to know how programs are organized in memory, thing such as the difference between heap allocated and stack allocated memory. I can't really recommend a good book about these things because I have never found one. Maybe someone else can recommend one.
/. but I would recommend buying the C# / .Net personal development system and a good tutorial on C#. C# is a very "protective" language that will catch a lot of errors at compile time. Also, the development system has a very good debugger and has a method completion feature that is very helpful. C# is part of the C family of languages, so learning it will ease the path to more manly languages such as C++ later. These features are useful for everybody, but especially useful for a beginner.
I know his isn't popular on
The following are my two favorite programming books:
The C Programming Language, by Kernighan and Ritche - a classic text for clarity, one one the best tutorials written on any subject.
Refactoring, by Martin Fowler. Best book I've read about how to write clear, elegant programs.
I don't know.
Not necessarily true. I have a friend whose company was bought out, and the first thing the new managers did was fire all the people who were "making too much money" (i.e. the best programmers). He's working for a startup now for free. In a year I guess he will be flat broke or a millionaire.
My approach is quite different (but not necessarily better). I usually make a hire decision from the interview. The main thing I look for is that the applicant has in depth knowledge of some aspect of software development. I can't tell that from a resume. Of course, I make mistakes. Some people just don't interview well. We had one applicant who I couldn't get two words out of. He was hired by my manager based on his academic record. He turned out to be a super star programmer. He was a man of few words, but when he spoke it made sense. He was highly respected by his coworkers and his customers.
I consider thank you notes or emails as gimmicks. I don't consider them one way or the other.
There are many different approaches to hiring. I don't think any method is fool proof.
Carl Sagan defined intelligent life as a species that can develop an advanced technology. He defined an advanced technology as a technology that can communicate with other intelligent life in other solar systems. As a species, we just barely qualify. However, individually most of us couldn't invent a spear.
I have always preferred using a good layout manager over a drag and drop GUI builder. Look at most VB dialog boxes. Most of them can't be resized and they have ugly "Chicklet" buttons. The first Grid like layout manager that I used was the Table widget that came with WCL (GUI stuff for X-Windows/Motif). I am looking at the code and it contains the names David Harrison and David Smyth, with dates of 1989 and 1991. I don't mean to belittle your contribution but I just want to add some history to grid style layout managers.
One interesting extension that I have added to the Java GridBag layout manger is to use an array of components to setup the constraints. Here is an example:
The GridBagX layout manager sets up a window where canvas will be resized in both directions and the buttons will only be resized horizontally. The special components freeze and resize are defined in the GridBagX object.
Thanks for GridBag. It has made my life easier.
For all practical purposes, China and Taiwan have been separate nations since WWII. It's just that most of the world does not want to antagonize a touchy nation with nuclear arms (not to mention the world's largest emerging market). At this stage of China's development, pretending that Taiwan is part of China is probably the safest course for all concerned.
Most of you are too young to remember when the first Mac came out in 1984. When I first saw it I was reminded of Arthur Clark's "Any sufficiently advanced technology is indistinguishable from magic." I thought, "How did they program it to do that!" It revolutionized how people think about computers.
The same thing happened to me. My wife would always ask me before throwing anything out, but if I said no, she kept asking. Every once in a while, I would be sick or tired or weak and just say "yes, go ahead". That would be the end of my precious stuff.
Nobody shops at the mall anymore, it's too crowded.