About
One feedblog to rule them all!
Friends
-
Loading...updates 2 months ago
Click here to check if anything new just came in.
July 23 2010
Questions You Should Ask Before You Quit Your Day Job [Jobs]
"Don't quit your day job" may be a running joke for folks who enjoy but can't necessarily make money from their passion, but how do you decide when quitting your day job is actually a viable option?
Personal finance blog Get Rich Slowly offers a few thoughtful suggestions for determining whether or not you're ready to quit your day job. For example:
Chasing a dream isn't for everyone. There are plenty of people who prefer the stability and security of a job. Many creative, interesting, passionate people like the advantages of a steady paycheck, good benefits, and the ability to leave work behind at the end of the day.
Before you consider quitting your day job to follow your passions, ask yourself:
- How comfortable am I taking a risk with my livelihood?
- Am I willing to maintain a business?
- How will I handle the business management aspects of my new career?
- Do I want to do this all day, every workday, or will that strip the joy from it?
- Will my family and friends support this move?
In all, it's a well-reasoned post that delves far beyond those questions to discuss further realities, suggesting, for example, taking your dream job for a test job (it may not be as great as you expected). The post is written with your financial health in mind, but also keep in mind that sometimes quitting your day job—even when you don't have "substantial savings built up to cover the financial risk of quitting your regular job"—is a risk worth taking. (I never would've ended up at Lifehacker if I'd followed that advice.) Whether or not you agree with every piece of advice, it's a worthwhile read if you're considering leaving your 9-to-5. Photo by Y.
July 22 2010
Consider What Your "Top Idea" is Making You Do [Thinking]
Essayist and programmer Paul Graham realized that the idea one thinks about when allowed to think freely—in the shower, for example—is more than just a quiet obsessions. It's a "Top idea," and it influences every other thought, too.
Photo by stevendepolo.
Actually, what Graham argues in his excellent essay is that if you've got a top idea in your head, that idea is getting all kinds of free, enthusiastic thinking that other ideas aren't getting. That can be fine if it's a good idea that comes from a good place, but all too often, Graham writes, we find ourselves letting non-priorities become our top ideas.
I'd noticed startups got way less done when they started raising money, but it was not till we ourselves raised money that I understood why. The problem is not the actual time it takes to meet with investors. The problem is that once you start raising money, raising money becomes the top idea in your mind. That becomes what you think about when you take a shower in the morning. And that means other questions aren't.
Graham's full essay is definitely worth the read, especially if you're wondering where your own "shower" idea is coming from.
April 16 2010
The Best Way to Give Advice: Offer Information [Mind Hacks]
If you offer your advice freely but feel like no one's taking it to heart, you may just be doing it wrong. According to a study of the our decision process, the best way to give advice is simply to offer information.
Behavior blog Psychology Today highlights a paper that looks into the way people use advice, highlighting four different kinds of advice: Advice for, which is generally a recommendation for an option; Advice against, which recommends avoiding an option; Decision support, which suggests ways to go about making a decision; and Information, which offers information about a subject that may be new to the decision maker.
The studies found that the most useful type of advice was information advice. Why?
For one thing, when someone makes a recommendation for or against a particular option, a decision maker may feel like they have lost a bit of their independence in making a choice. Recommendations about how to go about making the choice may also make a decision maker feel a loss of independence. When the advice comes in the form of information, though, the decision maker still feels like they have some autonomy.
Information also helps decision makers inform future related decisions and makes them more confident about their choice. Hit up the full article for more details, but the takeaway: If you really want to help someone with your two cents, give them information. Photo by Digital Sextant.
February 16 2010
Grow an Endless Supply of Onions with Old Onion Bottoms [Food Hacks]
There's nothing like homegrown vegetables, and there's no vegetable easier to grow than one that regenerates itself. With the help of a guide from DIY web site Instructables, you can now grow a bevy of onions from just one old onion bottom.
Onions are great. They not only provide flavor to many a dish, but they can also clean your grill and soothe bee stings—so there's no reason not to have a full bed growing in your kitchen at all times. All you need for this trick is an onion, a knife, and a cutting board—things you probably already have if you're cooking with onions (if not, I'm very curious as to how you are cooking with onions). You'll also need some dirt—of which this planet has a pretty plentiful supply—and, if you choose to do so inside, some pots, although you can plant your onions directly in the ground if you prefer.
The process is extremely easy, and really just involves putting an old onion bottom in the ground and letting it regenerate its roots—after which you remove the old onion and let those roots grow. You can also separate the roots to create new plants and they will regenerate themselves—theoretically giving you an infinite supply of onions. If you're going to overflow your kitchen with onions, though, be sure you know how to slice them like a pro and keep those tears at bay—we want to make sure the blood, sweat and tears going into your food is purely figurative.
February 10 2010
Build a Clean, Wall-Mounted Charging Station [DIY]
Ugly cords are the obvious villain in your gadget-charging clutter, but even if you put together a nice charging station, you've still got to sacrifice some counterspace to your charging station's footprint. This clean, wall-mounted charging station tackles both problems.
Pam from home blog Bibbidi Bobbidi Beautiful details how she put together an attractive, cordless, clutter-free charging station with a simple ledge shelf and some picture hanging strips.

She mounted the shelf on top of her outlet (depending on how concerned you are with fire hazards, you may want to reconsider that aspect) with the help of the hanging strips, effectively hiding both the outlet and the chargers from view. The cords also remain hidden by the shelf, and all that's left is small dongles sticking out the top for you to get your charge on. It's simple but effective, just hows we likes it.
February 08 2010
FollowUpThen Automates Email Follow Ups [Follow Up]
You're pinging somebody over email right now, but they'll probably need a reminder or follow-up in two days. CC twodays@followupthen.com, and if that person hasn't responded yet, they'll be automatically re-pinged 48 hours from now. It's a neat service, and it's free.
That's the main way FollowUpThen works: CC a message that needs a second push to an address like 5hours, 2days, 1week, or even 10minutes@followupthen.com, and if your recipient doesn't reply (with FollowUpThen as one of the addressees) before your time period is up, the original message is re-pushed by FollowUpThen.com, with a little email graphical tweak, seen above, and a notice that FollowUpThen is acting on your wishes.
If you want to handle the second notice yourself, add the @followupthen.com timed address to the BCC field, and it will only get back to you, with a reminder of what you sent. You can also send a message directly To: followupthen.com, and your reminder is pushed back to you at the time you specify. All these uses, and some basic explanation of FollowUpThen's methodology, is explained in this quick video tutorial:

No software installs required, and it works from pretty much any email client after you verify your address upon first use. If you've got a clever use case for FollowUpThen involving webapps or other tools beyond the standard person-to-person email, tell us about them in the comments.
February 04 2010
FillAnyPDF Lets You Electronically Fill In and Sign Any Form [PDFs]
Fax machines are going the way of the dodo, yet sometimes there's no easy way to transfer forms back and forth, especially ones that need to be filled out and sent back. FillAnyPDF steps in to fill the gap.
FillAnyPDF is a free web-based service where you can upload any file in PDF, PNG, JPG, or GIF format. You don't need to do anything to your form before or after it's uploaded; the service will do all the heavy lifting for you.
You can email a link to anyone and they can open the form and fill it in right on the site, no download necessary. Of course if they want to print out a copy for themselves, that's an option too. FillAnyPDF lets users type right into a document, add images or HTML markup, redact, highlight, or white text.
The service accepts standard handwriting input from a mouse or writing pad so the document has a realistic signature on it. Digital signatures—a simple typed name—are acceptable as legally binding as well, thanks to the app's native IP logging and tracing features.
One obvious use for a service like FillAnyPDF is to make it easier for freelancers and clients to manage contracts, tax forms, and other paperwork. That's a lot of private information flying around the internet, but the company says your data is safe:
- Your account and documents are password protected, so no one will be able to access your data unless you grant them permission.
- All forms and sensitive information on the site are encrypted with full 128-bit SSL security.
- Our servers are housed in state-of-the-art secured facilities with security and backup power. The servers have redundant hard drives (RAID) and daily backup to a separate device.
Even if you're not comfortable sending personal information via a service like FillAnyPDF, it's still a great tool for managing more generic paperwork that doesn't involve private information. If you give it a go, let's hear what you think in the comments.
Set Up a Low-Tech, Whole-House Speaker System Through Existing Phone Lines [DIY]
Ed. note: It can be pretty expensive (and a big pain) to install a wired, whole-house speaker system, but reader Tom O'Brien writes in with his low-tech solution: Route your speakers through the phone lines already installed in your house.
Here's Tom's set-up:
Using existing telephone wire and powered speakers, it's fairly simple to connect speakers throughout the house via existing phone lines. This will work only if the lines have 3 extra wires, such as when no land line is in use, or if the house has 6 (very common) or 8 strand telephone wire. Cat 3 wire is 8 strand.
Each audio jack in the setup can connect to any source or supply output to speakers. All power is supplied by the input and output components. This is just a big complicated extension cable.
I live in an old 3 level house. This permits the same audio to be played throughout. Off/on and volume controls are on the remote speakers, as with any powered speaker. This will possibly violate the sensibilities of audiophiles, but the sound is fine for me.
Materials include:
- 3.5 mm headphone jacks from Radio Shack
- Repurposed Cat 5 or Cat 3 junction boxes drilled out for audio jacks. Home Depot's are cheapest.
Tools:
- Soldering iron
All audio files, podcasts, etc are saved on netbook PC at "Home Base" (pictured above).
Note 2 cords plugged into panel. One is output from computer, other is to the speakers on shelf.
A CD player, portable mp3 player or any other source can be plugged in as well, hence so many jacks at home base.
The good speakers in living room.
3.5 mm headphone jacks from Radio Shack.
This is a cover panel for an in-wall junction box. The example has both speaker jacks and a phone jack and uses cat 3 (8 strand) wire. It would have been easier to just wire in a second box for the speaker jacks.
This is suitable for an in wall junction box.
The 3 screws at the top are for the audio jacks, the 4 screws at the bottom connect a 2 line phone via the cat 3 phone jack in the center.
External box wired in to existing phone system.
Double sided tape works well to secure wood to the box.
Thanks for the great suggestion, Tom! If you're looking for a higher-tech solution that'll still keep it cheap, check out our previous guide to using an AirPort Express to set up wireless, multi-room music playback.
January 19 2010
Ditch the Granny Knot to Tie Your Shoes More Efficiently [Knots]
The difference between shoes tied with a balanced, neat, and self-tightening knot versus those tied with an unbalanced, sloppy, and loose knot, is all in how you make your first loop.
Over at Runner's World they've put together an instructional video to go along with an informative article on the difference between Granny Knots and Reef Knots. Well tied shoes are important to runners, but anyone can benefit from the simple change in knot tying-methodology outlined in the video below:
By simply altering the direction of the first loop you make when tying your shoes you can produce a neater knot that is less prone to coming untied. If the Reef Knot caught your eye, you may want to check out another interesting knot we've covered: the "world's fastest shoelace knot, a.k.a. the Ian Knot. Have a bit of knot tying lore to share? Let's hear about it in the comments.
November 30 2009
StereoMood Plays Music According to Your Mood [Music]
Services abound for finding music by genre or musical-relation, but what if the parameter you want is your mood? StereoMood lets you pick music by your mood.
Using StereoMood is as simple as clicking on one of the tags in the cloud of mood tags or searching for some music with the search tool to get started. Once the tunes are playing you can add them to your personal library—saving requires a free account—as well as share them with friends, buy them in Amazon.com or iTunes, or tag the song.
In addition to building a playlist for you based on the mood you select you can also see which artists and groups are the most popular in that mood-category. Beach House is, for example, currently the most popular group in the Dreamy category.
You can try it out for free at the link below and start listening to music that fits your moods and activities. If you know of another great music discovery or play list building tool, let's hear about it in the comments.
November 26 2009
How to Fix Your Relatives' Terrible Computer [Tech Support]
Drop your bags, fix a drink, and grab the XP CD—it's time for the holiday ritual of fixing up your relatives' computer. Here are some tips and downloads to keep handy while you're cursing all the auto-starting crapware.
Photo by Justin Marty.
For this guide, we're going to do a bit of assuming. We're assuming the relative with the busted computer is running a Windows system, and has an internet connection that works when the computer does. We're assuming all the physical pieces of the computer work—hard drive, memory, disc drives, and anything else that's crucial. We'll also assume the computer's in one of two states: Failing to boot and needing an OS re-installation, laden with unnecessary system tray/startup applications and/or spy/mal/ad-ware, or just needing a little optimization.
Computer won't boot, needs a re-install
The problem: Turning on the computer results in a message that states Windows can't boot because something is missing (a boot loader, an important file, etc.) or something is wrong. There are many variations on this message, but they all say basically the same thing: You will not be getting into Windows.
Quick-fix triage: Load the original XP, Vista, or Windows 7 (Really? Broken already?) CD or DVD in the system and boot the system from there, which might require hitting a key to bring up "boot options" or pressing a key when asked to "Press any key to boot from CD." Wait for the CD to load—it may seem like it's installing, but it's just loading a mini-system for installation and, in this case, repair. Follow the prompts to repair an existing installation, or, in the case of Vista or 7, ask it to repair the startup process.
What you'll need:
- XP, Vista, or Windows 7 installation CD/DVD: It may be from a computer manufacturer and not look like a Microsoft-obtained, holograph-packed disc, so look around a bit. If it's a "System Restoration" disc, be sure that you can boot from it and install a full copy of Windows from it.
- USB thumb drive: At least 1GB in size.
- External USB drive or blank DVDs: For backing up important files.
- Ubuntu Live CD or Knoppix Live CD: Both are Linux distributions, but we're just using them because they run on most kinds of hardware without installing, and can transfer the files you need to your backup media. Ubuntu should work; if it doesn't, give Knoppix a go. You can use the free tool UNetBootin to transfer the ISO you downloaded to a thumb drive, which is necessary if you're backing up to DVDs, and recommended in any case to speed things up.
If that doesn't work, and you really feel this system can boot again except for some silly error, try creating an Ultimate Recovery CD, as detailed at the How-To Geek's home away from Lifehacker.
If that worked, hooray! If not, soldier on to the next step.
Back up the files: Have your USB hard drive or blank DVDs handy, and remove the Windows CD/DVD from the computer if you tried to use that for a fix. Stick your thumb drive with the Ubuntu (or Knoppix) image into a USB slot, then boot up the computer. You may have to hit F12 or another key to boot from USB, or change a setting in the BIOS (which you can access by hitting a key—written in that fast-disappearing text—at boot-up). You'll be asked to choose a language, then hit the option to "Try Ubuntu without any changes." After some loading, you'll arrive at an Ubuntu desktop.Move your cursor to the "Places" menu, and check to see that your USB drive (MyBook, in my case) or blank DVD is showing up. You should also see the hard drive Windows is running from. On an XP or Vista system, there's usually just one, but on Windows 7, there are two—a "System Reserved" (fairly small) and a larger, main drive. Check to see that you can open and access those files as well.
Ask your relatives which files and documents are important to them. When doing my own tech support work, I usually back up the entire "My Documents" folder (with "My Music" and "My Pictures" included), their Outlook or (yes, sometimes) Outlook Express email data (explained here), and their Firefox profile or, more likely, their "Favorites" folder for Internet Explorer (
C:\Documents and Settings\Username\Favoritesin XP, or C:\Users\Username\Favorites in Vista or 7). In any case, always ask, and make sure there isn't any software they can't locate a license for.
When you're ready to back up, simply open your USB drive from the Places menu, then open your main Windows drive, and drag files to copy from your Windows system onto the backup medium.
If you're burning to DVD, head to the Applications menu in your temporary Ubuntu system, mouse over the Accessories sub-menu, and select "CD/DVD Creator" when it pops up. You'll get a folder you can drag files you want to burn into, then hit "Write to Disc" to burn them.When you're all done backing up files, head to the menu with the power icon next to it (labeled "Live user," most likely) and select "Shut Down." You'll eventually be prompted to remove your live CD or USB stick—do so, and swap in the Windows installation CD or DVD. Turn off the system, then turn it back on. Follow the instructions to install Windows on the system, erasing whatever partitions or data exist on there at the moment (assuming you're sure the important stuff is backed up).
Clogged with crapware
The problem: The computer boots up ... eventually. Programs open very slowly, the hard drive seems to click and whir endlessly, and messages, reminders, and pop-up windows jump onto the screen every few minutes.
Quick-fix triage: If you don't suspect there's anything actually malicious and infectious on the system—that is, you're fairly sure they've been running and updating an anti-virus and anti-malware client—grab a copy of Revo Uninstaller Portable (direct ZIP file link), and run it off the USB stick you brought with you.
Click the "Tools" button, choose the Autorun menu on the left, and look through the items on the right. Uncheck the stuff that's really unnecessary—most of it, really, unless they constantly use a printer/scanner or run an antivirus app—and remind your host to un-check the toolbars and "helper" apps offered when installing things.If things are much better now, and you don't imagine that malware is an issue, you're all done. Otherwise ...
What you'll need: Mostly a small batch of software, recommended by this author and the How-To Geek. You can run these once and remove them, or run them off a thumb drive, in some cases. The last download is one you'll keep installed on the system.
- Revo Uninstaller Portable: Completely, utterly removes the programs, toolbars, and other junk apps that aren't needed.
- SuperAntiSpyware: For cleaning (you guessed it) spyware.
- Malwarebytes (or its portable version): For the clingy cookies, add-ons, and apps that try and do unauthorized stuff.
- CCleaner Portable: For freeing up hard drive space and clearing out temp/cache files that bog down the system index.
- Microsoft Security Essentials or Panda Cloud Antivirus: The former for a system that's got enough horsepower to be adequate, the latter for a system that's light on resources.
The fixing process? It's nothing special, actually—just run the quick-fix triage in any case, removing the auto-run apps that bog down system resources, and then run these secondary apps, generally in the order they're listed. Keep Security Essentials or Panda Cloud Antivirus installed (not both!), and, while you're being helpful, back up this computer's pictures, music, and important documents.Tuning up and bomb-proofing
Maybe everything technically "works," but watching your relatives open emails in Outlook Express and browse on Internet Explorer 6 is just, well, painful. Here are the steps we recommend to get things moving:
- Run the basics of the "clogged with crapware" section: The one involving Revo Uninstaller and startup programs, under the "quick-fix triage" sub-section, and installing either Microsoft Security Essentials or Panda Cloud Antivirus.
- Install Firefox and make it the default: Be sure to use the bookmark and setting import from Internet Explorer. You could even go with Google Chrome for even tighter security and speed, if your relatives wouldn't mind the abrupt shift in look and feel.
Set up their email in Gmail: Gmail has made it much easier to import email accounts, whether they're AOL, cable company, or other defaults that just stuck around. You can make a simple switch in the settings to keep your relatives receiving and sending email from their same address (or multiple addresses). Save their Gmail password in Firefox, but make sure they know it, and they'll even get some new-fangled email portability.- Physically clean the beast: Stop by the local office store, grab a can of compressed air, and clean out the "dust bunnies", especially if you can hear the exhaust fans over the mid-day football.
- Replace cruddy programs with superior alternatives: Gina's 2008 recommendations still hold up, but we updated them a bit, and made them super-easy to install in one shot, with our Lifehacker Pack 2009. Or use Ninite for a similar one-click awesomeware package.
That is, at least, how one Lifehacker editor is fixing at least one relative's computer this long holiday weekend. What's your own 1-2-3 process for being the holiday software savior? Share your success stories in the comments.Unless you're writing "Buy them a Mac." In which case, take your truly helpful comments elsewhere, and prepare to get banned.
November 15 2009
November 11 2009
Programmer 101: Teach Yourself How to Code [Programming]
You've always wanted to learn how to build software yourself—or just whip up an occasional script—but never knew where to start. Luckily, the web is full of free resources that can turn you into a programmer in no time.
Since the invention of the internet, programmers have been using it to discuss software development techniques, publish tutorials, and share code samples for others to learn from and use online. If you're curious about how to become a programmer, you can get off to a running start using tons of great free web-based tutorials and resources.
First Things First: Don't Get Hung Up on Choosing a Language
A common pitfall for beginners is getting stuck figuring out which programming language is best to learn first. There are a lot of opinions out there, but there's no one "best" language. Here's the thing: In the end, language doesn't matter THAT much. Understanding data and control structures and design patterns does matter very much. Every language—even a simple scripting language—will have elements that you'll use in other languages as well and will help you learn. In classes I took to get my degree in Computer Science, I programmed in Pascal, Assembly, and C—languages I never actually got paid to program in professionally. I taught myself every language I've used in my career, reusing concepts I already knew, and referring to documentation and books to learn its syntax. So, don't get hung up on what language to learn first. Pick the kind of development you want to do, and just get started using one that works.
There are several different kinds of software development you can do for various platforms, from the web to your desktop to your smartphone to a command line. In this article, we'll outline some of our favorite starter tutorials and resources for teaching yourself how to program for each major platform. We're going to assume you're a savvy user, but a newb when it comes to wrangling code snippets, so we'll keep things at the beginner level. Even just following through a beginner programming tutorial, you'll be happy to see how far you can get.
Desktop Scripting
The easiest way to try your hand at programming for your Windows or Mac desktop is to start with a scripting or macro program like AutoHotkey (for Windows) or Automator (for Mac). Right now hardcore coders throughout the Lifehacker readership are yelling at their monitors, saying that AHK or AppleScript are not "real" programming. That may be true—technically these types of tools just do high-level scripting. But for those new to programming who just want to get their feet wet, automating actions on their desktop, these free tools are a fantastic way to start—and you'd be surprised at how much you can do with them.
For example, Adam developed the standalone Windows application we all know and love, Texter, using AutoHotkey, so this scripting language is capable of far more than just small-scale automation projects. To get started with AutoHotkey, check out Adam's tutorial on how to turn any action into a keyboard shortcut using AutoHotkey. (Then, check out the source code for Texter to see the innards of a full-fledged AHK-based Windows application.)
Web Development
Instead of being bound to specific programming languages and the look and feel of a particular operating system, you can put your killer application in the browser and run it in the cloud, as a webapp. Welcome to the wonderful world of web development.
HTML and CSS: The first thing you need to know to build any web site is HTML (the page markup that makes up web pages) and CSS (the style information that makes that markup look pretty). HTML and CSS are not true programming languages—they're just page structure and style information. However, you should be able to author simple HTML and CSS by hand before you begin building web applications, because a web page is the frontend to every webapp. This HTML tutorial is a good place to start.
JavaScript: Now that you can lay out a static web page with HTML and CSS, things get fun—because it's time to learn JavaScript. JavaScript is the programming language of the web browser, the magic that makes dynamic in-page effects go. JavaScript is also the stuff of bookmarklets, Greasemonkey user scripts, and Ajax, so it's the key to making all sorts of web goodies. Start learning JavaScript here.
Server-side scripting: Once you're good at making things happen inside a web page, you're going to need to put some dynamic server action behind it—and for that, you'll need to move into a server-side scripting language, like PHP, Python, Perl, or Ruby. For example, to make a web-based contact form that sends an email somewhere based on what a user entered, a server-side script is required. Scripting languages like PHP can talk to a database on your web server as well, so if you want to make a site where users can log in and store information, that's the way to go. Excellent web development site Webmonkey is full of tutorials for various web programming languages. See their PHP Tutorial for Beginners. When you're ready, check out how to use PHP to talk to a database in WebMonkey's PHP and MySQL tutorial. PHP's online documentation and function reference is the best on the web. Each entry (like this one on the strlen function) includes user comments at the bottom which are often as helpful as the documentation itself. (I happen to be partial to PHP, but there are plenty of other server-side scripting languages you might decide to go with instead.)
Web frameworks: Over the years, web developers have had to solve and resolve the same problems and rewrite similar code to build dynamic web sites. To avoid making everyone reinvent the wheel for every new web development project, some programmers have come up with development frameworks that do some repetitive work for you. The popular Ruby on Rails framework, for example, takes the Ruby programming language and offers a web-specific structure for getting common web application tasks done. In fact, Adam used Rails to build his first serious (and impressive!) web application, MixTape.me. Here's his take on how to build a web site from scratch with no experience. Other popular web development frameworks include CakePHP (for PHP programmers), Django (for Python programmers), and jQuery (for JavaScript).
Web APIs: An API (Application programming interface) is a programmatic way for different pieces of software to talk to one another. For example, if you want to put a dynamic map on your web site, you want to use a Google Map instead of building your own custom map. The Google Maps API makes it easy to programmatically include a map in a page with JavaScript. Almost every modern web service you know and love has an API that lets you include data and widgets from it in your application, like Twitter, Facebook, Google Docs, Google Maps, and the list goes on. Integrating other webapps into your web application via API's is the final frontier of rich web development. Every good, major web service API offers thorough documentation and some sort of quick start guide to try it out (here's Twitter's, for example). Go crazy.
Command Line Scripting
If you want to write a program that takes textual or file input and outputs something useful, the command line is the right place to do it. While the command line isn't as sexy or good-looking as a webapp or desktop app, for rapid development of quick scripts that automate processes, you can't beat it.
Several scripting languages that work on a Linux-based web server also work at the command line, like Perl, Python, and PHP—so learning one of those baddies makes you conversant in two contexts. My path never took me too far down the Perl road, but I taught myself Python using the excellent and free online book, Dive into Python.
If becoming a Unix ninja is one of your programmer goals, you absolutely must get good at shell scripting with bash. Bash is the command line scripting language of a *nix environment, and it can do everything from help you set up automated backups of your database and files to building out a full-fledged application with user interaction. Without any experience writing bash scripts beyond a dozen lines, I wound up developing a full-on personal to-do list manager in bash, Todo.txt CLI.
Add-ons
Nowadays, modern webapps and browsers are extensible with with bits of software that bolt onto them and add features. Add-on development is gaining in popularity as more developers look at existing software, like Firefox or WordPress, and think "But if only it could do THIS..."
You can do a whole lot in any web browser with just a mastery of HTML, JavaScript, and CSS. Bookmarklets, Greasemonkey user scripts, and Stylish user styles are created with the same bits of code that make regular web pages, so they're worth learning even if you just want to tweak an existing site with a small snippet of code.
More advanced browser add-ons, like Firefox extensions, let you do more. Developing Firefox extensions, for example, requires that you're conversant in JavaScript and XML (markup that's similar to HTML, but way more strict in format). Back in 2007 I ran down how to build a Firefox extension, a skill I picked up after I stumbled upon a free tutorial.
Many free and well-loved web applications offer an extension framework as well, like WordPress and MediaWiki. Both of those apps are written in PHP, so comfort with PHP is a prerequisite for getting started. Here's how to write a plug-in for WordPress. Developers who want to ride the cutting edge of Google Wave can get started writing gadgets and bots in HTML, JavaScript, Java, and Python. I wrote my first Wave bot following this quick start tutorial in one afternoon.
Web Development for the Desktop
The best part about getting started programming in one context is when you can take those skills and apply them elsewhere. Learning web development first is a great way to start because now there are ways to put those skills to work on desktop applications, too. For example, Adobe AIR is a cross-platform run-time environment that lets you build your app once and release it to run on the desktop for every operating system AIR runs on. AIR apps are written in HTML, Flash, or Flex, so it lets you apply your web development skills in a desktop context. AIR is a great option for deploying desktop apps like one of our top 10 apps worth installing Adobe AIR for.
Mobile App Development
Mobile applications like the ones you run on your iPhone or Android smartphone are all the rage right now, so you may have dreams of striking it rich in the iTunes App Store with the next killer app. However, for the new coder, diving headfirst into mobile development can be a rough learning curve, since it requires comfort with advanced programming languages like Java and Objective C. However, it's worth checking out what iPhone and Android development looks like. Check out this simple iPhone application development example to get a taste of what iPhone developers do. Android apps are written in Java, and here's a friendly video tutorial of what building a "Hello Android" application workflow looks like.
Patience, Elbow Grease, Trial and Error
Good coders are a special breed of persistent problem-solvers who are addicted to the small victories that come along a long path of trial and error. Learning how to program is very rewarding, but it can also be a frustrating and solitary experience. If you can, get a buddy to work with you along the way. Getting really good at programming, like anything else, is a matter of sticking with it, trying things out, and getting experience as you go.
This article is just one self-taught programmer's top-of-mind recommendations for beginners. Experienced programmers: What did I miss? No matter your skill level, add your thoughts and recommendations for beginners to the comments.
Gina Trapani, Lifehacker's founding editor, thinks the best programmers are self-taught. Her weekly feature, Smarterware, appears every Wednesday on Lifehacker. Subscribe to the Smarterware tag feed to get new installments in your newsreader.
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...









