- Introduce high schoolers to the CS field
- Give them an overview of what they can do/learn in the field
- Give them an idea of future career choices in the field
- Give them a little bit of advice about what/how to study
What is Computer Science?A simple definition in the "Simple Wikipedia" says that Computer Science is "the study of how to...
Computer Science requires a basic knowledge of...
Computer Science will push your...
- Problem Solving Skills
- Need for Lifelong Learning
Credit CardsThe first mention of a card that could be processed as money was in 1887 in a book titled "Looking Backward: 2000-1887" by Edward Bellamy. Yet it wasn't until 1946 that the first actual bank card was invented, and a true "credit" card didn't become available until 1951.
iPodI recently read an article in which billionaire CEO Richard Branson reminisced about the time (1986) he jokingly declared (in an article to be published on April Fool's Day) that his company Virgin was inventing a "Music Box" that could store all the music in the world on it. Steve Jobs later admitted to Branson that he'd been intrigued by the concept when he read about it, and Branson admits that his "joke" may have inspired Jobs and Apple to launch iTunes and the iPod.
Multi-TouchThe movie Minority Report (starring Tom Cruise) came out in 2002 and featured some amazing computer technology that included Cruise being able to use special three-fingered gloves to move, resize, zoom, and rotate images on his computer screen. This is a good example of multi-touch technology that started becoming widespread in 2007 with the release of the iPhone. I can't help but imagine that the movie may have partially inspired the development of this kind of technology.
Flying CarsFor years, in Science Fiction, flying cars have been a mainstay, and just this year I saw a video of a prototype flying car that may be ready for production and sale by as early as 2017. https://www.youtube.com/watch?v=kzYb68qXpD0 As a quote that boldly posted on the high school walls states:
The best way to predict the future is to create it. -Abraham Lincoln/Peter DruckerThis has never been truer than where technology is concerned. Computer Science (and Engineering) are on the bleeding edge of the future. In fact, nearly every program, application, programming language, and technology that I know today wasn't even invented when I went through school.
|Technology||Year invented||My age||Most recent update|
|Internet||1982||1 y.o.||2011 (IPv4)|
Computer Science has Impacted Every Industry
- Automobiles (even flying cars)
- Engineers: MAKE cool stuff (work with hardware, wiring, chips, machines, and so on)
- Computer Scientists: make it DO cool stuff (work with software, program the machines, and so on)
What Can I Learn in Computer Science?Computer Science can be broken down into two major "branches":
- Theoretical CS
- Applied CS
- Theory (similar to research, mathematical theory, etc)
- Algorithms & Data Structures (like what you would learn in school - CS fundamentals)
- Computer Architecture (more along the lines of engineering)
- Programming Languages (writing code)
- Numeric & Symbolic Computation
- Software Engineering
- Artificial Intelligence
- Networking & Telecom
- Database Systems
- Computer Graphics
- Operating Systems
- Distributed Computation
- Parallel Computation
- Human and Computer Interaction (User Experience - UX Design)
- Security & Cryptography
- Modeling & Simulating Real-World Problems
- Ethical & Social Issues
- Game Design
- Web Design
- Back-end development (dealing with the function of the site and management of date - using PHP, MySQL, Python, Ruby, and Java)
- Full-stack development (combining the two former disciplines)
Why Choose Computer Science?For me personally, Computer Science is a perfect blend of my skills in math & science with my skills in art and creativity. But beyond that, CS is a field of study that teaches you how to think - and I like to think.
Everybody in this country should learn how to program a computer because it teaches you how to think. - Steve Jobs It would be wonderful if every kid wrote computer programs and understood how computers work. It would certainly make you a better thinker. - Bill Gates In fifteen years we'll be teaching programming just like reading and writing. We'll be looking back and wondering why we didn't do it sooner. - Mark Zuckerberg Knowledge of computer programming is as important as knowledge of anatomy when it comes to medical research or clinical care. - Larry Corey, Fred Hutchinson Cancer Research CenterIn fact, learning Computer Science isn't all about tech companies: 67% of all software jobs are outside the tech industry - in banking, retail, government, entertainment, and so on. And indeed, in the modern economy, there is a growing need for problem-solving skills across ALL jobs.
What's Wrong with this Picture? (Source: Code.org)
Show Me the Money!~So, what kind of money can you expect to make as a computer scientist? Here are some examples I found on the web:
- Starting Salary: $40-60,000 (ESL in the US = $28,000)
- Median Salary: $90,000 (ESL in the US = $40,000)
- Top Salary: $150,000 (ESL in the US = $73,000)
Big OpportunitiesFrom what I can see after following the computer industry for a while is that in the present time and near future, there are/will be big opportunities available in:
- Big Data (big companies want this)
- Internet programming (the Internet is everywhere)
- Mobile programming (the industry is booming)
- Ruby (current developers can charge up to $100/hr for work in Ruby - compared to the going rate of $50/hr for WordPress developers)
How Do I Start?I asked some advice from a number of my friends and contacts about how to get into the computer science industry. Their collective experience includes jobs in:
- Microsoft Security
One of the things about working in tech is that it's possible to get into it nearly no matter what age or background you are.Indeed, there are some 90-year-olds who are just getting into designing technology professionally, and some 11-year-olds who are developing mobile apps for the iTunes App Store.
A lot of the stuff we do hasn't been done before. By the time things are released to the public, we are already started on the next "thing". There is tons of problem solving and thinking outside the box involved. Half the hardware we use here we are using in a way it wasn't designed for. But it's easier to take an existing thing and rethink it to do what you want... The "What you know" isn't as important as the "How are you going to figure it out?" - James Hickok (my cousin @ Microsoft) Start a ... blog. Write tutorials. Share things that you learn. Learn things by writing about them. That's how I got to know people in the community. It's also how I was able to successfully launch Theme Hybrid... And, always reply to comments on your blog. You've got to interact with your readers. At a certain point, that gets tough, but keep the conversation going. - Justin Tadlock (WordPress developer I asked some questions to @ WPChat.com) I would recommend that you learn on your own... You will find that a major in Computer Science doesn't teach you everything you need to know to be successful on a team. The University tends to focus on teaching the fundamentals of programming languages and only slightly touches on other important aspects of software development... One aspect that is frequently overlooked in people looking for software development opportunities is the need to have great social skills along with technical skills. - Jared Siirila (former classmate and next door neighbor in the dorms)My classmate Jared also prepared a video to describe his experiences in the software industry over the past 9 years. Check it out: https://youtu.be/LDNycRu8aak
What you can do to get started:
- Build a portfolio of work - show how you learned/taught yourself X, Y, or Z
- Do a "Hackathon" where you join other programmers to build something cool in a limited amount of time
- Network - in school and out - make as many friends as you can because you never know when your contacts may hear about opportunities that could help you out
- Get an internship - this is something I wish had been pushed harder on me when I was younger. If you want a good job, you need some experience - get experience by doing an internship
- Build your personal website to share what you're doing and learning
- Join Twitter to keep up with the latest trends in your industry
- Get a "self-education" - most of the specifics of you need to know won't be taught in university
- Work on your "people skills" - you'll need them when you start collaborating on projects