Software
Why Is Software Important?
Almost all electronic devices run some software
Automobile engine control system, implantable medical devices, remote controls, office machines (e.g., photocopiers), appliances (e.g., televisions, refrigerators, washers/dryers, dishwashers, air conditioner), power tools, toys, mobile phones, media players, computers, printers, photocopies, disk drives, scanners, webcams, MRI machines.
Why Software-Based Solutions?
More cost effective to implement functionality in software than hardware
Software bugs easy to fix, give customer new software upgrade
Hardware bugs extremely costly to repair, customer sends in old device and manufacturer sends replacement
Systems increasingly complex, bugs unavoidable
Allows new features to be added later
Implement only absolute minimal functionality in hardware, do the rest in software
Software-Related Jobs
Many more software jobs than hardware jobs
Relatively small team of hardware designers produce platform like iPhone
Thousands of companies develop applications for platform
Only implement directly in hardware when absolutely necessary (e.g., for performance reasons).
Which Language to Learn?
C,C++, Fortran, Java, MATLAB, C#, Objective C
Programming language popularity
Software Programming Community
Programming Language Popularity Normalized Comparison
International standard
Vendor neutral