Open Side Menu Go to the Top
Register
A thread of resources A thread of resources

09-04-2011 , 04:13 PM
There's no rules to this thread. Although this OP is dedicated to free resources, there is no reason to not expand this thread to paid resources. The goal is to list the resources that are useful to a) learn to be a good programmer and b) be not good, but great at whatever project you choose to persue.

OCWs:

I think the best place to begin for a rote beginner is the OCW's. OCW is short for "Open Courseware," which are free classes offered by various universities. To be included on this list, the schools must offer lectures, homework, and/or free textbooks. In other words, this is not an exhaustive list. There are many more schools who offer free classes, but they are missing homework.

Also note that each school offers many more classes than what I have here.

So, with no further ado:

===========================================

MIT (Main CS page):

MIT is the grand poobah of the opencourse movement. They offer 2000 courses and many of these classses have lectures, free textbooks, lecture notes, online tutors, homework, tests, and a facebook page dedicated to class discussions.

6.00 Introduction to Computer Science and Programming
6.00 Introduction to Computer Science and Programming

MIT chose to introduce computer programming by using Python, and I think this was a wise move. Python is a powerful and popular language with easy syntax so you don't have to spend a week trying to figure out "Hello World" and other toy programs. The course is pretty fast paced. By the end, you'll be able to write OOP, simulations, basic AI, and understand things like BigO. The stated goal of this course is to teach you to confidently create and understand 'simple' programs. To do so, this course offers video lectures from awesome lecturers, a free textbook, a series of problem sets, and exams.

6.001 Structure and Interpretation of Computer Programs
6.001 Structure and Interpretation of Computer Programs

This class introduces you to creating large, complex programs using the Scheme dialect of Lisp. This course offers video lectures, an online tutor, a free textbook, and homework problems. If you go through all of these resources, you'll easily write over 100 programs.

The video lectures were shot in 1985, and they have a certain charm to them. Gerald Sussman, the creator of Scheme, is one of the lecturers. The lecture notes are full transcriptions of the class as it was taught in 1996. The tutor has audio recording of Prof. Grimsom (lecturer from 6.00) reading the transcripts. The more modern transcripts haven't changed much since 1985, but they do cover many things that became popular since 1985, so I would suggest reading the transcripts instead of watching the lectures. Suffice to say, with the book and transcripts, you'll be doing a lot of reading in this course.

Other courses offered includes Probabilistic Systems Analysis and Applied Probability, Mathematics for Computer Scientists, Introduction to Algorithms, a primer on Multi-core programming using the PS3 and taught in conjunction with IBM. To say the least, you're education would be fairly complete by the time you finish this series of courses.

=====================

Standford Engineering Everywhere

Programming Methodology

This course introduces you to programming concepts using the Java language and a plug-in called Kerel. The Kerel program is some walking box that goes through mazes and puzzles, and offers a good visualization to programming concepts.

I did not take this course, but I did watch the first 5 or so lectures. I was put off by the course because I just wanted to learn to program from the ground-up instead of using plug-ins and other odd props, but after looking back, I think this course would have been great to learn from. This course does offer video lectures, how-to's, and homework assignments.


Programming extractions

This course is a continuation of Programming Methodology. I think they use "Stanford-specific" plug-ins. I'm not sure if you have access to them or not.

============================

Harvard

The Harvard OCW's are interesting because, unlike MIT, they constantly update the video lectures. At the time of this thread, the Intro to Computer Science Course is taught from the fall of 2010. Harvard also does not demand that you buy books or offer text, but rather they tell you how to find the information on the web, demanding research.

Intro to programming
Taught in the C programming language. I'm haven't taken this course, so I don't have much to say on it.

Building Dynamic Websites
This course got some good reviews in another thread. The course is very fast-paced, touching on everything you need to create dynamic websites, including javascript, SQL, PHP, and XML. What I've seen of the lectures focus more on design principles and thinking about how to approach the building of the mock sites. This is the only place I've seen that teaches how to sanitize your code.

=====================

Getting to specifics:

iPhone Application Programming

Developing Apps for iOS:

Courses offered by Stanford and free to watch in iTunes. It doesn't make the OCW section because there is no homework, but I think it deserves a place here since people sort of like their iPhones. These videos are highly rated by the watchers.

Android Bootcamp

I pulled this from the Android Development thread. Apparently, it completed someone.

===============================

Docs for ( ) language:

Google it.

============================================

Free Books


Google Books

Google books offers tons of books to read. All of the books you can read are listed as 'preview' or 'cached.' Mind that 'preview' does not mean you can only read the first 15 pages. With many of these books, you are getting 75% or more of the book. There's many from O'Reilly and other major publishers. Cached books can be read in completion.

====================================

Websites

stackoverflow.com
Great resource for finding all sorts of questions. Generally, my google searces start up with 'xxxxxx stack overflow.'

stackexchange.com
Talks about other stuff program-specific and not program-specific. Lots of interesting threads in there about programming life and stuff.

================================

Blogs

www.codinghorror.com
JeffAtwood, creator (?) of stackoverflow, blogs here. Lots of interesting reads.

http://www.paulgraham.com/articles.html
Lisp extraordinaire-turned-investor has some interesting thoughts on all sorts of stuff.

================================

Text-editors and IDE's:

Many programming languages come packaged with some sort of language-specific IDE. In Python you get IDLE, Scheme gives you Edwin, Java gives you... command line? Simple truth is that these built-in IDE's suck, and you probably dont want to use command line to program.


notepad++

Everyone is addicted to this program, and I can't blame them. It's a simple text-editor with highlighting. It's great if you are doing things like HTML and javascript, but if you are going to try something more complicated, you need something more advanced.

I'm only going to list the three big ones, since they are either extensible to (almost) whatever language you want to work with or they offer plug-ins.

Vim
The official Unix text-editor.

GNU Emacs:

GNU means GNU: Not Unix. I'll spare the flame-wars.

Eclipse

Eclipse is the only full-blown pre-set IDE on this list. There are plug-ins for Python, PHP, JavaScript, Java, etc etc etc.
A thread of resources Quote
09-04-2011 , 04:58 PM
Microsoft offers useful free versions of most of their tools:

http://www.microsoft.com/express

I can recommend the C# and C++ editions.

Free private subversion / GIT host. Nice & affordable other stuff if you pay. More free stuff for open source projects:

http://www.assembla.com/

I view version control as essential for every project, even for beginners. It frees you from worrying about the consequences of edits while you work and makes it easy to collaborate.

Last edited by Chips Ahoy; 09-04-2011 at 05:10 PM.
A thread of resources Quote
09-04-2011 , 05:55 PM
great compilation, sticky imo. bring on more resources
A thread of resources Quote
09-04-2011 , 06:34 PM
A lot of good stuff here: http://www.codeproject.com/
A thread of resources Quote
09-05-2011 , 07:38 PM
For JavaScript lectures, this is good: Douglas Crockford
A thread of resources Quote
09-05-2011 , 08:21 PM
Don't know if it's suitable for the list but tech news:
http://news.ycombinator.com/news
A thread of resources Quote
09-06-2011 , 03:17 AM
There's an online AI class from Stanford starting next month: http://www.ai-class.com/
A thread of resources Quote
09-06-2011 , 08:03 AM
^^ Thanks niggler. Signed up. Ordering Book.
A thread of resources Quote
09-12-2011 , 12:49 PM
Quote:
Originally Posted by TheNiggler
There's an online AI class from Stanford starting next month: http://www.ai-class.com/
Also a database class http://db-class.org/ and a machine learning class http://www.ml-class.org/.
A thread of resources Quote
09-15-2011 , 01:10 AM
I hate to call it so early, but those are thread winners. Maybe they are thread-worthy themselves, but we may get in trouble if we aren't careful.

I think I'll take the AI and DB class, though with likely intention of dropping the AI class.
A thread of resources Quote
10-23-2011 , 09:12 PM
10-25-2011 , 08:46 AM
Beej's Guide to Network Programming how-to guide on network programming using Internet sockets in C.
A thread of resources Quote
11-03-2011 , 09:48 AM
11-03-2011 , 11:38 AM
Quote:
Originally Posted by Grunch
I see your http://www.stackoverflow.com and I raise you http://www.stackexchange.com
A thread of resources Quote
12-01-2011 , 02:37 AM
Saw this highly recommended on hackernews today:

Learning Modern 3D Graphics Programming
by Jason L. McKesson

http://www.arcsynthesis.org/gltut/index.html

PDFs / source here: https://bitbucket.org/alfonse/gltut/downloads
A thread of resources Quote
08-25-2012 , 04:08 AM
Here's poker-related projects created by 2+2ers:

Quote:
nextgenneo:

https://github.com/KBelbina/PokerHandHistoryParser

Feel free to use in your projects.

I will be continuing to bug fix and support it so use the Git Hub issues page.

If you want to contribute fixes and code make sure you add unit tests. Will be adding guide-lines to the wiki page soon.

Will be open sourcing a bunch of projects that use this later in the year (statistics calculation etc).

Quote:
- Free Poker DB (the one and only, latest and greatest) - http://****************/apps/mediawik...itle=Main_Page (btw, you guys have any plans to move to GitHub? SourceForge really sucks)

- C based poker odds calculator - http://forumserver.twoplustwo.com/19...lator-1233513/

- .NET hand parser - http://forumserver.twoplustwo.com/19...arser-1232028/
A thread of resources Quote
10-10-2012 , 07:21 PM
Huge huge noob but I was curious if anyone had links to really really basic stuff, my friend recommend learning HTML and CSS first so links to that would be amazing.
A thread of resources Quote
10-10-2012 , 09:21 PM
Can you guys recommend something for a noob getting into Visual Basic? Specifically, I want to use it with Excel, but I want to learn as much as I can anyway. Also, can you give me a time estimate as far as how long it will take me to get competent? Obviously, it depends, but I pick stuff up pretty quickly. I just want to know if it's going to take me 1k hours before I get into anything useful or 10. Thanks.
A thread of resources Quote
10-28-2012 , 01:18 PM
I don't think anyone posted this: http://www.udacity.com/

Lots of free college CS classes
A thread of resources Quote
12-11-2012 , 07:36 PM
Python Tutor is a great tool to visualize each step in the execution of a Python program.
A thread of resources Quote
01-19-2013 , 12:42 AM
Game-theoretic poker poker player written in Java:

https://github.com/adamsmith/game-theory-poker
A thread of resources Quote
01-31-2013 , 01:15 PM
Quote:
Originally Posted by muttiah
Thank you for this.

Wikiversity has "courses" like Introduction to Computers, which leads to courses like Introduction to Computer Programming and beyond. I don't think I ever made it all the way through the simple Intro to Computers course because it was easy to get immersed in the wikipedia links for hours.

Anyone know of any websites or ebooks with problem sets *and* detailed answers to every question? I've found some with unhelpful answers and some with good answers but only to half the questions.
A thread of resources Quote
03-04-2013 , 09:42 PM
Stumbled upon an amazing CS lecturer from the University of New South Wales named Richard Buckland. He teaches the introductory course at the university, which is called CS1. It is available to take as an MOOC at a website called openlearning, and there are also old lectures for the course on YouTube.
A thread of resources Quote
07-16-2013 , 11:40 AM
I didn't see this site listed but it has more than just programming classes on it. Lots of good classes to get going with a wide range of languages available to study.

www.coursera.org

Note: You can go through all the lectures and reading materials of classes in the past. Projects and homeworks are listed as well as the answers etc.
A thread of resources Quote

      
m