28
Code Interview Yingcai Xiao Hari Krishna Bodicharla

Code Interview Yingcai Xiao Hari Krishna Bodicharla

  • Upload
    chesna

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

Code Interview Yingcai Xiao Hari Krishna Bodicharla. Code Interview. What is it? Books The process The questions How to prepare?. What is it?. Code Interview: job interview involves designing and writing programs. (the contents relate to coding.). Digital Interview. - PowerPoint PPT Presentation

Citation preview

Page 1: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Code Interview

Yingcai XiaoHari Krishna Bodicharla

Page 2: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Code Interview

• What is it?• Books• The process• The questions• How to prepare?

Page 3: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

What is it?

• Code Interview: job interview involves designing and writing programs. (the contents relate to coding.)

Page 4: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Digital Interview

• Digital Interview: online interview, video interview. The format relates to digital media. Can be real-time or pre-recorded.

Page 5: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Digital Interview

"The Essential Digital Interview Handbook" by Paul J. Bailo

online interview, good reference even for face-to-face interview.

Page 7: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Books on Code Interview (not in Safari)

•"Cracking the Coding Interview: 150 Programming Interview Questions and Answers" by Gayle Laakmann McDowell

•"Cracking the C, C++, and Java Interview" by S G Ganesh

Page 8: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

The Process

• Usually after HR screening interview• Or after a phone interview• Can be online (digital)• Or face-to-face• Usually one-on-one with your interviewer. • You may have something to write on.

Page 9: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

The Process

• You will be asked to write some code. • May need to talk through the question first• May be in an actual programming language • May be as pseudo-code.

Page 10: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

The Questions

Compare two integers without using any comparison

operators?

Page 11: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

The Questions

Swap two integers without using a temp?

Page 12: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

The Questions

Which one is faster?

int I, J = 8;I = 0.5 * J;I = J / 2;I = J >> 1;

Page 13: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

• Array• Linked List• Array List• Hash Table• Queue• Stack• Tree• Graph

Data Structures

Page 14: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Why different data structures?• Use minimum space (Array).• Fast to retrieve (Array).• Easy to search (Array, Indexing / Hashing, Tree).• Easy to modify (Linked List).• Persistent. (IDs not Pointers/References)• Sharable over the Internet. (XML)• Reduce coding errors. (Padded Array)

Data Structures

Page 15: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Persistent. (IDs not Pointers/References)• There is no use to save pointers/references or transmit them over the Internet. • Serialization (memory automatically allocated during loading)• Use indexes to link data instead of pointers/references (indexed faceset)

Data Structures

Page 16: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

INDEX LINKED DATA STRUCTURE

Page 17: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Data Structure for Graphics

and Visualization

Page 18: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

SERIALIZATION OF OBJECTS

Page 19: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Serialization

• Converting an object into a form that can be persisted or transported.

• Save objects to permanent storages.• Sent over the network. • Pass on to another object.

Page 20: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Deserialization

• Converts a stream into an object.

Together, these processes allow data to be easily stored and transferred.

Page 21: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Requirements for Serialization To allow an object to be serializable:• In a serializable class, you must ensure that

every instance variable of the class is also serializable.

• The class must be visible at the point of serialization.

• All primitive types are serializable.

Page 22: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Sample Code for Serialization// serializable classclass SerializeEmployee{public: 

char character;unsigned int id;

 // serializing methodvoid Serialize(::std::ostream &os);//static deserializing methodstatic SerializeEmployee Deserialize(::std::istream &is);

};  void SerializeEmployee::Serialize(std::ostream &os){

if (os.good()){os.write((char*)&character, sizeof(character));os.write((char*)&id, sizeof(id));}

}

Page 23: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Sample Code for DeserializationSerializeEmployee SerializeEmployee::Deserialize(std::istream &is){

SerializeEmployee retval;

if (is.good()){is.read((char*)&retval.character, sizeof(retval.character));is.read((char*)&retval.id, sizeof(retval.id));}if (is.fail()) {throw ::std::runtime_error("failed to read full struct");}return retval;

}

Page 25: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Sharable over the Internet. (XML)• Text based• User defined tags• No header• Inefficient

Data Structures

Page 26: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Reduce coding errors. (Padded Array)• Bounds checker• Use padding cells at the beginning or end of an array.• Error if the padding cells were written to.

Data Structures

Page 27: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

Space Partitioning• Quad Tree (for rectangular shapes)• Triangulation (for irregular shapes)

Data Structures

Page 28: Code Interview Yingcai  Xiao Hari  Krishna  Bodicharla

• Bubble• Merge• Quick • Heap• Insertion

Sorting