23 7 / 2010
#begin #writing #code Day 5 - Learning to Code
Yesterday was a busy day. Tumblr got in touch with me (less than 12 hrs after I put in the request!) on getting the backend of proudn00b backup. With at least 15 emails back and forth, their engineering team is on it- so hopefully there won’t be too many more posts via my iPhone (with proper formatting). I am super impressed with their responsiveness, so I owe it to the Tumblr team to stick it out, and not move the site to another platform. Thanks again guys!
I also had some interesting reading recommendations.
http://twitter.com/jsuntheimer sent me a link to Paul Graham’s “Beating the averages.” If you haven’t read it, do it today! The main takeaway was learning different languages will open your thinking to the options available for solving a specific task. Definitely something that is now burned in my memory for future reference.
Article: http://www.paulgraham.com/avg.html
http://twitter.com/Venthor commented I should read the “Pragmatic Programmer.” I have just scratched the surface with the book, but the preface highlighted the Japanese concept of ‘Kaizen.’ Having taken 5 years of Japanese in high school & college, this really hit home. Kaizen is the idea of continuously making small improvements that will lead to big changes over time. Basically what I’m doing! The book looks great and I can’t wait to read further today.
Kaizen: http://en.wikipedia.org/wiki/Kaizen Book: http://www.pragprog.com/the-pragmatic-programmer
Coding:
However I did learn a good lesson: Not all tech books are written equally. Yesterday I said I was going to crank in ‘Python Programming for the absolute beginner.’ I can say with unwavering confidence- DO NOT BUY THIS BOOK. The first sign something was off was when the link on page 12 did not have the supplemental files. I had to call the publisher who routed me to the right URL - with files that had errors when executed. ex. input() when it should have been raw_input(). So that killed that book!
I did discover a great replacement- Using Google App Engine by Charles Severance (O’Reilly Book- http://amzn.to/aW8fg6). I found it first online @ Safari Books. However I cannot read a full book on my laptop- it’s just a terrible experience.
Any recommendations on Mac desktop apps for reading PDFs?
I got through the first two chapters: ‘Programming on the Web’ & ‘HTML & CSS.’ Some things I learned:
HTML ‘alt’ for alternative text id vs class - classes are designed to be repeated, ids aren’t CSS:
XXXX { } is for an id attribute
em units were derived from “the width of the capital ‘M’ in the currently used typeface”- http://en.wikipedia.org/wiki/Em_(typography) Box Model- http://www.w3.org/TR/CSS2/box.html Font family - http://www.w3.org/TR/css3-fonts/
CSS question: Why do people include ‘margin: 0;’ ?
And with this book, I’m going to continue down the route of using Google App Engine. It seems like the best way to go since I won’t have to worry about the servers, and can focus more on the ‘building the app’ part. In the spirit of Kaizen, I’ll save learning the server piece for later on.
So what am I trying to build?
A mobile, browser app that lets you connect to your Facebook friends and tag them on a map.
I’m not trying to go too crazy here, but the main thing is just getting something to RUN! I have read enough books to finally realize it is time to just jump in and get dirty. As http://twitter.com/duncanlock observed & recommended:
””” ‘If you want to learn a new skill, it is fine to read books & find solutions online. But nothing will ever replace being able to talk with an expert one-on-one. If they are your roommate, even better!’
I’m sure this is true. I’m also sure, from 15 yrs experience, that nothing - nothing that you do - will be as effective as just making stuff. If you want to learn how to make things, the only real way to do it, is to make things - lots of things. Type in every code example you see in your reading - actually type it in - any mess around with it. Extend it, try different things, mix it in with the previous one; take a break from what you’re reading, build a little toy thing that uses the new code, play around with that, then go on with the reading. Make your learning as exploratory and as practical as you can.
You should leave a trail of hundreds of tiny .py/.js files in your wake.
Fortunately for you, this has got hugely easier since I did it 15yrs ago - python, HTML, CSS, JS - they all support this style of learning really, really well. I suggest that you take maximum advantage of this and get stuck in! Remember - exploring is more fun that just reading about exploring :) “”“
Thanks Duncan for the nudge! :) Today, code is getting written and saved!
Question: What are good sites / resources for good site planning?
Last but not least…
“We who cut mere stones must always be envisioning cathedrals.”
—Quarry worker’s creed —-Pragmatic Programmer