Welcome 😁

  • Thank you embarking on this journey with us.

Let's get to know each other!

  • Please form groups of 3-4 with people sitting around you, and share:
    • Your name.
    • Where you're from and which neighborhood you live in now.
    • Why did you sign up for this course?
    • What's one thing you like to geek out about? (hobby, place, tv show, food; anything.)
    • Compare schedules/locations for potential study buddies.

Asking Questions

  • This course is question-driven.
  • We need you to ask questions.
  • Speak up whenever you feel like it, or raise your hand.
  • If you're not sure whether it's relevant to everyone, wave over a TA and ask them; they'll decide and escalate.
  • Our rule: You're only allowed to get stuck for 15 minutes before asking a question.
  • We'll be available in the classroom, calendly, Discord, and Ask.

Asking Questions

  • The course is organized according to the the lock-before-key principle 🔐
  • I won't provide the info needed to solve an exercise until someone asks the question.

Technical Team

  • Annie
  • Chandhu
  • Ian
  • Jose
  • Calvin
  • Mary
  • Aldo

Timeline / Learning Journey

...previous education, experiences, and life

  • Meet Gary
  • Remote INTRO course (n-weeks)
  • Interview
  • In-person Software Development Foundations (SDF) (12-weeks) <-- We are here!
  • Pre-Job learning (n-weeks)
    • Dig deep into a topic (React, data science, cloud etc.)
  • On the job learning
    • DPI employer partners or land your own!

What does it mean to "know how to code"?

"Knowing how to hack also means that when you have ideas, you'll be able to implement them.... It's a big advantage, when you're considering an idea like putting a college facebook online, if instead of merely thinking 'That’s an interesting idea,' you can think instead 'That’s an interesting idea. I’ll try building an initial version tonight."

— Paul Graham, "How to Get Startup Ideas"

Learning how to learn

  • Our real goal during these 12 weeks is not to learn Ruby, Rails, JavaScript, Bootstrap, or any other particular language or framework.
  • These are good, beginner-friendly, motivating choices for an introductory course.
  • Our real goal is to learn how to learn, so that you can then go on to learn whatever interests you.

Learning how to learn

  • Being a software developer means being a lifelong learner.
  • There are always new languages, techniques, and frameworks to stay up-to-date on.
  • Every single project involves learning new things, depending on what real-world problem you're being hired to solve.
  • We are inventors. There are no formulas to look up and apply; we have to learn about the problem and then invent solutions.

Sounds good, but who are you?

  • Hi! I'm Ian
  • Back in 2012 I was living in Shenzhen, China teaching English
  • I wanted to to learn "how to code".
  • Specifically, I wanted to build an iOS app — but I didn't know anyone who knew how or what to learn to get there.

Tried learning from books and online courses

  • c#
  • arduino
  • objective-c
  • Harvard CS50
  • Treehouse

"That’s exactly the thing that will turn people away from programming forever,” he said. “It’s like teaching someone chemistry as the first thing if they want to learn how to paint."

— Raghu Betina, on teaching CS to people who want to learn application development

Learning all the skills needed to deploy an application

  • Make School
  • Moved back to Chicago
  • Landed my first software engineering job at Mi-Jack in Homewood, IL
  • My experience as a Software Engineer at Nerdery sharpened my technical expertise
  • Founded successful platforms such as https://receipt-ai.com.

How the course will work

  • Learning how to program from lectures is really hard.
  • So many things to juggle:
    • watching me
    • typing along
    • taking notes
    • etc.
  • Super easy to fall behind if you get stuck on something.

How the course will work

  • We'll be using a "flipped" format.
  • Instead of lectures, you'll have lessons with videos that you can pause, speed up, skip back, search, and reference whenever you want.
  • During our meetings, we'll do activities together to practice and reinforce what you learned from the lessons, videos and readings.

Schedule

  • Check-in: 9
  • Stand-ups: 9:15 (with your stand-up group)
  • Technical Meetings: M/T/W/R at 1
  • Data Structure and Algorithms: Fridays at 2
  • Lab: all the remaining time
    • (with the exception of other seminars and guest lectures).

Canvas

  • Canvas is our home base.
  • I recommend always clicking "Modules"
  • Please complete all required assignments by the due date
    • if you're unable to complete assignments by due date, please let us know in advance

Getting started

  • You should start your first lessons, eg Onboarding
  • During lab time, the teaching assistants and instructors will be available for questions.
  • Please walk over and ask us lots of questions as you're working through the videos, readings, and projects.

What if I finish?

  • If you finish the required assignments, you should:
    • Try doing assignments again if you're feeling shaky. It should be easier the second time. Take notes on what's still confusing so we can discuss it during meetings.
    • Try the optional assignments to extend your learning if you're feeling very good about the required assignments.
    • Try applying the concepts you've learned to your own ideas. (Best possible way to learn)
    • Some students have reported watching the videos over again at 2x speed is helpful.

Course Outline (technical)

  • 7 weeks assignments with deadlines
  • 5 weeks building your own project
  • Showcase

Questions?

formerly MakeGamesWithUs

emphasized launching on the app store and getting real user feedback

There will be exceptions, but that's the general plan.