The Geeks Shall Inherit the Earth

Personal Ramblings of the Techhouse Admin

Skip to: Content | Sidebar | Footer

Learning Some Stuff

7 April, 2010 (23:20) | Erlang, Work | By: Brian

Lately I’ve been thinking about my career and where I want to take it. Eventually I want to be leading teams instead of working for one, and I want to get back to more science and research stuff. Toward those ends I’ve been educating myself in a few ways and changing how I approach my current job and my responsibilities there. At work I’ve been taking on more team leader and project management roles. Essentially my job is to make my boss’s job easier. I try to take a lot of the resource management, project design, project planning, time and cost estimations and actual development from him. These things are going pretty well for me, I think. My two year review is coming up soon, so I guess I’ll find out more about that then.

In addition to taking on more tasks at work, I’ve also been working on my own knowledge base. I’ve been reading a leadership training book called “Leadership Skills for Managers, Fourth Edition.” This book is a pretty good collection of ideas about what makes a good leader, how to use good leadership for productivity and how to improves one’s leadership. I’m finding the information pretty useful and have started to work it into how I coordinate with the teams I work on.

Another step I’ve started working on is also pretty industrious, but a bit more fun. I’m teaching myself a new programming language, one very different from the classic imperative languages I’m used to working in. After looking at a lot of newer languages and technologies, I’ve finally settled on giving Erlang a try. This is a bit risky, in that Erlang is not a standard language for the kind of work I’m currently doing. I will probably never be able to work it into my current job, but it’s just so interesting and different that I really want to mess with it. Erlang is a programming language designed at the Ericsson Computer Science Laboratory. It has some great features built-in to the language for concurrency, functional programming, distributed processing, hot code loading (changing the code of a running program on-the-fly!), fault tolerance and a bunch of other neat stuff. It’s a bit like Lisp, but also very much not like Lisp. My process for this self-education so far has mostly been to read a bunch of tutorial material, copy/paste/edit/run a few tutorial programs and to re-implement some old homework assignments in it. Because it is a functional programming language at its base, I took some assignments from my A.I. class that were written for Lisp, and translated them to Erlang. I’ll post some of those examples after I find a nice code-displaying plug-in for WordPress. The first few things I wrote were tiny functional programming examples of recursive algorithms (programs that call themselves until they complete). Now I’m working on rewriting my most favorite assignment from any of my classes, the trainyard. My original solution in Lisp can be found here. The interesting thing is that even though I technically already have this assignment “done,” the style of coding in Erlang is so different that I can’t even really copy and paste. It’s mostly just an algorithm reference and a memory jogger. I’ll show some examples of how this is going soon, too.


Comment from Randy Pena
Time April 7, 2010 at 11:29 pm

Hi. I read a few of your other posts and wanted to know if you would be interested in exchanging blogroll links?

Comment from foo
Time April 8, 2010 at 1:48 am

Biggest mistake in your Lisp code: the use of SETF in Lisp functions. SETF does not introduce local variables and not even global variables. It just sets them. Whenever you want a local variable and have it a value, you need LET. Most of your code does not introduce variables correctly.

Comment from Brian
Time April 8, 2010 at 7:30 am

Agreed. Another good reason for porting this code into a new language, my old code is definitely too procedural and messy. Hopefully I’ve learned a few things about programming in the 5 years since I wrote that. I think most of those SETFs and LETs were for debugging purposes, so I could print out the values in various places.

Write a comment

You need to login to post comments!