Second, a major benefit for many computer programmers is the option of working on a variety of very interesting and challenging projects. Often the projects require months off planning, programming and continual work to get the applications to performing at their highest possible performance levels. Third, many companies now sponsor in-house training and development seminars, with a few even having local universities come in and teach the latest techniques on programming. This is a major time-saver for programmers as it gets them more knowledge to do their jobs, and also make them more valuable in their careers for the long-term. Fourth, programming is a profession that lends itself well to individual achievement and accomplishment. For those programmers who are exceptionally good at their work, they become well-known in their fields and often get promoted. Companies also provide many conveniences to programmers to alleviate time drains on them. Google for example has a dry cleaner, free gourmet lunches, relaxation rooms with pin-pong tables and beanbag chairs in addition to having wireless Internet available everywhere in their buildings. Google has the philosophy that programmers are most creative and productive when they are given the freedom to work in a manner they choose to. Google is in fact part of the next generation of software companies, especially in how they nurture productivity in their computer programmers and web developers.
Summary of how this information will be used
In presenting this information to a live audience of high school students I would first stress the need to find a career that best aligned with their innate skills, interests and what they were passionate about. Next, I would tell them that going into a career based on these criteria is much better than purely pursuing money as the primary reason for choosing what they wanted to do with the rest of their lives from a professional standpoint. Thirdly, I'd tell them about the best programmers there are, people like Dave Cutler of Microsoft who helped invent Windows NT, or Linus Torvalds, the developer of the Linux open source operating system. There is also Tim Berners-Lee, who invented HTTP and now works at MIT defining the semantic map of the Web. From these world-famous people who all started out in programming I'd give the students the following top ten list of things to consider if they wanted to be a rock star programmer (rock star in this case means exceptionally good at what they do.
Go and learn how to write code now and see if you love it or not. If you're passionate about writing excellent code then programming is going to be a good career for you.
You hate leaving things not finished. This is critical for any programmer to have this type of need for closing off tasks, from the small to the very large.
Like to tinker with machines, math problems, even Suduko puzzles.
Have a knack for finding patterns in anything, from data in a math problem to your own social network.
Likes to test their own code and checks it regularly for bugs.
Has the ability to take code found through Google Code Search and include it into their own programs.
Really cares about the user experience when it comes to how their applications, even small ones, will be used.
Writes beginning code that is logically easy to follow.
Understands how the various system software components of a PC work together including the operating system and applications.
Getting a Career Started in Programming
There are many excellent college and university programs that have programs for bachelor and master degrees in Computer Science. Increasingly these programs are teaching the fundamentals of how to program using Web 2.0 applications and tools as well. Having a passion for this area and the innate skills sets transforms the effort of getting a bachelors or masters degree into more of a journey to gain more knowledge and less of a burden. The essence of excelling at programming is in that point; having a passion and the skills necessary to excel in this are is critical.
WEB 2.0 APPLICATIONS
Online diary or journal entry on the Internet, which primarily supports text, photo (photoblog), video (vlog), and audio (podcast) formats
Google, AOL, and Yahoo offer free blogging platforms
Web service that gathers related content from more than one source
IBM's mashup applications enable project managers to match team resources with a map to identify the geographical locations of the resources
Peer-to-Peer Networking technique for effectively sharing music, audio, and text files
Napster and Gnutella are popular peer-to-peer networks
Real Simple Syndication (RSS)
Feed-based technology that, with the aid of an RSS reader, enables users to subscribe to newly released content such as text, Web pages, sound files, photos, and video
RSS feed may contain the full content, for example a podcast, or simply a link to the content
Encompasses all online tools (blogs, podcasts, Wikis, social networks, vlogs) and Web sites enabling people to share content, such as text, audio, picture s, and videos
Popular social media sites include YouTube (video) and Flickr (photos)
Web sites that permit users to create online networks and communicate with friends and colleagues
Social networking sites include MySpace, Friendster, Facebook, and Friends Reunited, and business networking sites include LinkedIn and Ryze
Allows users to bookmark or rate online content to share their recommendations with other online users
Typically used by publishers of media sites attempting to benefit from users' recommendations
Popularized by sites such as Digg and del.icio.us, which enable users to publish, categorize, and share their bookmarks
Enables users to create and edit the content of a Web site, leveraging the expertise of online users
Consumer Wikis enable users to comment on content, in addition to editing content
Wikipedia, a community Wiki encyclopedia, includes approximately 1.3 million English-language articles
Gul Agha (2008). COMPUTING in PERVASIVE CYBERSPACE. Association for Computing Machinery. Communications of the ACM, 51(1), 68-70. Retrieved May 14, 2008, from ABI/INFORM Global database. (Document ID: 1407575171).
Josh Bernoff, Charlene Li. 2008. Harnessing the Power of the Oh-So-Social Web. MIT Sloan Management Review 49, no. 3 (April 1): 36-42. http://www.proquest.com (Accessed May 16, 2008).
Ryan Blitstein (2 June 2007). Engineers wanted! Will pay very well: WEB 2.0 DEVELOPERS in GREAT DEMAND. Knight Ridder Tribune Business News,1. Retrieved May 16, 2008, from ABI/INFORM Dateline database. (Document ID: 1281144381).
Roxanne E. Christ, Jeanne S. Berges, Shannon C. Trevino. 2007. Social Networking Sites: To Monitor or Not to Monitor Users and Their Content? Intellectual Property & Technology Law Journal 19, no. 7 (July 1): 13-17. http://www.proquest.com (Accessed May 12, 2008).
Peter J. Denning, Andrew McGettrick. (2005). Recentering computer science. Association for Computing Machinery. Communications of the ACM, 48(11), 15-19. Retrieved May 15, 2008, from ABI/INFORM Global database. (Document ID: 916688991).
Dominus, Mark-Jason (1998). Perl: Not just for Web programming. IEEE Software, 15(1), 69-74. Retrieved May 16, 2008, from ABI/INFORM Global database. (Document ID: 26930878).
Jim Engelhardt (2002, March). Microsoft shows off.NET with maps. Geospatial Solutions, 12(3), 16-18. Retrieved May 16, 2008, from ABI/INFORM Trade & Industry database. (Document ID: 110668107).
Daniela Florescu, Andreas Grunhagen, Donald Kossmann. (2003). XL: An XML programming language for Web service specification and composition. Computer Networks, 42(5), 641. Retrieved May 16, 2008, from ABI/INFORM Global database. (Document ID: 380049341).
Robert L. Glass (2006). Of Health, Trust, Money... And Integrity. IEEE Software, 23(1), 120,119. Retrieved May 16, 2008, from ABI/INFORM Global database. (Document ID: 976176041).
Christoph Hauser, Gottfried Tappeiner, Janette Walde. 2007. The Learning Region: The Impact of Social Capital and Weak Ties on Innovation. Regional Studies 41, no. 1 (February 1): 75. http://www.proquest.com (Accessed May 15, 2008).