Wednesday, December 3, 2014

Inteview vs work

Work

  1. Heavy use of DateTime, IO/Network streams
  2. Custom exceptions




Interview:

  1. Not much try catch blocks

Sunday, November 16, 2014

c# short book

  • Object initializer:
In general, it's considered good practice to have a constructor require the parameters needed in order to completely setup an object, so that it's impossible to create an object in an invalid state.
An Object Initializer lets you set properties or fields on your object afterit's been constructed, but before you can use it by anything else. For example:
MyObject myObjectInstance = new MyObject(param1, param2)
{
    MyProperty = someUsefulValue
};
  • Partial classes:
Partial classes can be very handy for implementing interfaces in C#, and keeping the interface members clearly separate from the class-members:
    Separating large class into smaller partial classes with clear separation of functionalists.
    
    

    Tuesday, October 28, 2014

    Senior Software Engineer


    1. Git
    2. design patterns
    3. Test driven development
    4. Concurrent programming
    5. Understanding of the web technologies HTTP, JavaScript, AJAX, HTML, DHTML, CS


    Autodesk
    Apple
    NetFilx
    Amazon
    Expedia

    experiment:
    box
    ServiceNow

    Saturday, October 25, 2014

    Cloud Computing

    Cloud computing encompasses any subscription-based or pay-per-use service that, in real time over the Internet, extends IT's existing capabilities.

    Cloud computing comes into focus only when you think about what IT always needs: a way to increase capacity or add capabilities on the fly without investing in new infrastructure, training new personnel, or licensing new software

    1. SaaS
    delivers a single application through the browser to thousands of customers using a multitenant architecture. On the customer side, it means no upfront investment in servers or software licensing; on the provider side, with just one app to maintain, costs are low compared to conventional hosting. 
    Eg: Salesforce

    2. PaaS
    this form of cloud computing delivers development environments as a service. You build your own applications that run on the provider's infrastructure and are delivered to your users via the Internet from the provider's servers.
    Eg: Azure

    3. IaaS
    Infrastructure as a Service is a provision model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it. The client typically pays on a per-use basis
    Eg: Azure

     Web services in the cloud:Closely related to SaaS, Web service providers offer APIs that enable developers to exploit functionality over the Internet, 
    eg: APIs offered by Google Maps, ADP payroll processing, the U.S. Postal Service, Bloomberg, and even conventional credit card processing services.

    Thursday, October 16, 2014

    Testing types


    1. Performance testing
    2. Stress Testing
    3. Localization testing
    4. Compatibility testing
    5. UI Testing
    6. Security testing
    7. Functionality testing

    Wednesday, October 15, 2014

    OO Principles



    1. Accessor: is a method that is used to ask an object about itself. ( propery get)
    2. Mutator: public method used to modify the state of an object.(property set)
    3. Encapsulation: hiding data implementation by restricting access to accessors and mutators
    4. Abstraction: 
    5. inheritance: is a relationship
    6. polymorphism:  one name many forms.

    Interface vs abstract class


    Abstract classes are meant to be inherited from, and when one class inherits from another it means that there is a strong relationship between the 2 classes.Abstract class may provide some default implementation code.

    With an interface on the other hand, the relationship between the interface itself and the class implementing the interface is not necessarily strong

    abstract class would be more appropriate when there is a strong relationship between the abstract class and the classes that will derive from it. This is because an abstract class is very closely linked to inheritance, which implies a strong relationship.
    But, with interfaces there need not be a strong relationship between the interface and the classes that implement the interface.

    When to use abstract class and interface in Java?
    Here are some guidelines on when to use an abstract class and when to use interfaces in Java:
    1. An abstract class is good if you think you will plan on using inheritance since it provides a common base class implementation to derived classes.
    2. An abstract class is also good if you want to be able to declare non-public members. In an interface, all methods must be public.
    3. If you think you will need to add methods in the future, then an abstract class is a better choice. Because if you add new method headings to an interface, then all of the classes that already implement that interface will have to be changed to implement the new methods. That can be quite a hassle.
    4. Interfaces are a good choice when you think that the API will not change for a while.
    5. Interfaces are also good when you want to have something similar to multiple inheritance, since you can implement multiple interfaces.