6098 comments
2357 subscribers
6263 on Twitter
Subscribe! Feed reader E-mail

On this page:

Helping people learn more about programming

A number of people I know want to learn more about code. People see it as a useful skill, whether they’re dealing with functions and macros in Microsoft Excel, building tools in Ruby or PHP, or playing around with graphics in Processing. I had tea with a designer who’s learning how to code in the process of building a personal project. Since he was there and the code was there, I figured I’d help by answering any questions he had. By the time we wrapped up, he’d solved three of the things he was getting stuck on: limiting queries, working with inline PHP, and using AJAX to dynamically pull in data. Good stuff.

Helping people learn is so much fun. I loved teaching introductory computer science. Even though sometimes it was frustrating, it was such a thrill getting people to those "aha!" moments. I speed-read, so it’s easier for me to skim through Google results and documentation to spot just the right function. I’ve made lots of mistakes, so it’s easier for me to debug things than it is for people who are starting out. Sometimes all people need is a nudge in the right direction, a snippet of sample code, and then they’re off. I get such a kick out of it. It’s high-leverage – a little help can go a long way.

Problem decomposition is a key skill: breaking a challenge down into small, motivating steps, identifying the things you need to figure out first so that you can build on top of them. It’s hard when you’re new, and easier when you’ve solved lots of similar problems. I want to get super-good at this, which probably means doing this with more breadth and depth so that we have more building blocks to play with.

I’m figuring out what I like. I like one-on-one sessions and co-working chats more than group tutoring or teaching a class. I don’t mind looking at someone’s screen using Skype. I’m not an expert, but we can learn together, and I’ve been told that my enthusiasm is infectious.

What could this look like, if I folded this into my experimental life? Maybe it starts with informal coworking in a shared space, helping people while hanging out and doing my own work. (I might have a "Do Not Disturb" / "Open for Helping with …" sort of sign on my laptop.) I’m planning to join HackLab.to in March, after my current consulting gig winds up. (I hope the weather will be nicer by then!) More formally, people might book hour-long sessions in a cafe, coworking space, or library, like the way tutors meet with students. I’d get paid in cash (pay-what-you-can) and/or barter. I could offer virtual help, too – e-mail? Skype?

So there’s this idea of code coaching, for those questions that you can’t ask on Stack Overflow or on mailing lists, and for learning not just a specific thing but also the process of learning it. Shall we give it a try? I’m open to inquiries about Emacs Lisp, PHP, Ruby, Rails, JQuery, Excel functions and reporting tools, AutoHotkey, Bash scripting, and other things people might want to learn.

I’m a little anxious about the impostor syndrome, but I should just get over that. I confess up front: I’m not an expert in any of these frameworks, especially since most of them move faster than I can learn. <laugh> (You won’t believe the kinds of things people are building with Emacs Lisp these days!) I’m always going to be looking things up, because I switch between languages and don’t have all the syntax in my brain. I sometimes have to look up how to do basic control structures like a for loop. And I’ll tell you if I don’t have the foggiest idea how to solve something, but at least I can show you how I’d look for it.

This sort of mentoring is an expected part of teamwork. Who’s done this as an independent? Are there things I should watch out for? Will it hopelessly fragment my brain?

Who’s interested in exploring this with me? How would you value it, and how do we test whether it’s worth it for you and me? Jan/Feb’s busy with consulting, but maybe we’ll see what this looks like in March, or we’ll do low-key coaching for starters…

Related: http://news.ycombinator.com/item?id=4857854

Short URL: http://sachachua.com/blog/p/24396

Web app idea: Stamp mix calculator

2013-01-03 11.05.45

I’ve resolved to send more paper letters. I also have an odd mix of stamps that I want to use up: some with Canada Post’s permanent postage, and various denominations throughout the years. There are different rates for domestic, US, and international letter mail. Naturally, I want to optimize my stamp use so that I use the minimum number of stamps and avoid exceeding the required stamp rate.

Some examples for the $1.80 international rate:

  • 2 x $0.89 + 1 x $0.02
  • 2 x permanent postage (currently valued at $0.61 each) + 3 x $0.02 + 1 x $0.52

And lo, someone has actually built a stamp optimizer. Also, only one in Google Search? What do people call these things?

Next question: Has someone built a stamp optimizer that lets you keep track of your stamp inventory, maybe through bookmarkable parameters? It would be neat to be able to not have to enter in your particular mix of stamps each time. That might be overengineering this, though.

Who knows, I may sit down one day and code this just for fun. It totally fits the profile of the programming competitions we used to do in high school and university.

Short URL: http://sachachua.com/blog/p/24340

Ideas for making my work more effective and efficient, creating value, and rocking my work

  1. Change to Ubuntu
  2. Set up virtual machine for my Windows partition
  3. Use Emacs to handle my mail? Hard to do calendar acceptance
  4. Set up regular backups
  5. Resize Windows partition
  6. Clean up my Firefox extensions
  7. Clean my keyboard
  8. Set up personal or team bugtracker – not needed, projects have ClearQuest
  9. Set up website with talks
  10. Improve visual communication skills by practicing illustrating Enterprise 2.0 concepts
  11. Improve random information management tools – book quotes, stories, etc.
  12. Add automated testing framework to projects
  13. Uninstall unneeded programs
  14. Set up IE5 on Linux
  15. Move orangechair blog to Slicehost
  16. Convert orangechar blog to Drupal
  17. Set my desktop background to my work goals sketch
  18. Set up an easy way to crosspost Enterprise 2.0 sites
  19. Figure out team’s strengths, weaknesses, opportunities, threats (SWOT)
  20. Write an article on Enterprise 2.0 for managers
  21. Guestblog.
  22. Organize a teleconference with an external speaker.
  23. Build a conference tool
  24. Write a well-researched blog post for orangechair
  25. Post a book review – Generation Blend?
  26. Help write a book
  27. Help plan our menu of services
  28. Help IBM partners and account teams learn more about Drupal
  29. Organize other IBM Drupal developers into a community
  30. Do SWOT analysis for IBM and Drupal development
  31. Develop more IBM Drupal extensions
  32. Record a vidcast or slidecast about Enterprise 2.0
  33. Summarize resources
  34. Segregate my blog topics a bit more, making it easier for people to read Enterprise 2.0-related news
  35. Organize IBM Web 2.0 for Business resources
  36. Publish newsletter
  37. Build aggregator for community
  38. Build IBM voices aggregator
  39. Help draw vision for smarter planet
  40. Ask my network for help in identifying potential clients.
  41. Create blog alerts for Enterprise 2.0 topics
  42. .. and more!
Short URL: http://sachachua.com/blog/p/5554

Ideas for improving my website

  1. Add a section about my speaking topics and events
  2. Switch to Drupal and customize it
  3. Restore the Feedburner widget that shows how many people read this blog
  4. Make it easy to view my blog through different lenses (geek, life, both)
  5. Have a landing page that explains the site for first-time visitors
  6. Allow people to choose their default landing page when they come to sachachua.com
  7. Add more photos
  8. Make my sketches easier to view
  9. Allow people to toggle full entry, summary, or list view
  10. Put my self-introduction on the front page
  11. Highlight certain blog posts
  12. Extract names, e-mail addresses, and websites of people who have commented, and thank them
  13. Remember to respond to comments by e-mail as well as online
  14. Find a way of sharing the books I’m currently reading and what I’m learning from them
  15. Add a page with my blogroll
  16. Link to my other presences on the Web
  17. Make it easier to remember visitors’ details
  18. Visualize my posts and my posting frequency
  19. Format into a nice PDF
  20. Pull in relevant Twitter entries
  21. Make it easier for people to subscribe
  22. Use category templates and icons
  23. Share my task list again?
  24. Share my currently-checked-out list again
  25. Share my book summaries
  26. Share my to-read list
  27. Share my reading history
Short URL: http://sachachua.com/blog/p/5544

Crazy business idea: videoconferencing event/party spaces =)

Yes, videoconferencing should be the kind of thing anyone can get working at home, but technical glitches often come up.

I think there’s a market for at least one company that can set up an event space with a good screen, a computer, a reliable network connection, and a sound system. It beats having lots of people clustered around one laptop and spending most of the time struggling with technical issues. Market: business meetings during the day, globally dispersed families / friends at night and on weekends.

Anyone with that kind of business in Manila, please contact my mom. =)

Short URL: http://sachachua.com/blog/p/5405

Sweeeet! WordPress.org bought ad space on my laptop!

Remember my crazy idea to sell advertising space on my laptop during BarCampEarthToronto? Well, Matt Mullenweg of WordPress.org – *WORDPRESS.ORG!* My favorite blogging platform! (Okay, my *second-favorite* – nothing beats Emacs Planner)

!!

They are *uber*cool. Another thing I really, really, really, really like. Whenever I need to set up a blog for someone else, the very first thing I do is download the latest version of WordPress, unpack it, and set it up. I like it a lot.

So here’s what’s going to happen. I am going to make the logos for Orange & Bronze and WordPress.org as large as I can. I don’t mind potentially wasting space. It’ll be a *fantastic* story.

I’ll blog more from BarCamp tomorrow, and I’ll post my D*I*Y tutorial on Sunday. =) Or today, if I feel particularly diligent…

Anyway. WordPress.org. They are totally, totally cool.

On Technorati: , , , , , , , , ,

Short URL: http://sachachua.com/blog/p/3800

Advertise on my laptop! Webpage up

Okay, we’re open for business! Buy adspace on my laptop for USD 1.00 / 0.5″x0.5″ (basic) or USD 2.00 / 0.5″x0.5″ (premium, includes elevator pitch). Hurry! BarCampEarthToronto is just a few days away!

Props to Gabriel Mansour for helping me work things out!

See also my previous blog entries:

Other people’s blog entries:

Reserve ad space now!

On Technorati: , , , , , , , , ,

Short URL: http://sachachua.com/blog/p/3792

Get the highlights as a PDF!

Stories from my Twenties: Highlights from a Decade of Blogging

Free sample!