map_of_cs.jpeg

Ask Me Anything (AMA)

A Computer Science Q&A Forum

by Eric Young

 

1. "What is Computer Science?"

Originally scientists built computers to solve tedious arithmetic problems, but over time they became incredibly useful in solving other problems as well — running the entire internet, lifelike graphics, artificial brains, or even simulations of the Universe. What makes computers particularly amazing is how they boil down to a simple matter of flipping ones and zeros. Computers have become smaller and more powerful at an impressive rate — there is more computing power in your smart phone than there was in the whole world in the 1960s. 


Computer Science is the discipline that studies what computers can do and how we can use them to solve problems. 


As a diverse and overarching field in our modern, technology driven world, Computer Science has applications in almost any field you can think of — from medicine and finance to sports and the arts. In addition, studying Computer Science helps develop skills that are useful in any career, such as problem-solving, analytical skills, and creativity. 

 

2. “What can I do with a Computer Science background?”

Popular Career Paths:

software-developer-vs-software-engineer-illustration.jpeg

Software Developer

Roles & Responsibilities: 

  • Develop and test software to meet consumers' and clients' needs

  • Develop upgrades for existing applications

  • Monitor quality and performance of applications through testing and maintenance

  • Document all work for future reference

Salary & Outlook: 

  • Median Annual Salary: $110,000

  • Growth Rate: 21% in the next decade

security-analysts-protect-internet-connected-systems-with-shield-cyber-security-data-prote

Computer Systems Analyst

Roles & Responsibilities: 

  • Research and evaluate new technologies

  • Consult with clients

  • Identify the organizational needs of IT systems

  • Analyze costs and benefits

  • Add new functionality to systems

  • Oversee installations

  • Test systems

  • Train users


Salary & Outlook:

  • Median Annual Salary: $90,920

  • Growth Rate: 9% in the next decade

Web-Developer.jpeg

Web Developer

Roles & Responsibilities: 

  • Know relevant web programming languages and frameworks

  • Create and test applications for websites

  • Collaborate with product managers and UX designers

  • Troubleshoot website problems

  • Maintain and update websites

  • Monitor website traffic

  • Stay up-to-date on technology

Salary & Outlook: 

  • Median Annual Salary: $73,760

  • Growth Rate: 13% in the next decade

10-12-how-is-data-science-used-in-finance.png

Data Scientist

Roles & Responsibilities: 

  • Identify valuable data sources and automate collection processes

  • Undertake preprocessing of structured and unstructured data

  • Analyze large amounts of information to discover trends and patterns

  • Build predictive models and machine-learning algorithms

  • Combine models through ensemble modeling

  • Present information using data visualization techniques

  • Propose solutions and strategies to business challenges

  • Collaborate with engineering and product development teams


Salary & Outlook: 

  • Median Annual Salary: $130,000

  • Growth Rate: 28% in the next decade

teaching-students-online-internet-learning-computer-programming_335657-3119.jpeg

Instructor/
Professor

Roles and Responsibilities: 

  • Compile, administer, and grade examinations 

  • Prepare and deliver lectures to undergraduate or graduate students on topics such as programming, data structures, and software design

  • Evaluate and grade students’ class work, laboratory work, assignments, and papers

  • Direct research of other teachers or of graduate students working for advanced academic degrees

  • Maintain student attendance records, grades, and other required records

  • Supervise undergraduate or graduate teaching, internship, and research work

Salary & Outlook:

  • Median Annual Salary: $117,380

  • Growth Rate: 11% in the next decade

 

3. “What courses will I take if I major in Computer Science?”

For reference, this is the set of relevant courses that I took as a CS major and Math minor at Duke University:

CS Core:

  • Computational Methods in Engineering

  • Data Structures and Algorithms

  • Discrete Math for Computer Science

  • Computer Architecture

  • Design & Analysis of Algorithms

  • Introduction to Databases

Mathematics:

  • Multivariable Calculus

  • Linear Algebra & Differential Equations

  • Ordinary & Partial Differential Equations

  • Probability

  • Data Analysis & Decision Science 

  • Python Programming in Math

CS Electives:

  • Everything Data

  • Machine Learning 

  • Algorithms in the Real World 

 

4. “What are some recommended online resources for self-learning Computer Science?”

cs50.jpeg

Harvard CS50X

An entry-level course taught by David J. Malan, CS50x teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets are inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.

karel.png

Stanford CS106A

This course is one of the largest courses at Stanford. Topics focus on the introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing.

princeton.png

Princeton Algorithms

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Screen Shot 2021-07-09 at 7.56.48 PM.png

My Blog: Teaching & Tech

My blog introduces Computer Science topics through real life analogies and interesting examples. I discuss how I teach CS in the classroom and provide insights on how I approach solving intriguing CS problems. If you want to learn more about Computer Science, check my blog out!

 

Ask Away

Ask me a Computer Science question!
I will try my best to provide an informative response and maybe I will even feature your question on this page :)

Thanks for submitting!