http://www.perlmonks.org?node_id=11136199

Learned and wise Monks...

Within my business we use the usual front-end web technologies of HTML/CSS/native Javascript/AJAX and the back-end is entirely Perl. With a very small amount of Java for two Android apps.

Here in the UK there is currently a government scheme to get young people into work. The Kickstart Scheme pays the young person minimum wage for 25 hours per week for 6 months. We have applied to take on two young people under the scheme. Most applicants have played with React at most but I am interviewing a graduate tomorrow. On his CV he has C, Python and R which has been done as part of his Physics degree plus Python and Shell Scripts on a Raspberry Pi as a hobby.

I know absolutely nothing about R.
From my very limited knowledge of Python, I believe it is broadly in the same group of languages as Perl. Therefore, the skills this applicant already has in Python should be relatively easily transferrable to Perl
- is that a fair assessment???

Any suggestions for me bearing in mind the applicant has had no real workplace experience?

Replies are listed 'Best First'.
Re: Similarities of Perl and Python?
by marto (Cardinal) on Aug 30, 2021 at 10:35 UTC

    From this interview check out the section 'Learn how computers work':

    "So many developers don’t know how a computer works. Understanding computer architecture is extremely important, yet less than 1% of the people I see for interview know about their computers. If your focus is a high-level language, you still need to understand lower-level ones.

    My advice usually is that you should at least know C, along with Python, Ruby, or Go, JavaScript, and a functional programming. You don’t need to master a lower-level language, but you should at least understand how it works, because it will then help you with other languages.

    There are a lot of “developers” who are actually technicians of one framework in one specific language. But that’s no good, because what are you going to do in 2 or 3 years’ time? To be a good developer, you need to understand the lower-level languages as well as your own."

    Then the section 'How to recruit the best developers'...

    I try to think about it in these terms, if someone can show they understand, or it can be explained in a way that they will understand how computers and programming works and they can explain how they'd approach a problem, then they're probably worth investigation. Unfortunately willingness to learn can be easily feigned in interviews to secure a job. One problem that I've come across in recent years is that people seem to have completed courses covering a specific tool or technology, python or whatever, and are either unable or unwilling to learn more of the fundamentals or other aspects of technology.

    Another problem is that people conducting the interviews often don't have a clue themselves, and are keen to rush through the process when there should be more focus on attention to detail.

      check out the section 'Learn how computers work'

      Thanks - lots and lots of gems in that article.
      I shall read that again just before sleep to let sleep properly digest some of the wisdom.

      I found the bif about money rather interesting too!

Re: Similarities of Perl and Python?
by GrandFather (Saint) on Aug 30, 2021 at 11:53 UTC

    To kinda follow up on marto's reply, it really comes down to: were they taught "programming" or a language. It's encouraging that he has been exposed to both C and Python (my knowledge of R is very limited). Perl in a lot of ways is Cish and Python shares its scripting nature with Perl so once the sygils have been properly appreciated, Perl's type permissiveness understood and the power of Perl hashes, arrays, grep and map fully groked, he should have no trouble. Oh, and the fact that Perl classes are a blessing should get shoehorned in there somewhere too.

    Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond
      were they taught "programming" or a language

      Thank you - those few words sum up much of what I need to know :)

Re: Similarities of Perl and Python? (Interviewing References)
by eyepopslikeamosquito (Archbishop) on Aug 30, 2021 at 12:13 UTC
      In case they're of use in your graduate interviewing...

      Very much of use, thank you.

      Although, my stakes are not too high. I am not paying the employee, at least for the first 6 months, and they only need to be with me for six months. So if I get it wrong, it is not a disaster. But, obviously, I would prefer to get it right for everyone involved!

      From - On Interviewing and Interview Questions

      So, in addition to being smart and getting things done, I add two more, making my primary hiring criteria:
      1. Smart
      2. Get things done
      3. Adequate relevant experience
      4. Personal: Good cultural fit, team player, enthusiastic, motivated, resilient, ...
      Which of these do you think most important? What's your list?

      I am going to drop 3. This candidate stands head and shoulders above other applicants in that he mentions C, Python and R. Most other candidates talk about JQuery at best. One even called Wordpress a programming language! That's the problem with this scheme, the applicants are limited to who the Job Centre sends my way. The fact that he has a physics degree is icing on the cake.

      Tomorrow will be more about sussing out the cultural fit and ability to work remotely. I expect he will be able to work remotely as universities have held lectures and tutorials that way through the Pesky Pandemic, so just a case of will he rather than can he. We have our culture quite well defined by our Four C's - Create, Communicate, Care and Curiosity - so judging that should not be too difficult.

        5. Domain Knowledge - Does the applicant have any knowledge of your business? This is at least as important as programming skills.

        A six month internship is pretty short. An up-front list of projects to attack will be helpful. This could/should include training activities and homework like reading Learning Perl.

        My internship(1973) was so much different than today. I came in with Data General assembly language experience which comes with bit level hardware knowledge. "Kids" today learn products.

        James

        There's never enough time to do it right, but always enough time to do it over...

        We have our culture quite well defined by our Four C's - Create, Communicate, Care and Curiosity

        From the definitions in Organizational Culture (Part II): Meta Process I reckon you've created a warm nurturing Clan culture (Collaborate) ... so using your fuller definition (which I really like BTW):

        we Create, we Communicate, we Care about our Clients and Colleagues and we do everything with Curiosity
        I make that Eight C's! Sorry, couldn't resist. :)

Re: Similarities of Perl and Python?
by tomasz (Acolyte) on Aug 30, 2021 at 14:19 UTC
    I would wave in the operating system knowledge.

    HTML and other web browser technologies are on the application (browser) level. Not much os knowledge is needed there, but at least some basic understanding of browsers and client operating systems is beneficial, if not necessary.

    As for the back end though, that can be close to servers' os. So depending on the os you're having in use or plan to use in the future (which you don't mention), I'd do some screening in those areas. And here comes the C level very likely. Very likely, because C programming doesn't necessarily have to be system programming, and the same applies to Python. They both can be used productively without much concern to the executing os, especially Python. For Unix-like based back end, I'd definitely check the ability of working with standard documentation, the awareness of POSIX, skills in basic system operations. I'd begin with questions: what did you program in C and script in Python and shell? Which shell was that and why? How much interaction with the os did it involve? Do you think it was a good tool for what you did? Did you miss some functionality? What would make it better, easier, more appropriate for the task? About C: what libraries did you use and why? What compiler? This should give you an overview of who you're dealing with.
      I'd begin with questions: what did you program in C and script in Python and shell? Which shell was that and why? How much interaction with the os did it involve? Do you think it was a good tool for what you did? Did you miss some functionality? What would make it better, easier, more appropriate for the task? About C: what libraries did you use and why? What compiler? This should give you an overview of who you're dealing with.

      Excellent - thank you

      These give me lots of ideas of how to proceed :)

Re: Similarities of Perl and Python?
by bliako (Monsignor) on Aug 30, 2021 at 15:51 UTC

    you should also decide whether you want this 6 months contract to be extended, so that you can calculate the "adjustment" and "learning" time.

    I will second tomasz's suggestion that unix-skills are important. Not only because you indicated before that you have such environment in your host but also because automating and standardising procedures (e.g. procedure to export all files from development to production machines, backup or reinstate DB contents, etc.) is important (to me). Some knowledge of security is also important both for backend and frontend.

    Unlike others, I would not consider knowledge of C important or desirable for such a small time-span and for the frontend. Neither I would deem R experience important at all. R is a script-like language but that's it. OTOH both C and R would have taught the candidate how to break things up in small functions or package things in modules. And about data structures which is another thing that I saw your code be in need for, e.g. function return data.

    On Python: I would be really worried if a candidate managed to persuade me to convert to using it! That said, similarities of Perl and Python could be the main data structures (hash=dictionary, arrays), knowledge of references (that's where C comes handy, re:pointers but Python references I think are transparent, Perl's aren't) how to combine these into complex data structures, functions receiving and returning complex data structures, extending function behaviour easily as the spec changes (e.g. input parameters), modularising into packages, reading config parameters, testing-testing-testing and, of course, OO. All are really important and are crossing the boundaries of programming laguages.

    I would consider also spending some pub-beer-time together as part of the interview. The ability to learn new things and improve depends highly on personality. The ability and desire to automate too. We are talking about comp-science projects after all.

    And I am going to cramp here my usual OS-hatred tirade: I would never hire anyone using a specific OS for their home desktop on their free time (and, no, Android does not count). I would demand 24/7 exclusive use of specific OS only ... Yes I am an OSist!

    Finally, for such a small timeframe, perhaps giving them a concrete task to solve at home, prior to the interview would be a good indicator. For example: "use Template in order to solve some real problem" you faced, or "use this DB schema to setup database, insert mock data and retrieve it (within Perl)". I don't know how would this work wrt paying them for it as it can take a couple of days of work.

    discalimer: I have never interviewed anyone, but had lots of others interviewing me.

    bw, bliako

      you should also decide whether you want this 6 months contract to be extended, so that you can calculate the "adjustment" and "learning" time

      Yes - perhaps I should have included that in the original question.

      I am hoping that this will become a permanent position. Naturally, subject to cultural fit, work ethic and actual skills. However, it is also dependent on his ability to make contributions that either generate revenue or free up enough resources elsewhere for revenue to be generated. Right now, I'm not sure that will be the case. I have some plans and ideas of how that might be possible but there are a lot of ifs...

      On Python: I would be really worried if a candidate managed to persuade me to convert to using it!

      No chance of that!!!
      One thing I know for sure is that, until I find a business need for something that our current technologies cannot support, no new technologies will be added! An example of that is the little bit of Java we have. Perl cannot (easily) be used to create an Android app so we had to use Java of Kotlin. Java was chosen because it is more universal and because I did a little Java programming at university. But it's spread is strictly limited to being used for Android apps and nowhere else.

      We will not be adopting Python!

      I will second tomasz's suggestion that unix-skills are important

      I will be digging into what they have done with a Raspberry Pi. This was on the CV and will give me an insight into unix skills.

        No chance of that!!!

        noted! just to clarify: I did not mean you specifically

Re: Similarities of Perl and Python?
by Bod (Parson) on Sep 01, 2021 at 23:41 UTC

    Thanks to everyone that contributed, the interview went well.
    The applicant was a bit lacking in interpersonal-skills but not severely so. He wasn't able to deal with probing into his C experience and the artifacts he had produced but he had a clear passion for building systems and talked clearly about his Python scripting and the architecture of a Raspberry Pi.

    He was significantly better than other applicants we have got through he Kickstart Scheme.

    We offered him the position today and he turned it down :(
    So I am back to a pile of CV's from people who struggle to write an articulate sentence...

      Did you ask why they turned down the job offer?

        Did you ask why they turned down the job offer?

        They said that they had received an offer more suited to what they were looking for. From some of the comments during the interview, I think they were looking for a bigger company.

      Sorry to hear this. I have a soft spot for the mysteriously excluded and self-excluded. You mention he lacked interpersonal skills. I would keenly learn more about this aspect, if you have the time and will for this off-topic. Tomasz

        Always happy to help both on and off topic

        To put it into context we are talking about a 21 year old who has recently finished a physics degree and is awaiting results. So I wasn't expecting much in the way of "life-skills". But, their ability to hold a conversation was limited. I had to drive the conversation. You could say this was because it was an interview but it was deliberately very informal and we met in a coffee shop.

        I live in a world where I mix with CEO's, entrepreneurs and small business owners - all of whom have a "presence" when you communicate with them. I guess my perception is somewhat biased, especially when I think back to how shy and quiet I was when I was 21 years old. So perhaps saying his interpersonal skills were lacking is a bit unfair. They clearly were not that bad as I offered him the job!

        The bit that surprised me was that when I asked him about his C experience, he couldn't tell me much. Not even which libraries had been used. Instead, the conversation kept going back to Python. However, when I mentioned about the Raspberry Pi he had mentioned on his CV, there was a passion. It was this that stood out along with his honesty about his lack of knowledge with databases. When I explained the technology and platform we use, naturally I covered the RDBMS and he freely admitted to having zero database experience but being keen to learn. That I liked.

        We are unlikely to find anyone else with anything like the level of skill and technical knowledge under the Kickstart Scheme so it is a pity that he didn't want to work for us. But employment is a two way relationship and one that has to work for both parties. We are looking to take on two kickstarters, one technical and one in a marketing role, so we shall keep looking.