One popular topic in Computer Science (among other disciplines) is whether professors are out-of-touch with “real world” programming. Those who argue for less academics in CS education claim that university degrees prepare students poorly for industrial roles. Plagued by an environment in which theory and research are preferred over practical skills for daily software development, these students enter the workforce ill-equipped to write professional software. Continue reading “Should academics or professionals teach programmers?”
So you’d like to interview for a programming position. Congratulations! You will find there are many helpful methods to make the experience as arbitrary and frustrating as possible. Continue reading “How to interview programmers badly”
The modern anti-competition potential of the Internet Service Provider is nuclear. Far from merely an industry-siloed cartel, they control both the products and the means of discovery.
Today the FCC voted to overturn Obama-era policy that prevented Internet Service Providers from blocking or slowing access to certain web content. Chairman Ajit Pai, who spearheaded the successful campaign, argued that the repealed rules stifled competition and represented government interference in the otherwise free market. “The internet wasn’t broken in 2015. We weren’t living in a digital dystopia. To the contrary, the internet is perhaps the one thing in American society we can all agree has been a stunning success.” Continue reading “Free markets: the economic and technical arguments for strong net neutrality”
One classic theme in software development is protecting the integrity of your model classes. We lock up access to them by using things like private variables, the proxy pattern, and wrapper classes. Nobody gets to mess with our objects unless they do it our way.
But what about when testing needs to get its hands on restricted parts of our model classes? Imagine that you’ve got a GameBoard class with associated members pieces, bank, and deckCards. Here’s a sample UML to help you visualize: