Ôi cơ bản….

Author: sonnv, Category: Kinh nghiệm, Lập trình, Suy Ngẫm @ 12:31 pm, November 18th, 2008
Đánh giá: 1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 2 out of 5)
Loading ... Loading ...
Số lần xem: 937 views

Con trai hỏi:
“Bố ơi, con muốn dùng máy tính để gõ bài luận văn vào thì phải làm thế nào bố?”

Bố bảo:
“À, mấy cái này là kiến thức cơ bản mà con. Trước tiên, con phải bật máy lên, đăng nhập và mở một chương trình word processor nào đó lên rồi mới gõ được.”

Con trai thắc mắc:
“Nhưng bố, bật máy ở chỗ nào bố?”

Bố đáp:
“Cái thằng này ngớ ngẩn thế con? Thì cứ nhất cái nút điện ở phía trước máy là nó bật lên chớ sao?”

Con gật gù:
“À há. Rồi đó bố. Thế, đăng nhập là làm sao bố?”

Bố trả lời:
“Mày làm bố phát cuồng lên mất. Thì gõ tên đăng nhập và gõ mật khẩu vào rồi gõ ‘Enter’ là xong đăng nhập chớ sao con? Bố đã chỉ con mấy cái này rồi mà?”

Thằng bé phụng phịu:
“Nhưng con có dùng máy thường xuyên đâu mà nhớ.

…… Rồi. Đã đăng nhập xong. Tìm cái word processor nào hả bố?”

Bố gãi đầu đáp:
“Mẹ ơi cái thằng. Thì vào “Start”, chọn “Programs” và chọn “Microsoft Word” đấy con!”

Con trai gật gù:
“Đơn giản nhỉ? Cám ơn bố”.

…………………..

Hai năm sau.

Con trai hỏi:
“Bố ơi, hình như cái DNS có sự cố hay sao đó. Con thử ping rồi nslookup cái site kia mà nó cứ bảo unknown host name mãi.”

Bố đáp:
“Cái thằng. Thì con flush dns cache xem sao? nếu không được nữa thì release DHCP client đi rồi renew cái mới xem sao? Còn vẫn không được thì restart lại cái modem đi con. Vẫn không được thì nhấc điện thoại lên mà chửi cái bọn ISP khốn kiếp làm ăn chuối… mốc.”

Thằng cu gãi đầu đáp:
“Nhưng… bố, flush dns cache là làm sao bố?”

Bố đáp:
“Ôi, mấy cái kiến thức căn bản thế không nắm thì làm sao mà dùng máy cho dễ dàng được con? Cứ mở command prompt ra và gõ ipconfig /? là có đầy đủ ấy thằng nhãi.”

Thằng bé reo lên:
“Eo ôi, mấy cái này mà là kiến thức cơ bản gì bố? Bố đợi con tí tẹo nhá, xem con còn cần bố giúp gì không.”

Thằng bé đáp:
“Được rồi bố, mọi chuyện tốt đẹp”.

Bố lẩm bẩm:
“Kiến với chả thức, cơ với chả bản.”

(Trích từ một bài viết của conmale, hvaonline.net)

What a developer needs from their manager

Author: sonnv, Category: Architecture & Design, Kinh nghiệm, Lập trình @ 11:24 am, June 19th, 2008
Đánh giá: 1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 4 out of 5)
Loading ... Loading ...
Số lần xem: 929 views

Leave me alone - If you interrupt me for no reason while I’m getting a lot of work done, I’ll obviously get less done. It’s not worth interrupting me just to find out what I’m doing. If I’m walking around, that’s probably the best time to talk to me.

Buy any training materials that I request - Books are cheap compared to my salary. If I can learn something new that will save time, the investment will have been worth it. The same goes for magazines, software conferences, etc.

Be flexible - When it’s time to get some coding done, there are times that I’ll be more productive than others. My computer doesn’t care if I’m using it at 3AM or 10AM. You shouldn’t either.

Trust - If you don’t trust me, you’re setting me up for failure. Trust your employees first, and take appropriate action if they give you reason not to trust them. If I know you trust me, I can focus on getting my job done.

Keep me happy - A happy developer is a productive developer. Sometimes there are small things you can do that will keep me happy. Buy lunch every once and a while. Tell me to go home early on a Friday. As a bonus, I won’t be looking for another place to work if I’m happy.

Guide, but don’t over-manage - You have the big picture, so I need your guidance. That doesn’t mean that you have to know every detail about what I’m doing. You’re not a babysitter, you’re a teammate.

Be accessible - If I get need something, please be available. I may need you to pull in the right resources to solve a problem.

Have answers - You’re the hub of the wheel. If you don’t know what’s going on, you’re useless to me. You need to be organized and connected.

Be able to prioritize - You have a better idea of what is important for the overall product. That means I need you to prioritize features accordingly. That means I’ll always be working on something important.

Tell me what is expected of me - I need to know exactly what is expected of me, and I need to know how you’ll determine if I’m completing what is expected. I also need to know how you’re going to gauge my performance. When it’s time for my review, there should be no surprises.

(From http://www.ytechie.com/2008/06/what-a-developer-needs-from-their-manager.html)

Những câu hỏi dành cho lãnh đạo kĩ thuật, software tech/team lead

Author: sonnv, Category: Kinh Doanh, Kinh nghiệm, Lập trình @ 1:01 pm, April 7th, 2008
Đánh giá: 1 Star2 Stars3 Stars4 Stars5 Stars (2 votes, average: 4 out of 5)
Loading ... Loading ...
Số lần xem: 1,203 views

Theo ý kiến và kinh nghiệm bản thân, có một số câu hỏi sau mà người tech/team leader cần tìm hiểu và trả lời cho được:- Tôi có thể nói chuyện và hiểu được hết yêu cầu của khách hàng không? Nếu chưa hiểu thì làm sao để hiểu?
- Tôi có thể xây dựng nên kiến trúc cấp cao/cấp thấp của sản phẩm từ những yêu cầu rất “lộn xộn”, thậm chí “ngây thơ” trên?
- Tôi sẽ chọn công nghệ, kĩ thuật gì để đáp ứng kiến trúc đã đề ra?
- Tôi sẽ đề ra những việc gì để hoàn thành từng chi tiết của sản phẩm?
- Tôi có thể và làm ước lượng việc gì cần bao nhiêu thời gian? nếu ko chính xác thì tôi có cách vận dụng kiến thức mọi người để ước lượng không?
- Tôi sẽ chọn ai (nhân sự) phù hợp để tham gia dự án? Ai sẽ phù hợp với vị trí nào?
- Tôi có hiểu khả năng của người tôi chọn không?
- Nếu tôi được giao một người giỏi thì làm sao tôi tận dụng tốt nhất khả năng của người đó?
- Nếu tôi được giao một người ít kinh nghiệm, hoặc được đánh giá không tốt, liệu tôi có thể dùng và đào tạo người đó để đáp ứng yêu cầu mới không, và đào tạo thế nào?
- Tôi sẽ giao việc gì, cho ai?
- Tôi làm sao biết việc được giao được thực thi đúng về mặt kĩ thuật và thời gian?
- Tôi nên giám sát, theo dõi người và việc được giao thế nào, hàng giờ, hàng ngày, tuần thay tháng?
- Nhóm tôi có đề ra và tuân theo tiêu chuẩn lập trình, thiết kế nào không? Nhân viên có làm theo không?
- Tôi có khả năng phân bổ và hỗ trợ công việc tốt chưa? Nếu một người trong nhóm nghỉ việc hoặc bệnh 1 tuần, tôi sẽ làm sao đáp ứng được tình huống đó?
- Những nguy cơ nào trước mắt và tương lai mà dự án có thể gặp? về con người, kĩ thuật, khách hàng, thời tiết, tình hình kinh tế…
- Làm sao đảm bảo sản phẩm được kiểm tra (test) được hết trường hợp, về mặt tính năng lẫn hiệu năng?
- Nếu đang làm giữa chừng khách hàng đưa ra yêu cầu mới hoặc đổi yêu cầu cũ, tôi phải làm sao để hài lòng cả 2 phía, doanh nghiệp tôi và khách hàng?
- Tôi làm sao để nhân viên phấn khởi làm việc, rèn luyện không chỉ cho công việc hiện tại mà cho công ty và chính bản thân sự nghiệp của họ? (hãy tìm hiểu xem Google làm gì cho nhân viên của họ)
- Khi giao tiếp hàng ngày và chuyển giao sản phẩm, tôi làm sao giữ được mối quan hệ cho tương lai với khách hàng?

… Còn rất nhiều câu hỏi mà bạn có thể tự đặt ra. Tốt nhất bạn cần có một quy trình cụ thể để phục vụ công việc của mình, đừng làm tự phát sẽ khó thành công.

[Fun] Chu trình sống của việc phát triển phần mềm VN

Author: sonnv, Category: Lập trình @ 10:58 am, February 21st, 2008
1 Star2 Stars3 Stars4 Stars5 Stars (Chưa có đánh giá)
Loading ... Loading ...
Số lần xem: 1,035 views

Cải biên: chu trình sống của việc phát triển phần mềm tại Việt Nam

Khi mới start dự án:

Khi đọc deadline:

Khi estimate cost:

Code tuần đầu tiên:

Code tuần thứ 2:

Code tuần thứ 3:

Một tuần trước ngày delivery:

Customer:

Onshore PM(Project Manager):

Vietnam PM (Project Manager):

Leader:

Coder

Tester

Buổi tối trước khi deliver

Một giờ trước khi deliver:

Vừa mới deliver xong:

Ngày hôm sau:

Và cuối cùng là chờ feedback:

(Tham khảo)

10 things Project Managers wish Developers understood

Author: sonnv, Category: Kinh nghiệm, Lập trình @ 10:04 am, February 20th, 2008
1 Star2 Stars3 Stars4 Stars5 Stars (Chưa có đánh giá)
Loading ... Loading ...
Số lần xem: 599 views

(Trích từ http://softarc.blogspot.com)

Well I’ve been very busy the past few months - most of it adapting to a new role as a Project Manager - technically I’m called a “team lead” or a “director” or a “senior manager” - depends who you ask, but when it comes down to it I manage the dev team to a project plan in cooperation with a product manager.

Being on the “other side” now for a while it’s been a real eye-opener. It’s definitely true that it’s hard to relate to someone until you’ve walked in their shoes for a good bit. Having worked with project managers several times before, I’ve always wondered about why things were a certain way - ways I thought I would have done things differently.

Well not anymore - now having “walked the walk” I thought I’d blog about the things that most developers on a team won’t realize until they are the person in charge.
(Xem chi tiết)

Tương tác với màn hình Logon trên Windows XP & Vista

Author: sonnv, Category: Lập trình @ 5:13 pm, January 28th, 2008
1 Star2 Stars3 Stars4 Stars5 Stars (Chưa có đánh giá)
Loading ... Loading ...
Số lần xem: 647 views

Màn hình đăng nhập của Windows là một đối tượng được bảo vệ kĩ lưỡng vì đó là nơi người dùng cung cấp tên và mật khẩu để bắt đầu sử dụng hệ thống. Màn hình này được gọi là WinLogon desktop, được quản lý bởi tiến trình WinLogon.exe và bắt đầu hoạt động trước khi có bất kì người dùng nào đăng nhập. Về mặt kĩ thuật, để tương tác được với màn hình này, ứng dụng cần hoạt động dưới dạng một Windows service bằng tài khoản LocalSystem và được tự khởi động khi hệ thống bắt đầu làm việc. Điều này có thể thực hiện dễ dàng trên Windows XP và các phiên bản trước, tuy nhiên kiến trúc mới của Windows Vista hoàn toàn không cho phép các service và ứng dụng tương tác với màn hình này. Trên thực tế vẫn có những ứng dụng được yêu cầu phải tương tác được với cửa sổ đăng nhập của Windows Vista, ví dụ hiển thị một hộp thoại, vẽ một hình ảnh hoặc xuất một thông báo trực tiếp lên màn hình nền của cửa sổ đăng nhập.

Bài viết này sử dụng một số thuật ngữ lập trình và bảo mật sử dụng Windows API, do đó bạn cần chuẩn bị các kiến thức liên quan để dễ tiếp cận hơn với vấn đề này và một trình biên dịch như Microsoft Visual C++.

Hình 1 - Hiện thông báo trên màn hình WinLogon của Windows Vista

(Xem chi tiết)

Tối ưu mã nguồn C/C++

Author: sonnv, Category: Lập trình @ 5:09 pm, January 28th, 2008
Đánh giá: 1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5 out of 5)
Loading ... Loading ...
Số lần xem: 434 views

Tại sao phải tối ưu mã lệnh?

Sự ra đời của các trình biên dịch hiện đại đã giúp lập trình viên cải thiện đáng kể thời gian và công sức phát triển phần mềm. Một vấn đề đáng quan tâm là xu hướng phát triển phần mềm theo hướng trực quan nhanh và tiện dụng dần làm mặt bằng kĩ năng viết mã lệnh của các lập trình viên giảm rõ rệt vì họ trông cậy hoàn toàn vào sự hỗ trợ của trình biên dịch. Khi phát triển một hệ thống phần mềm có tần suất xử lý cao, ví dụ các sản phẩm có chức năng điều phối hoạt động dây chuyền sản xuất trong nhà máy, thì bên cạnh sự hỗ trợ của một trình biên dịch mạnh còn cần đến kĩ năng tối ưu mã lệnh của lập trình viên. Kĩ năng tốt sẽ biến công việc lập trình khô khan, với các đoạn code tưởng chừng lạnh lùng trở nên sinh động. Một đoạn mã lệnh tốt sẽ tận dụng tối đa ưu điểm của ngôn ngữ và khả năng xử lý của hệ thống, từ đó giúp nâng cao đáng kể hiệu suất hoạt động của hệ thống.

Để chương trình hoạt động tối ưu, điều đầu tiên là tận dụng những hỗ trợ sẵn có của trình biên dịch thông qua các chỉ thị (directive) giúp tối ưu mã lệnh, tốc độ và kích thước chương trình. Hầu hết các trình biên dịch phổ biến hiện nay đều hỗ trợ tốt việc tối ưu mã khi biên dịch. Tuy nhiên, để đạt được hiệu quả tốt nhất, lập trình viên cần tập cho mình thói quen tối ưu mã lệnh ngay từ khi bắt tay viết những chương trình đầu tay. Bài viết này trình bày một số gợi ý rất cơ bản và kinh nghiệm thực tế tối ưu trong lập trình bằng ngôn ngữ C/C++.
(Xem chi tiết)