Yahoo Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: In-Person
1. Understand the requirements, User flow
2. Data structures / modeling
3. Algorithm design / UI
4. Testing
1. Requirements: Address book web application, so the user comes to a website (login? fcbk/google login?) use fcbk/google login api? loads them up, info about each field
- name
- phone
- address
- email
- bla bla
Target users? segments of customers
Timeline of project / resources
technology (LAMP, servers etc)
Functional documents, wants / wishes etc
2. MySql DB, table of users, table of addresses
3. address page, login page, user dashboard -> addresses
4. UI manual tests, jasmin JS tests, Server stress tests, User feedback and A/B testing, browser monitoring, eventing etc
Hi Everybody,
The design could better be achieved with the following steps one by one
1. problem statement
2. system structure
analysis and design:
3. identifying all the objects
4. preparing data dictionary for identifying association among objects
5. identifying association
6. identifying attributes
7. refining with inheritance
implementation
8. dynamic modeling
9. functional modeling
1.problem statement:
Developing web address book app
Use cases:
*User should be allowed to add
3. identifying all objects with noun and verbs from use-cases
Noun:
*User
*Address-book
*Storage
Verbs:
*Edit-operation
*Delete-operation
*Add-operation
*Search-operation
4. Data dictionary
*User - User adds/edits/deletes/searches his/her address book.
*Address-book: Address book consists of addresses.
*Storage - Persistently stores the address
5. identifying association:
User ->(adds/edits/deletes/searches)->address-book<>->(consists of)->addresses
6. identifying attributes
User: name
Address: name, address, phone number
7. refining with inheritance
User->operation->address-book<>->(consist of)->addresses
operation
->add
->delete
->edit
->search
This is one effort, lot of missing things can be added.
1) The front-end. A web page containing a form. The form should have the necessary input fields such as first name, last name, street address, city, etc.
- Anonymous October 08, 20122) You will need to implement some kind of input validation. You can use JavaScript to ensure that a user doesn't leave require fields blank and that a input field contains the correct type of data.
3) Let's start with the back-end. Assuming that the address book is for US only. You would need a database with a table containing columns for last name, first name, street address, city, zipcode.
4) A server side script (PHP, Python, Ruby, Java etc.) to connect to the database and insert the data received from the user.