The No.1 i-Technology Magazine in the World !
   
 

      ES no BS
This is a personal blog of Yakov Fain       My son's animations and music         No BS IT podcast      Америчка




Archives

««Sep 2010»»
SMTWTFS
    1
2
34
567891011
12131415161718
19202122232425
2627282930

RSS Feed








Subscribe to these blogs

When computer programming will die out as a trade in the USA?

posted Monday, 2 January 2006
Several years ago I went to a toy store with my 7 year old son. He picked up a toy and noticed a stamp: “Made in the USA”. He was really surprised and asked, “Daddy, I thought all toys were made in China”.  I’m sure  twenty years from now most people will expect to see “Made in India” on every software box. And the sad thing is that posts like “The perils of Java Schools”  help this to happen even sooner.  Joel states that the Java language is too simple to be used as a tool for weeding out mediocre programmers.

IMHO,  we need an easier college program that would quickly prepare junior computer programmers. These days at  least 95% of programmers  do not do anything more complicated than writing “if” and SQL statements to populate a form with some data from a DBMS.  And this is exactly what our friends in India  do. They train people with ANY  engineering degree to quickly become programmers. And this is smart. At the same time some USA nerds are complaining that they miss pointers, because it helps working with Linux Kernel.  Just give me a break!   I do not deny, we need  CS college programs for people who would like to work on OS-level software or on complex mathematical modeling, but this has to be THEIR CHOICE.  Currently, colleges do not offer  business-oriented  IT undergrad programs. We  need specialized degrees like  "Computer programmer for  Finance",  "Computer  programmer for Telecommunications", and the like.

If ones goal is to make $50-60K a year by working as  business application developers, they should have a simplified curriculum that will help them to learn the basics required in businesses and find a job.  The Bubble Sort algorithm has to be the most difficult topic in such courses. On the other hand, this program has to have at least half of the subjects teaching software engineering.

In USA, people are already scared to death of CS major. Let’s not make things worse. Do you know how most of the kids pick their majors? They listen to their parents' advice. Do you know why parents do not advise their kids to pick CS or CIS as the major? Because they hear these horror stories about how difficult it is to survive in such colleges and then it’s even harder to find the first job because of outsourcing.  Why not create a simple program that would allow faster (yes, not fundamental) baking of computer programmers for businesses? After a while, some of such graduates will decide to enroll in more fundamental CS programs, which is fine, but let them make this decision.

Five years ago a mother of the CS freshmen of the state college called me asking to tutor her son in Java. This 18-year old guy told me, that the goal of the first semester’s program was to have most of the students  leave the CS major. It did not sound right to me, but when he showed me his  first Java project I realized that he was telling the truth.
Anyway, I helped him and he survived the first semester and after the second one he  quit the college, found the job as a computer programmer, and later on slowly completed his CS degree part time. My point is that he was able to work as a business computer programmer without being a computer scientist (let's not confuse the two).

So how long does it take to prepare a junior computer programmer with a set of skills required in most of the IT departments? 18 months or less.  I can do this in 6-9  months, if the   students are highly motivated.  Let’s learn from India, and succeed.
 
I can speak about the situation in the USA only, and if we want to have people learn computer programming they should have a choice of  easier industry-oriented majors. JavaLobby has an interesting discussion on the same subject and some people suggest similar solutions.

 If the academia will not make required changes in the curriculums,  pretty soon most of the programming jobs will be outsourced to developing countries, and this will happen not because they charge less for the job, but because you won’t be able to find any programmers  in our country. Actually, I’m wrong. We’ll still have several thousands of really cool programmers who will be able to explain how the OS Kernel works… if they'll  find anyone willing to listen.

links: digg this    del.icio.us    technorati    




1. Abhay left...
Monday, 2 January 2006 11:34 pm

http://www.javalobby.org/java/forums/m91978607.html

Thank you.


2. kuldeep left...
Tuesday, 3 January 2006 12:22 am

Well this is realy very well written article but obviously as usual its was from 10,000 feat high. Let me explain you the fact that the success of Indians in IT is not because of that they do low level stuff but its just a way to enter into mainstream from where many oppurtunities will open up and than you will be able to see the full potential of those programmers.

Let me list some points what i saw are different in Indian and American programmers...(based on my limited 3 month stint of programmming in America)

1)The basic education level of Indian school is very high .A 8th standard kid do 3D maths and in high school people who opt Maths and Physics study more than 14 hrs a day ...this is because here society respect education ..so thier is lot of pressure on kids to do well.

2) People live with families and its a often its a close knit unit and so motivation to perform in job is very high because of responsibility towards the family.This support helps in concentraing more in job ..average programmer in india works from 9 AM to late 10-11 PM ...in US people leave around 4 in afternoon...

3) As india in still in devlopment stage ,getting a good job is considered big thing and not somthing that is gauranted from the government...so dedication is more.In india we dont get UnEmployment Allownace ..we have to feed for ourselves.

4)Ability and willlingness to adapt is very high in india ..if some other technology offers more money ,people will learn it in 10 days by themselves .I know people who had no knowledge of Java ,Jsp but joined the job because of money and within 10 days they were doing coding in Java ,Jsp with Struts and in US people look for training for everything..i was talking to a fellow programmer in US and he was looking for a training program for Struts !!!!!..thier is so much material on net .why the hell anybody need a training program for that?

  • I suggest the author to visit india and see himself why India is doing so well ....its not because of doing low-level stuff but because of hunger and confidence to do anything that one gets..initially it will be Some if loops but that if loop is gateway to Gaming and Simulation Programming..and lot more


3. Yakov Fain left...
Tuesday, 3 January 2006 8:49 am

Some answers to Kuldeep:

I agree with your statement about better education of the high school graduates. But college graduates in the USA are at least as well educated as people from India. In addition to that, they know the American society, culture, language etc. much better than people from India.

From the technical perspective, since most of programmers in India became programmers pretty quickly, they have to work long hours to make up for undeceived technical skills and poor understanding of how business IT works in the USA. Eventually these long hours will pay off and they will be able to do the same amount of work by 6PM. The other explanation of the long hours is explained by fear of getting laid off from a vary high paid job.

I agree with you, Kuldeep, that your programmers have lot higher motivation than people in America , which really matter. As I wrote in my original post, I can make a programmer from a highly motivated person in half time.

The fact that people have to learn Java in 10 days is reflected in the quality of their programs. The fact that they do not get proper training, means that they are not familiar with the best practices in any particular technology.

As to your suggestion to visit India: I do not mind, as long as someone will sponsor this trip. I respect this country, work with many bright people from India and wish you guys all the best. On the other hand, I'll keep exercising my right to defend the country I live in and the future of my kids.


4. kuldeep left...
Tuesday, 3 January 2006 9:50 am

I totally agree to your point of view ..the only thing i wanted to address is ultimately it will be business which will decide where jobs should go...and business need same or marginally low quality work at VERY CHEAP RATES.

In india we programmers cant relax because pressure to get laid of is very much because their are thousands waiting to get that job at half rates and are willing to work twice the time, They dont demand weekends if money is good and generally dont go out for holidays ....

When i was in US ..working was fun ..pressure was less and still apreciation was very much...i used to get so much time for myself ...but in India competion is very high ...people are willing to work for as low as $300 a month not because they are dedicated lot but because they dont have any choice ..its just question of survival.....

  • And about your visit to India ,i hope somehow business brings you to india as i would really love to meet you ,i am regular reader of your articles and have learnt a lot from them


5. Robert left...
Wednesday, 4 January 2006 5:11 pm

Great article, but I'm not sure I agree with compromising the elite education that we get here in America. I've worked with several Indian consulting firms over the past 10 years or so. The overall quality of work that I've seen has been terribly low and the lack of experience very obvious. I'm not sure I've ever encountered a consultant with a true knowledge of object-oriented principles or design patterns. All I ever see is copy-pasters or people writing COBOL code in Java. I'll take one American college educated programmer over 10 offshore hacks. There are a million IT "schools" in America where you can take the 6 month crash course in programming and settle for the same mediocrity that we get from India and China.

Anyone who thinks that the success of India IT firms is due to fast education, work ethic or fear of lay-off is fooling themselves. The bottom line is that offshore labor is cheap and expendable. My company can hire programmers for pennies on the dollar. When you get high enough on the management food chain, the temptation to save money is hard to resist. Unfortunately, they often miss the big picture, which is that it is even more expensive to go back and fix the mistakes of a bad programmer. Also, when times get tough you can always drop your consultants. Wall Street does not look favorably on lay offs, but it doesn't care if you cut your consulting staff.

It's unfortunate that America has decided to throw away it's technology dominance to save a few dollars in the short term. I think some day companies will open their eyes to find their technology in shambles. Good luck finding a qualified American to clean things up. I know I won't encourage my kids to go into CS....


6. Observer left...
Wednesday, 4 January 2006 10:21 pm

I disagree with this article. I have a quite different perspective since I'm originally from Europe where I obtained my Masters in CS before coming to this country. IMHO the job of a higher education is to teach theory, whereas it is a student's responsibility to teach himself practice. If one's want to learn Java and work as a Java progammer he could just attend some course or better spend some time learning it himself. But such a person cannot call himself a Software Engineer. He might learn Java or any other technology in a month or so if he is persistent but it won't be enough time to learn the theory behind this. As far as I know US education is more focused on the market skills rather than on exploring CS theory. As a result how many programmers in the US know how compiler works or how to write a parser? If you think this stuff is not neccessary think again. You may not need to write another Visual C++ but understanding how parser works will be definitely helpfull. A very simple example: a command line calculator which can compute expressions such as ((((2+3)*4)+10)*5 - any number of nested paranthesis. How many programmers can properly implement it without knowing what is a lexer, parser, semantic analyser? 99% of programmers would try to implement it their own way disregarding any principles. Their code would most likely be hard to extend etc. Again, this is just a simple example, there could be many like this. Theory behind writing multi threaded programs (what is a reversed counting semaphore or similar subjects) is yet another example. This cannot be learned during a two week course, it requires 4-5 years of college. There is always time to learn practice, i.e. a new language, but you won't find time to learn theory. And that's what distinguishes a good programmer from a mediocre. That's also the reason why some US graduates in CS cannot find jobs and find the cause of their problems in foreign labor. I suggest that you visit Top Coder Website and check school rankings (http://www.topcoder.com/stat?c=school_avg_rating). It is not a surprise to me. Also, I found your statement about Indians and their lack of work organization (the reason that they work so many hours) very inappropriate. Many Americans have this superior feeling towards other countries forgetting that these countries have existed for thousands of years. America owes everything to the world.


7. Sam Kapoor left...
Wednesday, 11 January 2006 5:03 pm

I think the main take home point in this article is that one does not need to be a CS major to do a business programming bog J2EE job. Having a Masters Degree in CS I feel it is overkill and makes you overqualified in some ways to do a typical J2EE programmer. Yes, you definately need to have this degree if you are going to analyze NP complete problems or work on approximation algorithms but certainly not for Business programming.


8.