A Map of Resources for Learning Ruby

My previous chart of resources to learn programming was well-received, but some people suggested additional resources. I decided I would try a new format to display more resources for learning programming. It is a map of different resources, which are ordered from left to right based on experience. You can choose a resource from each vertical, and then move to the right as you gain experience. A sample path is shown in the image. It would be interesting to see how these kind of charts can be improved to quickly display relevant information about each item. Click on the image below get a clickable image map, an SVG should be coming soon.

Map of ruby resources

Job Market for Programming Languages

One consideration when choosing a programming language is the demand in the job market for people who know that language. I did some searches on different job sites to see what skills are in demand. Below are the results from Monster.com for jobs that tagged specific languages as skills. For more information, I created a Google Spreadsheet with job data from different websites.

Java is used extensively in big companies, so it has the most results. Javascript is the only language of front-end development, so it takes the second spot. PHP is clearly less popular than it used to be, while Python and Ruby vary by website.

The Zappable Guide to Finding a Web Host

I decided to update the Zappable Guide to Finding a Web Host. This guide is intended for a newbie who is would like to find out about different hosting options, though I think others can find helpful stuff here too. Most people just Google for information and get results based on SEO instead of what’s most helpful. While Google’s results have improved, you still won’t get a helpful review of the many different options possible. In the chart, I try to explore many different free options, and a couple of paid options too. (Note: I made some of the links into affiliate ones.)

The basic categories I explore are Static Hosting, Cloud Hosting, Cpanel hosting and regular dynamic hosting. I provide recommendations for in each category that I think are good and reliable. This chart should help people quickly find a good web host choice. If you want some more background info and specific details, see finding a web host. The chart is embedded below and a PDF is available here.

Updates:
I created a webpage version of this chart, which will be able to contain more info and be updated more frequently. For example, see the Dreamhost coupons.

Writing with Less Writing

Ideas discussed:

  • People think all writing needs to be paragraphs, but that’s not always the best way to express something.
  • What’s the Appeal of Twitter? + Idea for new platform
  • At least include an outline in your article!
  • Bonus: What writing can learn from programming

My recent chart on learning programming did quite well and got upvoted on Hacker News and Reddit. I realized that one chart was able to encapsulate the important information from 3 previous blog posts. This makes me think there might be too much of a bias to write content in a specific form and style with paragraphs and connecting sentences, when sometimes another form would work better. A chart or diagram can display certain information in a faster and clearer manner than long paragraphs, making the paragraphs unnecessary. Different diagrams and styles can be used for different types of information.

Ways of presenting content

Content Format Good for this type of content Zappable Example Benefits for reader Extra stuff that get stuck in
Paragraphs of Text Long connected arguments Maybe Google and the Future of Search Easy linear read Connecting sentences, stylistic phrases
Table Repeated categories of information Resources to Learn Programming Fast to reference Certain cells just to match others in row. (Maybe use NoSQL-style instead ~)
Flowchart Simple decision guide Picking a Programming Language Can quickly reach relevant decisions Random Jokes
Outline-Style Hierarchical content of separate points Attempt below Can easily skip subsections Hopefully nothing

Even if content doesn’t fit into a chart, it does not mean that standard paragraphs are necessary. Sometimes an Outline-style could do the trick.

Outline vs. Paragraphs

  • I often start with ideas in note-form before writing a post
  • Before publishing notes, need to refine and clarify ideas.
  • Also includes “textification” into paragraphs, which consist of things like:
    • Keeping to a writing-style (varying words, paragraph format)
    • Putting in filler words to build and connect sentences
  • This turns writing into nice essay, but it can obscure points for both the writer and reader
    • It becomes harder for the writer to revise essay when each change affects the continuity of the sentences and paragraphs. (Maybe writers should also aim for looser coupling!)
    • Certain articles (e.g. academic ones) may be so complicated, readers may feel need to create their own outline or diagram to follow it
  • Notes need to be refined before being published, but they can still be kept in an outline style, with several benefits:
    • Often quicker to write than figuring out how to “textify” content.
    • Easier for reader to follow overall flow of argument
    • Lets reader skip certain sections or examples and still follow argument (In fact, maybe the reader should be able to understand the argument heading without even reading the implementation!)
  • Outline-style can be better for reader and writer, though not sure about this example

Obviously, people know that concise writing or charts are often helpful. However, I think people still feel constrained by standard style expectations. That’s why they need things like Twitter and even Powerpoint to permit them to write in shorter form.

While Twitter’s limits may be overkill in cases where you actually want to say something, the fact that its so successful shows the power of letting people get to the point. Maybe someone should create a blogging platform that enforces a posts that are concise and include a diagram, outline or chart. This could help popularize a new style of writing.

I’m not arguing for eliminating essay-style text, I just think it might be worth putting more outlines and charts within writing. Even if much of an article needs to be in paragraphs, perhaps some of it would be clearer or more effective as a chart. And more articles should come with short outlines (or diagrams) that says what their main points are. This would let people decide if they want to read it or review what it said afterwards. Why should some one need to construct their own outline or argument diagram to analyze an argument?

Charts and outlines are really just a minor step. For more challenging material, one can go beyond such static content and create more interactive content. But that’s for another post…

Stay tuned by following me on Twitter, RSS or Email. 

Chart for Learning a Programming Language

Note: An updated version of this chart is now available on Learneroo.com.

The previous chart helped beginners pick a language, this one shows them what resources to use to learn it. It’s better to spend time doing things than to passively read or watch content, so I selected interactive websites, books and courses. Start by going through an online tutorial, and then either read through some of a book or watch an online course. Personally I think a book is better than a video since they’re more concise and easier to reference, but most videos below are short and to the point. The chart is based on these posts: Picking a LanguageGeneral TipsJava and PythonWeb: HTML Javascript and PHPLearning Ruby and Rails

Free Resources For Learning a Programming Language

Java Python Ruby Javascript
Good For Kids / Game Programming Greenfoot Invent Your Own Computer Games  Hackety-Hack, Games: Ruby4Kids CodeAvengers
Interactive Tutorial – Codecademy? No, You can try Programr Yes Yes, there’s also
TryRuby
Yes
More Practice and Help CodingBat Problems Visualize Python executing
(also CodingBat)
RubyMonk*
(1st part is free)
Use Firebug or Developer Tools.
(See Waterbear for visual coding)
Good Free Book for Teaching Programming How to Think Like a Computer Scientist How to Think Like a Computer Scientist Learn to Program
Humble Little Ruby Book
Eloquent Javascript
Interactive Video Course Intro to CompSci -
Programming methodology
(Warning: full Stanford course)
Udacity – Intro to CompSci – Building a Search Engine CodeSchool’s RubyBits* .AppendTo Javascript 101
Advanced Book Effective Java* Dive Into Python 3 Pickaxe Guide* JavaScript: The Definitive Guide*
More Training / Bootcamps See Local / Online colleges See online courses or corporate PythonTraining Most Bootcamps are for Ruby on Rails Catalyst.
For kids: CodeHS.com
* Not free. Update: added affiliate code to Amazon links.