Options

Interview questions for programmers

Alex_ChowAlex_Chow Member Posts: 5,063
edited 2007-07-03 in General Chat
What would be some logic questions you would ask a new programmer that has no experience with Navision?

Or do they fall under the typical questions for a regular programmer?

Comments

  • Options
    ara3nara3n Member Posts: 9,255
    database related questions
    what is
    primary key
    secondary key, indexes
    foreign key
    compound primary key.
    b-trees


    Ask to design an ER diagram/ table structure for a given scenario.
    You have customers with address info that that have pets. with name, age etc info. A client can have multiple pets.


    ask him about different between pass by reference and by value.

    ask him to write a generic function that will parse a string and return the position of a substring. He can chose the language he wants to write it in.




    Also one thing to point out is that if this if for Navision position, to talk about ERP business and it is different kind of programming than CS curriculum and require business skill.

    Learning navision development doesn't take longer than a month. It's the business side that takes years to learn.
    Ahmed Rashed Amini
    Independent Consultant/Developer


    blog: https://dynamicsuser.net/nav/b/ara3n
  • Options
    David_CoxDavid_Cox Member Posts: 509
    ara3n wrote:
    database related questions
    Learning navision development doesn't take longer than a month. It's the business side that takes years to learn.

    I have been developing Navision for 10 years, you might learn basic structures and functions in a month, you may by confident in your coding in a few months, but the learning is always evolving, just last week I learnt that the flag to Allow Manual numbers in the Number Series does not work with Journal Batches, while answering a question here.

    I have meet a number of people that have had the answers, but did not really understand the logic flow behind them!

    Some of the best were involved in operations at the end user, done a bit of development in other languages, and jumped ship to a NSC, these had a range of both skill sets.

    I think that the ability to show that you have a logical way of thinking is the most important element, Development and Business is all about being able to understanding the flow of logical systems from start to finish.

    So both skills Business Logic and Navision Development are always on going, I think that if you understand basic things like structured Nested Loops and how to exit, Database Normalisation, other functions in any language like MOD DIV ABS ROUND, shows you understand logic, also understanding basic document flows, Orders, Shipments, Receipts, Invoices, Credit Memos, Remmitance and Statements can all be related to everyday experiences.

    A business question like "you see an item online you want to purchase, can you describe some of the operational steps and who would be involved in this process, from the web to you getting the item"

    A question like write a 3 level nested loop with an exit at one level in any language, will show if you are a logical thinker.

    I see many questions on here about the exam questions, and answers are often given without explanation, leaving the poster with the answer, to take forward but not the logic!

    Thats just my take on things! :)
    Analyst Developer with over 17 years Navision, Contract Status - Busy
    Mobile: +44(0)7854 842801
    Email: david.cox@adeptris.com
    Twitter: https://twitter.com/Adeptris
    Website: http://www.adeptris.com
  • Options
    Alex_ChowAlex_Chow Member Posts: 5,063
    Interesting. I think most of us has been in the ERP business for such a long time that we take for granted the skills we've obtained throughout our careers.

    If you were to ask a new college graduate these questions, wouldn't it be too tough for him/her to answer?
  • Options
    DenSterDenSter Member Posts: 8,304
    For being a successful NAV developer it much more valuable if you have a business background than a technical one, IMHO. It is so easy to develop NAV (and thereby to screw up the system) that it is really important to know what you're doing.
  • Options
    David_CoxDavid_Cox Member Posts: 509
    DenSter wrote:
    For being a successful NAV developer it much more valuable if you have a business background than a technical one, IMHO. It is so easy to develop NAV (and thereby to screw up the system) that it is really important to know what you're doing.

    Someone could come from a business background, where they just relied on the skills of others, the same for some developers, I think a good proven grasp of logic flows is used in both skills, I had a bit of both and was very lucky to get into Navision, but soon found that people with lots of qualifications, could "talk the talk", but not "walk the walk", but they are still working in the channel, getting by on charm and stuff that comes from the rear of bulls! :shock:

    There are both good and bad, developers and business consultants, the bad can both do as much damage to an installation, one is no worse than the other! :roll:
    Analyst Developer with over 17 years Navision, Contract Status - Busy
    Mobile: +44(0)7854 842801
    Email: david.cox@adeptris.com
    Twitter: https://twitter.com/Adeptris
    Website: http://www.adeptris.com
  • Options
    David_CoxDavid_Cox Member Posts: 509
    deadlizard wrote:
    Interesting. I think most of us has been in the ERP business for such a long time that we take for granted the skills we've obtained throughout our careers.

    If you were to ask a new college graduate these questions, wouldn't it be too tough for him/her to answer?

    Where is the starting point, anyone coming to an interview as a starter developer without understanding basic structures, would you employ them, likewise from the business side if they did not know basic paper flows, would you employ them?
    Analyst Developer with over 17 years Navision, Contract Status - Busy
    Mobile: +44(0)7854 842801
    Email: david.cox@adeptris.com
    Twitter: https://twitter.com/Adeptris
    Website: http://www.adeptris.com
  • Options
    WaldoWaldo Member Posts: 3,412
    DenSter wrote:
    For being a successful NAV developer it much more valuable if you have a business background than a technical one, IMHO. It is so easy to develop NAV (and thereby to screw up the system) that it is really important to know what you're doing.

    A developer should not only write business logic, but also "think" business wise, so having a business background usually means you have interest in it. When de developer has no interest in the business, it's hard to turn him/her into a good ERP developer ... .

    Eric Wauters
    MVP - Microsoft Dynamics NAV
    My blog
  • Options
    DenSterDenSter Member Posts: 8,304
    Let me say it another way....

    I've fixed a lot of screw ups, and believe it or not, most of those screwups came from 'technical' developers (i.e. with a background in mostly development), because they did not understand what the requirement. The screwups that came from 'business' developers, were sound in logical direction, but had a syntax error here and there, or they don't realize how much effort goes into managing objects and they make a change in the production database.

    There are good and bad ones, but overall I've found that it is easier for a technically savvy business user to learn C/AL development than it is for a purely technical developer to learn business.

    If you are interviewing for a NAV developer you HAVE to ask about their business background.
  • Options
    kinekine Member Posts: 12,562
    Interesting... :-) I consider myself as "pure" developer, but may be that I have advantage, that I created some "business" software on my own (it was SW for Computer games clubs). This was big lesson for me, because I build whole system alone and I created 4 versions. First one, it was like any first attempt. 2nd was better, 4th was like Navision, with Item Ledger Entries etc.

    It is good to ask for the experiences, because it shows you what you can expect. Newly graduated student, who never worked nor never created some app alone, is just theoretically based developer. Someone, who worked and may be in another branch that developing, can be much better. I have co-worker who was working as optician and now is developer. And he is better than "pure" developer without any background...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • Options
    WaldoWaldo Member Posts: 3,412
    We have a consultant who came from "hotel management". He's now one of our best "Inventory"/"WMS" consultants ... .
    But I must say, all our best developers have all a pure technical background ... but a very big interest in the business-side... :-k

    Eric Wauters
    MVP - Microsoft Dynamics NAV
    My blog
  • Options
    Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    For being a successful NAV developer it much more valuable if you have a business background than a technical one, IMHO.

    This is the rare occasion where I 100% agree with you :) Does it mean that you have a business background and - judging from your posts - you still spend a lot of time tuning SQL server, writing MSMQ-based integration etc. ? That's funny :) I too have a business background and I feel that working with NAV is getting increasingly technical - a couple of years ago it was just expressing business rules in C/AL but now all the XML/SQL/webservice etc. stuff - I'm not sure I like that. We are kind of becoming system engineers and I'm not sure I'm glad about that: the roles of business consultants/designers and techies/programmers which were so successfully joined in the Navision world might be split up again. I mean for example I personally what I really like to do is to check whether a request conforms to GAAP and if it does then coding it in C/AL is OK as it's swift and easy but as the Navision world is heading towards a more technical direction more and more tasks will be something like checking whether a given XML document conforms to a schema and I just find such problems plain boring.

    So as for the original question, I'd add that in a team it's useful to have one person who is very good in the technical stuff, SQL server, XML, .NET whatever, even if he doesn't have much business knowledge. And it will be even more important with 5.1 - finding out the reason of a performance issue f.e. with the 5.1 architecture I expect to be technically challenging. But yes, otherwise business understanding is more important. But how do you measure business understanding? Asking a candidate to describe a typical product sales process from quotation to payment looks like a good idea but one of the topics we keep arguing about here is whether such a thing as a typical process exists or not... I'm not sure working for years with Navision at a car manufacturer automatically makes one good at understanding the process of a hardware distribution company (real world example). Business understanding is typically lifelong learning, one can never become a 100% master of it.

    I therefore think what we call business understanding is rather an attitude than taxonomical knowledge. Being able to think with the user's heads. Having a knack for anticipating user errors and preparing the app for them. Being able to understand the meaning rather than the words of a spec. In generally, being able to look at the big picture than just the details.

    Joel Spolsky (joelonsoftware.com) has some great ideas on interview questions. For example, design a street garbage bin for a city council's request. What would you look out for, what would you consider? Should it be big in order to have lots of storage space or small to not block pedestrian traffic? How would you start the design process? Asking for requirements or looking for great ideas to "borrow" from competitors if they are not patented? Etc. Etc. Joel's definition of the perfect candidate for any programming-related job is "smart and getting things done". I agree to that - the rest is just learning.
  • Options
    Alex_ChowAlex_Chow Member Posts: 5,063
    Miklos, please don't hijack this thread. :wink::mrgreen:

    Back to the topic, if the person needs to have business backgrounds, then why do we see most of the listings on job listing sites (like monster.com) under computer programmer?

    Shouldn't they be listed as Business Services? Or Accounting/Finance?
  • Options
    ssinglassingla Member Posts: 2,973
    Technical Development Knowledge viz a viz Bussiness Logic Knowledge

    You can have the combination or indivisual knowledge for a position depending upon the requirement. It is not the rule of thumb where bussiness logic is required for a technical person if he is doing purely technical work such as performance tuning/SQL setups/indexes etc. But if he is involved in system requirement study bussiness knowledge is always a plus.
    Though I am a functional person, the coding has always kept me interesting and I am always eager to learn and code myself (Though I get them verified from a technical before installing..........Do not want to create mess :lol: ) but when the issue comes of performace tuning or functionality development I limit myself to design only.
    My technical knowledge always puts me in a better position because I can debug the errors and problems but even without that I am quite useful and holds a designated position.
    The same holds true to technical person having bussiness logic knowledge.
    CA Sandeep Singla
    http://ssdynamics.co.in
  • Options
    DenSterDenSter Member Posts: 8,304
    Well sure you have a good point there. I guess there are different types of developers for NAV. Ones that are involved in "functionality" (I mean 'meeting customer requirements'), and ones that do purely technical stuff, like build a framework for an ADO connection, or programming the plumbing for a MSMQ connector, or like you said tuning SQL Server.

    Obviously if you have enough business in the 'purely technical' side then knowing business isn't really very relevant. However, in the NAV world as I know it, you have to be versatile, and that comes with a solid understanding of business processes.
  • Options
    ssinglassingla Member Posts: 2,973
    Ya, Nav world is very versatile and you really look for combination of both technical and functional knowledge of the consultants. Here the author has asked for the basic capabilities/knowledge of the freshers/begineers/new programmers.
    As fas as my criteria goes the fresher should be creative enough to learn bussiness logic and obviously should command good knowledge on the programming language he is expert in.
    CA Sandeep Singla
    http://ssdynamics.co.in
  • Options
    paul_navisionpaul_navision Member Posts: 64
    I will seat for interview in couple of days for an International Company. I don't know the details how I prepare for that. I have two core certification and 1+ exp. in navision (Tech. + Func). Can anyone help me to guide how will I prepare for that? Can anyone send me bunch of Questions and Answers related interview on Navision 4.0 Technical and Functional. Can anyone guide me for total process of interview?

    Regards

    Paul
    Dynamics Nav Functional Consultant
Sign In or Register to comment.