Archive

Archive for the ‘Musings’ Category

Developers, Don’t Let Your Babies Grow Up To Be Programmers

March 2nd, 2010

Experts continue to warn of a looming shortage of North American scientists, engineers, developers, and IT workers in general. Efforts like the K-12 CS Model Curriculum attempt to introduce computer science concepts to children as they progress through grade / high school in hopes that they’ll fill this void, but there’s another issue in play. Developers don’t let their children grow up to be programmers.

My hunch is that, most engineers, developer, or related IT professional would rather see their children succeed them – becoming doctors and lawyers and such, not an IT professional.

Malcom Gladwell (in Outliers) presents an interesting account of career progressions within family trees:

In 1982, a sociology graduate student named Louise Farkas went to visit a number of nursing homes and residential hotels [she was looking for] the children of people [who had immigrated] at the turn of the last century. And for each of the people she interviewed, she constructed a family tree showing what a line of parents and children and grandchildren and, in some cases, great-grandchildren did for a living.

Here is her account of “subject #18″:

A Russian tailor artisan comes to America, takes to the needle trade, works in a sweat shop for a small salary. Later takes garments to finish at home with the help of his wife and older children. In order to increase his salary he works through the night. Later he makes a garment and sells it on New York streets. He accumulates some capital and goes into a business venture with his sons. They open a shop to create men’s garments. The Russian tailor and his sons become men’s suit manufacturers supplying several men’s stores The sons and the father become prosperous. The sons’ children become educated professionals.

Farkas’s … family trees go on for pages, each virtually identical to the one before

From my observations, many developers / IT workers are first generation middle class, first generation post secondary educated, immigrants, or all of the above (myself included). Being a developer or IT professional is a small step up the ladder in helping our successors succeed.

Author: Adam Kahtava Categories: Musings Tags:

Tired of Strong Opinions Weakly Held

February 9th, 2010

Strong opinions weakly held is a common conversational / debating approach within IT. Basically you defend your opinion until someone disproves it, at which time you adopt the more correct opinion. This approach works well in IT where allotted time for debates are limited and the cumulative knowledge of the team outweighs the individual. This approach doesn’t work as well in the real world. Using this technique with unsuspecting civilians (especially new acquaintances) can results in the victim thinking you’re a) high strung, b) psychotic, c) egotistical, d) possibly a jerk. Actually, this approach can get tiresome in the IT realm too.

Author: Adam Kahtava Categories: Musings Tags:

Preaching to the Choir

February 1st, 2010

I go for a walk every day (yeah-yeah, I’ll be a mall walker one day). My route takes me by a series of automated parking payment machines – the ones where you punch in your license plate along with a parking quadrant. Surprisingly enough, these machines provide endless comedic relief as people talk, grumble, and curse these inanimate objects – some people go as far as to physically assault them, jam their keys in them, give ‘em a good kick. It’s funny to watch a level headed business man break his cool as he uses a car key to fish around in the coin slot while cursing. My favorite responses are the talkers; grumbling about the price of parking or technology in general. I’m sure they know the machine can’t hear them, but yet they give that box of wires a piece of their mind.

If these talkers and grumblers were on the internet they’d most certainly be on Twitter or have a blog.

Author: Adam Kahtava Categories: Musings Tags:

Algorithm Analysis and Asymptotic Complexity / Big O Notation Is Important

January 21st, 2010

Algorithm Analysis (Asymptotic Complexity / Big O Notation) courses are the bane of computer science students everywhere. These courses were mandatory, dry, and lacked real world pragmatism for students who just wanted to get stuff done. Well, that’s what we told ourselves; that’s the theory we presented to our friends – we were convinced that framework vendors or the hoogie-boogie man would figure out the most efficient way to performance tune / compile our code. We looked to Sun, Microsoft, or IBM to figure out the details. In truth we were lazy-naive students and Algorithm Analysis was tougher than we’d like to admit – much harder than programming in 4th generation programming languages, more difficult than computer theory, or operating system theory.

As I brush up Algorithm Analysis I found these perspectives interesting:

to be a good programmer, you just program ever day for two years … to be a world-class programmer, you can program every day for ten years, or you can program every day for two years and take an algorithms class – Introduction – Analysis of Algorithms, Insertion Sort, Mergesort

Having a solid base of algorithmic knowledge and technique is one characteristic that separates the truly skilled programmers from the novices. With modern computing technology, you can accomplish some tasks without knowing much about algorithms, but with a good background in algorithms, you can do much, much more - Introduction to Algorithms, Second Edition

It’s unfortunate that our professors never mentioned that Algorithm Analysis would be an integral part of academic type interviews and a prerequisite for getting a job at Google, but then again who would have listened?

Author: Adam Kahtava Categories: Musings Tags:

Life’s Creative Circle: Creativity Isn’t About Art or Design

January 14th, 2010

The most popular conception of creativity is that it’s something to do with the arts.

Nonsense. - Paul Arden, It’s Not How Good You Are, It’s How Good You Wan’t To Be.

This year marks a new decade for me (I’m saying goodbye to the late 20′s). According to Arden’s Creative Circle this blog was written during my era of Maturity and for the next 10 years I’ll be Hell Bent On Success. Thanks for putting up with my growing pains and griping.

Author: Adam Kahtava Categories: Creativity, Musings, Personal Tags:

Finding Work That You Love

December 31st, 2009

As a youngster I was encouraged to: “Find work that you love and do what makes you happy.” Ironically, this sage advice was usually delivered by the unhappy, unemployed, or paranoid (paranoid that the government was stealing their money, unhappy with the uncertainty of not working, or unemployed because keeping work in small remote economies is tough). It’s also fair to mention that this piece of advice was usually followed by: “Get a trade. You need a trade!” This was probably great advice a couple decades ago, or if you’re working in remote communities, but less relevant in today’s world. I loosely followed this advice through my younger years and I remember constantly being frustrated when work inevitably lost its fun. Thankfully, I eventually realized that work is work (if work was fun we’d just call it fun, then we’d be preoccupied with having work, not fun). Anyhow, I sympathize with today’s youngsters who are wrestling with this same conundrum – being told one thing, but experiencing a different reality in the real world. My words of advice today would be to: “get experience, work, do whatever you can, build a resume, go to school, and you’ll eventually find work that you love. Oh, and don’t look solely to work for happiness.”

Today I do find my work fun, but I couldn’t have got here without the experience I gained while plowing through boring jobs (like working the assembly line, tree planting, or digging outhouse pits). In order to find the job you love you need to start gaining experience now.

Author: Adam Kahtava Categories: Musings, Personal Tags:

Ramblings From Another Generation X / Y / Millennial

December 1st, 2009

Like a straight ‘A’ student you’ll find me upfront and center, pencil in hand, when someone describes the traits of my demographic group. I fall somewhere in the Generation XY / Millennial demographic group (the boundary varies widely depending on what source you cite). I mean let’s face it, who doesn’t like to read about how our droogs are perceived? Wait a … this could be another manifestation of Generation X / Y / Millennial narcissism others have been writing about. Crap!

When hearing about the traits of our demographic group, I question how unique the traits associated with our group are. It seems that these traits could be common knowledge to smart people everywhere (regardless of demographic segmentation), but then again, this could be my squeaky Generation X / Y / Millennial voice discounting the other demographics (yet again).

I thought Andy Hunt had an accurate description for our demographic:

[Generation Xers are] free agents, with an inherent distrust of institutions … Fiercely individualistic, and perhaps a bit on the dark side, they’ll just quit and move on if there’s a problem at work. They resist being labeled at all costs … They are quite pragmatic, working for a positive outcome regardless of any particular ideology or approach. – Pragmatic Thinking and Learning: Refactor Your Wetware

I’d agree, an inherent distrust of institutions is a common trait in our demographic. It could be that we’re immature and this tendency could wane as we grow older, or it could be a permanent scar stemming from our observations – many of us watched our elders (some with perceived jobs-for-life) jaded and unemployed in the 80′s, then living through the uncertainly that prevailed in the following years.

Others have mentioned that we:

would prefer to work for companies that give them opportunities to contribute their talents to nonprofit organizations. – Volunteering as a Benefit

But then again, who wouldn’t like to work for company that encouraged contributions to nonprofits and pet projects?

Yet others have noted that we:

demand to be communicated to in a direct, honest and transparent way … are “‘immediate driven” and quite keen to live their lives right now, rather than adhering to the old Protestant work ethic that suggests you can only reap the rewards of life after you have worked hard and basically sold your soul to your employer. – How to turn on Generation Y

Yup, that sounds fair. We expect transparency in the age of information. Continuing with that thought, it’s also been said that:

[we] view time as a currency … not to be wasted … They want to get the job done, then put it behind them and enjoy life. – Retaining youth

Again, seems a bit obvious. We’re not lazy, but we’ve seen our elders do a lot of weird stuff as they go through their midlife crisis - maybe if they didn’t put off living in the name of work they would have maintained more sanity.

It’s also been said that we:

prefer to dress as casual as possible and work with mobile gadgets or laptops in comfortable, creative spaces. – CareerNews: Tuesday, May 22, 2007

What demographic group doesn’t like to be comfortable while working? Our attire should be an extension of workplace ergonomics – we’re told to lift heavy object with your legs (not your back), and use ergonomically correct equipment. Wearing comfortable clothes and using gadgets should be a natural extension. :)

In general, I think our generation strives to work smarter (not necessarily longer hours), we try to atain a healthy work-life balance, and a number of us value experiences over owning stuff. I think smart people from other demographics have been doing the same things for years, but what do I know, I’m just another Generation X / Y / Millennial.

Author: Adam Kahtava Categories: Musings Tags:

Chatting With a Flash Developer Turned Web Developer

November 30th, 2009

I was chatting with a Flash Developer turned Web Developer. When asked why he made the transition, he predicted that HTML 5 and the evolution of the web thereafter would lessen the demand for Flash Developers (possibly making them obsolete) and that moving towards a Web Developer / Generalist is an investment for the future. I thought that was an interesting perspective. It’s not far fetched to predict that the open web will replace proprietary browser plug-ins – in many cases digital content has already replaced print.

Author: Adam Kahtava Categories: Musings, Software Tags:

The Dreyfus Model: Developer Events and Skill Categories

October 8th, 2009

I found the Dreyfus Model of Skill Acquisition neat. It’s a central theme throughout Pragmatic Thinking and Learning by Andy Hunt.

Here’s how Wikipedia describes the Dreyfus Model:

The Dreyfus Model of Skill Acquisition postulates that when individuals acquire a skill through external instruction, they normally pass through five stages. … the five stages of skill acquisition are: Novice, Advanced beginner, Competent, Proficient and ExpertDreyfus model of skill acquisition

We have different skills and are at different stages simultaneously in each skill – for example, someone might be an Expert at underwater basket weaving and a Novice at cooking. As we cultivate our experience we progress through these stages.

The categories (again, from Wikipedia) are as follows:

  1. Novice
    • rigid adherence to rules
    • no discretional judgment
  2. Advanced beginner
    • situational perception still limited
    • all aspects of work are treated separately and given equal importance
  3. Competent
    • coping with crowdedness (multiple activity, information)
    • now partially sees action as part of longer term goals
    • conscious , deliberate planning
  4. Proficient
    • holistic view of situation, rather than in terms of aspects
    • sees what is most important in a situation
    • uses maxims for guidance, meaning of maxims may vary according to situation
  5. Expert
    • no longer reliant on rules, guidelines, maxims
    • intuitive grasp of situation, based on tacit knowledge
    • vision of what is possible

Presented with these categories we can draw some parallels with the software realm. Like say, create a list of events that you’d most likely find these different categories of software developers hanging out.

Developer Event Attendance and Developer Skill Categories:

  1. Vendor or Technology Specific: User Groups / Code Camps / Corporate Training / Evangelistic Events
    • Many Novices
    • Many Advanced beginners
    • A small number of Competents that are transitioning to Proficients
    • Proficients and Experts might be leading the group or may have been mandated to go by their organization
  2. Open Book Clubs / Non Specific Technology Meetings / Non Specific Bar Camp Type Events
    • Mostly Competents, Proficients, and Experts

Of course, this is just my opinion. I’ve noticed that my attendance to the events listed above continually shift. Initially I thought I was becoming a curmudgeon, but instead I shifted a couple Dreyfus categories.

Author: Adam Kahtava Categories: Musings, Personal Tags:

The Sheep Dip: Developer Boot Camps, Training Events, and Evangelism

October 5th, 2009

I found Andy Hunt’s description of Sheep Dip Training funny:

A sheep dip is a large tank in which you dunk the unsuspecting sheep to clean them up and rid them of parasites. The sheep line up; you grab one and dunk it in the tank … It wears off, of course, so you have to dip them again.

Sheep dip training follows the same model. You lineup unsuspecting employees, dunk them in an intensive, three-to-five day event … and proclaim them to be Java developers, .NET developers, or what have you. It wears off, of course, so next year you need to have a “refresher” course – another dip.

Companies love standardized “sheep dip” training … There’s only one drawback. This naive approach doesn’t work … – Pragmatic Thinking and Learning by Andy Hunt

Author: Adam Kahtava Categories: Book, Musings Tags: