Changes

One recommended tool/resource for n00bs

232 bytes added, 16:12, 13 November 2012
m
no edit summary
====Tools/Resources====
*Code4Lib listserv, IRC, [http://journal.code4lib.org journal] (duh)=====Books or Things to read=====
* O'Reiley Head first series
 
*Visual QuickStart Guides http://www.peachpit.com/imprint/series_detail.aspx?ser=335245
 *JS Fiddle http[https://jsfiddledocs.netgoogle.com/spreadsheet/ccc?key=0AlVSWa90m8umdGg3U0h4bjdMT0ttVUJBU3RCaUc0WGc#gid=0 QA Collection Purchases for Code4Lib]*Resources for lots of languagesThe top 9 in a hacker's bookshelf: [http://peargrokcode.lycom/8ohL pear.ly11/the-top-9-in-a-hackers-bookshelf/8ohL]* ["How to Design Programs" http://catcodewww.pbworksccs.comneu.edu/whome/pagematthias/49680175HtDP2e/Resources Catcode]* Git or Github * Local communities of ruby, python users. Good for newbie coders.
* Kernighan and Ritchie's [http://www.worldcat.org/title/c-programming-language/oclc/17650642 "The C Programming Language."] A keeper for life, and surprisingly readable and directed to the newbie. Also [http://www.worldcat.org/title/pragmatic-programmer-from-journeyman-to-master/oclc/42038638 "The Pragmatic Programmer"] by Andrew Hunt and David Thomas.
* [www.virtualbox.org VirtualBox] to make new VM setup and deployment easier we use [http://vagrantupwww.com/ Vagrant]*Practice! No matter the learning material, nothing will really sink in unless you apply it in the wild (like a small project)w3.* It's still useful to learn a little something about configuring a webserver org/ database / etc.International* +1 to web-hosting as it gives Guide for the ability install one's own software Perplexed on one's domain (which feels great) *and* easy access to shell. And when web-hosting feels like too much of a barrier to access, sites like jsfiddle where you can immediately start adding *and* sharing code is key. IMHO the initial appeal of [code4lib wiki: http://wwwwiki.codecademycode4lib.comorg/ Codecademy] was that it removed all barriers to getting startedindex. Getting a laptop's localhost set up is too daunting for a first step, I think.php/A_Guide_for_the_Perplexed
* Video series on command line basics from Lullabot: http://drupalize.me/series/command-line-basics-series
*AMP (LAMP, WAMP, MAMP) stacks for an easy install of Apache, mySQL + perl/ python / php.*A @rdio subscription. :) And a text editor with syntax highlighting. *Building things that help people matters, and for that you need empathy.=====Software=====
* Vi- because it keeps me (you?) focused.
 
* "How to Design Programs" http://www.ccs.neu.edu/home/matthias/HtDP2e/. Good for newbie coders.
 
* [http://stackoverflow.com StackOverflow] is a great site for questions.
 
* The top 9 in a hacker's bookshelf: http://grokcode.com/11/the-top-9-in-a-hackers-bookshelf/
 
* Guide for the Perplexed on the code4lib wiki: http://wiki.code4lib.org/index.php/A_Guide_for_the_Perplexed
 
* Sublime Text & Zen Coding (recently reborn as [http://docs.emmet.io Emmet]). Saves a lot of keystrokes when writing web content.
 
* Reusing people's [http://dotfiles.github.com/ public dotfiles],my favorite being [https://github.com/mathiasbynens/dotfiles Mathias Bynens']. Using a mature dotfiles collection can help bootstrap you to use the command line more and start grabbing vital tools from package managers like Homebrew or npm that you might not think of otherwise. I'm still a newbie coder but reusing dotfiles gives me the confidence to tweak things here and there without building a ton from scratch.
 
* I'm taking "tool" to mean a piece of hardware. I'd recommend some old laptop with your favorite linux distro less desktop. Why? Well the main thing is that it puts them into a position where they're not learning to be a google copy/paste coder given the lack of the desktop, mouse and distractions like email. They can also learn to setup the server environment on their new dev box and eventually do all sorts of cool stuff.
 
* [http://www.activestate.com/komodo-edit Komodo Edit]
 * http:AMP (LAMP, WAMP, MAMP) stacks for an easy install of Apache, mySQL + perl/python /wwwphp.w3.org/International * A cheapie online webhosting account - like a $10 a month one - and multiple URLs@rdio subscription. Multiple URLs will make them point :) And a URL at a nameserver at least once ideally, and to understand that the two are separate and what you can do text editor with domains and subdomainssyntax highlighting. The cheapie webhosting account will let them play with installing popular content management systems manually and with one-click installs. The most important thing is to break things and then rebuild them. The worst possible thing would be to build a website, leave it up as their public face * Git or personal website, and be nervous to wreck it so notchange or play with different CMSes (another reason multiple URLs might psychologically be better - they encourage experimentation on one and the person can make the other a static goal oriented publishing area).The more the cheapie hosting account experience I have, the more I know what's cheap and easy to do, and the more I see very specific benefits to adedicated server. It makes me more intentional and able to better assess the value of services vendors provide. That's more web4lib ish, but ultimately if someone experiments enough they have to get comfortable with php. Scripting is the gateway drug.Github
* Zen Coding, http://code.google.com/p/zen-coding/ The idea is that it lets you use CSS-like selectors as tags that can be expanded into full HTML snippets.
 * FOSS4lib LESS http://foss4liblesscss.org/
* BareBones's [http://www.barebones.com/products/bbedit/index.html BBEdit]
* Sublime Text & Zen Coding (recently reborn as [http://docs.emmet.io Emmet]). Saves a lot of keystrokes when writing web content.* The best one IMHO is [http://www.sublimetext.com Sublime Text 2]. Oh, okay, I can't resist - I'm going to cheat and list a second: everyone needs to stop writing just CSS and complement it with SASS (syntactically awesome stylesheets) & Compass - http://sass-lang.com/. Totally invaluable for any front-end work. It makes CSS fun.* [www.virtualbox.org VirtualBox] to make new VM setup and deployment easier we use [http://vagrantup.com/ Vagrant]
* Version control. My own strong preference is for git (either managed locally or through github.com), but really, just pick a version control solution and use it. If you value your work at all, it should be in version control. Smart use of version control can make finding and fixing problems in code much, much easier - but even fairly naive use of it leaves you with much, much better tools for fixing screw ups than you have without it.
=====Websites=====* I can already feel the collective rolling of eyes for thisCode4Lib listserv, but what about Twitter? It's not a guide or manualIRC, but start following and engaging talented developers and library geeks on Twitter and you'll soon have more help than you know what to do with. Plus, no Zoia ;) * LESS [http://lesscssjournal.code4lib.org/ journal] (duh)
* Google is more useful than any reference book to find answers to programming problems.
* [http://stackoverflow.com StackOverflow] is a great site for questions.
*[http://lynda.com lynda.com]
*JS Fiddle http://jsfiddle.net/
*[http://stackexchange.com/ StackExchange] (by extension, StackOverflow and [http://libraries.stackexchange.com/ the Libraries StackExchange] site).
* The best one IMHO is [http://www.sublimetext.com Sublime Text 2]. Oh, okay, I can't resist - I'm going to cheat and list a second: everyone needs to stop writing just CSS and complement it with SASS (syntactically awesome stylesheets) & Compass - http://sass-lang.com/. Totally invaluable for any front-end work. It makes CSS fun.=====Other=====
*Resources for lots of languages: [http://lyndapear.com lyndaly/8ohL pear.ly/8ohL]* [http://catcode.pbworks.com/w/page/49680175/Resources Catcode]* Local communities of ruby, python users.* FOSS4lib http://foss4lib.org/* I can already feel the collective rolling of eyes for this, but what about Twitter? It's not a guide or manual, but start following and engaging talented developers and library geeks on Twitter and you'll soon have more help than you know what to do with. Plus, no Zoia ;)*Practice! No matter the learning material, nothing will really sink in unless you apply it in the wild (like a small project).* It's still useful to learn a little something about configuring a webserver / database / etc.
=====Advice on what to do=====*Building things that help people matters, and for that you need empathy.* Reusing people's [http://stackexchangedotfiles.github.com/ StackExchangepublic dotfiles] ,my favorite being [https://github.com/mathiasbynens/dotfiles Mathias Bynens']. Using a mature dotfiles collection can help bootstrap you to use the command line more and start grabbing vital tools from package managers like Homebrew or npm that you might not think of otherwise. I'm still a newbie coder but reusing dotfiles gives me the confidence to tweak things here and there without building a ton from scratch.* I'm taking "tool" to mean a piece of hardware. I'd recommend some old laptop with your favorite linux distro less desktop. Why? Well the main thing is that it puts them into a position where they're not learning to be a google copy/paste coder given the lack of the desktop, mouse and distractions like email. They can also learn to setup the server environment on their new dev box and eventually do all sorts of cool stuff.* A cheapie online webhosting account - like a $10 a month one - and multiple URLs. Multiple URLs will make them point a URL at a nameserver at least once ideally, and to understand that the two are separate and what you can do with domains and subdomains. The cheapie webhosting account will let them play with installing popular content management systems manually and with one-click installs. The most important thing is to break things and then rebuild them. The worst possible thing would be to build a website, leave it up as their public face or personal website, and be nervous to wreck it so notchange or play with different CMSes (by extensionanother reason multiple URLs might psychologically be better - they encourage experimentation on one and the person can make the other a static goal oriented publishing area).The more the cheapie hosting account experience I have, StackOverflow the more I know what's cheap and easy to do, and the more I see very specific benefits to adedicated server. It makes me more intentional and able to better assess the value of services vendors provide. That's more web4lib ish, but ultimately if someone experiments enough they have to get comfortable with php. Scripting is the gateway drug.* +1 to web-hosting as it gives the ability install one's own software on one's domain (which feels great) *and* easy access to shell. And when web-hosting feels like too much of a barrier to access, sites like jsfiddle where you can immediately start adding *and* sharing code is key. IMHO the initial appeal of [http://librarieswww.stackexchangecodecademy.com/ the Libraries StackExchangeCodecademy] site)was that it removed all barriers to getting started. Getting a laptop's localhost set up is too daunting for a first step, I think.
180
edits