Navision Developer Interview Questions?

AmeriRuskayaAmeriRuskaya Member Posts: 6
edited 2006-04-04 in General Chat
I am about to go for a job interview for a junior Navision developer position, i am wondering if anyone can contribute some tips and advice as to what kind of technical questions will be asked in the interview? Should i review materials in Application Designer Guide?


Thanks,
Tasha

Comments

  • AmeriRuskayaAmeriRuskaya Member Posts: 6
    Oops sorry i think i have posted at the wrong forum....should i repost or can the admin move me to the right forum?
    Sorry about that.

    Tasha.
  • DenSterDenSter Member Posts: 8,307
    For a junior developer position you willprobably not get very many specific questions. As part of your job you will probably be required to take classes and pass the exams. Be yourself and be honest, show them that you are a good worker and you should be alright. This is assuming that you have a college degree in some related field, and you have a good head on your shoulders :). Don't forget that your job is a two way street, so ask questions about the job and what you will be doing, things like that. American companies like assertive employees.

    Of course, if you go to all the trouble to get the guide and read it to prepare for your job interview, that will make a very good impression. I would never advise against that, and it gives you an idea about what to expect as well.
  • Alex_ChowAlex_Chow Member Posts: 5,063
    Programming is the same for every language. Know one, you know them all... The only difference is the syntax.

    The most important thing a person might ask you is your skills in logic. If you have good logic in place, you will pickup any programming language easily.

    A programmer without logic is like a computer without a CPU.

    Probably getting a little off topic... :whistle:
  • AmeriRuskayaAmeriRuskaya Member Posts: 6
    but i already passed both programmer and developer exams, i am a certified navision developer, i just have less than 2 years of experience, that's why i applied for the junior position. that's why it's hard to predict what kind of questions they will ask me because i am certified and also have experience doing 4.0 upgrade.

    Tasha
  • krikikriki Member, Moderator Posts: 9,115
    [Topic moved from Navision Exams & Certification forum to General Chat forum]

    Oops sorry i think i have posted at the wrong forum....should i repost or can the admin move me to the right forum?
    Sorry about that.

    Tasha.
    No problem. For reporting, you can use the red :!: at the right side to report something about a post.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • krikikriki Member, Moderator Posts: 9,115
    deadlizard wrote:
    Programming is the same for every language. Know one, you know them all... The only difference is the syntax.
    Actually, I don't agree completely.
    I found some differences in way of thinking between some languages.
    The most fall into 1 category (Navision, Progress, C, Cobol, RPG, Pascal, Modula2, Basic, VB, DOS command-files, unix-scripts, Fortran, even Assembler, ...).
    But for some you need to completely change your way of thinking. Like Prolog or Lisp.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • Marije_BrummelMarije_Brummel Member, Moderators Design Patterns Posts: 4,262
    My experience is that the best Navision programmers have thourough nowledge of business processes.

    If you are not interested in how businesses work you will probably not find Navision very interesting as it is not very technicaly chalenging.
  • DenSterDenSter Member Posts: 8,307
    Well if you have 2 years of experience then you already know the ADG by heart right ;). They'll probably ask you about specific experience (so you'll be explaining exactly what you have experience with), and the actual questions depend on what level the person that interviews knows about Navision. If they pull in another developer it could get detailed, but if there's only an HR person in the room you won't have any technical questions.
  • AmeriRuskayaAmeriRuskaya Member Posts: 6
    thank you all for the feedback !
  • Alex_ChowAlex_Chow Member Posts: 5,063
    kriki wrote:
    deadlizard wrote:
    Programming is the same for every language. Know one, you know them all... The only difference is the syntax.
    Actually, I don't agree completely.
    I found some differences in way of thinking between some languages.
    The most fall into 1 category (Navision, Progress, C, Cobol, RPG, Pascal, Modula2, Basic, VB, DOS command-files, unix-scripts, Fortran, even Assembler, ...).
    But for some you need to completely change your way of thinking. Like Prolog or Lisp.

    Yes.... Always the exceptions to the rule.

    Just like learning foriegn languages... Most languages are alphabet based, then you run into Chinese, which is character based...

    Again... off the topic... :whistle:
  • DenSterDenSter Member Posts: 8,307
    Good luck on your intevview by the way :mrgreen: Let us know how it went.
  • AmeriRuskayaAmeriRuskaya Member Posts: 6
    thank you !
  • ShenpenShenpen Member Posts: 386
    I think previous C or anything programming experience is hard to bring to Navision as C/AL development is not actually programming, but rather an algorithmical configuration. Therefore the important thing to know is how standard features work in order to change them, not the language syntax.

    Do It Yourself is they key. Standard code might work - your code surely works.
  • krikikriki Member, Moderator Posts: 9,115
    Shenpen wrote:
    I think previous C or anything programming experience is hard to bring to Navision as C/AL development is not actually programming, but rather an algorithmical configuration. Therefore the important thing to know is how standard features work in order to change them, not the language syntax.
    But if you don't know how to program, how are you going to change them?
    It is true that a certain programming language doesn't help, but it is important to know how to program. And a good C-programmer will also be a good Navision-programmer, once he knows the standard features in Navision. But a bad C-programmer will also be a bad Navision-programmer even if he knows the standard features.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • DenSterDenSter Member Posts: 8,307
    Could not agree more. It's basically a GIGO system with programming skills. When you come right down to it, a different language is a different syntax, but the most important logical aspects are very similar.

    I'm sure that C++ programmers would disagree passionately with me, but just as memory allocations and other things don't make sense to me, applying an invoice discount to a drop shipment doesn't make sense to an average C++ programmer.
  • ShenpenShenpen Member Posts: 386
    As from a programming viewpoint it's easy, so I would ask questions that make sure that a developer does not need to be babysitted by a consultant and therefore we don't need to allocate our resources redundantly.

    I'd test for "constructive pessimism" which I think is the most important ability - to be able to sniff potential trouble.

    For example: in Navision, you cannot ship more than the quantity on the Sales Order. A customer asks you to change that. What questions you ask?

    The good answer is something like this: and will you invoice that extra quantity? If yes, then you need to talk to your customer whether they are willing to pay more. If they agree, then it means they are changing their order, so you should change the qty. on the order, no development needed. If it won't be invoiced, then will it live forever in the Shipments To Invoice reports? Maybe we should put it on the Shipment Note but still post a neg. adjustment, not a shipment? etc. etc

    Or another question: what are the most important tasks in migrating data from one database software to another?

    One good answer could be checking data quality, checking data required in the destination database but missing from the source, handling the differences between the two schema/model, handling the differences of data formats (date format etc.), handling the differences of the medium (plain text files? XML? etc.), handling performance issues (posting an Item Journal of one million lines takes quite a time and if it's an error then you have to start again, so maybe one should write a program that imports and posts in chunks of 10 000), making a test migration etc.

    Or another question: a customer asks for a new functionality, say, a new field on a Customer form. When it is considered ready and finished?

    A good answer might be: it's ready when it's developed, users are trained how to use it, included in the user docs, included in the developer docs, there are starting data migrated into that field, and there is at least a basic way to get entered information back, say, a simple list-style report that can be elaborated later.

    That's what I would ask.

    Do It Yourself is they key. Standard code might work - your code surely works.
  • ShenpenShenpen Member Posts: 386
    Kriki, DenSter: I don't think the concepts are similar. The first thing most mainstream programmers ask is "OK, how do I subclass Item?" :D

    Without declaring objects, functions, and variables in code, subclassing, pointers, importing libraries, lambda functions, blocks, directly accessing devices, closures etc. etc. etc. what similarities does it have to other programming languages? IF-THEN and REPEAT - UNTIL? Every cookbook has them, you need these concepts even to understand a recipe on how to roast turkey :) , so it's far away from programming.

    If you want to have a new type of Item Ledger Entry Type and you want to post associated VE's to a different account to the G/L, that's configuration in SAP and programming in Navision. Therefore, Navision programming = algorythmical configuration. Quod erat demonstrandum :)

    Do It Yourself is they key. Standard code might work - your code surely works.
  • girish.joshigirish.joshi Member Posts: 407
    If I were interviewing a Navision developer, the first question I would ask them is if they know about mibuso and if so, what their handle is!

    Of course, this would be for a developer with some experience.
  • Alex_ChowAlex_Chow Member Posts: 5,063
    Shenpen wrote:
    If you want to have a new type of Item Ledger Entry Type and you want to post associated VE's to a different account to the G/L, that's configuration in SAP and programming in Navision. Therefore, Navision programming = algorythmical configuration. Quod erat demonstrandum :)

    Umm... based on what you've just said, then all programming language is algorythmical configuration. The only true programming then, would be with 0s and 1s.
  • ShenpenShenpen Member Posts: 386
    Or connecting wires... :)

    Can we agree in the term "scripting" ?

    Do It Yourself is they key. Standard code might work - your code surely works.
  • DenSterDenSter Member Posts: 8,307
    No I don't agree, it is definately not a scripting language.
  • ara3nara3n Member Posts: 9,256
    I would say it's an interpreted language.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Alex_ChowAlex_Chow Member Posts: 5,063
    I don't think Navision is just scripting since there are proper input, processing, then output. However, C/AL is a lot easier to program than C++ or Java. It's also less complicated than VB.
  • DenSterDenSter Member Posts: 8,307
    I guess some people look down on C/AL because you don't have to program memory allocations, connection strings, or do any real variable maintenance. Make no mistake though, we are really programming, it's just without all the "binary crap". We really DO declare variables, it's just in a different place. We really DO have to maintain variables (CREATE, CLEAR, etc.) evenif it is only sometimes. I still don't understand why it is a 'lesser' language just because it is not object oriented in the purest sense of the word.

    But, that is why I like it so much, I can concentrate on the business problem at hand without having to spend days around technical issues.
  • ara3nara3n Member Posts: 9,256
    but think of how many hours you can generate and charge customer. Think of the hours. :mrgreen:
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • krikikriki Member, Moderator Posts: 9,115
    DenSter wrote:
    I guess some people look down on C/AL because you don't have to program memory allocations, connection strings, or do any real variable maintenance. Make no mistake though, we are really programming, it's just without all the "binary crap". We really DO declare variables, it's just in a different place. We really DO have to maintain variables (CREATE, CLEAR, etc.) evenif it is only sometimes. I still don't understand why it is a 'lesser' language just because it is not object oriented in the purest sense of the word.
    We can also dynamically use memory. But we don't need pointers, or a linked list-, stack-, queue-, priority-queue-implementation. We use temptables that have the same result but are a lot easier to use (but I have to admit I miss the fun of playing with pointers and seeing the horified faces of other programmers :mrgreen: ).
    And from 3.60 we also have recordreference,fieldreference,indexreference. And these really is pointer-programming!
    And we can also program recursively.
    Regards,Alain Krikilion
    No PM,please use the forum. || May the <SOLVED>-attribute be in your title!


  • girish.joshigirish.joshi Member Posts: 407
    We have really drifted off topic here -- the quicksand that is discussing C\AL. Nonetheless let me hop in here:

    Let me first say that I like C/AL and I think it does what it was designed to do very well. I fall into the camp of "please quit complaining" about C/AL.
    I also don't have much a problem with its IDE. That being said, I would take issue with some of the other points raised here:

    1)
    Frankly, those of you that think C\AL has "real" memory access have never done any hard-core C programming.

    You can use variant pointers to do the most wonderful overruns of memory. In principle (and depending on your system, frequently in practice) you can use a pointer to overwrite the operating system if you'd like. The main idea of pointers is that you just look at some binary data, and you can interpret it any way you want. Nothing in C/AL comes close to that (Variant is similar but still not quite it).

    Let me just add, that these days, doing stuff like this would be really horrible. But this kind of coding is more or less neccesary if you were say, writing an OS or other low level system code (very very useful for implementing TCP/IP). But none of us are doing that, are we?

    2)
    C/AL does suffer from not being object oriented, and it has nothing to do with memory managment.

    First of all, its not that bad, because you can use codeunits like classes.

    The way it suffers from not being object oriented is error handling. With moden OO Languages, error handling and OO go hand in hand. Navision error handling is possible, but really awkward. If you just search mibuso, it seems to be the number one problem beginning Navision programmers have. Much of my systems design is dictated by dealing with Navision error handling. Now, its not that bad, because you do a great deal, but its awkward, and that tends to encourage less than fail-safe code.

    It also suffers from not being object oriented by not using design patterns.
    Design Patterns (as in what they talk about in the Gang of Four book) are what OO programming is all about. Without them, OO programming is just really verbose C. And you can't have design patterns without Inheritence, which Navision does not have.
  • DenSterDenSter Member Posts: 8,307
    I wonder if Tasha ever went on that interview and if he got the job :)
  • Alex_ChowAlex_Chow Member Posts: 5,063
Sign In or Register to comment.