Meditations on programming, startups, and technology
Currently Browsing: Programming

Notice What You Didn’t Do

In his original Rails demo video, DHH stressed the things he didn’t have to do. By 2005 standards, elements of Rails’ unceremonious approach felt almost magical. I was reminded of it by Joel Spolsky’s announcement of HyperDev: Notice what you DIDN’T do. You didn’t make an account. You didn’t use Git. Or any version control, really. You didn’t deal with name servers. […] It’s effective marketing,...

A Language for the Next 10 Years

In early 2006 I had just started my career in IBM. I was the “Ruby Guy”[1] (or alternatively, the “Rails Guy”). During a meeting with a few high-profile engineers, I presented what Ruby brought to the table. An IBM Distinguished Engineer[2] stopped me in my tracks and said, “It sounds slow”. I love Ruby as much as a programmer can possibly love a programming language, but that engineer’s conjecture was...

10 Lesser-Known Programming Languages Worth Exploring

There are probably a few thousand programming languages out there, some of which are quite esoteric. Yet most developers only end up learning a handful amongst the most common ones that are currently in use within our industry. I would argue that learning a new language, perhaps even a lesser known one, can be a lot of fun and definitely worth your time. Even if you don’t end up using a given language in...

Tip #4 for Young Programmers: Get Familiar with the Command Line

Back in my day, and I’m not that old, programmers were a subset of people who were “really good with computers”. It would be hard to find a programmer who didn’t know how to use the operating system of their choosing far beyond end user level. These days things are a little different. Now we’re encouraging everyone to code and become a programmer, so a lot of newcomers no longer have many a sleepless...

Tip #3 for Young Developers: Master an Editor

As a developer, you’ll spend a lot of your time writing code. Less than you’d think, as we’ll see in future tips in the series, but still thousands of hours. It pays dividends to master your code editor. A powerful editor, properly used, will provide a myriad of benefits. Benefits of a code editor The following incomplete list will give you an idea of some of the ways in which an editor can serve you: Speed...

Tip #2 for Young Programmers: Learn Revision Control

A surprising amount of people in our profession are not familiar with revision control software. In the world of computer software engineering, revision control is any kind of practice that tracks and provides control over changes to source code. Software developers sometimes use revision control software to maintain documentation and configuration files as well as source code. — Wikipedia Over the past ten...

Tip #1 for Young Programmers: Specialize in Something

Over the years, I’ve toyed with the idea of writing a series of posts aimed at young programmers. [1] My advice will be aimed at aspiring programmers, students, and programmers who are just starting out.[2] I’m going to skip the part in which I motivate you by telling you why learning to code is a great idea and akin to acquiring a super power. In this series, I’m just going to assume that you’re interested...

Rails Is an Old Hat, and That’s Okay

Not too long ago, someone I know said, “At this point in time, Rails is an old hat”, in reference to the fact that many developers are adopting newer technologies like Node.js. I don’t see this as a negative, true as it might be. When Rails arrived on the scene a decade ago, it was thoroughly impressive and quite the improvement over the status quo in the PHP, Java, and even Ruby communities. At the time,...

10 Programming Challenges Sites

My previous post about using Project Euler to experiment with new programming languages, or learn programming altogether, was for the most part met with positive feedback online. The common theme amongst those who didn’t love it however, was that Project Euler is too math-focused and not very real-world oriented (unless you mostly do math research). Commenters on various social sites also recommended...

Learn New Programming Languages with Project Euler

Lately I’ve been thinking a lot about beginners and the very understandable struggle to grasp programming that many of them face. This post is mostly aimed at those who currently find themselves in this position. When it comes to creating, there is no substitute for hands-on experience and the same rings true for programming as well. If you can spend three months reading a 1,000 page reference book on a given...

On Programming Languages as Languages

When you look up the word “Language” in the dictionary, you’ll find a few variations of similar definitions. My trusty Google Dictionary extension in Chrome, offers up a first definition that is rather obvious, but nevertheless: The method of human communication, either spoken or written, consisting of the use of words in a structured and conventional way. The second definition is more interesting because it...

3 Upcoming Languages That Are Worth Exploring

Being at the forefront of technology is something that I’ve always sincerely enjoyed. For example I was one of the first C# programmers in Italy back when C# was still in beta, and I was there in the early days of Rails as well (just a few months after its initial release). Over the years I’ve dared to risk and have made some educated bets on technology that have served my career well.[1] I share this as a way...

Meteor is going to be big

More than four years ago, I called JavaScript the most important language today. I stand by that – admittedly somewhat sensationalistic – assessment. JavaScript remains the lingua franca of the web and will continue to do so for the foreseeable future, despite the emergence of mobile (where native development is winning). In fact, much like I speculated at the time, Node.js ended up becoming fairly...

People Driven Development

At every stage of the software development process, I like to put people first. I’m deliberately using the generic word people instead of the more common users. In many cases the decision will indeed affect end-users, because designing a good user experience (UX) is fundamental to the production of quality software; however my point is to try to consider all the people who may be affected by a given...

Why I Won’t Be Publishing New ‘Great Ruby Shootouts’

Someone on Twitter politely asked me when I was going to run a new Ruby shootout. I replied that I wasn’t planning to. This got me thinking though that he might not be the only reader wondering about this point, so I thought I’d share a few of the reasons behind my decision not to carry on with this series. My last shootout (over two years ago now) and its predecessors were highly popular posts. In fact,...

New Release of the Ruby Driver and Rails Adapter for DB2

The API team at IBM recently released a new update for the ibm_db gem, which includes both the Ruby driver and the Rails adapter for DB2 (and Informix). This coincides with the release of the latest major upgrade to DB2 LUW (Linux/Unix/Windows), which is now up to version 10.1. ibm_db 2.5.10 adds support for Rails 3.2 and fixes a few minor bugs that have been reported by the community. New features such as Time...

RubyMotion brings serious Ruby development to the iOS world

For the past several months I’ve been involved with, but unable to publicly discuss, an exciting project called RubyMotion. My friend Laurent Sansonetti, creator of MacRuby, has now officially launched a serious alternative to Objective-C for iPhone and iPad development. RubyMotion is not a bridge; it actually generates native applications that are as fast as the ones written in Objective-C . You can check...

Discount coupon for the Rails Tutorial (2nd Edition)

Contrary to what you may have been led to believe, learning Rails from scratch can be challenging. The framework and surrounding ecosystem have evolved so much that the experience of getting started now in 2012 is far more daunting than the one we early adopters encountered back in 2004 or 2005. Yes, things are more polished in many regards, but there are also so many more choices to be made. What login library...

On the Usability of Codecademy

I asked a friend of mine (who isn’t a coder) if she could try out the amazing Codecademy for me. She is a smart person, but again, she isn’t a programmer. I thought Codecademy would be a great way to introduce her to programming for the web. As a programmer, I thought it was extremely well made and assumed it would work for anyone. She landed on the homepage and read the instructions. She wrote her...

A Big List of Interesting Programming Books Released in 2011

The following is a list of 48 interesting programming books that were released in 2011. While technically some of them are only programming-related and not about coding per se, each one is sure to be of interest to some programmers. As some of you know, I run a service called Any New Books?, which emails you a list of new books that are related to the categories of your choice each week. For the most part I pulled...

« Previous Entries

Copyright © 2005-2014 Antonio Cangiano. All rights reserved.