Computer Programming | A Novice Reflects

| 1 Comment

Been learning to program. Woohoo! Previously I spent considerable time learning *about* programming, particularly the pro's & con's of the various languages (.. something I enjoyed). Now however, I'm focused on learning the actual nuts-n-bolts of coding. Very different experience. More so than I would've imagined.

Aptana StudioSomething shifted today. Programming used to seem like something done at a desk 10-steps away (so to speak) .. by others, at a distance. Today it became something done here on my laptop.

I can now see what others meant when they suggested I 'just start' .. no matter what language I happened to choose.

Seems many of the initial concepts introduced to the aspiring programmer (such as data types & logical operators) apply to most programming languages. So learning these concepts is what's really important .. more than the syntactic details of any particular language.

Also seems like I was always searching for a conceptual framework upon which to begin learning a language. Hooks upon which to hang the things I would learn. A file system into which I could deposit & organize this information.

Finally found that 'framework' in (I'm almost embarrassed to say) » a 'Dummies' book (of all places), where the author asserted that programming was similar to writing a recipe, where you document the various steps required to fix your favorite dish.

That made sense to me. It was something I could relate to. Moreover it marked the point at which I quit learning 'about' programming & programming languages and began to actually focus on learning the nuts-n-bolts of a particular language.

Programming as a recipe. The recipe paradigm. Simple concept. Simple usually works best. (For the novice.)

Many courses and books use the 'don't-be-limited-by-the-programs-others-write' argument as their reason for learning computer programming. But that approach never really resonated with me. I never felt limited by the programs written by others, seeing there are so many good ones to choose from.

••• today's entry continues here below •••

Of course, I'm still just a novice, but programming is no longer viewed as something done 'over there' (.. by others, at a distance). Best of all, I'm learning something new every day.

Another hurdle I had to get over was » WHY. Why do I want to spend my limited time learning to program? .. especially when there are so many other cool things I could be learning. (The question of » priorities.)

For me, PHP answered that question best .. since it's a web-specific language, and web-stuff is what I do (here with this site). In other words, I'd be able to apply these skills sooner rather than later. (Quicker gratification.) Something I wasn't getting from Scheme.

It might not be the coolest language, but PHP represents a good starting place (for me, anyway). And God knows, we all have to begin somewhere. (Newbieville.)

I've long felt that digital technology (the manipulation of bits-n-bytes), in conjunction with the Internet, represents the future, and those who seek entrée into that future need to learn to wield digital tools .. the most powerful of which being the ability to program. So here we are. Better late than never, right?

Another contributing factor was the surge of encouragement that came last summer, when I learned how to use the Linux shell (bash), which has allowed me to administer the site far more efficiently. Things that used to take a good chunk of my day (such as upgrading Movable Type, which I did yesterday) I now do in minutes from the command-line. So easy, in fact, that it no longer seems worth mentioning.

A key point in understanding how PHP works came when I learned about CGI (the Common Gateway Interface), because PHP is like CGI on steroids. That helped me feel comfortable delving into PHP.

Lego building blocksLastly, there's a big difference, I've noticed, between watching someone teach programming and actually writing the code myself. I don't feel comfortable with the material covered until I've actually written the code for myself.

For a programming environment, I've been using Aptana Studio (which I call 'the orange ball program'). I like it a lot. Works well for me. Very stable. (And free!) Based on Eclipse. I tried several others, but I like Aptana the best.

Learning to program feels like building with legos » something done one small piece at a time. Progress isn't nearly quick as I'd like, but consistent. Now, when I look at code, I actually have a decent idea of what's going on. Pretty cool. =)

For more along these lines, here's a oogle search for the query » learn computer programming language

Reblog this post [with Zemanta]

1 Comment

PHP is in many ways a good starting place, since it is pretty simple. It's even pleasant to work with for quite sophisticated things as in its recent incarnations there's a pleasing lack of friction between it and the Javascript code that runs in browsers. PHP arrays and classes are so very very similar to Javascript objects, that it's simplicity itself to shuffle quite rich collections of data from webserver to browser and back over JSON.

The uncoolness factor of PHP, however, is really down to its history: a lot of the default things that the PHP environment does are very dangerous, and this means PHP applications start out well behind the curve in dealing with web security. Lots of other primitive languages used as CGI handlers fare no better, mind you - however, PHP's enduring popularity for this kind of work (to which it is otherwise very well suited) mean that the security failings get magnified compared to languages which put heavy-weight layers of code between webserver and user code to try and avoid the most common mistakes.

There are a lot of common XSS and CSRF failures in PHP code, particularly, due to PHP-specific things such as $_SERVER[PHP_SELF]. None of which stops it being useful, but it helps to tread with care.

About this Entry

This page contains a single entry by Rad published on March 8, 2010 10:43 AM.

Where Men Win Glory was the previous entry in this blog.

Cirque du Soleil & a Confession is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.