Thread: New Employee Learning A Company's Code

  1. #1
    Registered User
    Join Date
    Nov 2012
    Posts
    7

    New Employee Learning A Company's Code

    Hi,

    I was wondering whether the community has some helpful tips and strategies for new employees to a company to learn how the company's application works, when the applicaion is very large/complex and highly integrated. It seems almost impossible!!

    Thanks!!

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    Read the design documentation.
    OK, it's probably out of date, and just plain wrong in some of the detail, but it should give you a general flavour of the overall scheme of things.

    Talk to the system architecture people to find out if they have any useful guides.

    Perhaps some tools.
    Source Insight Program Editor and..Analyzer
    source navigator NG
    Load in the code, and you can find out who calls what, and in turn what is called by who.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    (?<!re)tired Mario F.'s Avatar
    Join Date
    May 2006
    Location
    Ireland
    Posts
    8,446
    I'm assuming the program has no documentation. A typical if unfortunate scenario in companies a little everywhere.

    Divide and conquer. Concentrate only on small portions of the program functionality. Then look for the code that makes it happen. For this effect:


    • Entities are First. Concentrate first on the classes and their definitions. Start mapping these with the help of Visual Studio, Visio, or any other tool.
    • Roles come next. Get to understand the roles and semantics of the entities (classes, structures, etc) you studied already. This means studying their own methods and data. Use the functions and methods where these entities are being used only as a way to help this. Do not try otherwise to understand them. You just care about the entities own semantics.
    • Finally follow the Information. You are now in possession of a rich understanding of the application object model. You are ready to start mapping business model.


    If the application makes use of a database it's very likely it uses some sort of data access layer. Usually making use of some known framework. Nothing of that is of any interest to you at this point. Later you will need to understand how data is stored on the database. But you won't ever need to study the full length of the database access tier, only those areas you need to store and retrieve information when you start coding. For this reason, ignore that layer of the code completely.
    Originally Posted by brewbuck:
    Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.

  4. #4
    Registered User
    Join Date
    Dec 2007
    Posts
    2,675
    Compile it in debug mode and step through it. Set break points at strategic locations to investigate the functionality you're interested in.

  5. #5
    Registered User
    Join Date
    May 2009
    Posts
    4,183
    Quote Originally Posted by rags_to_riches View Post
    Compile it in debug mode and step through it. Set break points at strategic locations to investigate the functionality you're interested in.
    I really wish this option worked for me in the past; maybe I will be luckier in the future.

    My main past experience (client server application) was not able to use a debug mode for nearly any problem.
    And, my current experience is an embedded environment that is too memory tight to use the debugger.

    I hope the OP has better luck with using the debugger with their code issue.

    Note: Some languages has programs that can create UML diagrams from source code automatically; never had luck with this either.

    The past experience (client/server application) I used MS SQL tools and worked in the client Coral Paradox 7 & 9 side; by find what tables were used and using a search tool on the Paradox 7 & 9 source files to determine which source files interacted with the tables.

    So, I would recommend finding a good source file keyword search tool.

    Tim S.
    Last edited by stahta01; 01-03-2013 at 10:12 PM.
    "...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.." Bill Bryson

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. learning c from old k&r code
    By cmay in forum C Programming
    Replies: 13
    Last Post: 06-10-2009, 03:56 AM
  2. Am I learning out-dated code?
    By c777 in forum C++ Programming
    Replies: 6
    Last Post: 03-20-2006, 06:53 AM
  3. Am I learning out-dated code?
    By JustinAllard in forum C++ Programming
    Replies: 9
    Last Post: 11-30-2005, 05:05 AM
  4. Replies: 16
    Last Post: 08-23-2003, 09:22 PM
  5. learning to code
    By Unregistered in forum C Programming
    Replies: 2
    Last Post: 10-30-2001, 08:49 AM

Tags for this Thread