You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*[Performance and Edge Case Related Terminology](#performance-and-edge-case-related-terminology)
20
-
*[Master a Large App Related](#master-a-large-app-related-questions)
20
+
*[Master a Large App](#master-a-large-app)
21
21
*[Rock star and Fighter for angular](#rockstar-and-fighter-for-angular-questions)
22
22
*[Coding Test Question](#coding-test)
23
23
*[Fetch Data and Display User Profile](#fetch-data-and-display-user-profile)
@@ -33,39 +33,39 @@ A complete guideline to prepare for angular interview. Also, you can use these q
33
33
34
34
35
35
## Understand Your Current Level
36
-
The most important step to understand yourself. If needed improve your skill, strength and confidence. If you don't feel confident about anything, do a favor to yourself by googling and spend few minutes to read some blog or youtube videos. And then check which level you are in terms of your angular skills.
36
+
The most important step is to understand yourself. If needed improve your skill, strength and confidence. If you don't feel confident about anything, do a favor to yourself by googling and spend few minutes to improve your skills.
37
37
38
-
* If you can create a angular app by using angular-cli or any other seed. Also understand component, module, pipes, service, etc. you can consider yourself in the beginners' level. If you don't have any clue what I am talking about, watch this [video](https://www.youtube.com/watch?v=rOr1r1rSZQ8) and get into beginners' level.
39
-
* If you have full functional app that is deployed somewhere and/or published code in github and you understand detail about routing module breakdown, unit test, architecture, etc., you can consider yourself in intermediate level angular developer.
38
+
* If you can create an angular app by using angular-cli or any other seed. Also understand component, module, pipes, service, etc. you can consider yourself in the beginners' level. If you don't have any clue what I am talking about, watch this [video](https://www.youtube.com/watch?v=rOr1r1rSZQ8) and get into beginners' level.
39
+
* If you have full functional app that is deployed somewhere and/or published code in github and you understand detail about routing, authorization, feature module, architecture, style guide, etc., you can consider yourself in intermediate level angular developer.
40
40
* If you master in lazy loading, AOT, custom directive, deployment configuration, etc. you can put yourself in the expert level.
41
41
* Rest of the people are either angular blind or angular rock star.
42
42
43
43
44
44
## Know the Interviewer
45
-
Do a favor to yourself. Google the interviewer. Look at his/her Linkedin profile. Check his/her youtube videos, old blog that wasn't developed in years and github profile. After your research try to put the interviewer in one of the following categories.
46
-
1. Lazy interviewer asks about terminology. Sometimes they google questions and ask you from there. They mostly ask terminology related questions. Mostly old managers ask this type of questions.
45
+
Do a favor to yourself. Google the interviewer. Look at his/her Linkedin profile. Check his/her youtube videos, old crappy blog that wasn't updated in years and github profile. After your research try to put the interviewer in one of the following categories.
46
+
1. Lazy interviewer asks about terminology. Sometimes they just Google and asks questions from there. If your interviewer is old there is a higher chance that he/she will asks questions related to terminology.
47
47
2. Modest and nicer interview wants to check whether you can get the job done. and you know stuff. For this kind of interviewer look at the How category questions
48
-
3. Smart interviewer (the guy who is a senior developer for a long time and has updated blogs and videos) wants to know that you think, you compare and analyze stuff to make conscious decisions. For these type of nerdy interviewer (they would love to prove you wrong. and one important tip: don't try to prove them wrong) you should study why type of questions
48
+
3. Smart interviewer (the guy who is a senior developer for a long time and has updated blogs and videos) wants to know that you think. He also wants to know how you would compare and analyze stuff to make conscious decisions. These type of nerdy interviewer loves to prove you wrong. One important tip: don't try to prove them wrong.
49
49
50
50
51
-
Research team member as well. Search people in the linked in by the company name and then look their profile in github.
51
+
Research team members as well. Search people in the LinkedIn by the company name and then look their profile in github.
52
52
53
53
54
54
## Beginners Level
55
55
56
-
For the beginners level an interviewer wants to know whether this interviewee is a self-learner, trainable. Hence, he/she might ask question about basic terminology, your ability to build some simple app and high level understanding.
56
+
For the beginners level an interviewer wants to know whether this interviewee is a self-learner, trainable. Hence, he/she might ask question about basic terminology, your ability to build a simple app and have basic understandings.
57
57
58
58
59
59
### Familiarity to Basic Terminology
60
60
1. What are the difference between angularJS (angular 1.0) and angular2?
61
-
2. What is a component? why would you use it?
61
+
2. What is a component? Why would you use it?
62
62
3. What is the minimum definition of a component?
63
63
4. What is a module and what does it contains?
64
64
5. What is a service and why will you use it?
65
65
6. What is a promise? Explain it in simple words.
66
66
7. What are the life cycle hooks for component and directives?
67
-
8. What is pipes?
68
-
9. What is a service and why would you use it?
67
+
8. What is pipes? Give me an example.
68
+
9. What is Reactive Form and template driven form?
69
69
10. What is a dumb component? and what are the benefits of dumb component?
70
70
71
71
@@ -77,15 +77,15 @@ For the beginners level an interviewer wants to know whether this interviewee is
77
77
4. How can you get current state of a route?
78
78
5. How do you create two-way data binding in Angular?
79
79
6. How to load external module in angular app?
80
-
7. How you build an angular app for production?
80
+
7. How would you display form validation error?
81
81
8. Which life cycle hook will you use to unsubscribe a promise?
82
82
9. How are the services injected to your application?
83
83
10. How would you create route parameter and access it from a component?
84
84
85
85
86
86
87
87
### Understanding Basic Concepts Questions
88
-
1. Why would you use angular over some other framework like react?
88
+
1. Why would you use angular over some other framework like React?
89
89
2. What is the difference between an observable and a promise?
90
90
3. Tell me the difference between a component and a directive?
91
91
4. Why would you use typescript aka benefits of typescript?
@@ -94,7 +94,7 @@ For the beginners level an interviewer wants to know whether this interviewee is
94
94
7. What is the purpose of using zone js?
95
95
8. What is the difference between ngOnInit() and constructor() of a component?
96
96
9. When will ngOnInit be called? How would you make use of ngOnInit()?
97
-
97
+
10. What are the benefits to use formBuilder?
98
98
99
99
100
100
@@ -104,7 +104,7 @@ For the beginners level an interviewer wants to know whether this interviewee is
104
104
105
105
## Intermediate Level
106
106
107
-
In the intermediate level, you built medium size angular app and you played with routing, https, different built process, unit test, etc. here are the questions you could expect
107
+
To be in the intermediate level, you have to build at least one medium sized angular app. You have to have familiarity with routing, https, different built process, unit test, etc. here are the questions you could expect.
108
108
109
109
110
110
@@ -130,15 +130,15 @@ In the intermediate level, you built medium size angular app and you played with
130
130
5. How would you select a custom component to style it?
131
131
6. How would you select all the child components' elements?
132
132
7. How would you cache an observable data?
133
-
8. How would you cache observable data?
133
+
8. How would you save data from a form control?
134
134
9. How Event Emitters works in Angular?
135
135
10. How do you mock a service to inject in a unit test?
136
136
137
137
138
138
139
139
### Core Concepts Understandability Questions
140
140
1. Tell me about feature module and shared module?
141
-
2. What would you not put shared module?
141
+
2. What would you not put in a shared module?
142
142
3. Why angular uses decorator?
143
143
4. What is async validation and how is it done?
144
144
5. Why do you need type definitions?
@@ -156,10 +156,10 @@ In the intermediate level, you built medium size angular app and you played with
156
156
157
157
## Expert Level
158
158
159
-
You are a Rockstar in angular. you can teach other. you can lead a team for angular project. you should know the answer to the following questions.
159
+
You are a Rockstar in angular. You can teach other. You can lead a team of angular developers.
160
160
161
161
### Performance and Edge case Related Terminology
162
-
1. What is factory Component?
162
+
1. What is a factory Component?
163
163
2. What is lazy loading and why will you use it?
164
164
3. What is Ahead of time (AOT) compilation and why will you use it?
165
165
4. What are some of the Angular Style Guide suggestions you follow on your code? Why?
@@ -170,24 +170,25 @@ You are a Rockstar in angular. you can teach other. you can lead a team for angu
170
170
9. How would you insert an embedded view from a prepared TemplateRef?
171
171
10. What is attribute directive and why will you use it?
172
172
173
-
### Master a Large App Related Questions
173
+
### Master a Large App
174
174
1. How will you intercept http to inject header to each http call?
175
175
2. How would you create a component to display error messages throughout your application?
176
-
3. How you parallelize multiple observable call?
176
+
3. How will you parallelize multiple observable call?
177
177
4. How will you put one async call before another?
178
178
5. How can you use web worker in angular app?
179
179
6. What tools would you use to find a performance issue in your code?
180
180
7. What are some ways you may improve your website's scrolling performance?
181
181
8. Explain the difference between layout, painting and compositing.
182
182
9. How can you cancel a router navigation?
183
183
10. How would you animate routing?
184
+
11. How would you cancel a promise on which you are waiting?
184
185
185
186
186
187
### Rockstar and Fighter for Angular Questions
187
188
1. When does a lazy loaded module is loaded?
188
189
2. Why angular uses url segment?
189
190
3. How will you make angular app secure?
190
-
4.how will you localize numbers currencies and dates?
191
+
4.How will you localize numbers currencies and dates?
191
192
5. What is the best way to use translation in your app?
192
193
6. How will you setup different environment build differently for your app?
193
194
7. How will you use scss or css preprocessing with your application?
@@ -201,49 +202,52 @@ You are a Rockstar in angular. you can teach other. you can lead a team for angu
201
202
[Answers link coming soon]
202
203
203
204
## Coding Test
204
-
Sometimes interviewer would like to give a coding challenge that you have to while they are watching. Some potential employer might give you a day or two to finish a coding challenge. Here are few sample coding challenge
205
+
Sometimes interviewer gives real coding test. Most of us suck on those and feel ashamed of ourselves and then continue to work in the current job. I don't want you to saty in that miserable job. Hence, take the following coding challenges and master them.
205
206
206
207
### Fetch Data and Display User Profile
207
208
208
209
This test has three level
209
-
1. Level 1: Create a textbox to take user input and then Fetch data from https://api.github.com/search/users?q=ericwhich takes a query string to search users in github. Upon retrieval display total_count and first 10 users in the search result. Detail instruction about this test is available [here](https://github.com/khan4019/github-profile-search)
210
-
2. Level 2: Convert each user profile as router link so that upon clicking on each user profile you will navigate to a route that has "login" property in the route. Pass user.login as route parameter. Create a separate component where you will read the route parameter and then fetch that user information by using this api https://api.github.com/users/eric . Please Notice that last part of the api is the user.login (the route parameter that you have passed). Finally display user image and other information in the component
211
-
3. Level 3: use any charting framework that you can find in the online and then create a simple bar chart to display number of followers of first 10 users
210
+
1. Level 1: I am giving you an api https://api.github.com/search/users?q=ericThis api takes a query parameter name "q" and passes query string to server. Server returns bunch of users. Now I want you to create a input text box and button so that you can type anything on the text box and hit on the button to retrieve data from the given api. Upon retrieval display total_count and first 10 users in the search result. Detail instruction about this test is available [here](https://github.com/khan4019/github-profile-search)
211
+
2. Level 2: Convert each user profile as a router link so that upon clicking on each user profile you will navigate to a route that has "login" property in the route. Pass user.login as route parameter. Create a separate component where you will read the route parameter and then fetch data for that user by using this api https://api.github.com/users/eric . Please Notice that last part of this api is the user.login (the route parameter that you have passed). Finally display user image and few other information in the component
212
+
3. Level 3: use any charting framework that you can find and then create a simple bar chart to display number of followers of first 10 users
212
213
213
214
214
-
Focus on this coding test is to judge your ability to use services, component and observables, etc. Always remember unit test, pay attention to variable names, build, etc.
215
+
This coding test will judge your ability to use services, component, routing, data visualization, external module, observables, etc.
215
216
216
217
[Sample code link coming soon]
217
218
218
219
### Persistent Todo List
219
-
Focuses on how you pass data and events between components. Also, whether you are leveraging directives and understand difference between component and directives
220
-
Details coming soon
221
-
220
+
This test has three levels
222
221
1. Level 1: Implement a simple todo list where you can add items, mark as done
223
222
2. Level 2: Now create few categories of todo list and make it persistence in the browser
224
-
3. Level 3: Now use firebase database to make todo list persistence across multiple devices
223
+
3. Level 3: Now use firebase (serverless database) to make todo list persistence across multiple devices
224
+
225
+
This coding test will judge whether you can pass data and events between components. Also, whether you are leveraging directives and understand difference between component and directives.
226
+
225
227
226
228
[Sample code link coming soon]
227
229
228
230
### Student Registration System
229
-
Focuses on architecture for a large application. Your ability to think and implement module, lazy loading, asset management etc.
231
+
This test has three levels
230
232
1. Level-1: Design a system where students can login to register different courses
231
233
2. Level-2: Add a feature so that faculties on each course can view how many students registered on the courses
232
234
3. Level-3: (I need a shower. will add text here after I clean up myself)
233
235
236
+
This coding test will judge your understanding of architecture for a large application. Your ability to think and implement module, lazy loading, asset management etc.
237
+
234
238
[Sample code link coming soon]
235
239
236
240
## Side Things Related Questions
237
241
238
242
### rxjs
239
-
1. Why angular uses rxjs?
240
-
2. How would you explain Observable?
241
243
3. Why unsubscribing is important?
242
-
4. what is forkJoin, flat map, zip
243
-
5. Difference between hot and cold observables
244
+
1. What is the difference between map and flatmap?
245
+
2. Whare are the different ways you can create an Observable?
246
+
4. What is forkJoin, zip, share?
247
+
5. Difference between hot and cold observables.
244
248
245
249
### TypeScript
246
-
1. How to debug a typescript file?
250
+
1. How would you debug a typescript file?
247
251
2. How do you implement interface in typescript?
248
252
3. How would you call base class constructor from child class in typescript?
249
253
4. What is typescript language service?
@@ -261,21 +265,21 @@ Focuses on architecture for a large application. Your ability to think and imple
261
265
### Others
262
266
1. What is the use of codelyzer?
263
267
2. Will you use Angular Material2?
264
-
3. How would you build and deploy your app in multiple languages?
265
268
4. How would you set different config in different deployment server?
266
269
5. What do you know about ES6?
270
+
6. What is ngUpgrage? Do you know how you can run angularJS and angular side by side?
267
271
268
272
[Answers link coming soon]
269
273
270
274
271
275
## Note from God
272
276
On a press release, God expressed HIS apologies to send the author of this repo to a non-English speaking country and creating weekends.
273
-
[Sorry to hurt your readability. I am working on it. If you still complain about readability, I will expose your code. :) ]
277
+
274
278
275
279
276
280
277
281
## Contribute
278
-
Feel free to provide questions and update language
0 commit comments