This is a naive statement on so many levels I don't even know where to begin.
What are you thinking!
So we don't teach how computers work anymore, just have everyone install Microsoft Dev Studio and write their little programs?
If you do any form of embedded systems work, write compilers, have to do heavy debug or better yet, have to try and find a bug in some C++ program running on a PC compiled in dev studio that only happens in Release mode you need these skills.
Have you ever tried to performance tune an embedded application? Understood how the Floating Point operations on one CPU might be better than another and thus help you decide how best to write your number crunching algorithm ?
What of you need to write a boot loader or a device driver?, or spin you own Operating system or a Compiler?
If you a teaching someone who is interested in a career in computers about computers, why the heck would you skip how they work.
I realize my area of computers (Embedded Systems) is heavy in the "How Computer Work" Category, but if my CS Dept decided I just didn't need to know how a computer worked and skipped all those details I would no be doing my job today (Which by the way, has proven so far to be somewhat safer from offshore outsource)
Fundamentals people, no matter what your field is you need your fundamentals. It's a crime to not teach an undergrad that, just like it's a crime not to teach him about what a database is or how to come up with an efficient algorithm (Which in some cases, is based on the Computer Architecture it is going to be running on !)
CS Students are in school to get a nice Breadth of experiences to all facets of how computer work and how to solve programs with them. You are them with these fundamentals so they can have lots of career options within the CS Field.
I am an HUGE advocate for always teaching assembly to early CS Grads. It's a right of passage, and will get the CS majors to the next level of understanding. But don't confuse a course in Assembly Language with a Course in using Assembly as a tool to learn about Computer Architecture. I can remember my first day in our "Machine & Assembly class". The first words out of the Prof mouth were "I am not teaching you any assembly, you have the pick that up as we go along. Depending on the teacher at my school, you either were learning assembly to do Bubble Sorts and very simple tasks, or you used assembly to wire up ISRs/catch keyboard interrupts and call into an out of C Programs. The latter resulted in an excellent introduction to how computers worked, and was an excellent prerequisite to an Operating Systems Class. The students who took the Bubble sort version didn't really learn much more than how to do a Bubble sort in a language they would never use for that purpose.
Now - As for using Assembly as the primary language for CS education, I don't think so. Like so many things in the CS world, use the right tool for the right job. If I am teaching a class in Database Implementation, I going to use SQL, Algorithms I will use some other higher level language. It all depends on what the focus of the class is = What you want your students focusing on.
The Operating Systems 1 Class at my old school used to use a language called Turing Plus, which lent itself nicely to the study of concurrency issues. Then in Operating System 2 you dove into using Heavy C/Assembly to write an OS from scratch.
Again - It all goes back to using the best tool to carry out the learning objective.
In my company we win projects, and develop them in-house then deliver the back to our customer. We are a US based Software/Hardware outsource company.
We originally thought that the coding would go offshore, but we could do the tough design tasks. Well, we have found that those are going offshore too now. So we have been paying close attention to the outsource market, and recently (Past year or so) have been marketing and exploiting one of our Value adds over offshore, which is the "Down the street from you" feature. Our customers think we are really good technically, but also have the bonus of been very accessible and easy to work with/manage. We try to find those projects that need lots of interaction with the customer, or better yet those projects that a customer is nervous about outsource all together and will feel more comfortable having the outsource closer to home. This has worked great in the past year, as we have received very positive feedback from a couple of our local large companies about having us near by and how much that is worth to them.
The idea that the Indian outsource market is lower quality, or lacks the ability to design Software is no longer true. Many of the Indian Grad Computer Science majors (Who were quite good) I went to grad school with are back home (India), and I am sure doing a fine job designing and implementing software back in India.
I am not interested in a PDA that is also a phone. A guy I work with has one of those PDA/Phones (Sprint) and its HUGE! He is always lugging it around etc.
I prefer my small flip phone that I can comfortably wear on my belt, or put in a pocket. I have found that I use the address book in my phone, and also the calendar for reminders. All of which I can sync with on my PC.
As for other features (Picture phone etc), no thanks. I think that's a fad, and will go away in time. I don't think I have ever said to myself, "Gee, I wish I could take a picture and send it to you".
Those "You got to see this moments" which happen 1-2 times every couple years are not worth the $10 extra a month you have to pay.
I hate cable (Time Warner) for a variety of reasons, let me share a couple.
Last year, there was lots of press on the DishNetwork Direct TV Merger. This would have resulted in better coverage for both Direct TV and Dish Customers = More Local Channels, more overall channels better service options. This was a nightmare to the cable companies, because all they had over Dish was local channels. As it turns out, the Cable companies lobbied enough to Washington to get the Feds to not allow the merger.
The current Cable TV Plan to foil the Dish services is to get the Feds to put a Tax on Satellite services so that the price is closer to the cable prices. The scary thing is that they are making progress in some states.
Dish Network or Direct TV are cheaper, superior products.
I used to use REAL Jukebox to listen to my MP3s. I even purchased a copy I liked it so much. When I lost my copy due to a PC crash, and lost CDs I was ready to buy the latest version. After a rather frustrating time trying to find the purchase page, I ended up calling them. The told me I had to subscribe and use the new REAL One player. The person explained that I could get all this content (Which I wasn't interested in). When I told them I just wanted to buy the software, they said it was not for sale anymore. They didn't get people dont like having to subscribe to purchase Software.
I'm not sure if their policy has changed, but it was enough to get me to stop using their stuff.
Re:Real Programmers(tm) use a *text* editor
on
Sun and Eclipse Squabble
·
· Score: 2, Interesting
I grew up in the UNIX environment, writing my own Makfiles from scratch and using vi for just about everything else.
Today I still can and do use non IDE tools when appropriate, but find that a well designed IDE makes me even faster/efficient. It all depends on what you are writing. When I joined my current company, and started learning Windows programming I spent lots of time bringing over my beloved UNIX tools to my Windows box. I soon figured out that they just didn't lend themselves to the Windows world nicely. I spent more time trying to get my tools to just work right with the Windows libraries, that I lost any time saved by using them.
On the other hand, put me on a UNIX box, and I'll probably use vi/Make etc. Though I have to admit, I have recently discovered Visual Slickedit and have found it VERY useful. I love the easily integrated C-Tag feature. This is awesome when working with a large, unfamiliar code base. For kicks, I pointed it at the Linux kernel and could get to any symbol in the kernel in seconds.
Though - One side comment. I am completely against allowing CS Students to learn using an IDE. My company has run into problems with recent CS grads (Past 3 years) who don't understand how a program is built (compile/make). I had one kid repeatedly ask me where F5 was on a UNIX like toolset. I was truly confused, until I realized he used Microsoft Visual Studio in College and wanted to know why when he pressed F5 it didn't build his program. When I answered his question with, you have to write a Makefile he replied, what's a makefile. He had no concept of what compile/Link really meant. To him, Dev Studio was some magical tool.
Just what we would have needed, more small round disks to put in our landfills.
Could you imagine the impact if this had really taken off? It would make the waste that AOL generates (Free AOL CDs) seem like nothing. I already throw out about 2 AOL disks a week. Imagine if the entire US was renting these DVDs instead of the reusable ones.
If you decide to do this, you may want to (As I am sure mentioned in the earlier posts) mixing fields. You are a Dr, which means you have a breadth of experience in the Medical profession. The Medical devices/Software field is booming right now. It may be a good fit for you.
The days of the pure US Programmer, who only writes code are going over seas. In this country, programming skills alone don't cut it. Saying you know C/C++ and can write Windows/Unix applications in these times will get you a "Big Deal ?" Response from many in industry, especially if you are a new CS Grad. The focus in the US is going to become what you can apply those skills to.
So in your case, being a Dr, and then pursuing a SW development job may be a good ticket. You may want to consider mixing SW and HW (i.e. get a Computer Engineering Degree or take some Electrical Engineering Courses) as the Medical Devices industry is huge and you have a great background you can apply. This way you can help design embedded SW and work with the HW as well.
If I was a Medical Devices Company, looking at the Resumes of 100's of candidates to hire, and found one that had the Computer skills I needed, plus was a Doctor I would be very inclined to call you in for an interview.
This is a naive statement on so many levels I don't even know where to begin.
What are you thinking!
So we don't teach how computers work anymore, just have everyone install Microsoft Dev Studio and write their little programs?
If you do any form of embedded systems work, write compilers, have to do heavy debug or better yet, have to try and find a bug in some C++ program running on a PC compiled in dev studio that only happens in Release mode you need these skills.
Have you ever tried to performance tune an embedded application? Understood how the Floating Point operations on one CPU might be better than another and thus help you decide how best to write your number crunching algorithm ?
What of you need to write a boot loader or a device driver?, or spin you own Operating system or a Compiler?
If you a teaching someone who is interested in a career in computers about computers, why the heck would you skip how they work.
I realize my area of computers (Embedded Systems) is heavy in the "How Computer Work" Category, but if my CS Dept decided I just didn't need to know how a computer worked and skipped all those details I would no be doing my job today (Which by the way, has proven so far to be somewhat safer from offshore outsource)
Fundamentals people, no matter what your field is you need your fundamentals. It's a crime to not teach an undergrad that, just like it's a crime not to teach him about what a database is or how to come up with an efficient algorithm (Which in some cases, is based on the Computer Architecture it is going to be running on !)
CS Students are in school to get a nice Breadth of experiences to all facets of how computer work and how to solve programs with them. You are them with these fundamentals so they can have lots of career options within the CS Field.
I am an HUGE advocate for always teaching assembly to early CS Grads. It's a right of passage, and will get the CS majors to the next level of understanding. But don't confuse a course in Assembly Language with a Course in using Assembly as a tool to learn about Computer Architecture. I can remember my first day in our "Machine & Assembly class". The first words out of the Prof mouth were "I am not teaching you any assembly, you have the pick that up as we go along. Depending on the teacher at my school, you either were learning assembly to do Bubble Sorts and very simple tasks, or you used assembly to wire up ISRs/catch keyboard interrupts and call into an out of C Programs. The latter resulted in an excellent introduction to how computers worked, and was an excellent prerequisite to an Operating Systems Class. The students who took the Bubble sort version didn't really learn much more than how to do a Bubble sort in a language they would never use for that purpose.
Now - As for using Assembly as the primary language for CS education, I don't think so. Like so many things in the CS world, use the right tool for the right job. If I am teaching a class in Database Implementation, I going to use SQL, Algorithms I will use some other higher level language. It all depends on what the focus of the class is = What you want your students focusing on.
The Operating Systems 1 Class at my old school used to use a language called Turing Plus, which lent itself nicely to the study of concurrency issues. Then in Operating System 2 you dove into using Heavy C/Assembly to write an OS from scratch.
Again - It all goes back to using the best tool to carry out the learning objective.
In my company we win projects, and develop them in-house then deliver the back to our customer. We are a US based Software/Hardware outsource company.
We originally thought that the coding would go offshore, but we could do the tough design tasks. Well, we have found that those are going offshore too now. So we have been paying close attention to the outsource market, and recently (Past year or so) have been marketing and exploiting one of our Value adds over offshore, which is the "Down the street from you" feature. Our customers think we are really good technically, but also have the bonus of been very accessible and easy to work with/manage. We try to find those projects that need lots of interaction with the customer, or better yet those projects that a customer is nervous about outsource all together and will feel more comfortable having the outsource closer to home. This has worked great in the past year, as we have received very positive feedback from a couple of our local large companies about having us near by and how much that is worth to them.
The idea that the Indian outsource market is lower quality, or lacks the ability to design Software is no longer true. Many of the Indian Grad Computer Science majors (Who were quite good) I went to grad school with are back home (India), and I am sure doing a fine job designing and implementing software back in India.
Ummmm, Yeah - Right - Didn't realize I put that in the Subject ;-)
;-)
Mental note, double check subject post before posting again!!
No Really, Seriously, I am talking about cell phones
I am not interested in a PDA that is also a phone. A guy I work with has one of those PDA/Phones (Sprint) and its HUGE! He is always lugging it around etc.
I prefer my small flip phone that I can comfortably wear on my belt, or put in a pocket. I have found that I use the address book in my phone, and also the calendar for reminders. All of which I can sync with on my PC.
As for other features (Picture phone etc), no thanks. I think that's a fad, and will go away in time. I don't think I have ever said to myself, "Gee, I wish I could take a picture and send it to you".
Those "You got to see this moments" which happen 1-2 times every couple years are not worth the $10 extra a month you have to pay.
I hate cable (Time Warner) for a variety of reasons, let me share a couple.
Last year, there was lots of press on the DishNetwork Direct TV Merger. This would have resulted in better coverage for both Direct TV and Dish Customers = More Local Channels, more overall channels better service options. This was a nightmare to the cable companies, because all they had over Dish was local channels. As it turns out, the Cable companies lobbied enough to Washington to get the Feds to not allow the merger.
The current Cable TV Plan to foil the Dish services is to get the Feds to put a Tax on Satellite services so that the price is closer to the cable prices. The scary thing is that they are making progress in some states.
Dish Network or Direct TV are cheaper, superior products.
I used to use REAL Jukebox to listen to my MP3s. I even purchased a copy I liked it so much. When I lost my copy due to a PC crash, and lost CDs I was ready to buy the latest version. After a rather frustrating time trying to find the purchase page, I ended up calling them. The told me I had to subscribe and use the new REAL One player. The person explained that I could get all this content (Which I wasn't interested in). When I told them I just wanted to buy the software, they said it was not for sale anymore. They didn't get people dont like having to subscribe to purchase Software.
I'm not sure if their policy has changed, but it was enough to get me to stop using their stuff.
I grew up in the UNIX environment, writing my own Makfiles from scratch and using vi for just about everything else.
Today I still can and do use non IDE tools when appropriate, but find that a well designed IDE makes me even faster/efficient. It all depends on what you are writing. When I joined my current company, and started learning Windows programming I spent lots of time bringing over my beloved UNIX tools to my Windows box. I soon figured out that they just didn't lend themselves to the Windows world nicely. I spent more time trying to get my tools to just work right with the Windows libraries, that I lost any time saved by using them.
On the other hand, put me on a UNIX box, and I'll probably use vi/Make etc. Though I have to admit, I have recently discovered Visual Slickedit and have found it VERY useful. I love the easily integrated C-Tag feature. This is awesome when working with a large, unfamiliar code base. For kicks, I pointed it at the Linux kernel and could get to any symbol in the kernel in seconds.
Though - One side comment. I am completely against allowing CS Students to learn using an IDE. My company has run into problems with recent CS grads (Past 3 years) who don't understand how a program is built (compile/make). I had one kid repeatedly ask me where F5 was on a UNIX like toolset. I was truly confused, until I realized he used Microsoft Visual Studio in College and wanted to know why when he pressed F5 it didn't build his program. When I answered his question with, you have to write a Makefile he replied, what's a makefile. He had no concept of what compile/Link really meant. To him, Dev Studio was some magical tool.
Just what we would have needed, more small round disks to put in our landfills.
Could you imagine the impact if this had really taken off? It would make the waste that AOL generates (Free AOL CDs) seem like nothing. I already throw out about 2 AOL disks a week. Imagine if the entire US was renting these DVDs instead of the reusable ones.
If you decide to do this, you may want to (As I am sure mentioned in the earlier posts) mixing fields. You are a Dr, which means you have a breadth of experience in the Medical profession. The Medical devices/Software field is booming right now. It may be a good fit for you.
The days of the pure US Programmer, who only writes code are going over seas. In this country, programming skills alone don't cut it. Saying you know C/C++ and can write Windows/Unix applications in these times will get you a "Big Deal ?" Response from many in industry, especially if you are a new CS Grad. The focus in the US is going to become what you can apply those skills to.
So in your case, being a Dr, and then pursuing a SW development job may be a good ticket. You may want to consider mixing SW and HW (i.e. get a Computer Engineering Degree or take some Electrical Engineering Courses) as the Medical Devices industry is huge and you have a great background you can apply. This way you can help design embedded SW and work with the HW as well.
If I was a Medical Devices Company, looking at the Resumes of 100's of candidates to hire, and found one that had the Computer skills I needed, plus was a Doctor I would be very inclined to call you in for an interview.
Just my 2 cents !
-Chris