uit / uit

Startup Immersion. Learn by building a series of apps leading up to the launch of your own product.
http://uitstartup.org/
11 stars 6 forks source link

Language-agnostic curriculum resources? #4

Open stickbyatlas opened 10 years ago

stickbyatlas commented 10 years ago

Hi again,

As I review the base files in the repo, I notice that aside from database platforms, most of the resources on the programming side are Javascript-centred. Are we focusing on one specific language only, or is this because nobody has added anything for, say, Ruby, Python, C/C++, Java, etc.?

If this collection of resources is going to be language-agnostic, perhaps we should reorganize some of the files into folders (e.g. move 'javascript.md into a "Programming" folder, add .md files for multiple languages within this folder, etc.).

I would do this on my own but don't want to impose a structure onto this repo without building consensus. Please weigh in with your thoughts!

gordienoye commented 10 years ago

I like the idea of having generic coding resources. Learning the concepts via something the equivalent of MIT Scratch is an important start for people who have never coded before.

Many of the CS 101 course use either in Java or Python. It may make it difficult to direct students in a particular direction if they have to move from language to language.

gavinuhma commented 10 years ago

This is a big question. I think JavaScript is great place to start, so the first apps can be client side web apps. It's a simple way to get the feeling that you created something real. Then introduce server side with node.js. Then introduce some database. Etc.

From there, getting into Java and android may make the most sense. Since we could follow up with some server side Java.

We could have a section for programming concepts that starts with Scratch. If you've already been exposed to programming just skip it.

gordienoye commented 10 years ago

That is my feeling as well. There should be some "pre-programming" courses that are agnostic and introduce the problem solving aspects of programming without forcing people into a particular way of thinking about programming languages.

The drag-and-drop interface of Scratch and the Android app builder do that rather well.

gavinuhma commented 10 years ago

@stickbyatlas re folders... seems inevitable we'll need them. might as well start now

@gordienoye ok great point. let's start with a scratch section

mikesux commented 10 years ago

Hi all,

Folders are done, at least for the subjects that were there already. Got rid of links on the README.md as well.

In terms of picking which language the student would like to learn, possibly giving them a list of websites or apps that were built using that language and reasons why they were chosen? Might give them a direction if the student had an idea in mind.

I like the idea of a pre-programming section to visualize what programming might be like. Should it be its own section entirely? Like some kind of super beginner intro section?

robgillan commented 10 years ago

I've always been a fan of super beginner sections simply because they offer the opportunity to explore the reasoning behind some of the most foundational concepts. Whether some prospective students feel they need it is irrelevant if it benefits at least some of the people. And with a self-directed approach, those who don't need that education can simply skip over it.

I love the idea of talking about why we store things in variables, why we use functions, and how classes and objects changed the way we look at our programs. When it's done in a pseudo-code manner, I feel like it's easier to communicate ideas without complicating them with a particular language's syntax. Learning to identify the concepts within the syntax is just as important, but when we talk about potentially bringing people from zero to hero then I think you need make sure you give equally good explanations at the zero mark.