Getting started in Computer Science

A few weeks ago Toby asked me if I could join him for a 90 minute development workshop at NC State. The intended audience were freshmen and sophomores in Computer Science at State. Toby helped me prep up on the content and the scope of the presentation, and joining us during this workshop was Derek.

Presentation for workshop

Around 30 students attended this workshop, and the event turned out to be very interactive. For me the experience was a lot of fun and nostalgic, and I had a great time talking to the wolf pack (students).

A lot of information/resources were presented in this workshop, and while I can’t share the presentation, Toby was generous to put together some of the more important resources that could be publicly shared. Please find them below, and if you are a Freshmen/Sophomore I hope that you find at least a few of these resources useful.

Freshmen year additional resources:

  • Intro to CS & Basics
    • Udacity – Intro to CS: Beginner level. Key concepts in CS, enough Python programming to write programs/solve problems on your own.
    • Coursera – Comp Sci 101: Essential ideas of CS to zero-experience audience — playing with code in a variant of Javascript.
  • Core Math
  • Logic

Sophomore year additional resources:

  • Eng Practicum = Internship program for rising Sophomores and rising Juniors: – applications open from approximately September – December
  • Interview resources:

Junior year additional resources:

  • Software Engineering Internship: – applications open from approximately September – December

Interviewing resources:

Books & Available Resources

  • Cracking the Coding Interview (HIGHLY Recommended)
  • Programming Interviews Exposed: Secrets to Landing Your Next Job
  • Programming Pearls by Jon Bentley
  • Introduction to Algorithms by Thomas H. Cormen

Online resources

Some additional thoughts from one of the alumni:

  • If you know anything about programming already, test out of CSC 116 and CSC 216 (Java I and II). Take a week, read through the text book and then talk to your adviser or the professor teaching the class that semester.
  • Your adviser will try to talk you out of taking a heavy course load, push back on this, challenge yourself.
  • Join at least one club that will expect you to code outside of class (Linux User’s Group, Programming Competitions, Aerial robotics, Underwater Robotics, et al.). You will meet some interesting people and get a feel for what you can do with your degree.
  • Take some classes outside of your major. There are a lot of other fields that need software engineers.
  • Don’t be afraid of taking graduate classes as an undergrad. The 590 classes are great because they usually explore something interesting and don’t require any pre-reqs.
  • Intern at more than one company. It might be tempting to go back to what is familiar but you’ll never know what you’re missing.