Showing posts with label assembler. Show all posts
Showing posts with label assembler. Show all posts

Friday, May 22, 2015

The Computer Science major

Computer Science as a major has good employment odds.  Plenty of entry level jobs are open to grads with no experience, but hold a computer science degree.  There is plenty of room for career growth.  You can work for big companies or little startups.  There can be travel involved, there are always customers having trouble with the product, and someone has to go out to the customer's site and get things working. With some experience you can set up as a consultant and make a good deal of money.  Consultants have to buy their own health insurance, but the rates they command make that easy. 
   To be employable, you need to learn to program in the C language, and it's follow on, C++.  You also need Java, and Python.  Check the college course catalog and make sure they offer all four languages.  If they don't, think about another college.  Plan to take two semesters of each programming language.
   Back in the day, Computer Science used to offer courses in compiler design.  Don't bother, all the compilers ever needed have been coded by now.  Assembler language is also obsolete, the current compilers create code nearly as fast as the tightest assembler code, and  the compiler language is faster to write, easier to debug, and easier to maintain.  But, assembler is fun, I  did a lot of projects in assembler over the years and enjoyed them.  But I would not allow a project to use assembler today, I'd insist that it be done in C.
   You don't need all that much math to program.  Beyond algebra, a course in statistics is useful, integral calculus is useful, a lotta computer programs just do numerical integration.  But you don't have to be a math wizz to be successful in programming. 
   Courses in the "domain" are good.  Computer science treats the computer and the languages, it doesn't do much about the problems that computers are used to solve (the domain).  I'd get in a course in economics, and a course in physics.
  Computer Science will offer courses in software project management, but one is probably enough.  They have been pontificating about project management for 50 years, and we still have projects come in late, over budget and inoperative.  Look at the Obamacare exchanges.