eMBee is currently certified at Journeyer level.

Name: Martin Bähr
Member since: 2000-05-18 04:08:12
Last Login: 2013-01-01 10:17:48

FOAF RDF Share This

Homepage: http://societyserver.org/mbaehr/


Articles Posted by eMBee

Recent blog entries by eMBee

Syndication: RSS 2.0

Hiring Pike Programmers

Once in a while i have someone reject to work with me because they don't know Pike. What they are really saying is, that they are not willing to learn something new.

If you are a decent programmer, then learning a new programming language is not hard. Technology changes all the time, and every year you'll learn new frameworks and tools. That's part of your work. So why shy away from learning a new language?

If you can't bring yourself to learn a new language then i suspect you'll also have a hard time learning anything else. So actually i should thank you by refusing the job because of that.

You say: learning a new language is hard.

If you believe that, you haven't tried enough. Sure, if you pick some of the more unusual languages like Haskell, it may be hard (but i don't know, i have not tried learning Haskell yet) and in general, learning your second language is probably the hardest (because the first language you learn, everything is new and you expect it to be hard, but with the second language maybe you fear it is as dificult as the first one, and you don't want to go through that again), also learning a new syntax may take some getting used to.

But all of these hurdles are measured in days.

Pike in particular has a syntax very close to C and Java. (that is, operations that are the same in C, Java and Pike also use the same syntax, with very few exceptions). This makes the syntax also similar to Javascript, PHP, and the many other languages with a C-inspired syntax. Picking that up should not be hard.

The rest is learning the Pike libraries and figuring out what makes Pike tick. You should have that down within a few weeks.

This is the same for pretty much any other language you might start to learn.

I am talking from experience here. I'll give you a few examples:

At my first fulltime job i was hired for my Pike experience. As a junior programmer who hadn't finished univeristy yet, i didn't really have any work history. But i did have a number of Pike modules for the Roxen webapplicationserver that i could show off.

At the same time a university graduate was hired, who had not even seen Pike before joining the team. Within a few weeks she was as productive as the rest of us, and having finished her studies she arguably knew more about programming and could explain more about Pike than i could.

At another job a few years later one of my managers who had just recently joined the company fell in love with Pike, and when he left he built his own company using Pike as the main development language. This guy was not even a programmer.

When i came to china, my first job was for a python programmer. I had learned python by then, but i had no practical experiece whatsoever. I was allowed to do the programming tests in Pike (they had an automated testsuite, which of course could not handle Pike, so in my case the answers were reviewed manually. They had no problems reviewing their tests in a language they had never seen before. That's how good they were). One of the tests i did in python, and i passed and got the job. I was productive from the start.

A few years ago i hired 3 chinese students to work for me. Since this was the first time i hired anyone, i was not sure how learning a new language would go down, on the first day, possibly their first experiene working with a foreigner too. So the first project i gave them was in Java. It was a Java client for the sTeam server. Two of the students left after the summer holidays were over, but one stayed on, and his next project was in Pike. Also for the sTeam server, so he could reuse his knowledge of the APIs that he learned during the Java project, but he did have to learn the language itself. He was productive within a few days.

Last year i was hired to help with a PHP project, using the Laravel framework. I had never really written PHP code before, but the framework was not so different from others (eg Django) so that i was productive immideately. And i ended up fixing other peoples code too.

This summer, i was working with 3 students for Google Summer Of Code. One student worked on the sTeam server, and had to learn Pike for that. He did it during the get-to-know period and started churning out code from the first day of the coding-period.

Another student picked a smalltalk project. She learned smalltalk as soon as she picked the project, joined the pharo-smalltalk community and became a recognized contributor to the pharo 4.0 release. All before her proposal for the GSOC project was even accepted.

Convinced yet?

You say: Noone else uses Pike. It won't help me get a job.

That is probably true. But it is becoming less true as time goes by.

One of the problems with hiring is that, just as you believe learning a new language is hard, so do the hiring managers, and thus they search only for programmers that already know the language that they will need to use.

In the Pike community too. I was the only Pike programmer available who liked moving countries, and so i had my pick for jobs in the USA, in Germany, in New Zealand, in Latvia. Thanks to Pike i got around. Try that with a popular language.

Fortunately, this is changing. Like my first China job, more companies recognizing the ability to learn as more important than a particular language. For them it won't matter which programming languages you learned, as long as you can demonstrate your learning skill. In fact, learning an unknown language will let you stand out as someone serious about learning programming languages.

Learning new languages will also increase your confidence in your ability. For that PHP job i was never asked how much PHP experience i had. I did make clear that i had no experience with Laravel, which is something they could not expect from everyone, even if they had plenty of PHP experiece. But i had experience with similar frameworks, and i was confident that i could pick up what i needed quickly. And i proved it.

When i am hiring programmers myself, i definetly don't care which languages they know. All i care is that they know at least two languages. These people have at least gotten over the second language hump, and learning a third language will be a breeze. Whether it's Pike or any other language.

Stop telling me that you can't learn a new programming language. You can! Because if you couldn't, you would not qualify as a programmer to begin with. At least, i would not hire you.

Syndicated 2015-08-24 17:47:51 from DevLog

Building an API with Zinc-REST in Pharo Smalltalk

In this session we are going to build a simple RESTful API using the Zinc-REST package.

The base image is again Moose, now the latest build of Moose 5.1

You may watch part one, part two and part three of this series if you are interested to find out what lead to this point. They are however not needed to be able to follow this session.

Syndicated 2015-02-28 17:23:13 from DevLog

13 Feb 2015 (updated 28 Feb 2015 at 18:11 UTC) »

A static webapplication hosted on Pharo Smalltalk

For part three of our workshop series we start from scratch, and build a small website that hosts nothing but static files from a memory FileSystem.

We are also going to explore the new development tools that are built in the Moose project

You may watch the first and second parts of this series, or you may jump right in here.

In the next session we are going to build the RESTful API to make this application functional

Syndicated 2015-02-13 08:37:26 (Updated 2015-02-28 18:11:55) from DevLog

3 Feb 2015 (updated 13 Feb 2015 at 09:11 UTC) »

Serving files through FileSystem in Pharo Smalltalk

In the second part of this series we transform our website to serve all content as files from a FileSystem object.

If you haven't yet, take a look at part 1

In the next session we will serve an actual web-application

Syndicated 2015-02-03 05:37:58 (Updated 2015-02-13 09:11:23) from DevLog

the community calendar project at google code in

For the community-calendar project in total, 11 tasks were proposed, of which 7 got completed:

Not so much work got done on the code itself, but we now have some documentation of the API as well as the start of a testing framework to help keep the API stable.

As a sideproject, these tasks were designed to explore the ember.js framework. the calendar-widget, going to be embedded into different websites was a good target because we now can offer both versions for embedding.

For ember.js the student, samarjeet wrote about the work in his weblog. An initial comparison: Comparing the community-calendar
Creating Ember Components turned out to be more dificult, and we had to enlist outside help to solve it.
Finally, a deeper comparison of Angular.js vs. Ember.js

This leaves us with 4 tasks that were not worked on

Syndicated 2015-01-31 09:19:07 from DevLog

18 older entries...


eMBee certified others as follows:

  • eMBee certified loki as Master
  • eMBee certified jtraub as Journeyer
  • eMBee certified miguel as Master
  • eMBee certified alan as Master
  • eMBee certified Telsa as Journeyer
  • eMBee certified riel as Master
  • eMBee certified kojima as Master
  • eMBee certified zab as Journeyer
  • eMBee certified scandal as Master
  • eMBee certified eMBee as Apprentice
  • eMBee certified mhanni as Journeyer
  • eMBee certified id as Journeyer
  • eMBee certified teknix as Journeyer
  • eMBee certified kris as Journeyer
  • eMBee certified octobrx as Journeyer
  • eMBee certified davem as Master
  • eMBee certified BrucePerens as Master
  • eMBee certified quinlan as Journeyer
  • eMBee certified jae as Journeyer
  • eMBee certified jwz as Master
  • eMBee certified xandi as Apprentice
  • eMBee certified Zell as Apprentice
  • eMBee certified wardv as Apprentice
  • eMBee certified mortis as Apprentice
  • eMBee certified kuro5hin as Journeyer
  • eMBee certified andreas as Journeyer
  • eMBee certified graydon as Journeyer
  • eMBee certified js as Journeyer
  • eMBee certified Dauphin as Journeyer
  • eMBee certified jmcastagnetto as Journeyer
  • eMBee certified lucas as Journeyer
  • eMBee certified cbbrowne as Journeyer
  • eMBee certified sparks as Master
  • eMBee certified dnelson as Journeyer

Others have certified eMBee as follows:

  • eMBee certified eMBee as Apprentice
  • jae certified eMBee as Journeyer
  • Zell certified eMBee as Journeyer
  • wardv certified eMBee as Apprentice
  • js certified eMBee as Journeyer
  • jmcastagnetto certified eMBee as Journeyer
  • lucas certified eMBee as Journeyer
  • cbbrowne certified eMBee as Journeyer
  • jLoki certified eMBee as Journeyer
  • dnelson certified eMBee as Journeyer
  • scandal certified eMBee as Journeyer
  • Ohayou certified eMBee as Journeyer
  • Andree certified eMBee as Journeyer
  • chakie certified eMBee as Journeyer
  • hiddenpower certified eMBee as Journeyer
  • rayking71 certified eMBee as Journeyer
  • martinez certified eMBee as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page