How one can improve his/her Programming Skills?

AmmadAmmad Member Posts: 16
edited 2009-07-10 in General Chat
By Profession I am a NAV developer and personally I think that.....
I am very bad in Programming generally and I want to improve my Skills in Programming.

So, that's why I need ur Precious Advices, and comments on it that
How one can improve his/her Programming skills generally or also at NAV level?

Waiting for feedback from u great pplz for ur precious advices/comments/feedbacks?

Thanks in Advance........

Regards,
Ammad

Comments

  • BeliasBelias Member Posts: 2,998
    study, be curious, be creative...
    bang your head on the problems until you solve them, read mibuso and ask/search if you don't know something...studying makes the base and then you have to improve yourself...how long have you been working in nav?
    -Mirko-
    "Never memorize what you can easily find in a book".....Or Mibuso
    My Blog
  • ritesh.singhritesh.singh Member Posts: 123
    I'll suggest practice 'C' programming it will really help you building logic and sense of how system works.
    Thanks,
    Ritesh K Singh
  • AmmadAmmad Member Posts: 16
    Belias,

    I am working with NAV from last 4 months but not just worked on coding only in these 4 months, did many things regarding NAV like reporting services etc etc

    Thanks for ur replies

    Regards,
    Ammad
  • BeliasBelias Member Posts: 2,998
    i think that 4 months is a little time to become a skilled nav developer...personally, i have been working in nav for 2 years and there are some things i don't know yet...and some that i must imporove...
    -Mirko-
    "Never memorize what you can easily find in a book".....Or Mibuso
    My Blog
  • David_SingletonDavid_Singleton Member Posts: 5,479
    Ammad wrote:
    By Profession I am a NAV developer and personally I think that.....
    I am very bad in Programming generally and I want to improve my Skills in Programming.

    So, that's why I need ur Precious Advices, and comments on it that
    How one can improve his/her Programming skills generally or also at NAV level?

    Waiting for feedback from u great pplz for ur precious advices/comments/feedbacks?

    Thanks in Advance........

    Regards,
    Ammad

    =D>

    Well I think you made the first step already. Just knowing that you need to learn, and that you are asking for help is the first giant step forward. You would find it hard to believe how many people want to learn Navision but are not willing to ask for help nor take the advise given. Having come to this understanding in four months is a great sign, and I think you really can go places with this attitude.

    Step one always in NAV is to understand the application. To do this I give students a simple test, and they learn a lot by passing it.

    The test is here : Getting started NAV

    PS its a lot harder than it looks. Even some NAV veterans have trouble passing this test the first time with out an error.

    PPS: in case you want to know, "NO, I have not yet been able to pass this test", so don't expect to pass first time.

    PPS Pass means you don't get any error messages because you missed something.
    David Singleton
  • kinekine Member Posts: 12,562
    If you want to be a good developer, you need some spare time on own problem you will define for youself and you will try to solve it. It can be some mini-application for you, something you want to try to build etc. You can find many of those "excercises" in the download sections. If you ask the authors, I am sure that big part of the answers will be that they did it just for fun in the free time (I hope :-)) and that they have learned something during that. Biggest part of learning is solving some problems, trying to solve them yourselfs, with help of others in some small blocks after you are in dead end. Asking for help too early will lower the "experience points" you will get when you will try to solve it yourselfs for longer time. Asking to late can lead to "frustration" and this is not good.

    There are people which are not trying to solve problems themselfs and they ask others right after they hit some hurdle. They will not learn anything.
    If you solved something, try to think about it, try to understand "why" it was problem, "why" this solution is the correct one, ask questions for yoursefs, if you did not find answer on internet or somewhere else, ask in the forum.

    Path to knowledge is not straight, it is long, leading between rocks, spending time with looking for how to go around, many times you need to go back or climb up on the rock (and sometime dig under...). Only people which will do something themselfs will have good feeling from the final product, ambition to be better is the driving force. Of course, it doesn't mean that asking is forbidden. "Man is learning from mistakes, but only unwise from their own." ;-)

    I am developing in NAV for 8 years now, and each day I learn something new (not only from NAV, but C#, operating system, hardware, SQL,...). Main source is own "research".
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • ssinglassingla Member Posts: 2,973
    =D>

    The test is here : Getting started NAV

    PS its a lot harder than it looks. Even some NAV veterans have trouble passing this test the first time with out an error.

    PPS: in case you want to know, "NO, I have not yet been able to pass this test", so don't expect to pass first time.

    PPS Pass means you don't get any error messages because you missed something.

    Will Try :-k
    I don't believe you have not passed it. The only reason can be "You haven't tried yet".
    CA Sandeep Singla
    http://ssdynamics.co.in
  • David_SingletonDavid_Singleton Member Posts: 5,479
    ssingla wrote:
    I don't believe you have not passed it. The only reason can be "You haven't tried yet".

    I have completed the process a few times. Its something that is different with each version, but I still get many error messages along the way, and have to go back and set somthing up that I missed. But each time I learn something new.

    In reality though, its good to get all the error messages, becasue then when the client says "I have this error message about posting groups" you know exactly what the error is and how to "fix" it.
    David Singleton
  • DenSterDenSter Member Posts: 8,307
    What you also need to understand and accept is that as a developer, you don't sit down and rattle out the code in the first sitting, like they do in the movies. Every time you work on a new problem, you're going to spend a lot of time just figuring out what it is that you are working on, how things work, why stuff happens, analyzing how to change it, researching technical aspects, and then finally writing the code.

    I'd say the act of actually writing the code is only about 25% to a third of the time spent on any programming job, maybe even less. I believe the reason why many developers have such a hard time estimating a job is because they only estimate how long it will take to "write the code", and forget about how much time it takes to "figure stuff out".

    mibuso, DUG and google will become your best friends :mrgreen:
  • DenSterDenSter Member Posts: 8,307
    Specifically for NAV:
    • Study David Studebaker's book (Click here)
    • Get certified for Introduction to C/SIDE programming
    • Get certified for C/SIDE Solution Development
    • Important for certifications: Study the course material, don't just memorize exam questions
    • study any manual you can get your hands on about the functionality of NAV. I'd even recommend getting certified for all functional areas you work in, although that's probably not realistic
  • kinekine Member Posts: 12,562
    Exactly, the main know-how in this area is knowledge, where to put one line of code to have the whole complex modification working.

    Sometime it is not good to make the changes in front of customer, because than you can hear "why you are billing me 10 hours for such an easy task, when there was something more complex and the developer have finished it in 10 minutes?". Nobody see the thinking process behind it, which is done mostly in bed when you are going to sleep, on toilet or when driving the car. Those are the moments when the solutions are created.
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • SavatageSavatage Member Posts: 7,142
    kine wrote:
    Those are the moments when the solutions are created.
    Solutions usually hit me in the shower \:D/
  • Miklos_HollenderMiklos_Hollender Member Posts: 1,598
    Just read the standard code and try to understand what each piece does. Read coding in table 36, 37, codeunit 80 and report 206. That's a good start.

    Play with the standard code on a testing db. If you are not completely sure what something does, comment some lines out or change them and see what's the difference.
  • paulspauls Member Posts: 1
    Savatage wrote:
    kine wrote:
    Those are the moments when the solutions are created.
    Solutions usually hit me in the shower \:D/

    ha ha...are you sure that's not the shampoo bottle! :)
  • David_SingletonDavid_Singleton Member Posts: 5,479
    Isn't it just strange that this thread died. We hear so often that developers want to be proficient in Navision, but as soon as the answer mentions things like "Study in spare time" ; "Hard work" ; "Learn the application" ; "Try examples" ; "Work under a mentor" ; "Professional training classes", suddenly things go quiet.

    What most developers (well more so their bosses I guess) want to hear, is "How to learn Navision development whilst billing the client at full rates".
    David Singleton
  • DenSterDenSter Member Posts: 8,307
    I was thinking the same thing :)
  • BeliasBelias Member Posts: 2,998
    Personally I hate study, but I do it if necessary, and occasionally i also like it if the theme is one I like (e.g. nav dev).
    BTW, study is one of the best aspect of our work (if we like our work, and i think so)...day by day a developer become more and more skillful, and when he thinks he's at the end of his training, a new feature comes out and opens a "new world" of possibilities (e.g. NAV 2009). We are almost never boried, as we have always something new to learn and/or improve.
    I think that if i am a NAV "order processor" (like susanna in the CTPs :mrgreen: ), i would get boried after a month or two, and i will start to create problems to the developer only for entertainment...but this is a personal opinion. :roll:

    We should be happy to have a challenging work!!
    -Mirko-
    "Never memorize what you can easily find in a book".....Or Mibuso
    My Blog
  • kinekine Member Posts: 12,562
    :mrgreen: Now I know why customers wants the changes - they are bored by their work... :mrgreen:

    Yes, all depends on people and their relation to their job. If it is just "job", or it is "your life" or at least "hobby". If it is just job, you do what they want, and that's all. If it is your hobby or life, you will try to find new ways how to do that and this etc. If it is just job, you will wait if somebody else will teach your something. If it is hobby or life, you will learn yourselfs from what you found...
    Kamil Sacek
    MVP - Dynamics NAV
    My BLOG
    NAVERTICA a.s.
  • davmac1davmac1 Member Posts: 1,283
    The ways I use to improve my skills:
    1) do something new - right now I am becoming more proficient in writing direct to Excel from NAV
    2) Self-study - my current area is coming up to speed on Business Analytics and improving on the demo samples with more meaningful results. (The canned demo promises a sales analysis and delivers customer account balances instead.)
    3) Chess at chess.com - good hobby and sloppy thinking gets punished quickly. I originally wanted to improve my spatial capabilities - I have found it also makes me work on being more careful and critical with my logical thinking and understanding of what my opponent can do.
  • DenSterDenSter Member Posts: 8,307
    What stuns me most about the new generation of developers is that I get the impression that they think there is some sort of Matrix like method of just uploading "absolute skill", as if you can read this one book and that is all you ever need. What I also observe is this growing aversion toward the process of learning. Life, to me, is a continuous learning process. Learning is part of our work, if you don't enjoy learning new things, this is not a good field to be in. Every time that I learn one new thing, I discover about five other things that I don't know, and I really feel that the more I know the more I know that I don't know :mrgreen: . The list of things that I don't know grows exponentially each time I learn something new.

    It's the same way with solving customer problems. Every time you're presented with a new problem, there are a ton of things to figure out before you can give them a really good solid advice. The skill of figuring out what you need to figure out, is much more important to have than knowing what line of code to use. Syntax is just words, for that there are tons of dictionaries. What makes a developer really good is understanding the grammer. Not just the grammer of the technology itself (technology itself has NEVER solved any business problem), but the functional requirement that lies underneath.

    Compare it to learning how to play a certain sport. I'm learning how to play golf, and every time I learn how to do something, it goes further and I am presented with a new aspect of the game. How you hold your head, how you put your hands, how you swing the club, where you put the ball, where you put your feet, and a thousand more things. You can know everything there is to know about this, but the ONLY way to actually be able to DO it, is by practice. If you don't put in the work to improve your skill, you are never going to get better at it. It's the same with being a developer, you can know all code words, but if you don't practice how to use them, you're never going to become a better developer.
  • David_CoxDavid_Cox Member Posts: 509
    edited 2009-07-03
    I like many others here started long ago when Navision was new to the market, there was no developer training, forums and other learning resources, just a few days training at the local Navision HQ, and an email user group called NOLUG.

    I came from a VB background and challenged the way Navision was structured, having many a discussion with Jesper in the UK, his answer was always, this is not VB but Navision and C/Side and this is how it works, accept that and work with it!.

    The way we then learnt was to study the code, trying to understand what it was doing and why, with this we also had to learn the Navision and Clients business process and workflow, many of us were sole programmers with new small resellers, so it was sink or swim.

    Looking at the OP second reply after 4 months they are looking at reporting services, it is very important to learn fully the core elements of Navision, before even looking at things like reporting services, the phrase 'learn to walk before you try to run' comes to mind.

    Another tip would be not to think you can re-invent the wheel, if you are trying to write a core function in navision there is likely something you can base your 'new function' on, but you will not know if such a function exists or where to find it unless you know the product, a classic example is with dates, you will see a question with a block of code which is trying to replicate something that can be returned with a single call in code to an existing function.

    For a developer as much as training material has merit, so does looking at the navision standard code, functions and workflow, and by not thinking that you could have done it better your way.

    David :)
    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
  • tripleDottripleDot Member Posts: 5
    edited 2009-07-10
    What most developers (well more so their bosses I guess) want to hear, is "How to learn Navision development whilst billing the client at full rates".

    Wonderfully stated! =D>


    Not exactly a NAV user but was a programmer once. Allow me to impart some of my learnings...

    ...to be a good programmer, you practice programming, try solving a specific problems you encountered.
    ...to be a better programmer, you find more ways of solving those problems.

    What I've learned about my 2nd statement is, as a by-product, you'd realized that some solutions to solving your problems doesn't need any programming. That actually expands your skill set.

    David Cox wrote:
    I came from a VB background and challenged the way Navision was structured, having many a discussion with Jesper in the UK, his answer was always, this is not VB but Navision and C/Side and this is how it works, accept that and work with it!.

    I too share a similar experience. I took an SAP course and landed an SAP job. Unfortunately, our company doesn't have any SAP project which basically made me a bum in the office. So my boss rigged me into AX. I'm just one and a half month into this project trying to support 3 groups of users of our client. I had to tell myself sometimes that if I want to solve some problems, I would need to put on hold some of the stuff I know.

    David Cox wrote:
    Looking at the OP second reply after 4 months they are looking at reporting services, it is very important to learn fully the core elements of Navision, before even looking at things like reporting services, the phrase 'learn to walk before you try to run' comes to mind.

    While I agree with you, no question about that. But we also should consider somethings... things like "My boss dumps me in this project despite knowing I knew nothing about it yet he's charging my client full rate." In cases like these (which I'm currently in), there is a high tendency that we'll have to learn to do some running and jumping despite not having to master walking.

    :wink:
  • bbrownbbrown Member Posts: 3,268
    tripleDot wrote:
    ... things like "My boss dumps me in this project despite knowing I knew nothing about it yet he's charging my client full rate." In cases like these (which I'm currently in), there is a high tendency that we'll have to learn to do some running and jumping despite not having to master walking.

    :wink:

    You're describing the basic world of consulting. Management expects you to be billable from day one. Other than that they can't justify your existence as an employee.

    I can't imagine where my career would be if I had not been challenged like this in my early years. There were many times where I was thrown at situations where I new little or nothing of what I was dealing with. But the goal was always the same. Solve the problem and, in the end, leave the client believing they could not have possibily done it without you.
    There are no bugs - only undocumented features.
Sign In or Register to comment.