Learning Programming Part 3: C/C++ superiority

Previously, Part 1 and Part 2.

The other day, Marie pointed me to an interesting article where Jolie O’Dell decides to go back to school to get a computer science degree. She asked me what my thoughts were on some comments concerning the necessity of learning C/C++. I’ll paraphrase in order to avoid singling anyone out.

“Scripting languages create holes in proper programming. All a language, like PHP, will do is make you a PHP programmer, while a language like C or C++ will give you a fundamental understanding that can be applied to all languages and make you a better programmer no matter what the language. This is because these languages expose you to the way the computer really works (instead of abstraction): for instance, how a string is really created, or an array, or dynamic memory allocation. If you learn PHP, you will never bother to learn the low-level reality.”

The above is a munge of many commenters’ discussions.

What do you think of the above statement?
Continue reading my reply after the jump.

When (to learn more about) dSLR (photography) [The entry kit dSLR Part 7]

(Article continued from part 6)

Recall the story of the enthusiast and the entry-level dSLR photographers trading cameras. While I admonished against the danger of buying too much of a dSLR, I glossed the obvious problem: the entry-level photographers had a problem shooting the professional dSLR. How do you get there from here?

The answer is simple: learning.

Inside every dSLR is a complex computer and that computer makes decisions for you. This is true in both the entry and pro dSLRs: the difference is the entry-level cameras are configured to make more decisions for you. The trick is to realize that the entry-level cameras give you access to the pro-level settings, but you have to be willing to leave the safety of automation in guides, scenes, and McDonald’s-style graphical menus.

I’m not a snob. There is nothing wrong with those features and the computer makes some pretty smart decisions. It’s just unless you are bumping your head against the decisions it makes, you’re limiting yourself in the sort of photography you can do.

Marie at The Corner

Marie at The Corner
The Corner, Mission, San Francisco, California

Nikon D3, Nikkor 50mm f/1.4G, SB-800
1/20sec @ f/3.5 iso3200, 50mm

This series had an inside joke. While it is a discussion of dSLR cameras, every photo was supposed to be taken with a non dSLR camera. Unfortunately, this photo is simply too difficult to be taken by anything other than a SLR.

In this case, you can’t take this photo with the scene modes in your dSLR. Yes, the “night portrait” mode might get you close, but you’d need to pump the ISO even further, drag the shutter even more, change the white balance to incandescent, and set the flash curtain to front.

If you mouseover the image, you’ll see the original. My camera broke and decided to only record in TIFF that day, so I couldn’t have even depended on the RAW mode safety net for dynamic range and white balance recovery.

Even if we restrict ourselves to discussion of the same composition in the same camera, we are still left with setting shutter speed, aperture, and ISO. These three have a complementary relationship and are associated with different tradeoffs. Scene modes in your camera make the decision for you, but unless you know what that decision is and when it is wrong, you can’t really grow as a photographer.

P3010840

A plethora of learning materials exist out there. Here are a few of the ones I’ll be mentioning in this article.

Continue reading about books, videos, and classes after the jump

Learning Programming Part 2: Programming Frameworks

A selection of programming language textbooks ...
Image via Wikipedia

(Full disclaimer: I work at Automattic and am a speaker at PHP conferences.)

A couple days ago, Gina Trapani posted an interesting article on learning to program.

This reminds me that some people may take the wrong points away in my last article on the subject, the priority shouldn’t be what language you should learn, but rather, what is going to get you motivated to learn. PHP is a popular language because it naturally invites “immersion” style learning, not because it makes a good teaching language—which it doesn’t. That is, assuming the thing you are immersing in is “building a website”. As I like to say:

PHP is the shortest distance between two points on the web.

In the comments, I wrote:

After [the first] chapter, I’d say [PHP and MySQL Development]offers the most “immersion” gratification (at the least cost) than any other language’s textbook. The chapters are easy and by the end of it you have an eStore written and working from scratch. What do you get at the end of the Learning Python book? And how easy was each subsequent chapter? I’d say much less and much harder.

[Unfortunately,] it’s that first chapter that does the first timer in.

Continue reading about More about learning web programming after the jump.