<?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>PhilFreo.com &#187; Programming</title>
	<atom:link href="http://philfreo.com/blog/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://philfreo.com/blog</link>
	<description>The portfolio and blog of Phil Freo, on web design, development, and entrepreneurship.</description>
	<lastBuildDate>Fri, 23 Sep 2011 07:37:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Behind the scenes look at my work at Quizlet</title>
		<link>http://philfreo.com/blog/behind-the-scenes-look-at-my-work-at-quizlet/</link>
		<comments>http://philfreo.com/blog/behind-the-scenes-look-at-my-work-at-quizlet/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 07:36:18 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Quizlet]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=332</guid>
		<description><![CDATA[I just wrote a pretty in-depth article on the Quizlet Blog: &#8220;How We Do Product Development at Quizlet: An Inside Look at the Making of Speller&#8221; which describes the process of how Andrew and I created &#8220;Speller&#8221;, the latest study mode on Quizlet. &#8230;a behind the scenes look at how we created Speller, our engineering [...]]]></description>
			<content:encoded><![CDATA[<p>I just wrote a pretty in-depth article on the Quizlet Blog: &#8220;<a href="http://quizlet.com/blog/the-making-of-speller/">How We Do Product Development at Quizlet: An Inside Look at the Making of Speller</a>&#8221; which describes the process of how Andrew and I created &#8220;Speller&#8221;, the latest study mode on Quizlet.</p>
<blockquote><p><em>&#8230;a behind the scenes look at how we created Speller, our engineering challenges and processes, and how we obsessed over the user experience and the educational experience.</em></p></blockquote>
<p>Includes some technical details of how we programmed it (mostly JavaScript), the text-to-speech, development process and usability testing, and lots of screenshots of the different iterations we did in order to get the UI right.</p>
<p>It&#8217;s a little long, but hopefully worth the read!</p>
<p><img class="size-full border wp-image-3595 aligncenter" style="display:block;margin: 10px auto;border: solid 1px #eee; padding: 4px;" src="https://quizlet.com/blog/wp-content/uploads/2011/09/los_animales.png" alt="" width="484" height="147" /></p>
]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/behind-the-scenes-look-at-my-work-at-quizlet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graduation thoughts: best classes at UF for Computer Engineering</title>
		<link>http://philfreo.com/blog/graduation-thoughts-best-classes-at-uf-for-computer-engineering/</link>
		<comments>http://philfreo.com/blog/graduation-thoughts-best-classes-at-uf-for-computer-engineering/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 21:38:05 +0000</pubDate>
		<dc:creator>Phil Freo</dc:creator>
				<category><![CDATA[College]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[UF]]></category>

		<guid isPermaLink="false">http://philfreo.com/blog/?p=212</guid>
		<description><![CDATA[In three weeks from today, I will have graduated, with honors, from the University of Florida with a B.S. in Computer Engineering (software emphasis) and a minor in Business Administration.  Overall, I&#8217;ve had an incredible college experience and have learned a ton, had some great experiences, and built relationships with a lot of really great [...]]]></description>
			<content:encoded><![CDATA[<p>In three weeks from today, I will have graduated, with honors, from the <a rel="nofollow" href="http://ufl.edu">University of Florida</a> with a B.S. in <a rel="nofollow" href="http://www.registrar.ufl.edu/catalog/programs/majors/compeng.html">Computer Engineering</a> (software emphasis) and a minor in Business Administration.  Overall, I&#8217;ve had an incredible college experience and have learned a ton, had some great experiences, and built relationships with a lot of really great people.</p>
<p>I thought it&#8217;d be worth mentioning the classes at UF that, looking back, had the greatest impact on me.  I&#8217;ve taken a bunch of classes over the past 4.5 years, but these were the ones that I really can appreciate the most&#8230;<br />
<span id="more-212"></span></p>
<hr /><strong>1.  Digital Logic &amp; Computer Systems (EEL 3701), with <a href="http://www.mil.ufl.edu/~ems/">Dr. Eric Schwarz</a></strong></p>
<p><a style="float: right; margin: 5px; border: solid 1px #ccc;" href="http://philfreo.com/blog/wp-content/uploads/2009/11/DSCN2582-224x300.jpg" target="_blank"><img class="size-medium wp-image-215 alignright" title="EEL3701" src="http://philfreo.com/blog/wp-content/uploads/2009/11/DSCN2582-224x300.jpg" alt="My breadboard from one of the Digital Logic labs" width="224" height="300" /></a><strong>It wasn&#8217;t until this class that I really understood how computers worked</strong>.  I started this class as a freshman who could barely count in binary.  In one jam-packed semester, we learned all about: number systems, logic gates, mixed logic, <a href="http://en.wikipedia.org/wiki/Karnaugh_map">k-maps</a>, <a href="http://en.wikipedia.org/wiki/Multiplexer">multiplexers</a>, <a href="http://en.wikipedia.org/wiki/Flip-flop_(electronics)">flip-flops</a>, <a href="http://en.wikipedia.org/wiki/Arithmetic_logic_unit">ALUs</a>, RAM, ROM, etc.  We also learned how to design hardware components using Quartus and <a href="http://en.wikipedia.org/wiki/VHDL">VHDL</a>, and program them onto our <a href="http://en.wikipedia.org/wiki/Programmable_logic_device">PLDs</a> to watch different LEDs on our breadboards react to various switches and buttons (<em>see picture of my breadboard wired up after programming a PLD</em>).</p>
<p>All in all, <strong>we started with simple logic gates and designed an entire (basic) 8-bit CPU – and then programmed it by writing and hand-compiling assembly code</strong>.  What a great learning experience!</p>
<p>This was also a great example of where <strong>it was completely worth taking the class with the harder professor</strong> who gives more homework, because he was very passionate about the subject and knew how to teach it well.  I don&#8217;t remember every detail of what I learned 4 years ago in this class, but because I had a great professor, I can still explain most of the major concepts and would feel comfortable diving back in if needed.</p>
<hr /><strong>2.  Object-Oriented Programming (COP 4331), with </strong><strong><a href="http://www.cise.ufl.edu/~dts/">Dave Small</a></strong></p>
<p>This OOP class has had a greater influence on me as a developer than anything else ever has.  Heavily based on both in-class lectures (with reading assignments) and very large get-your-hands-dirty team programming assignments, the course was a great mix of theory and practice.</p>
<p>We went over many important topics such as encapsulation, inheritance, composition, cohesion, encumbrance, type conformance, <a href="http://www.ccs.neu.edu/research/demeter/demeter-method/LawOfDemeter/paper-boy/demeter.pdf">Law of Demeter</a>, <a href="http://pragmaticprogrammer.com/articles/tell-dont-ask">Tell Don&#8217;t Ask</a>, <a href="http://www.objectmentor.com/resources/articles/ocp.pdf">Open-Closed Principle</a>, <a href="http://www.objectmentor.com/publications/lsp.pdf">Liskov Substitution Principle</a>, and <a href="http://en.wikipedia.org/wiki/Model–view–controller">MVC</a>.  We also became deeply familiar with reading <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML diagrams</a> and <a href="http://en.wikipedia.org/wiki/Sequence_diagram">sequence diagrams</a> and used these to express complex software object models.</p>
<p>The real value from this course, though, came from the programming assignments.  We worked in groups of 7-8 people throughout the semester on three different iterations of a real-time role playing rage (RPG) in Java based on proper OO design based on what we had learned at that point in the semester.  We actually started from scratch for each of the 3 iterations, and, for each iteration, I spent about 90 hours outside of class working with my group on a solid UML design and implementing our design in Java.</p>
<p>These group assignments, even though they were very time consuming, had a huge amount of value in helping us turn abstract OO concepts into practice.  They were also very rewarding as we were creating a pretty cool game</p>
<p>A side effect was that I also <strong>learned a lot about teamwork and leadership</strong>, and working with a group of people under high-stress work environments.  They also were what caused me to really know Java well.</p>
<hr /><strong>Runner Ups</strong></p>
<ul>
<li><strong>Design Patterns</strong><strong> in OOP</strong> (CIS 4930) &#8211; Dave&#8217;s other class.  I&#8217;d highly recommend it to anyone wanting to become a better programmer/designer.</li>
<li><strong>Business Finance</strong></li>
<li><strong>Intro to Financial Accounting </strong></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://philfreo.com/blog/graduation-thoughts-best-classes-at-uf-for-computer-engineering/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

