Learning How to Design Websites
You must know how to use HTML and CSS. The best tutorial I’ve found is at HTMLDog.
Learning How to Design Things
In terms of web design, the best resource I’ve seen is here. Basically, you want to think about everything a user could possibly want to do on your page and then put similar items together on the page. You also want to spend a day or so reading through every one of Jakob Nielsen’s articles at useit.com. That’s an ugly site, but notice how easy it is to find what you’re looking for on that site. Steve Krug’s “Don’t Make Me Think” is also good.
In terms of making a site look pretty, I can’t really help you too much. Pay attention to details – gradients, rounded corners, subtle patterns, color mixtures, and drop shadows, among other things. Every screen in the iPhone UI, for example, looks simple at first glance but is full of visual and tactile effects. Start keeping track of pages with cool effects, and then look at the source code to figure out how they made that effect.
Learning How to Program
For absolute beginners, the best resource I’ve found is called Learn Python the Hard Way. You can do an exercise a day and finish the book in two months. It’s very good and will walk you through everything you need to get started. Python is also a great first language for programming.
Getting a Job
Read Hacker News every day for a year – it’s the most helpful thing I’ve ever done in terms of learning more about the industry, and reducing the number of “unknown unknowns.” They also have great job posts, and you can also make contacts by emailing people that say intelligent things. It’s an ugly site, and if you leave a dumb comment or submit an off topic article you will get nailed, but that’s a deliberate attempt to keep the community focused. If you get 300 karma points, you can change the color of the top bar (I like #cccccc
myself).
More so than finance, consulting or government, you can measure someone’s output in software/web design. Go out and build something useful for yourself – a solver for Words with Friends or Sudoku, or an email that tells you what the weather is, or some other useful tool. You should also buy a web domain and list your projects there. Blogging is also helpful. This has the side effect of also helping your Google search rating.
Use your network, go to events, reach out to people.
Getting That Startup Job You Really, Desperately Want
Create a landing page that looks like this. Then take out Google Adwords ads for the names of everyone you can find at the company and point to that page. Bonus points if you tailor the pitch to each person. Email their HR department and point them to the page too, for good measure. Start an unofficial company blog and discuss the company’s technology choices, design decisions, assess the industry strategy, write about whatever you can find.
Basically, show that you’re really passionate about what they do and that you’re really committed to working there. Note that the time involved in doing this well means that you won’t be able to do this for more than two companies at a time. This is a good thing.
Marketing Jobs
Buy things off Ebay and try to resell them at a profit, by improving the content or the item’s back story. You will probably stink at this at first but improve over time. Then measure your results and blog about them. Pointing people to your blog will get you at least a first round interview at every tech company in the Valley.
Design/Web Development Jobs
Start a blog and start hacking around with the WordPress theme. Then offer to redesign all of your friends blogs. The more practice you get the better you will be.
Product Management
This is a tough nut to crack. Try to get as much experience as you can. A technical background is helpful.
Software Engineer Jobs
Start programming. Get a Github or Bitbucket account and start contributing to open source code. Get in an IRC channel and ask a developer to throw you an easy bug. Once you’ve done this you can have something to point to as a sample of your code, which is better than nothing. Emphasize any coding experience on your resume, but note that resumes are less important for development jobs. Interviews are pretty straightforward (that does not mean easy) and there are books you can use to prepare for them. Classes in Data Structures and Algorithms are helpful for interviews.
I Have A Great Idea for A Startup
Sorry, but ideas aren’t worth that much; I probably get pitched at least one idea every week. You should check out Gabriel Weinberg’s flowchart for startup founders.
You should also consider performing the $20 Starbucks test. You really should, because $20 is a bargain compared to six months building something that no one wants. And if you can’t ask random strangers for advice about your startup idea, then good luck asking investors for money to fund your startup idea.
Another thing you can do is set up a landing page, describe your product and have a “Sign up” button. Then on the next page explain that you’re still building the product, and ask for people’s email addresses. Use analytics to see how many email addresses you get. Then email all the people and ask them what their problem is. You will get lots of insight from speaking with them. Use it to help you build your product (or choose not to build it). This way you’ve started figuring out what people want before you start building something that you might have to scrap.
Questions?
If you have questions, or something else I should cover here, you should email me.
Comments are heavily moderated.