<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Revolves &#187; Programming</title>
	<atom:link href="http://www.revolves.net/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.revolves.net</link>
	<description>Innovation</description>
	<lastBuildDate>Tue, 27 Dec 2011 15:25:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>A Great Free &amp; Extensive Resource For Learning Java</title>
		<link>http://www.revolves.net/a-great-free-extensive-resource-for-learning-java/</link>
		<comments>http://www.revolves.net/a-great-free-extensive-resource-for-learning-java/#comments</comments>
		<pubDate>Mon, 11 Jul 2011 16:36:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=614</guid>
		<description><![CDATA[There are a lot of good tutorials online for Java. However, a lot of times, you don&#8217;t want a tutorial on how to accomplish a specific task. Rather, you want to learn the language and its features in a systematic manner. You don&#8217;t want a reference so extensive that you can only use it as [...]]]></description>
			<content:encoded><![CDATA[<p>There are a lot of good tutorials online for Java. However, a lot of times, you don&#8217;t want a tutorial on how to accomplish a specific task. Rather, you want to learn the language and its features in a systematic manner.</p>
<p>You don&#8217;t want a reference so extensive that you can only use it as a reference, not a tool for learning from the beginning. At the same time, you want it to be systematic, tutorial like and complete.<span id="more-614"></span></p>
<h2>Enter &#8216;The Java Tutorials&#8217; on Java&#8217;s Official Website</h2>
<p>If you haven&#8217;t visited it already, you can find it <a href="http://download.oracle.com/javase/tutorial/" rel="nofollow" target="_blank">here</a>.</p>
<p>I recommend taking a look at the <a href="http://download.oracle.com/javase/tutorial/tutorialLearningPaths.html" rel="nofollow" target="_blank">Learning Paths</a> to figure out in which order you should read the tutorials.</p>
<h2>Download the tutorials for offline use</h2>
<p>You can also download the entire tutorial set for offline use. <a href="https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=tutorial-2011-03-17-oth-JPR@CDS-CDS_Developer" rel="nofollow" target="_blank">Here&#8217;s</a> the link to download it, which you can also find in the tutorial index above. It&#8217;s just a bit hard to see.</p>
<p>The tutorial download is available as a zip file which is around 103MB in size.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/a-great-free-extensive-resource-for-learning-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning Clojure &#8211; A Dialect of Lisp</title>
		<link>http://www.revolves.net/learning-clojure-a-dialect-of-lisp/</link>
		<comments>http://www.revolves.net/learning-clojure-a-dialect-of-lisp/#comments</comments>
		<pubDate>Sun, 05 Jun 2011 11:30:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=488</guid>
		<description><![CDATA[Clojure, a Lisp dialect targeting the Java framework has become popular over the months. Targeting the Java framework means that you have access to everything that Java provides. And you also get a taste of functional programming. I&#8217;ve been forever wanting to try a functional language. At first, I thought it would be Common Lisp. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://clojure.org/" target="_blank" rel="nofollow">Clojure</a>, a Lisp dialect targeting the Java framework has become popular over the months.</p>
<p>Targeting the Java framework means that you have access to everything that Java provides. And you also get a taste of functional programming.</p>
<p>I&#8217;ve been forever wanting to try a functional language. At first, I thought it would be Common Lisp. But I was unsure if I can get access to all the libraries I would want. Using a language like Python has spoilt me so much that I expect a lot of things to be built into the language itself.<span id="more-488"></span></p>
<p>I did start learning Haskell. It&#8217;s an amazing language. However, now, I&#8217;ve decided to pursue Clojure. There is no particular reason for selecting it over the others. It&#8217;s just that I&#8217;m comfortable relying on a language based on a platform like Java.</p>
<h2>Clojure tutorials</h2>
<p>Unlike other languages, you won&#8217;t find many great tutorials online. Of course, you&#8217;d find people writing clojure code and telling you how to do a lot of cool stuff in clojure. But there is hardly anything that takes you from the very beginning to the end.</p>
<p>I was reading Andrew&#8217;s blog post, <a href="http://blog.andrewvc.com/tackling-my-first-jlojure-project-a-graphical" target="_blank" rel="nofollow">Tackling my first Clojure project, a Graphical HTTP Benchmarker</a>, which is what inspired me to to learn clojure.</p>
<p>He mentions the book <a href="http://www.amazon.com/gp/product/1935182641/ref=as_li_ss_tl?ie=UTF8&#038;tag=revolves-20&#038;linkCode=as2&#038;camp=217153&#038;creative=399349&#038;creativeASIN=1935182641" target="_blank" rel="nofollow">The Joy of Clojure</a>. I&#8217;m planning on getting it.</p>
<p>You can get it from <a href="http://www.manning.com/fogus/" target="_blank" rel="nofollow">Manning</a>, wherein you&#8217;ll get the e-Book along with the print version. Or you could get it from <a href="http://www.amazon.com/gp/product/1935182641/ref=as_li_ss_tl?ie=UTF8&#038;tag=revolves-20&#038;linkCode=as2&#038;camp=217153&#038;creative=399349&#038;creativeASIN=1935182641" target="_blank" rel="nofollow">Amazon</a> which might work out cheaper.</p>
<h2>Will keep you updated</h2>
<p>I have a lot of things going on. I have a lot of books and stuff I want to read. Once I get this, I&#8217;ll write about my experience. Maybe even a few blog posts on how to do some cool stuff with Clojure like those other guys!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/learning-clojure-a-dialect-of-lisp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Finding Out How Perl Resolves Operator Precedence</title>
		<link>http://www.revolves.net/finding-out-how-perl-resolves-operator-precedence/</link>
		<comments>http://www.revolves.net/finding-out-how-perl-resolves-operator-precedence/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 04:15:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=480</guid>
		<description><![CDATA[When you perform a series of operation, say, 3*5+7, then the order in which you perform them might affect the end result. In the preceding case, according to the rules of mathematics, you&#8217;d perform the multiplication first, and then the addition. If instead, you performed the addition first and then the multiplication, you&#8217;d get a [...]]]></description>
			<content:encoded><![CDATA[<p>When you perform a series of operation, say, <code>3*5+7</code>, then the order in which you perform them might affect the end result. In the preceding case, according to the rules of mathematics, you&#8217;d perform the multiplication first, and then the addition.</p>
<p>If instead, you performed the addition first and then the multiplication, you&#8217;d get a different answer. Thus, even mathematics specifies rules of precedence.</p>
<p>However, both in mathematics as well as programming, it&#8217;s always beneficial to explicitly specify parentheses. For one, it makes sure that the operation would take place as you intend. Secondly, any other programmer can read and easily understand what&#8217;s happening.<span id="more-480"></span></p>
<p>Adding explicit parenthesis means that you don&#8217;t have to resolve precedence in your head while you read code. You don&#8217;t even have to remember all the rules.</p>
<h2>Asking Perl to show how it would put parentheses in a piece of code</h2>
<p>This is useful when you&#8217;re learning about precedence. Let&#8217;s say you put in a line like:</p>
<pre class="brush: perl; title: ; notranslate">my $result = $value &lt; 10 ? &quot;less&quot; : &quot;more&quot;;</pre>
<p>And you&#8217;re curious how Perl would resolve the precedence, you can ask Perl how it&#8217;d put parentheses around this code. It&#8217;ll yeild:</p>
<pre class="brush: perl; title: ; notranslate">(my $result = (($value &lt; 10) ? 'less' : 'more'));</pre>
<p>You can try more complex expressions for fun and check out how Perl resolves them.</p>
<h2>So, how do you do it?</h2>
<p>Open up the terminal (UNIX) or commandline window (Windows), change to the directory where your script is, and type:</p>
<p><code>perl -MO=Deparse,-p [FILENAME]</code></p>
<p>You&#8217;re using the <a href="http://perldoc.perl.org/B/Deparse.html" rel="nofollow" target="_blank">Deparse Module</a>, and the <code>-p</code> tells Perl to show the parentheses.</p>
<p>You&#8217;ll find the output printed to the commandline window. Deparse can do a lot of other things too, so check out the link above to the Perldoc.</p>
<h2>How&#8217;s this useful?</h2>
<p>Well, our coding practice involves explicitly specifying all the precendences. So, this doesn&#8217;t seem to be that useful, eh? Adding parentheses is only one of the many things Deparse can do.</p>
<p>I thought it&#8217;d be fun to know that such features exist. You don&#8217;t normally find them in beginner books and tutorials. Know them now, maybe they&#8217;ll prove themselves useful later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/finding-out-how-perl-resolves-operator-precedence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning C Programming &#8211; Why and How</title>
		<link>http://www.revolves.net/learning-c-programming-why-and-how/</link>
		<comments>http://www.revolves.net/learning-c-programming-why-and-how/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 17:38:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=477</guid>
		<description><![CDATA[C might sound like the language of programming wizards. Normally, the current generation of programming beginners have an array of high level languages like Ruby, Python and PHP to work with. Working with Java+(Some GUI Library) or .NET seems more intuitive. So, why learn C? And if you&#8217;re convinced that it&#8217;s a good language to [...]]]></description>
			<content:encoded><![CDATA[<p>C might sound like the language of programming wizards. Normally, the current generation of programming beginners have an array of high level languages like Ruby, Python and PHP to work with.</p>
<p>Working with Java+(Some GUI Library) or .NET seems more intuitive. So, why learn C? And if you&#8217;re convinced that it&#8217;s a good language to learn, then how should you go about learning it?<span id="more-477"></span></p>
<h2>Why learn C in this ultra-modern world?</h2>
<p>Well, the world seems ultra-modern because most of the tools that make it ultra-modern are written in C.</p>
<p>C is primarily used to do systems level programming &#8211; writing operating systems and other lower level stuff.</p>
<p>Even though you have a standard library with C, it&#8217;s not much compared to that of Python, which even gives you XML support out of the box.</p>
<p>If you&#8217;re hacking a script together to do some little stuff here and there, then it makes sense to program it in a higher level language like Perl or Python, wherein you can get your job done as soon as possible.</p>
<p>However, C still jumps to rescue in situations where speed is critical, and developers want more control over what happens. Python&#8217;s primary implementation is called CPython, because it&#8217;s written in C. It&#8217;s necessary to make sure that the Python interpreter runs your scripts as efficiently as possible.</p>
<h2>Embedded systems and other DIY stuff</h2>
<p>If you&#8217;re a big engineering geek and would like to create your own robots, then you&#8217;d find yourself programming those microcontrollers in C. In such cases, having a command over the C language is quite essential.</p>
<p>If you&#8217;re studying electronics engineering, your projects would definitely need a microcontroller and a knowledge of how to program it.</p>
<h2>It&#8217;s low level stuff</h2>
<p>While higher level languages advertise that you don&#8217;t have to mess with pointers and other dirty stuff, it&#8217;s fun fiddling with pointers in C.</p>
<p>It gives you an understanding of how the system works internally. It also allows you to optimize the working of an algorithm by carefully crafting each step taken.</p>
<p>So, when you want more of speed, control and compactness, you can give C a shot.</p>
<h2>How do you learn C?</h2>
<p>There are a lot of free resources out there for learning C. A quick Google search and you can find them easily.</p>
<p>However, I recently purchased what&#8217;s known as the K&#038;R book for C. The book&#8217;s called <a href="http://www.amazon.com/gp/product/0131103628/ref=as_li_ss_tl?ie=UTF8&#038;tag=revolves-20&#038;linkCode=as2&#038;camp=217153&#038;creative=399349&#038;creativeASIN=0131103628" target="_blank" rel="nofollow">C Programming Language (2nd Edition)</a>.</p>
<p>It&#8217;s written by the people who created C. And it&#8217;s not a huge book either. Although quite expensive for it&#8217;s &#8220;size&#8221;, a number of people at Amazon have reviewed that it&#8217;s well worth it.</p>
<p>If you&#8217;re ever planning on learning C, then this book should more than suffice. I&#8217;ve started going through it and I like the fact that everything&#8217;s concisely organized, and the resource is &#8220;complete&#8221; too. It&#8217;s not as if I&#8217;m looking at a random tutorial that only covers a part of the C language.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/learning-c-programming-why-and-how/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Answer to &#8220;What Program Should I Make&#8221;</title>
		<link>http://www.revolves.net/the-answer-to-what-program-should-i-make/</link>
		<comments>http://www.revolves.net/the-answer-to-what-program-should-i-make/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 03:29:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=474</guid>
		<description><![CDATA[You&#8217;ve just learned a new programming language. You understand it quite well. But now, you&#8217;re unsure about what to make. What are your choices? I recently wrote a post PHP Projects That Hobbyists Can Make – WordPress Plugins, and I thought that the same thing could be applied to all the languages. Find a lot [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve just learned a new programming language. You understand it quite well. But now, you&#8217;re unsure about what to make. What are your choices?</p>
<p>I recently wrote a post <a href="http://www.revolves.net/2011/05/27/php-projects-that-hobbyists-can-make-wordpress-plugins/">PHP Projects That Hobbyists Can Make – WordPress Plugins</a>, and I thought that the same thing could be applied to all the languages.<span id="more-474"></span></p>
<h2>Find a lot of exercises and fun scipts/programs</h2>
<p>First, look at the exercises of a programming book that you might own. Head over to a place like <a href="http://planetsourcecode.com/" target="_blank" rel="nofollow">Planet Source Code</a> to get ideas about what has been created.</p>
<p>The exercises, and the code examples that you find in places like <em>Planet Source Code</em> are useful. They help you accomplish something important using your language.</p>
<p>Of course, it might be a very basic thing. But still, it&#8217;s not a completely random useless thing.</p>
<h2>Make it accessible</h2>
<p>A lot of people use PHP redirects for linking to external sites. So, instead of linking directly to <code>www.google.com</code>, you link to <code>www.yoursite.com/google.php</code>, which in turn redirects to Google.</p>
<p>Not everyone is comfortable editing a PHP file for every redirect, even though it&#8217;s just 3 lines.</p>
<p>So, why not create a program that automatically does this? You could create a C# program, or a Perl script that takes a list of URLs and creates PHP redirects for them.</p>
<p>That&#8217;s just one example. But the principle is, <strong>take something that programmers can do very easily, and make it accessible for those non-programmers &amp; other people.</strong></p>
<p>Most of your efforts will now be directed towards creating a great interface for the program. By interface, I don&#8217;t just mean the GUI (or command-line interface). It also includes the method you use to take input.</p>
<p>Would your program generate the files by asking the end-user for input one-by-one? Or would you process an Excel or CSV file instead? It&#8217;s up to you.</p>
<p><strong>It depends on who you&#8217;re targeting.</strong></p>
<h2>Find the shortest distance between the end-user and his goals</h2>
<p>Find out what information your users already have, and try to use it as an input. For example, a sitemap generator would have to crawl your website to generate the sitemap. However, the same sitemap generator used as a WordPress plugin could peek into the database to find all the files.</p>
<p>What&#8217;s the lesson? Find the shortest path between your end-user and his goals. Don&#8217;t try to make your software work for everyone. There&#8217;s nothing wrong in creating different versions of the same software that targets different kinds of people, if the variations in each version makes each of the end-user&#8217;s life easier.</p>
<p>Find out the conventions and configurations your users are already using, and try mapping them to the inputs your software requires.</p>
<h2>Write a documentation or help file</h2>
<p>Once you&#8217;ve created something useful, also write a good documentation describing how to use it. If you&#8217;re making something, do it completely.</p>
<h2>What do you have?</h2>
<p>You&#8217;ve taken an idea which appears very simple to programmers or other technical people, and have made it accessible to end-users who&#8217;re not programmers or very tech-savvy.</p>
<p>Your primary challenge was not to write the script that would rule the world, but was to create a software mechanism which would allow an end-user to achieve what he wants as quickly as possible.</p>
<p>And remember, it is quite challenging in the end.</p>
<p>However, if you follow this path, you&#8217;ll have a complete working piece of useful software which you can put up on your site or blog. And guess what? You could even have people using it and finding it helpful.</p>
<h2>A &#8216;for&#8217; loop is all it takes</h2>
<p>I once created a simple tool in javascript that concatenated two lists, that is, concatenate every string in the first list with every other string in the second list. Simple to achieve, eh?</p>
<p>Even though the two lists technically contained &#8220;strings&#8221; (as programmers would call it), I didn&#8217;t market it as such. I made it into a tool that domainers would use. One list contained keywords that a domainer would want, and the second list would contain prefixes and suffixes that can be added to each of the keywords.</p>
<p>In the end, the result was a grand list of domain names with prefixes and suffixes attached to each of the keyword. A domainer could then check the bulk availability of these domains.</p>
<p>Programatically, it was dead easy. But I made it accessible to people who&#8217;d like it, but may not have programming experiences.</p>
<h2>What all other things can you use the above concept for?</h2>
<p>I combined two lists to help domainers. You could also think of various other problem areas which would require this solution pattern, i.e., combining two lists. Why not find out more and do something about it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/the-answer-to-what-program-should-i-make/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Projects That Hobbyists Can Make &#8211; WordPress Plugins</title>
		<link>http://www.revolves.net/php-projects-that-hobbyists-can-make-wordpress-plugins/</link>
		<comments>http://www.revolves.net/php-projects-that-hobbyists-can-make-wordpress-plugins/#comments</comments>
		<pubDate>Sat, 28 May 2011 04:02:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=469</guid>
		<description><![CDATA[This question practically comes up in every beginners forum. Once you&#8217;ve learned a language, what should you make with it? Well, in this post, I specifically address one of the &#8220;type&#8221; of things you can make with PHP. I&#8217;ll also explain why there are great possibilities here. First of all, you already have a system [...]]]></description>
			<content:encoded><![CDATA[<p>This question practically comes up in every beginners forum. Once you&#8217;ve learned a language, what should you make with it? Well, in this post, I specifically address one of the &#8220;type&#8221; of things you can make with PHP. I&#8217;ll also explain why there are great possibilities here.<span id="more-469"></span></p>
<h2>First of all, you already have a system</h2>
<p>WordPress, though traditionally a blogging platform, can be used as a full-blown CMS if you want. Apart from making online publishing easy, it also has access level controls built-in.</p>
<p>WordPress allows you to add functionality that it already does not have. And while you attempt to do that, your plugin has access to all the functions and capabilities of WordPress.</p>
<p>Now, let me explain how you can get great ideas for WordPress&#8230;</p>
<h2>It may be common in PHP, but not in WordPress</h2>
<p>Many WordPress users are not so technically savvy that they can play with PHP files and configure them. We hackers like to do it, but it&#8217;s too inconvenient for them. So, all of the WordPress&#8217; plugins have an options panel that helps in easy configuration.</p>
<p>Do you remember writing or even seeing PHP pages that expire after a certain date, or a certain number of hours from the starting date? Well, it&#8217;s easy to write that. Just get the current time and find out if the page is supposed to be &#8220;expired.&#8221;</p>
<p>A beginning PHP programmer can easily make such a script. But such simple scripts are also available for download just in-case you don&#8217;t know PHP. They also come with simple instructions on modifying the script to specify the &#8220;exact time&#8221; of the expiration.</p>
<p>Now, that&#8217;s a very simple concept. A beginner would not be so delighted after writing such a script.</p>
<p>However, what if you wanted to do the same in WordPress. Let&#8217;s say you could set certain posts/pages to expire magically after a certain period of time?</p>
<p>But WordPress is different. Your script has to work seamlessly with WordPress, making sure that you allow your users to use your script without fiddling with any PHP files. You also need a clean interface where user can easily set and remove expiration.</p>
<p>Now, this simple task has become quite challenging. The challenge comes due to your concentration on making the script (now a WordPress plugin) as seamless as possible to use.</p>
<p>What could you do? Maybe you could have an expiration setting shown on each post or page&#8217;s edit page. Or maybe have a separate options panel where users can select pages/posts that they want to have expired. There are numerous design decisions you can make. It all depends on you and your taste.</p>
<p>Suddenly, the simple task of creating a simple PHP script has turned into a complex task of making it accessable to a certain subset of users. It&#8217;s challenging, and might keep you busy for a while. Your programming experience will also increase in the process.</p>
<p>So, just browse all those script directories and choose the ones you&#8217;d like to adapt to WordPress. And there you have a virtually infinite set of ideas for WordPress plugins.</p>
<h2>Where do I begin?</h2>
<p>Now that you&#8217;re charged up, I should also point you to some resources that will teach you how to create WordPress plugins.</p>
<p>I&#8217;d recommend starting with <a href="http://codex.wordpress.org/Writing_a_Plugin" target="_blank">Writing a Plugin &#8211; WordPress Codex</a>. Once you read that, you&#8217;ll also find a couple of links at the bottom referring to various tutorials.</p>
<h2>Go ahead and make &#8216;em</h2>
<p>Instead of creating just &#8220;test scripts,&#8221; you&#8217;d be creating stuff that people would want to use. So, what are you waiting for?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/php-projects-that-hobbyists-can-make-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Learn Python 3 Now &#8211; Resources for Diving In</title>
		<link>http://www.revolves.net/learn-python-3-now-resources-for-diving-in/</link>
		<comments>http://www.revolves.net/learn-python-3-now-resources-for-diving-in/#comments</comments>
		<pubDate>Tue, 24 May 2011 10:56:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=466</guid>
		<description><![CDATA[You&#8217;re all charged up, ready to start with Python 3. Now, all you need is a systematic resource to follow. And that is precisely what I&#8217;ll give you. If you haven&#8217;t already installed python, you can download the latest 3.x release from Python.org. If you&#8217;re on a Linux system, then use your repository manager to [...]]]></description>
			<content:encoded><![CDATA[<p>You&#8217;re all charged up, ready to start with Python 3. Now, all you need is a systematic resource to follow. And that is precisely what I&#8217;ll give you.</p>
<p>If you haven&#8217;t already installed python, you can download the latest 3.x release from <a href="http://python.org/">Python.org</a>. If you&#8217;re on a Linux system, then use your repository manager to download the lastest Python version. Since most Linux distributions already have Python installed, your version 3 binary might be named <code>python3</code> instead of <code>python</code>, to prevent it from conflicting with the already installed version.</p>
<p>Your system might use Python to manage several stuff under the hood. So, it&#8217;s always better to leave the already installed version alone.<span id="more-466"></span></p>
<h2>All right, I&#8217;m ready to dive into it!</h2>
<p>One of the <strong>best</strong> online resource for effectively learning Python&#8217;s syntax is <a href="http://diveintopython3.org/">Dive into Python 3</a>. It&#8217;s written by Mark Pilgrim, who has been kind enough to make the book available for free online. You can also purchase a physical copy of it if you want.</p>
<p>I recommended downloading the HTML version for offline viewing: <a href="http://diveintopython3.org/d/diveintopython3-html-latest.zip">Download HTML version</a>.</p>
<p>The design of the site is also awesome. Simple but elegant.</p>
<p>Now, why did I recommend this specific resource? Well, I believe you might already be familiar with programming concepts. The only thing left to do is learn the language&#8217;s syntax and the various design patterns surrounding those syntax.</p>
<p>Mark does a great job of introducing all of the important syntactical feature of Python 3 while giving practical examples on how they&#8217;re used. The detail he covers should be sufficient for most, but he does provide you with further reading if you&#8217;d like to know even more about a particular feature.</p>
<p>The reason the book is named <em>Dive into Python 3</em> is because the first thing he does is throw a working code at you. You&#8217;re sitting there, starting at the screen, looking at a piece of alien code. Then, he breaks down the code into pieces and explains what each of them do.</p>
<p>He also has a great knack for introducing new concepts in an intuitive manner.</p>
<p>What separates this book from a simple &#8220;documentation&#8221; is that he also covers important things like refactoring, file handling and XML. Anytime you&#8217;re learning a new concept, you&#8217;re slapped with a useful piece of code that uses that feature.</p>
<p>It&#8217;s not just important to learn the &#8220;cool&#8221; language features, but it is also important to see them in context.</p>
<h2>Thanks for that, anything else I&#8217;d need?</h2>
<p>Yes, there is. Even though <em>Dive into Python</em> is an excellent resource, many people need some additional resources to start rolling. Of course, Mark&#8217;s book is amazing and will put you in command of many of Python&#8217;s core concepts. But again, there are two types of people who might be learning Python.</p>
<p>First one is a programmer already working professionally. He learns Python, and now he knows how it works. He&#8217;s now off to create more wonderful projects, hopefully in Python.</p>
<p>The second one, which represents the majority, are hobbyists. In that case, I&#8217;d also recommend resources that <strong>test your programming skills.</strong></p>
<p>You see, most of the hobbyists are always in the <em>&#8220;What should I make next&#8221;</em> mood. Since they&#8217;re not professionals, they&#8217;re never asked to make something. It&#8217;s always up to them to decide what to make. And having too many choices is very difficult.</p>
<p>For that, I&#8217;d recommend getting a book like <a href="http://www.amazon.com/gp/product/1435455002/ref=as_li_ss_tl?ie=UTF8&#038;tag=revolves-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399349&#038;creativeASIN=1435455002" target="_blank">Python Programming for the Absolute Beginner, 3rd Edition</a>.</p>
<p>I don&#8217;t own it, but it has got a lot of great reviews on Amazon. It&#8217;s a 400-odd page mammoth. The good thing about the book is that since it&#8217;s targeted at beginners, it&#8217;s very detailed. And in each chapter, as you learn new Python concepts, you get to make a game using those concepts.</p>
<p>And it&#8217;s always <strong>very, very exciting</strong> to use your programming knowledge to create something that simply &#8220;works.&#8221; It might be a simple game, but at least it&#8217;s complete!</p>
<p>I remember the fun I had solving the exercises of <a href="http://www.amazon.com/gp/product/0596520107/ref=as_li_ss_tl?ie=UTF8&#038;tag=revolves-20&#038;linkCode=as2&#038;camp=217145&#038;creative=399349&#038;creativeASIN=0596520107" target="_blank">Learning Perl</a> while I was learning Perl. No matter how much programming you know, it feels really good to solve those exercises. I used to look at the exercises and ask myself, <em>&#8220;Can I do it in Perl? Well, only one way to find out, do it!&#8221;</em></p>
<h2>Program, and keep programming</h2>
<p>If you don&#8217;t program for a long time, you will tend to forget some of the syntactical aspects of a language. It&#8217;ll slow you down a bit.</p>
<p>So, the best way to gain fluency is to keep on writing small stuff. Eventually, it&#8217;ll be a breeze to write even those large programs.</p>
<p>That&#8217;s why, keep on finding things to program. It could be those exercises from a book, or a side project of yours, or the next piece of software that will change the world!</p>
<p>Good luck on your journey towards learning Python!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/learn-python-3-now-resources-for-diving-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How To Learn Programming &#8211; A Beginner&#8217;s Guide</title>
		<link>http://www.revolves.net/how-to-learn-programming-a-beginners-guide/</link>
		<comments>http://www.revolves.net/how-to-learn-programming-a-beginners-guide/#comments</comments>
		<pubDate>Sun, 08 May 2011 15:04:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=445</guid>
		<description><![CDATA[All right, you&#8217;ve decided that you want to create your own software. Whether you want to write applications for the desktop, mobile phones or any other platform, this article will surely help you get started. First of all, you need to decide on a programming language to learn. There are a lot of general purpose [...]]]></description>
			<content:encoded><![CDATA[<p>All right, you&#8217;ve decided that you want to create your own software. Whether you want to write applications for the desktop, mobile phones or any other platform, this article will surely help you get started.</p>
<p>First of all, you need to decide on a programming language to learn. There are a lot of general purpose programming language that you can choose from. However, I don&#8217;t want you to get confused by all the choices.<br />
<span id="more-445"></span><br />
So, I&#8217;d recommend starting with Java. First of all, Java is not as low level as C/C++. But it&#8217;s very similar. It is not a very high level language like Python. So, when you learn Java, you&#8217;re still quite close to the actual computations, while getting the benefits that Java provides over C/C++.</p>
<p>Now, I know about programming wars, and all those Java vs Python vs C/C++ debates. However, I&#8217;ve been programming for over 7 years, and I can assure you that Java is a very good start.</p>
<p>Once you learn one programming language, you can learn any other language with ease. The only thing different would be the syntax. The actual logic behind programming would still remain the same.</p>
<p>Now, the Stanford University has an excellent introductory courseware on programming. It&#8217;s aimed at people with no programming experience. You can visit it by clicking through this link: <a href="http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111" target="_blank">http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111</a></p>
<p>The course is free. Be sure to download all the videos, handouts and assignments.</p>
<p>The good thing about the Standford course is that Mehran Sahami, the professor who teaches the course, is quite an enthusiastic guy. He doesn&#8217;t waste a single word he utters. So, you keep on learning new things as you watch the lecture videos. You never get &#8220;bored.&#8221;</p>
<p>Secondly, the course teaches Java. However, you&#8217;re not burdened with Java&#8217;s syntax from the beginning. You are first taught to program in a sub-program called Karel. If you have ever heard of &#8216;Logo&#8217;, this is very similar.</p>
<p>While programming in Karel, syntax is not an issue. You have to find solutions to problem by thinking programatically. Here, your &#8220;programming logic&#8221; gets developed. Completing the first few assignments can be a pain. And it might take a lot of brainstorming. But it&#8217;s for your own development.</p>
<p>Once you&#8217;re familiarized with programming concepts, you&#8217;re let into Java&#8217;s syntax little by little. The course has 28 lectures, but you&#8217;re expect to create the game &#8216;Breakout&#8217; starting from the 10th lecture!</p>
<p>You might think that the course is moving too fast. You may not know programming now, and you&#8217;re expected to write a game? Believe me, you will be able to do that! You would need some determination, but you will have all the knowledge you need.</p>
<p>My personal recommendation is:</p>
<ul>
<li>Go through this course even if you know a bit of programming. If you&#8217;re self-taught, then you&#8217;ll surely find this course enlightening.</li>
<li>Go through a video lecture and make sure you understand everything. Make notes if you want.</li>
<li>Go through the appropriate handouts and assignments for a particular lecture. Make sure you complete the assignment.</li>
<li>You may get stuck somewhere, and some problems might take a long time to solve. This only means that your mind is getting trained. Keep at it. You&#8217;ll be proud of the results.</li>
<li>While you study this course, don&#8217;t attempt to learn anything else from anywhere. I&#8217;m not saying other resources are bad. But you to have your focus on one for now. You can then expand your knowledge as you see fit.</li>
</ul>
<p>I hope you become a great programmer and write great software!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/how-to-learn-programming-a-beginners-guide/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Teaches Python &#8211; Written Materials, Videos, Exercises</title>
		<link>http://www.revolves.net/google-teaches-python-written-materials-videos-exercises/</link>
		<comments>http://www.revolves.net/google-teaches-python-written-materials-videos-exercises/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 02:20:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=359</guid>
		<description><![CDATA[If you want to learn Python, Google&#8217;s Python Class might be worth checking out. It includes videos, written material and programming exercises. It is usually given to Google employees new to python. The tutorial assumes you have at least a basic knowledge of programming concepts. If you know what a &#8220;variable&#8221; is, or what &#8220;loops&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>If you want to learn Python, <a href="http://code.google.com/edu/languages/google-python-class/" target="_blank">Google&#8217;s Python Class</a> might be worth checking out. It includes videos, written material and programming exercises. It is usually given to Google employees new to python.</p>
<p>The tutorial assumes you have at least a basic knowledge of programming concepts. If you know what a &#8220;variable&#8221; is, or what &#8220;loops&#8221; are, you should be good to go.<br />
<span id="more-359"></span><br />
It teaches various stuff like the data strucutures present in Python, regular expressions, urllib (for HTTP stuff), file handling etc. I like the way they&#8217;ve given exercises. There are many tutorials online, and most of them don&#8217;t have an exercise kind of thing which will test what you&#8217;ve learned.</p>
<p>Now, those with some Python experience might be curious about the version. Google Class recommends Python 2.6.x, and also recommends avoiding 3.x for now. The reason might be partly due to the fact that many modules are yet to be supported in 3.x. A beginner would rather learn the version which gives him the maximum flexibility.</p>
<p>Go ahead, check out the tutorial.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/google-teaches-python-written-materials-videos-exercises/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Simple Applications and Become Famous</title>
		<link>http://www.revolves.net/make-simple-applications-and-become-famous/</link>
		<comments>http://www.revolves.net/make-simple-applications-and-become-famous/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:38:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.revolves.net/?p=351</guid>
		<description><![CDATA[We don&#8217;t want Paint, we want Photoshop. Or the next-generation 3D Modelling tool. Or the next-generation world class photorealistic renderer. Whatever we have, we want to add one more bit of complexity to it. John is a professional who often has to resize lots of images. Each time, he fires up Photoshop or GIMP (he [...]]]></description>
			<content:encoded><![CDATA[<p>We don&#8217;t want Paint, we want Photoshop. Or the next-generation 3D Modelling tool. Or the next-generation world class photorealistic renderer.</p>
<p>Whatever we have, we want to add one more bit of complexity to it.<span id="more-351"></span></p>
<p>John is a professional who often has to resize lots of images. Each time, he fires up Photoshop or GIMP (he likes open source), and does the resizing. The Paint that comes with his OS doesn&#8217;t allow the flexibility he demands.</p>
<p>Good.</p>
<p>What if there existed an application that did just one thing, <strong>resize images?</strong> What would John prefer? Firing up GIMP or Photoshop (and endlessly waiting for them to load), or use an application that understands John&#8217;s need, and does that one thing &#8211; image resizing &#8211; extremely well?</p>
<p>Of course, the second little application. Even though a lot of big applications support most of the features you&#8217;ll ever need, but sometimes, small focused applications do the job better.</p>
<p>People are creating such small apps all around the globe. They find that a few people in the forum want a certain piece of software that will do what they want. And they create small apps that does exactly that, nothing less, nothing more. Simple. Elegant.</p>
<p>Moreover, these guys are praised by everyone, since they provide such quick and easy-to-use solutions.</p>
<p>I touched this topic in my other post, <a href="http://www.revolves.net/2010/03/07/software-horror-less-is-more-indeed/">Less is More</a>.</p>
<p><strong>So, how are you changing the world for the better?</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.revolves.net/make-simple-applications-and-become-famous/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: basic
Database Caching 39/77 queries in 0.037 seconds using disk: basic

Served from: www.revolves.net @ 2012-02-04 13:33:29 -->
