Click here to Skip to main content
15,879,326 members
Articles / All Topics
Article

A Coder Interview With Dr. Drang

Rate me:
Please Sign up or sign in to vote.
4.92/5 (4 votes)
24 Apr 2013CPOL4 min read 16.2K   1   3
Welcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Dr. Drang, a consulting engineer who blogs about scripting and fatigue analysis.

Welcome to our continuing series of CodeProject interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Dr. Drang, a consulting engineer who blogs about scripting and fatigue analysis.

Who are you?

My nom de net is Dr. Drang, and I blog about scripting, engineering, and occasional other topics at leancrew.com. In real life, I’m an engineer (civil and mechanical) who spends most of his time figuring out why things have broken.

What do you do?

My biggest coding projects have been finite element and fatigue analysis programs that I’ve written to solve particular problems in failure analysis. They’re not commercial, nor were they written to be used by anyone other than me. Most of my publicly-available scripts are little programs that help me use my computer more efficiently. They’re either posted on my blog or in my GitHub repository.

What is your development environment?

I used Linux from 1997–2005, but have been a Mac user since then. I have an iMac at work and a MacBook Air at home — pretty vanilla setups in each case. I write mostly Python code in BBEdit, with excursions into AppleScript in the AppleScript Editor. My main debugging tool is a print statement — it works in every language.

What new tools, languages or frameworks interest you?

I’m spending a lot of time recently with SciPy, NumPy, and matplotlib, the numerical and plotting modules for Python. When I stopped programming in Perl several years ago, I chose Python over Ruby because of SciPy, but didn’t actually start using it until last year.

I’ve spent a fair amount of time fiddling with the Twitter and Flickr APIs, but I don’t expect to be doing too much more with them — I’m pretty satisfied with the little tools I’ve built.

What is your coding pet peeve?

I suppose it’s a generational thing, but it bothers me to see short programs written in an object-oriented style. Not using object libraries — that makes perfect sense — but setting up classes for a 50-line script just seems ridiculous. It makes me think the programmer is following some list of “good programming practices” and not thinking about the problem to be solved.

I like two spaces for indentation, which violates some PEP or another, but I don’t care. Four spaces just seems too big to me. I like camelCase, but only because I find underscores to be really ugly. If only hyphens were allowed in languages other than Lisp and Scheme.

How did you get started programming?

Like most engineers my age, I started programming in college in a Fortran course. A deck of punched cards submitted to an IBM 360 descendant and a fanfold of output (usually syntax error messages) returned half an hour later. It’s amazing we got anything done.

My senior year I took a Pascal course as a technical elective, and it really opened my eyes to what programming was all about. The professor put great emphasis on data structures and writing procedures and functions that did one easily described thing. Later, when I programmed in Forth, breaking the logic of a program into small bites with good names became even more important.

I’ve kind of fallen away from that highly structured approach in recent years, but that’s because the languages I write in now are much more expressive and at a much higher level. On the rare occasions when I do find myself writing at a low level, like in some recent calendar calculations done in Lisp, I do go back to a style with many short functions.

How has the developer community influenced your coding?

Because I’m not a professional programmer, I don’t seem myself as part of a developer community, but having immediate access to so much code written by others — mostly people who are much better programmers than I am — has been a big help in making my scripts better.

In the past couple of years, the Stack Exchange sites have become one of my favorite resources because of the discussion that surrounds the code. Programming is often about making choices, and seeing the reasoning behind different choices is enlightening.

I’d be remiss if I didn’t mention the commenters on my blog, who find my errors, point out better libraries, and sometimes get me thinking along entirely different lines.

What advice would you offer to an up-and-coming programmer?

You don’t want my advice. When I was in school, I thought it was foolish to get a CS degree because everyone would soon be programming and there’d be no need for “programmers,” per se. I was a little off on that one.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer CodeProject Solutions
Canada Canada
The CodeProject team have been writing software, building communities, and hosting CodeProject.com for over 20 years. We are passionate about helping developers share knowledge, learn new skills, and connect. We believe everyone can code, and every contribution, no matter how small, helps.

The CodeProject team is currently focussing on CodeProject.AI Server, a stand-alone, self-hosted server that provides AI inferencing services on any platform for any language. Learn AI by jumping in the deep end with us: codeproject.com/AI.
This is a Organisation

4 members

Comments and Discussions

 
QuestionNothing intresting.. Pin
Bhuvan Ram9-May-13 19:13
professionalBhuvan Ram9-May-13 19:13 
QuestionWhy interview mediocre people? Pin
jibalt25-Apr-13 15:40
jibalt25-Apr-13 15:40 
GeneralMy vote of 5 Pin
bryanren25-Apr-13 3:13
bryanren25-Apr-13 3:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.