• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Moderators: tungblt, vuathongtin

Bạn trả lời đúng bao nhiêu câu trong 120s?

1/7
2
10%
2/7
2
10%
3/7
4
19%
Từ 4 đến 6/7
4
19%
7/7
9
43%
 
Total votes: 21

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sat 18/02/2012 11:07 pm

Đề bài kiểm tra : Nhìn vào đoạn lệnh sau, trong 120 giây, hãy cho biết sau khi chương trình chạy đến dòng /// STOP HERE
thì giá trị của :
I, J , K = ?
P1.X = ?
P1.Y =?
P2.X =?
P2.Y =?

  1.     class  Program
  2.     {
  3.         static void Main()
  4.         {
  5.             int i, j, k;
  6.             var P1 = new Point();
  7.             var P2 = new Point();
  8.             P1.X = 0;
  9.             P1.Y = 0;
  10.             P2.X = 1;
  11.             P2.Y = 1;
  12.             P2=P1;
  13.             i = P2.X;
  14.             j = ++P1.X;
  15.             k = P1.Y++;
  16.             P2.X++;
  17.             P1.Y++;
  18.           /// STOP HERE          
  19.       }
  20.     }
  21.     class  Point
  22.     {
  23.         public int X { get; set; }
  24.         public int Y { get; set; }
  25.  
  26.     }
  27.  


Kết quả ;))
Sau khi ghi kết quả ra giấy, thử chạy chương trình trong IDE của VS 2008 để so sánh!
Nếu bạn làm đúng : <3/7 : Bạn là amater
Nếu bạn làm đúng : 3/7 : Bạn có trên 6 tháng kinh nghiệm C# và khá chăm chỉ
Nếu bạn làm đúng : 7/7 : Bạn thành thạo C# và có trên 1 năm kinh nghiệm sử dụng C# liên tục !

Nếu bạn ra đáp án chính xác dưới 60 sec , bạn có 2 năm kinh nghiệm sử dụng C# :)>-
:P Lưu ý là không có : 4/7, 5/7, 6/7 :) ( Bạn nên tìm hiểu tại sao nhỉ :) )
Last edited by HaiPT on Thu 23/02/2012 7:56 pm, edited 1 time in total.


Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby vo_minhdat2007 » Sat 18/02/2012 11:33 pm

Theo em cái này không nhất thiết có kinh nghiệm trong thời gian nhiều đâu anh Hải à, mà quan trọng là đã từng trải qua vấn đề này là được, như em đã tìm hiểu qua rồi nên nhìn từng dòng code là biết ngay kết quả thế nào.

Nó giống như bài viết này của em đúng không :) viewtopic.php?f=76&t=19691 (phần Một số sai sót...).

User avatar
dazzlingvit
Guru
Guru
Posts: 960
Joined: Tue 18/01/2011 10:21 am
Location: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 times
Been thanked: 112 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby dazzlingvit » Sun 19/02/2012 1:13 am

i = 0
j = 1
k = 0
P1.X = P2.X = 2
P1.Y = P2.Y = 2
Không biết đúng hay tạch rồi :))
Dazzling V.I.T
Hãy gọi tôi là vịt :)

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 11:43 am

vo_minhdat2007 wrote:Theo em cái này không nhất thiết có kinh nghiệm trong thời gian nhiều đâu anh Hải à, mà quan trọng là đã từng trải qua vấn đề này là được, như em đã tìm hiểu qua rồi nên nhìn từng dòng code là biết ngay kết quả thế nào.

Nó giống như bài viết này của em đúng không :) viewtopic.php?f=76&t=19691 (phần Một số sai sót...).

:P Phải có kinh nghiệm đấy em và là kinh nghiệm thực sự ! nó khác hẳn bài viết của em !
Trước khi trả lời anh thì hãy test thử xem đã!
Từ trước đến nay số lượng sinh viên trả lời đúng 7/7 là 2 % ( một năm anh trực tiếp training cho FSOFT khoảng 1500 nhân viên, cho sinh viên thì vài ngàn )
Những bạn trả lời đúng 7/7 đều cực kỳ xuất sắc , thuộc diện tuyển thẳng hoặch là team lead!
Khoảng 30% trả lời đúng >= 3/7 : Những bạn này đều thuộc diện khá và rất chăm chỉ !, thường là back khoa !
60% chỉ đúng 2/7 : đa phần là aptech và các trường không chuyên!
Số còn lại đúng 1/7 thậm chí sai hết , có thể do áp lực thời gian !
Bài không khó nhưng đòi hỏi :
- Ứng viên phải chăm chỉ , và làm nhiều mới phân biệt được ++Variable và Variable++ khác nhau như thế nào ( bình thường rất ít bạn để ý )
- Ứng viên phải thành thạo C#, OOP mới hiểu được lệnh = với hai object có tác dụng thế nào
- Ứng viên phải cực quen tay mới có thể tính chính xác dưới 60s

Một biến thể khác là ta thay type của Point từ "Class" sang "struct" thì kết quả sẽ bằng bao nhiêu ? ;))
Last edited by HaiPT on Sun 19/02/2012 1:40 pm, edited 2 times in total.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
dazzlingvit
Guru
Guru
Posts: 960
Joined: Tue 18/01/2011 10:21 am
Location: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 times
Been thanked: 112 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby dazzlingvit » Sun 19/02/2012 12:51 pm

Ôi hay quá, không ngờ đoạn code ngắn gọn thế này mà phân loại được như vậy.
(Đọc xong bài này mình phải mở ngay VS ra kiểm tra xem đúng hay tạch thật rồi) =))
Dazzling V.I.T
Hãy gọi tôi là vịt :)

User avatar
bangnhatquang68
Guru
Guru
Posts: 791
Joined: Tue 26/01/2010 12:44 pm
Location: Vĩ tuyến 17
Has thanked: 20 times
Been thanked: 38 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby bangnhatquang68 » Sun 19/02/2012 1:40 pm

:-" :-"
cái này là kinh nghiệm viết code trải nhiều thì thế thôi :-" :-"
nhòm qua biết cần gì mở VS.
P1=0

P2=P1
dù p1, p2 có tăng gì thì vẫn là 0 ^:)^
cái gì liên quan đến phân tọa độ cũng : 0 nốt :-
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 1:43 pm

Chẹp, lại sai rồi ! :( , 1 chú "gà" ra đi !
Đã bẩu là cẩn thận kẻo chết !
Trên chỉ là một ví dụ nhỏ để phỏng vấn ứng viên , các ứng viên có kinh nghiệm thực sự sẽ không bị "cóng" về áp lực thời gian, bình tĩnh giải quyết dưới 60 sec !
Các ứng viên khá một tý nhưng chủ quan, nhanh nhẩu đoảng, ẩu... sẽ trượt và thường chỉ làm đc 2/7 ( bangnhatquang) là 1 ví dụ tốt ! =))
Sau đó khi nhìn lại kết quả thường rất bất ngờ vì mình làm sai!
Vì lập trình viên cần sự : chăm chỉ, cẩn thận, tỷ mỷ và ..chính xác ! >:D<
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
bangnhatquang68
Guru
Guru
Posts: 791
Joined: Tue 26/01/2010 12:44 pm
Location: Vĩ tuyến 17
Has thanked: 20 times
Been thanked: 38 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby bangnhatquang68 » Sun 19/02/2012 1:49 pm

Oh,yeah. háu táu rồi, chạy ra sai zòi.
thêm một tên a ma tơ rồi
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 1:51 pm

Mod tạo hộ tớ cái thống kê để xem bao nhiêu bạn "thật sự" làm đúng trong 60 sec nhé!
Đại khái câu hỏi là ( bạn làm đúng đc bao nhiêu câu trong 60 séc ( thật thà nhé)
(1) 1/7
(2) 2/7
(3) 3/7
(4) >4/7
( 5) 7/7
Không gian lận ! :), dzui là chính mà ! ;))
Câu hỏi bên ASP.NET giờ vẫn chưa thấy ai trả lời :-j
Last edited by HaiPT on Sun 19/02/2012 1:54 pm, edited 1 time in total.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
bangnhatquang68
Guru
Guru
Posts: 791
Joined: Tue 26/01/2010 12:44 pm
Location: Vĩ tuyến 17
Has thanked: 20 times
Been thanked: 38 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby bangnhatquang68 » Sun 19/02/2012 1:54 pm

bỏ vô giao lưu đi, đây là mục giải đáp về C#,vb,net mà!
Mời anh em lên facebook giao lưu nào!
http://www.facebook.com/groups/145823032176611/

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 1:56 pm

Nhưng chủ đề của nó vẫn là "Thảo luận C#" thì nên đưa vào box thảo luận C#, C, C++,JAVA... hợp hơn
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
dazzlingvit
Guru
Guru
Posts: 960
Joined: Tue 18/01/2011 10:21 am
Location: Sinh ra từ hư vô, sống trong thế giới ảo...
Has thanked: 7 times
Been thanked: 112 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby dazzlingvit » Sun 19/02/2012 2:16 pm

bangnhatquang68 wrote:bỏ vô giao lưu đi, đây là mục giải đáp về C#,vb,net mà!

Mục này là để thảo luận mà, đâu phải chỉ để giải đáp. Mục giao lưu chỉ để anh em chém gió ngoài lề thôi :D
Dazzling V.I.T
Hãy gọi tôi là vịt :)

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby vo_minhdat2007 » Sun 19/02/2012 6:10 pm

Đã tạo bình chọn :) Kết quả của em là 7/7, đọc code tới đâu ra kết quả tới đó :D

P/s: "Bắt bài" anh xíu, thực ra chương trình không bao giờ chạy dòng //STOP HERE (chính xác hơn là không hề có dòng đó khi chạy), vì nó là comment, compiler không quan tâm đến nó. :P

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 6:20 pm

Vậy Đạt thuộc hệ "hàng chất lượng cao rồi" he he! Với những người có trên 2000 bài viết về VB, C# thì chắc khó sai đc ha ha !
@all: Đề ra chủ yếu dzui là chính, mọi người cùng thử phát xem !
Đạt sửa lại dùm
"Bạn trả lời đúng bao nhiêu câu?" ==> " Bạn trả lời đúng bao nhiêu câu trong vòng 120 giây?"
Last edited by HaiPT on Sun 19/02/2012 6:40 pm, edited 2 times in total.
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby vo_minhdat2007 » Sun 19/02/2012 6:31 pm

Đã sửa bình chọn :D

À mà thú thật anh là lúc đầu test em hơi giật mình vì kết quả sai, lúc đầu em chỉ copy code đoạn trên của anh, rồi dùng Point có sẵn của C#. Tự nhiên đáp số ra khác hẳn, nhưng nghĩ lại thấy vô lý :P. Rồi em mới ngồi copy thêm class Point của anh vào thì em đúng.

Từ đó ngẫm ra: Point (của System.Drawing) chắc chắc không phải là một class vì không đúng nguyên tắc OOP (khi so sánh P1 == P2 sau khi đã gán vẫn ra false sau khi thay đổi giá trị P2). Trở lên MSDN xem thì đúng là Point là struct, đồng thời operator Equality đã bị override mất :D

P/s: Thực ra em ít làm C#, nhiều cái vẫn chưa biết lắm. Kiến thức OOP của em xách từ Java qua là nhiều :P

HaiPT
VIP
VIP
Posts: 252
Joined: Wed 07/09/2005 4:02 pm
Location: Hải Phòng
Has thanked: 1 time
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby HaiPT » Sun 19/02/2012 6:36 pm

Yes, đề này apply cho cả JAVA lẫn C++ vì nguyên lý tương đương!
.. nên bất cứ ứng viên nào thành thạo một ngôn ngữ kể trên thì đều trả lời chính xác được !
Point (của System.Drawing) là Struct , struct là value type, chỉ cần đổi type của Point trong ví dụ trên sang struct là kết quả sẽ khác hoàn toàn !
Phạm Hải
Quản trị dự án ,Chuyên gia đào tạo
Đại học FPT

User avatar
son0nline
Thành viên trung thành
Thành viên trung thành
Posts: 241
Joined: Thu 18/02/2010 9:55 pm
Has thanked: 6 times
Been thanked: 12 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby son0nline » Mon 20/02/2012 12:59 pm

chỉ cho em với
em không hiểu sao lại lên p1 và p2 lại lên 2 được vậy
amater :(

có phải tại cái dòng P2 = P1;
không
em thử p1.x ++; thì p2.x cũng tăng theo

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby vo_minhdat2007 » Mon 20/02/2012 2:30 pm

Bạn đọc bài viết này sẽ hiểu :) viewtopic.php?f=76&t=19691

dieucay555
Thành viên chính thức
Thành viên chính thức
Posts: 27
Joined: Fri 04/04/2008 2:23 am
Has thanked: 1 time
Been thanked: 2 times

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby dieucay555 » Wed 29/02/2012 1:59 pm

Hehe,nhân tiện có đề tài của bác Hải, em thử đưa ra 1 câu nữa các bác thử trả lời hộ em xem sao
  1. long count1, count2;
  2.             var sw = new Stopwatch(); sw.Start();
  3.             for (int i = 0; i < 1000000000; ++i) { }
  4.             count1 = sw.ElapsedMilliseconds;
  5.             sw.Reset();
  6.             sw.Start();
  7.             for (int j = 0; j < 1000000000; j++) { }
  8.             count2 = sw.ElapsedMilliseconds;
  9.             sw.Stop();
  10.  


Câu hỏi của em là thằng count1 và thằng count2 có bằng nhau ko? :D
Cái này là 1 trip nhỏ trong việc optimize code :)

User avatar
vo_minhdat2007
Quản trị
Quản trị
Posts: 2227
Joined: Sun 17/07/2005 1:40 am
Has thanked: 13 times
Been thanked: 87 times
Contact:

Re: Kiểm tra độ thành thạo C# của bạn trong 120 giây!

Postby vo_minhdat2007 » Wed 29/02/2012 8:17 pm

Thực sự mình không hiểu ý bạn dieucay555 ở đây là gì dù mình đã test nhiều lần.

Nếu bạn đang nói về chủ đề giống anh Hải thì không cần test cũng biết dĩ nhiên count1 và count2 không bao giờ bằng nhau được, cho dù cho nó thực hiện 2 đoạn code giống nhau, vì CPU không phải hiệu suất lúc nào cũng như nhau.

Còn nói về hiệu suất, mình test vài lần thấy kết quả 2 cái không có gì chênh lệch nhau nhiều (mà sao bạn lại dùng miliseconds làm đơn vị?). Đây là 1 trong các kết quả (lấy count1 - count2):

  1. Unit: Tick (10^-8s)
  2.  
  3. Test number 1: 48302
  4. Test number 2: -22556
  5. Test number 3: 24467
  6. Test number 4: -7636
  7. Test number 5: -29110
  8. Test number 6: 3863
  9. Test number 7: 17818
  10. Test number 8: -12513
  11. Test number 9: -55844
  12. Test number 10: 9883
  13.  
  14. Average: -23326


Như vậy có thể thấy, cả 2 cách có thể xem như là thời gian thực hiện tương đương nhau.


Return to “Visual Basic .NET và C# (VB.NET & C#)”

Who is online

Users browsing this forum: No registered users and 3 guests