- 浏览: 42306 次
- 性别:
- 来自: 新加坡
文章分类
最新评论
-
Ken_Liang_2010:
多谢楼主分享
程序猿也爱学英语,有图有真相 -
feiyu86:
介绍的很详细,非常不错,关键是要坚持。。
程序猿也爱学英语,有图有真相 -
loupeng0916:
看完之后很有感触,感受到楼主字里行间的那种激情,我是来自内地长 ...
程序猿也爱学英语,有图有真相 -
superich2008:
感谢分享,准备按照你的建议来实施,我的英语能力实在太差了。。。 ...
程序猿也爱学英语,有图有真相 -
Eric_CY:
感谢楼主分享!!
程序猿也爱学英语,有图有真相
新加坡面试经历
Introduction
How time flies! It has been a little bit long time I haven’t update my blog! So sorry about this especially for the guys who sent email or msn messages to me(becoz of so many emails and so busy and no time to reply one by one, I just want to say sorry to anyone here I didn't reply to)! These days I had been busy with my work and also I want to change my career and I must decide to stay in Singapore or go back to China, so I had some interviews which I found very interesting and I want to share to you guys who want to know or want to get experience from it and also is a record for myslef. Such as this one, details as below:
The First Interview
Before I start, I would specifically like to say a massive thanks to the companys(HR/Tech Staff), without whom this article would never have been possible. This company which I applied is the world leader in creating interactive applications for connected devices. They are working with leading consumer electronics companies such as Apple, Samsung, LG, Panasonic, Philips. Online service providers and media/sports companies they work with include Google, Facebook,ESPN, NBA, CNBC and Twitter.
They want a Silverlight .Net Architect/Developers/Programmers in Xbox Projects(This job is OK for me becoz I mainly looking for Senior Software Developer/Team Lead/Architect and focused on WPF/Silverlight/Cloud Computing) and Ability to travel is not a requirement, but if staff is interested in travel, there is also the opportunity to work overseas at Microsoft Redmond or the media company's location—California,Stockholm, Hong Kong, Madrid and Mountain View(This is one of the reasons I want to join also).
The second day the HR sent me the email and asked me some basic information and we scheduled the interview to last Monday(Becoz that day is a Hari Raya Holiday, Hari Raya Puasa in Singapore is celebrated by the Muslims to mark the end of their one month of fasting )
Before the interview, I installed Skype and set all equipments well and waitting for the interviewer. Around 11AM the interviewer started a video call with me and asked the basic details such as my Career Overview,Technical Skills,Experience,Academic Profile and Summary of Projects experience(Judging from her accent, maybe she is from Europe).
The Second Interview
Then after half an hour, As discussed with her via Skype, I was required to take a written test to evaluate my understanding of Silverlight. And also noted this is not an open book test. I just have 10 minutes to complete and return the test paper to interviewer(So this means I have no time to consider more and I must try to finish it asap).
1. The following code prints out integers stored in memory. Please modify it so that the integers are
printed in ascending order.
using System; using System.Collections.Generic; public class Test { public static void Main() { List<Employee> data = new List<Employee>{ new Employee("A",20), new Employee("B",10), new Employee("C",30), new Employee("D",0), new Employee("E",50) }; foreach(var e in data) { Console.WriteLine(e); } } } public class Employee { public string Name; public int Salary; public Employee(string n, int s) { this.Name = n; this.Salary = s; } public override string ToString() { return string.Format("{0}: {1}", this.Name, this.Salary); } }
Please feel free to use any class, method, etc provided by .NET Framework 3.5
My answer as below:
data.OrderBy( employee => employee.Name ).ToList();
2. Referring to the following piece of code:
using System; using System.Net; using System.Threading; public class Test { public static void Main() { WebClient wc = new WebClient(); wc.DownloadStringCompleted += (object sender, DownloadStringCompletedEventArgs e) => { Console.WriteLine("Got the following data:"); Console.WriteLine(e.Result); }; Console.WriteLine("Getting data..."); wc.DownloadStringAsync(new Uri("http://checkip.dyndns.com/")); Console.WriteLine("Exiting..."); } }
It gets the content of a web page and print it out to the screen.
Please suggest the reason why the output is:
Getting data...
Exiting...
Instead of:
Getting data...
Got the following data:
(File Content)
Exiting...
My answer as below:
Because of Silverlight’s asynchronous
3. What is the purpose of datacontext in MVVM?
Like MVP, Model-View-ViewModel (MVVM) pattern splits the User Interface code into 3 conceptual parts - Model, View and ViewModel out of which the concept of the ViewModel is the new and the most exciting. Model is a set of classes representing the data coming from the services or the database. View is the code corresponding to the visual representation of the data the way it is seen and interacted with by the user. ViewModel serves as the glue between the View and the Model. It wraps the data from the Model and makes it friendly for being presented and modified by the view. ViewModel also controls the View's interactions with the rest of the application (including any other Views). Contents is a bridge for View and ViewModel using the Binding, we always use MEF or some IOC container to do that.We have finished 3 projects with MVVM and 1 project with MVP .
4. Describe the concept of Inversion of Control (IoC).
We did so many projects with IOC, As I know, Inversion of Control (IOC) is an object-oriented programming practice where the object coupling is bound at run time by an assembler object and is typically not known at compile time using static analysis. We used Unity and Spring.Net in our project.
5. How would you trigger a storyboard from a viewmodel?
At our first project, we used messagers to do that(View and viewmodel uses a simple Publish/Subscribe model to allow loosely coupled messaging.) and later we found the way as below:
<Grid x:Name="LoginGrid"> <i:Interaction.Triggers> <ei:DataTrigger Binding="{Binding IsLoggedIn}" Value="true"> <ei:ControlStoryboardAction x:Name="FadeOutOnLogin" Storyboard="{StaticResource LoginFadeOut}"/> </ei:DataTrigger> </i:Interaction.Triggers> </Grid>
The Third Interview
After completing the written test. Moving into the next phase of our recruitment process, I was required to take a simple programming test to verify my technical ability.
The task is to build a memory game and a server for players' high scores. They do not expect me to know all the required coding technique needed to build the game and noted to me"Please feel free to do research, find reference and learn from the internet". The judging criteria, in descending order, would be quality, delivery time and creativity.
Also I was required to provide detailed instructions on how to set up the game and server, and to develop the application using Silverlight.
The details of the task requirement is in the enclosed package and package up the finished work and return to interviewer.
The task details as below:
Work Sample
The goal of this work sample is to construct a game called ”Colour Memory”. The game board consists of a 4x4 grid, all in all 16 slots. All slots consists of cards face-down. The player is to flip two of these upwards each round, trying to find equals. If the two cards are equal, the player receives one point, and the cards are removed from the game board. Otherwise, the player loses one point and the cards are turned face-down again. This continues until all pairs have been found.
After the game is finished, the user would be required to input his/her name and email. User's details and the scores would then be submitted to the database and the user would get notified with the highscores and his position in score rankings.
Prerequisites
1,The application must be developed with Silverlight.
2,The application must have at least one customized control in Silverlight.
3,The application must have a high score data provider.
4,Developer must provide instructions on how to set up the game and server.
5,The application should be blendable.
6,The application should have sample data, and provider which can be easily switched with the high score date provider.
7,The application should implement Unit Testing wherever applicable.
8,The application should be controllable by only the arrow keys (to navigate) and enter (to select) (except the operations inside the input field)
9,The application should follow the design template illustrated on the last page
10,Highscores server is suggested to be developed in PHP and MySQL
Design
1,The game should entirely fit inside a 720x576 area
2,The game info area is to contain information about the current game session. Current score for instance. Be creative
3,The graphics for the cards and the logotype have been supplied
4, All other graphical elements are up for you to decide upon
5,The restart button should start a new round when selected
6,There has to be a way to signal to the player that the game is over, when all pairs have been found. Ideally, this includes an option to play a new round
Delivery
The implementation of Colour Memory should be delivered in a compressed archive containing all necessary files and resources. Also, an instruction on how to install and start the game is expected.
Suggested Structure
UI
After I confirmed that I had received this test and I started to do it using WPF and My WPF version finished 3 hours later, details as below:
The XAML Code:
<Window x:Class="AccedoTestWPFVersion.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:AccedoTestWPFVersion" Title="Knights Warrior Colour Memory" Height="576" Width="720" x:Name="mainwin"> <Window.Resources> <ResourceDictionary Source="MainResources.xaml" /> </Window.Resources> <DockPanel Width="Auto" Height="Auto" LastChildFill="True"> <!--Menu--> <local:Menu x:Name="test" Width="Auto" Height="20" Background="LightGray" DockPanel.Dock="Top"/> <!--Left--> <Grid Height="500" Width="500" Background="Gray" Name="DisplayAllCards"/> <!--Right--> <StackPanel Width="200" Height="500" Background="Gray"> <Image Margin="5,5,5,5" Width="200" Height="80" x:Name="imgLogo"/> <DataGrid Name="dgRanking" AutoGenerateColumns="False" Height="250"> <DataGrid.Columns> <DataGridTextColumn Header="AppID" Width="60" Binding="{Binding AppID}"/> <DataGridTextColumn Header="Name" Width="90" Binding="{Binding Name}"/> <DataGridTextColumn Header="Score" Width="40" Binding="{Binding Score}"/> </DataGrid.Columns> </DataGrid> <Viewbox Stretch="Uniform"> <StackPanel Margin="0,0,0,0" Background="White" Orientation="Horizontal"> <Label Content="Current Score:"></Label> <Label x:Name="lblScore" Content="{Binding ElementName=mainwin, Path=DPScore}" Width="61"></Label> </StackPanel> </Viewbox> <Button Margin="10,30,10,10" Name="btnReStart" Style="{StaticResource DigitBtn}" Content="ReStart" Command="{Binding Path=ReStartCommand}" FontSize="24" /> </StackPanel> </DockPanel> </Window>
Core code(Non MVVM version):
1: //This is the data for Ranking datagrid<!--CRLF-->
2: private ObservableCollection<User> _UserDataList;<!--CRLF-->
3: public ObservableCollection<User> UserDataList<!--CRLF-->
4: {
<!--CRLF-->5: get { return this._UserDataList; }<!--CRLF-->
6: set
<!--CRLF--> 7: {
<!--CRLF-->8: this._UserDataList = value;<!--CRLF-->
9: }
<!--CRLF--> 10: }
<!--CRLF--> 11:
<!--CRLF-->12: //DPScore is for current score<!--CRLF-->
13: public int DPScore<!--CRLF-->
14: {
<!--CRLF-->15: get { return (int)GetValue(dpScore.DependencyProperty); }<!--CRLF-->
16: }
<!--CRLF--> 17:
<!--CRLF-->18: private static readonly DependencyPropertyKey dpScore =<!--CRLF-->
19: DependencyProperty.RegisterReadOnly("DPScore",<!--CRLF-->
20: typeof(int),<!--CRLF-->
21: typeof(MainWindow),<!--CRLF-->
22: new PropertyMetadata(0));<!--CRLF-->
23:
<!--CRLF--> 24:
<!--CRLF-->25: private object ShowImageCard(int imgType)<!--CRLF-->
26: {
<!--CRLF-->27: switch (imgType)<!--CRLF-->
28: {
<!--CRLF-->29: case 1:<!--CRLF-->
30: return GetCardBg("colour1");<!--CRLF-->
31: case 2:<!--CRLF-->
32: return GetCardBg("colour2");<!--CRLF-->
33: case 3:<!--CRLF-->
34: return GetCardBg("colour3");<!--CRLF-->
35: case 4:<!--CRLF-->
36: return GetCardBg("colour4");<!--CRLF-->
37: case 5:<!--CRLF-->
38: return GetCardBg("colour5");<!--CRLF-->
39: case 6:<!--CRLF-->
40: return GetCardBg("colour6");<!--CRLF-->
41: case 7:<!--CRLF-->
42: return GetCardBg("colour7");<!--CRLF-->
43: case 8:<!--CRLF-->
44: return GetCardBg("colour8");<!--CRLF-->
45: default:<!--CRLF-->
46: return imgType;<!--CRLF-->
47: }
<!--CRLF--> 48: }
<!--CRLF--> 49:
<!--CRLF-->50: private void ShowAllCardsUI(Grid Grid)<!--CRLF-->
51: {
<!--CRLF--> 52: Grid.Children.Clear();
<!--CRLF--> 53: Grid.ColumnDefinitions.Clear();
<!--CRLF--> 54: Grid.RowDefinitions.Clear();
<!--CRLF-->55: // Generating 4x4 Grid<!--CRLF-->
56: for (int Index = 0; Index <= 3; Index++)<!--CRLF-->
57: {
<!--CRLF-->58: Grid.RowDefinitions.Add(new RowDefinition());<!--CRLF-->
59: Grid.ColumnDefinitions.Add(new ColumnDefinition());<!--CRLF-->
60: }
<!--CRLF--> 61:
<!--CRLF-->62: // Generating 4x4 Cards<!--CRLF-->
63: for (int i = 0; i <= 3; i++)<!--CRLF-->
64: {
<!--CRLF-->65: for (int j = 0; j <= 3; j++)<!--CRLF-->
66: {
<!--CRLF--> 67: Add(Grid, i, j);
<!--CRLF--> 68: }
<!--CRLF--> 69: }
<!--CRLF--> 70: }
<!--CRLF--> 71:
<!--CRLF-->72: private List<int> Random(int Start, int Finish, int Total)<!--CRLF-->
73: {
<!--CRLF-->74: int _number;<!--CRLF-->
75: List<int> _numbers = new List<int>();<!--CRLF-->
76: // Total Numbers<!--CRLF-->
77: while (_numbers.Count < Total)<!--CRLF-->
78: {
<!--CRLF-->79: long tick = DateTime.Now.Ticks;<!--CRLF-->
80: Random r = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));<!--CRLF-->
81:
<!--CRLF--> 82: _number = (r.Next(Finish)) + Start;
<!--CRLF-->83: // Between Start - Finish<!--CRLF-->
84: // If Chosen or None<!--CRLF-->
85: if (!_numbers.Contains(_number) | _numbers.Count < 1)<!--CRLF-->
86: {
<!--CRLF--> 87: _numbers.Add(_number);
<!--CRLF-->88: // Add Number<!--CRLF-->
89: }
<!--CRLF--> 90: }
<!--CRLF-->91: return _numbers;<!--CRLF-->
92: }
<!--CRLF--> 93:
<!--CRLF-->94: private void GenerateAllCards()<!--CRLF-->
95: {
<!--CRLF-->96: List<int> valuesList = new List<int>();<!--CRLF-->
97: List<int> indicesList = new List<int>();<!--CRLF-->
98:
<!--CRLF-->99: int intCounter = 0;<!--CRLF-->
100: // Get 16 Numbers (2x8)<!--CRLF-->
101: while (valuesList.Count < 17)<!--CRLF-->
102: {
<!--CRLF-->103: List<int> numbersList = Random(1, 8, 8);<!--CRLF-->
104: // Random 1 - 8<!--CRLF-->
105: for (int intNumber = 0; intNumber <= 7; intNumber++)<!--CRLF-->
106: {
<!--CRLF--> 107: valuesList.Add(numbersList[intNumber]);
<!--CRLF-->108: // Add to Cards<!--CRLF-->
109: }
<!--CRLF--> 110: }
<!--CRLF--> 111: indicesList = Random(1, 16, 16);
<!--CRLF-->112: // Random 1 - 16<!--CRLF-->
113: // Board Columns<!--CRLF-->
114: for (int Column = 0; Column <= 3; Column++)<!--CRLF-->
115: {
<!--CRLF-->116: // Board Rows<!--CRLF-->
117: for (int Row = 0; Row <= 3; Row++)<!--CRLF-->
118: {
<!--CRLF--> 119: gridBoard[Column, Row] = valuesList[indicesList[intCounter] - 1];
<!--CRLF--> 120: intCounter += 1;
<!--CRLF--> 121: }
<!--CRLF--> 122: }
<!--CRLF--> 123: }
<!--CRLF-->
After finished the WPF version, I found time was so early, so I continued finished WPF MVVM version and Silverlight Version. If some of you have interesting with this Game source code, I will post to CodePlex later.
Summary
These days these interviews gave me some experiences, For HR/Manager, They always asked these questions besides my basic information(Career Overview,Technical Skills,Experience,Academic Profile and Summary of Projects experience etc.) :
1,What two or three things are most important to you in your job?
2,What responsibilities did you like most and least in your last job? Why?
3,Give me a specific example when you faced a particularly difficult problem? What steps did you take to resolve it?
4,What characteristics do you feel distinguish a great software engineer? Give me an example in your past which you feel demonstrates those qualities in you.
5,Describe one example where your actions led to improved quality of your organisation’s product or service.
6,What do you feel is the most effective way to keep up to date with latest technologies? Why?
7,What do you see yourself doing five years from now?
8,What makes you stand out / why should we hire you?
For the technology skills, You must prepare some questions because the interviewer’s pronunciation have so many differences(such as US, Singapore,India and the UK), If you can not follow them and you will have a nightmare with this interview.Form the interviews I joined before, They like ask below questions:
1. What is WPF/Silverlight ? Why it is used?
2. What is XAML?
3. What is Dispatcher Object?
4. What is Dependency Object?
5. What is the architecture of WPF/Silverlight ?
6. What are Types of Events and Event Routing or a Routed Event?
7. What is difference between Event Bubbling Vs Event Tunneling? When to apply what?
8. What are difference Win-Forms,WPF, ASP.NET, ASP.NET, ASP.NET MVC, Silverlight ?When to choose what?
9. What are different types of Panels in WPF/Silverlight ? Explain them?
10. What is difference between StackPanel, DockPanel, WrapPanel and Grid?
11. What are Primitive Controls and Look Less Controls?
12. What are different important components to know in WPF/Silverlight ? Explain them?
13. Why do you think WPF/Silverlight has more power?
14. How did you use Dependency Object?Purpose of Freezables?Visual vs Logical tree?
15. Example of attached behavior?
16. What is MVC,MVP,MVVM? Did you use PRISM ? What are its advantages of using it in real time applications?
17. If you used MVVM, How to allows view to communicate LifeCycle events to a ViewModel without any hard reference links?
18. If you used MVVM, Why you use attached behaviours,How to do Numeric text entry?
19. If you used MVVM, How to allows the ViewModel to determine if a Models data should be editable?
20. If you used MVVM, How to show MessageBox service,Popup window service?
21. If you used MVVM, How would you trigger a storyboard from a viewmodel?
22. WPF/Silverlight Performance tuning
At last, Today is sunday and Let’s enjoy a picture and get more pleasure!!!
相关推荐
去新加坡常见的问题,祝你面试顺利,谢谢,非常有用哦
新加坡公司法-中文.docx
新加坡旅游英文演讲ppt新加坡旅游英文演讲ppt
新加坡网上银行API 新加坡网上银行API 新加坡网上银行API 新加坡网上银行API 新加坡网上银行API 新加坡网上银行API新加坡网上银行API 新加坡网上银行API 新加坡网上银行API
销售契约登记是指船主在新加坡船级社登记其船舶的销售契约信息。 撤消登记注册: 撤消登记注册是指船主在新加坡船级社撤消其船舶的登记注册。 光船租赁: 光船租赁是指船主在新加坡船级社租赁其船舶的情况下。 ...
新加坡风俗礼仪文化,新加坡风俗礼仪文化课件,新加坡风俗礼仪文化PPT
新加坡国立大学研究论文新加坡国立大学研究论文新加坡国立大学研究论文新加坡国立大学研究论文
2021新加坡发展研究报告.pdf
新加坡网络安全战略解析.pdf
新加坡法律制度.pdf
新加坡reflections项目分享.pptx
新加坡打电话软件.新加坡打电话软件.新加坡打电话软件.
新加坡英语水平测试的样题,对于要去新加坡读书的同学可是很有帮助的哦!
新加坡最新POI数据,来自百度地图API,包含众多分类,分享给大家,可用于规划项目参考及定量分析的练习。
新加坡的教育为国家的经济发展培养了许多高素质的人才,师范教育的政策和模式在整个教育体系中发挥着重要作用。 从授权理论的角度来看,新加坡的教师培训政策具有明确的定位和系统的内容。 此外,新加坡建立了国家...
"新加坡港口吞吐量2007-2015报告资料.pdf" 本报告提供了新加坡港口2007-2015年的吞吐量数据,涵盖总货物、集装箱货物、传统货物、油货物等多个方面的吞吐量信息。 数据分析 根据报告中的数据,我们可以看到,...
新加坡公司章程-精品.doc
Singapore_BIM_Guide_Version_1.新加坡BIM标准英文版
CSDN论坛有专业法律团队翻译好的中文资料,这是法条(英文),方便大家学习、参考、借鉴,相对于中国、日本、俄罗斯的法律,新加坡的法律更细致,更像是法规,不太像上位法。
新加坡理工学院Java英语教案 主要是ppt以及代码案例等 简单英语Java授课的参考