Learning programming is fun and for the most part easy to do. You need to set your expectations to meet this task because for some people it will be a hard road. But fear not, there are lots of ways to learn and examples to follow. Whether you learn in a more traditional classroom or on your own it will take a while for programming to sink in. Mostly because people aren’t used to thinking this way. Because everyone knows how to use a list it’s not a big jump to make something more complex.
Programming a Mac offers lots of different choices. The best part is so many things are free to use without restriction.
The outline and links mentioned in the show are just a click away.
hello world in 199 languages
http://www2.latech.edu/~acm/HelloWorld.shtml
biggest hello world on earth
http://www.flickr.com/photos/82727621@N00/sets/72057594129393836/
http://everything2.com/index.pl?node_id=10691
http://java.sun.com/docs/books/tutorial/getStarted/application/index.html
history of languages poster
http://www.oreilly.com/news/languageposter_0504.html
http://wiki.oreillynet.com/languageposter/index.cgi
http://www.oreillynet.com/pub/a/oreilly/linux/news/linuxanatomy_0101.html
unix
http://www.levenez.com/unix/history.html
okay where to start?
there are 2500 languages to choose from
http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm
every language is the same fundamentally
math
compare
branching
looping
variables
teaching yourself is possible
i learned by typing programs from a book
rote learning
forced to learn to debug
first programming experience was from 100 BASIC games
http://www.digibarn.com/collections/books/basicgames/
http://www.swapmeetdave.com/cc.htm
creative computing
http://www.moorecad.com/classicbasic/index.html
some people need a class
its more structured
learning is forced
you have homework to do
cribbing your code
search for just about any thing.
copy paste programmer!
take something apart to learn how it works.
old Apple II games were often in BASIC meaning you could read the code
modern programs aren’t always visible.
I want to make a [insert thing here] is the best way to learn
you have a goal
it’s something you want.
Flash
BASIC
chipmonk
future BASIC
all those emulators
use the example of 3B
parser
variables
math engine
turtle graphics.
Links
http://www.apple.com/downloads/macosx/development_tools/realbasic.html
http://www.apple.com/downloads/macosx/development_tools/torquegamebuilder.html
http://www.apple.com/downloads/macosx/development_tools/smile.html
http://www.apple.com/downloads/macosx/development_tools/greenfoot.html
http://www.apple.com/downloads/macosx/development_tools/smile.html
http://www.apple.com/downloads/macosx/development_tools/dim3.html
http://www.apple.com/downloads/macosx/development_tools/squeak.html
http://www.apple.com/downloads/macosx/development_tools/eggplant.html
http://www.apple.com/downloads/macosx/development_tools/powermops.html
http://www.apple.com/downloads/macosx/development_tools/torquegameenginesdk.html
http://www.apple.com/downloads/macosx/development_tools/regexpress.html
http://www.apple.com/downloads/macosx/development_tools/revolutionstudio.html
http://www.apple.com/downloads/macosx/development_tools/supercard.html
http://www.apple.com/downloads/macosx/development_tools/virtualhostx.html
http://www.apple.com/downloads/macosx/development_tools/revolutionmedia.html
http://www.apple.com/downloads/macosx/development_tools/arcadeengine.html
http://www.sawbladesoftware.com/



February 19th, 2008 at 10:00 pm
… a carton of milk.
February 19th, 2008 at 10:03 pm
or to be more precise. a container of milk
February 20th, 2008 at 8:54 am
Awesome!, been waiting for this one after John let its imminent release slip on twitter…
February 20th, 2008 at 10:24 am
What do you think is the best book or website to learn Javascript? I know HTML and CSS pretty well and can get what some stuff is in PHP, but I’d like to learn Javascript to do all those neat effects you see on the web now.
February 20th, 2008 at 12:41 pm
books are really tough to recommend. some books appeal to me and others I can’t stand. sometimes the “Whatever for Dummies” books really work. depends on who the author is though. for example the “Chess for…” turns out to be a great book.
when buying a book I usually have a problem in mind that I want to solve. I look at a variety of books using the index to find the what might help me. it’s a good way to learn if the reference will actually help. and it’s a good way to get a feel for a books depth.
in the case of your JavaScript Effects question, the first thing I would start with would be to look at the source of the pages doing those cool things. lots of times the code has a link to the source where there is TONS of examples and documentation.
February 20th, 2008 at 7:33 pm
Your talk on programming misses two concepts:
1) Relationships (and Connections to instantiate them)
2) Instances (as in executable objects.)
Most of the problems that I solved (and earned a good bit of money doing it,) were related to understanding the differences between a Collection and a Relationship.
I’d take you back to DSDs and Bachman diagrams and let you go ON from there.
There are some objects which can be handled within Collections and some objects (I would say MOST objects,) which should be handled as Relationships.
February 21st, 2008 at 12:10 am
Hi guys. Great show. I am a n00b trying to get started with programming in Python using Xcode and Cocoa. You talked about how easy it is.
Still I can not figure out whether I need to download and install PyObjC. Their download page does not offer any downloadable packages. Only some tree structure which leaves me puzzled. So I figured the thing might already be included in the Xcode. But when choosing a new project from the file menu I find no option for making a Python project.
Tutorials that I found on the net fail to explain well what to do. Some say you need to install PyObjC but fail to tell how. Some just tell you to choose a PyObjC project in the new project window in Xcode.
I am using Tiger and Xcode 2.5. Any ideas are welcome. Thank you.
February 21st, 2008 at 12:54 pm
next time. we didn’t want to scare the kids with EVERY concept!
February 21st, 2008 at 5:44 pm
Hey lvthunder,
To follow up on John’s “check the source” comment, I’d suggest that you start playing with one of the AJAX libraries like jQuery, which make UI effects and manipulation of page elements straightforward(er).
http://jquery.com/
While doing that, keep something like this handy in case you’re unfamiliar with some of the language basics.
http://www.w3schools.com/js/js_examples.asp
Since what many of us are _doing_ with Javascript is writing browser-based applications or adding rich UI to a site, my suggestion would be to focus on understanding how the DOM works, and then getting some facility with one of the libraries (like jQuery). If you do want a guided tour, you might find more use from a book that focuses on your library of choice, rather than just a book on JavaScript.
February 21st, 2008 at 6:01 pm
Udon,
I don’t remember us talking about coding Cocoa apps using Python (as opposed to just writing in Python generally), but I assume you’ve seen this article?
http://developer.apple.com/cocoa/pyobjc.html
February 21st, 2008 at 9:07 pm
Hi Ben,
Yeah I guess you did not talk about Cocoa apps. Sorry about that. I thought that if I want to do some python stuff in Xcode I might as well have a Cocoa app as a goal.
Yes, I found that page before and my problem is that contrary to what the Apple developer page says - there are no installable packages available at the PyObjC download page. They offer only some svn. Also the page is from 2005. So, I am a bit confused and do not really know how to continue. Perhaps the only way to continue is to get Leopard and Xcode 3? PyObjC seems to be included in it.
My previous programming experience is limited to HTML, PHP, Flash and some Python. I have recently become very interested in making apps for OSX but am a total n00b in this area. So, any future episodes about making apps for OSX are very welcome.
MacPro 4 cores, Tiger, Xcode 2.5
February 22nd, 2008 at 11:29 am
books on programming:
1-How to Think Like a (Python) Programmer ( http://www.greenteapress.com/thinkpython/ ).
2.How to Think Like a Computer Scientist
Java Version ( http://www.greenteapress.com/thinkapjava/ ).
3-How to Think Like a Computer Scientist
C++ Version ( http://www.greenteapress.com/thinkcpp/ ).
you can download the books freely in pdf and other formats.
February 23rd, 2008 at 4:20 am
Udon,
The link from Apple’s site is borked. Did you go to the sourceforge home page and search…? You’ll get a link to http://sourceforge.net/projects/pyobjc/ There are a few packages there. They download fine for me, though I haven’t tried using them. The python stuff looks interesting…
MacBreakTech folks,
You guys are awesome. Thanks for the laughs and the nudge to get back to learning how to program. I got stalled/distracted partway through learning RealBasic, but it’s time to get back on the horse again.
Talk to ya later, world.
February 25th, 2008 at 12:47 pm
Bring forth Macbreak Dev! A podcast teaching us from start to finish, on how to program simple cocoa!
February 25th, 2008 at 7:22 pm
a loaf of bread, container of milk and a stick of butter… I thought it was hilarious that you used that but then couldn’t remember!
http://www.youtube.com/watch?v=5jdP7HUPbVs
March 25th, 2008 at 2:50 am
Just listened to about 8 of the Macbreak Tech episodes at work today, it made roto’ing go by a lot quicker..
Writing regex’s is absurdly simple, really. Reading them is damn-near impossible, but they are extremely simple when broken down.
Every single regex is basically just a combination of:
[characters to match][how many]
[a-z] matches any one letter, between a and z
[a-z]* matches zero or more a-z
[a-z]+ matches one or more a-z
[a-z]? matches zero or one character within a-z
. is a shortcut for any character, so you can do:
.* to match any number of any characters
I wrote an article a few week ago on the subject, catchily named “Regexs for people who should know regex, but do not”. The first bit explains the syntax, the second bit shows how to actually use them in various languages.
Oh, the link:
http://neverfear.org/blog/view/Regex_tutorial_for_people_who_should_know_Regex__but_do_not___Part_1/
Mass-renaming files is something I completely forgot to include in the article.. I can’t imagine using Renamer for Mac with anything but regexs (other than the sequentially-number files, which I pretty much always use in conjunction with regexs :P)
say I have a bunch of files named like…
the.linux.tv.show.s01e01, the.linux.tv.show.s01e02
.. and want then named like…
The Linux TV Show - [01x01]
I would use:
s(\d{2})e(\d{2})
and replace with
The Linux TV Show - [$1x$2]
The part of the regex in brackets become groups, which you can refer to via $1, $2 etc (or \1 \2 in Renamer for Mac)
\d is a shortcut for [0-9] (any decimal)
So it looks for s, then two decimal numbers (and stores them in group 1), then for “e”, and stores the next two numbers in group 2.
To space it out a bit:
s ( \d{2} )
e ( \d{2} )
Yeh, I could probably do that with a bunch of regular find-and-replaces, but with regex’s, it’s a single line operation, and once you know the basics, are very quick to write.
Anyway, enough regex-rambling. You’ve convinced me to give Quartz Composer another try - I’ve started to play with it a bunch of times, and never quite knew what I was supposed to make with it, got bored/mildly annoyed and quit. Never considered making a game in it..
- Ben
March 27th, 2008 at 9:42 pm
Well, you did it. You finally out geeked me.
Not that that is a hard think to do. In fact, I expected to be in over my head a long time ago. While there have been occasional forays into things beyond my geek comfort zone, I could usually figure out B because I knew A and C. This one I was lost from go.
So, I’ve downloaded Become An Xcoder (a free pdf on programming Xcode), and we’ll see if I can go back and listen to it again in a couple months and actually understand it.
And thanks for referencing that Sesame Street sketch, and for mis-quoting it so that Emily linked to it. Haven’t seen that in ages.