Jeez! my friend is being featured for this HCG weight loss product!!!!
She shed 32 pounds in one month! I am so jealous!!!
Ugh im getting some of this stuff before spring break gets here.
Jeez! my friend is being featured for this HCG weight loss product!!!!
She shed 32 pounds in one month! I am so jealous!!!
Ugh im getting some of this stuff before spring break gets here.
Được nghỉ 3 ngày nên ngồi suy ngẫm về cái nghiệp lập trình viên mà mình đang theo đuổi.
Tường thuật từ một buổi ăn trưa
Một dịp hiếm hoi tôi được ngồi ăn trưa với mấy đứa bạn học chung hồi đại học. Cả bọn đều đang làm cho các công ty phần mềm lớn, ngót ngét cũng được hơn 2 năm rồi.
- Dạo này bên mày “cày” dữ không?
- Cũng như trước. Bị bên kia nó dí giữ quá.
…….
- Bây giờ tao nhận ra rằng đi làm phần mềm là một sai lầm. Tưởng rằng lương cao chứ thật ra chẳng bằng ai. Tao thấy mấy đứa bạn đi làm mấy ngành khác sướng hơn nhiều. Mấy đứa đi làm sales giàu quá trời.
- Còn mấy đứa bạn tao đi làm bên ngành ngân hàng cũng đã lắm.
- Tính ra thì học y hoặc dược hơi cực nhưng bây giờ đứa nào cũng ngon lành.
Câu chuyện tiếp tục với đề tài liên quan đến các ngành nghề khác. Ở thời buổi này thì cả bọn thấy làm nghế gì cũng sướng hết, vừa có thu nhập cao lại vừa lý thú, trừ cái nghề lập trình viên mà cả bọn đang theo đuổi!
Hỡi ôi! Cái nắng đổ lửa của Sài Gòn cũng không làm tôi choáng bằng nỗi băn khoăn về cái nghề mà mình đang theo đuổi. Ai cũng đổ xô đi học công nghệ thông tin, ai cũng nói ngành này là “hot” nhất, triển vọng nhất, tốt nhất, và sướng nhất. Image Thế mà ngay ở đây, những kỹ sư phần mềm mà kinh nghiệm làm việc còn ít hơn cả “kinh nghiệm” ngồi trên ghế giảng đường Đại học, với bao ước mơ, hoài bão và nhiệt huyết, lại có cái nhìn thực tế thật phũ phàng vậy.
Ok. Phần “tâm trạng” mở đầu như vậy là đủ rồi. Bây giờ tôi thử liệt kê những cái “nghĩ quẩn” của mình về nghề lập trình viên (hay là kỹ sư phần mềm, hay là chuyên viên phát triển phần mềm, hay là thợ code, hay là công nhân kỹ thuật cao, hay là những chuyên viết chat Yahoo! lén,…)
1) Làm phần mềm không có thu nhập cao
Đây là thực thế phũ phàng nhất đang đè nặng lên đầu óc của các lập trình viên chúng ta, nặng đến nỗi đôi lúc có người không thể đè nỗi phím Shift trên bàn phím. Image
Vâng, theo tất cả các khảo sát về tiền lương thì làm việc trong ngành CNTT sẽ có mức lương cao nhất.
Điều đó đúng nhưng chưa đủ. Mức lương khởi đầu thì cao thật, nhưng sau đó thì… Làm sao ta có thể toàn tâm toàn ý fix bug được nếu như biết được đứa bạn cấp III của mình bây giờ đang làm cho các tập đoàn kinh tế nước ngoài với mức thu nhập trên 10 triệu. Làm sao không thể nóng đầu được nếu như biết được lúc mới ra trường mức lương của nó chỉ bằng phân nửa của ta. Image
Vâng, lương khởi điểm thì cao nhưng tăng không nhanh. Có tăng thì cũng tăng không nhiều. Có nơi chịu tăng nhiều thì không có thưởng. Ngoài những cái đó thì chẳng còn thu nhập nào khác, cũng ít có cơ hội để “đánh lẻ” bên ngoài vì công việc chính đã quá bận rộn rồi.
2) Làm phần mềm lại rất cực
Cái cực đầu tiên là áp lực thời gian. Điều này thì không cần phải nói nhiều rồi. Image
Bây giờ nói đến môi trường làm việc. Nếu ai chưa từng làm phần mềm thì có thể hình dung thế này.
Thử tưởng tượng bạn bước vào một khu nhà rộng lớn, rất yên tĩnh và hoàn toàn cách biệt với thế giới bên ngoài. Bạn bước đến cửa ra vào và biết rằng ở đây những người bảo vệ làm việc 24 giời/ngày, suốt 365 ngày/năm. Bước vào bên trong nữa, bạn sẽ thấy ở đấy không khí rất âm u, hoàn toàn không có ánh sáng tự nhiên. Cũng dễ hiểu thôi, vì mọi nơi ở đây đều không có cửa sổ. Nếu có cửa sổ thì cũng luôn bị đóng kín lại.
Bạn bước vào sâu hơn nữa và thấy các căn phòng được ngăn ra, bên trong từng căn phòng lại được ngăn ra thành từng buồng nhỏ hơn nữa. Mỗi buồng đều có diện tích như nhau, rất chật hẹp, và được bài trí, trang bị vật dụng giống hệt nhau. Trong đó có đặt ít nhất một bộ máy vi tính, nhưng vì diện tích không gian quá nhỏ nên nó chiếm gần hết khoảng không, chỉ còn lại vừa đủ cho bạn ngồi vào đó. Bạn sẽ không thể đi lại thoải mái được, không thể nằm ra, thậm chí xoảy trở vận động cũng khó khăn vì quá chật hẹp.
À, bạn cũng phải đeo một cái thẻ có ghi một mã số trên túi áo. Bạn sẽ nhận ra rằng mọi người ở đây cũng đều đeo thẻ có mã số như vậy. Và bạn chỉ có thể tự do trong khoảng không gian chật hẹp của mình; bạn không được tự do đi sang khu vực khác, thậm chí không được sang buồng bên cạnh và đụng đến bất kỳ vật dụng gì ở đó.
Chưa hết, bạn không được làm ồn và ảnh hưởng, dù nhỏ nhất, đến những buồng xung quanh.
Và mỗi ngày sẽ có một người có chức vụ ở đây (tạm gọi là đốc công) đến giao cho bạn một số nhiệm vụ phải hoàn thành. Bạn sẽ làm việc trong buồng của mình, với những dụng cụ cung cấp sẵn. Không như những công việc ở thế giới bên ngoài, ở đây họ thực thi chế độ làm việc “tự do giờ giấc”. Điều đó có nghĩa là gì? Điều đó có nghĩa là có những người ở cấp cao hơn nữa giao cho những viên đốc công các nhiệm vụ, và định các nhiệm vụ đó theo đơn vị thời gian là ngày, tuần, hoặc tháng. Đến phiên các đốc công này sẽ chia nhỏ các nhiệm vụ đó ra rồi giao lại cho những người như bạn. Điều kỳ lạ mới xảy ra ở đây. Cái mà viên đốc công nhận là một công việc cần n ngày, nhưng vì bạn được quản lý theo chế độ “tự do giờ giấc”, cho nên cái gọi là n ngày đó hoàn toàn không có ý nghĩa đối với bạn. Bạn có thể phải bỏ ra n nhân với 8 giờ để hoàn thành nó, hoặc có thể phải cần đến n nhân với 12 giờ, hoặc n nhân với 18 giờ, hoặc là (n+x+y+z) nhân với 18 giờ. Cái mà viên đốc công cần ở bạn là kết quả cuối cùng.
Được rồi. Tôi tạm dừng ở đây để hỏi bạn một câu:
Bạn nghĩ xem mình đang ở đâu?
Tôi tin rằng chín trên mười người được hỏi sẽ có cùng một câu trả lời: đó là cái nhà tù. Nơi mà người ta tách biệt mọi người ra riêng rẽ; nơi mà hoạt động suốt ngày, suốt đêm, suốt năm; nơi mà người ta nhét thật nhiều người vào ở theo nguyên tắc tối ưu hóa tối đa về diện tích sử dụng và sẵn sàng y sinh mọi yếu tố khác; nơi mà người ta chỉ quan tâm đến công việc có được hoàn thành hay không, chứ không cần chú ý đến chất lượng và thời gian bỏ ra; và là nơi mà với tất cả sự hy sinh và chịu đựng như vậy, những người bỏ ra gần hết thời gian của họ ở đó sẽ chỉ được tưởng thưởng rất ít; và việc tưởng thưởng sẽ phải đợi cho đến khi xong nhiệm vụ, hoặc đến một ngày cố định nào đó trong năm (gọi là ngày ân xá, hay còn gọi là đợt performance appraisal) - (hãy nhớ đến cách mà ba mẹ tưởng thưởng cho bạn: trước, trong khi, và sau khi làm xong việc đều được cả, và thưởng một cách vô điều kiện, nếu bạn đậu đại học vào tháng 8 thì ba mẹ không bao giờ phải đợi đến tháng 12 mới thưởng cho bạn, thậm chí ngay từ tháng 5, tháng 6 cũng có thể khích lệ cho bạn rồi; bây giờ hãy so sanh với cách mà nhà tù trên thưởng cho bạn Image Bạn thhích cái nào hơn?
Nhưng ngoài chín người đó vẫn còn một người có câu trả lời hoàn tòan khác: nơi đây là một công ty phần mềm. Người đó không ai khác là một lập trình viên. Image
3) Nghề lập trình chẳng giúp gì cho gia đình được
Người Việt mình đi làm ngoài chuyện kiếm tiền là mục tiêu đầu tiên, còn sau đó thì muốn có thể “giúp đỡ” cho gia đình, họ hàng vào những dịp quan trọng. Ví dụ: chồng của con của em ruột của bà ngoại của tôi làm một chức lớn trong ngành hàng hải ở ngoài Hà Nội, nên gia đình tôi có “vấn đề” gì về chuyển hàng hóa đi nơi khác là OK liền Image; hoặc nếu như chị họ của chị dâu của anh họ xa của bạn làm ở phòng tín dụng ngân hàng, bạn sẽ dễ dàng vay tiền để mua nhà hơn; hoặc là bạn học cũ hồi cấp II của mẹ tôi có một người bạn thân có người em gái ruột làm ở bộ phận Răng - Hàm - Mặt bệnh viện Chợ Rẫy, nên khi đứa cháu trai của anh rể của tôi cần đi nhổ một cái răng sâu, chắc chắn nó sẽ được ưu tiên vào trước mà không phải đợi lâu; ngoài ra, cháu bé này khi xin vào lớp 1 cũng rất dễ dàng vì một người họ hàng xa ở ngoài Bắc của tôi là bạn thời chiến đấu với vợ của ông hiệu trường của trường cấp I trọng điểm trong khu vực.
Vậy, tôi có thêm một câu hỏi dành cho bạn:
Tính từ lúc đi làm lập trình viên đến giờ, hãy kể ra một lần nào đó mà gia đình hay họ hàng của bạn đã “nhờ vả” bạn được việc gì đó?
Tôi tin rằng phần lớn các lập trình viên đều không trả lời được câu hỏi này.
Vậy một câu hỏi dễ hơn:
Hãy nhìn xung quanh trong công ty phần mềm mà bạn đang làm, kể cả những người có chức vụ và thâm niên cao nhất, bạn có thấy họ “giúp đỡ” được cho gia đình việc gì chưa?
Hầu hết các lập trình viên cũng không thể trả lời được câu hỏi này.
Bởi vì khi bạn dành gần hết thời gian trong ngày của mình ngồi trước máy vi tính để viết chương trình, bạn sẽ chẳng có được một “lợi thế” nào khác trong cuộc sống, ngay trước mắt và về sau này. Thậm chí một người bạn của tôi đi làm marketing cho tập đoàn hóa mỹ phẩm, thoạt nhìn cũng chẳng có “ưu thế” gì đặc biệt, nhưng thật ra hằng tháng cũng được công ty cho nào là dầu gội đầu, sửa tắm, kem đánh răng, sản phẩm riêng dành cho chi em phụ nữ Image,… hoàn toàn miễn phí. Ông bác làm bảo vệ kiêm soát vé ở sân vận động thì thỉnh thoảng đem được nhiều vé mời về cho gia đình. Người bạn khác làm kiến trúc sư thì có thể vẽ nhà dùm tôi với giá hữu nghị mà chất lượng thật bảo đảm. Còn bạn, bạn có thể đem được cái gì về? Đem cái chương trình mà ngay cả bạn dù viết ra nó cũng không hình dung người ta sẽ sử dụng ra sao? Hay là giúp đỡ họ hàng mình khi họ cần fix một vài cái bug trong một cái phần mềm nào đó. Image Thậm chí, một số bạn của tôi, đi du học lên cao để chuyên tâm làm nghiên cứu, thoạt nhìn thì có vẻ “vô tích sự” đối với gia đình, nhưng ngẫm lại thì cũng đem về nhà được cái danh là “ông tiến sĩ”, “ông thạc sĩ”. Còn nếu bạn đi làm lập trình viên, dù có được ra nước ngoài đi công tác, thì bà hàng xóm bên cạnh nhà cũng chỉ biết rằng: “thằng đó nó đi xuất khẩu lao động”.
4) Làm phần mềm thì sẽ ít cơ hội được giao tiếp với bên ngoài
Bởi vì bạn phải dành gần hết thời gian trong cuộc đời của mình trong một không gian chật hẹp, với phía trước là làm màn hình vi tính, hai bên trái và phải là hai vách ngăn, còn ngay phía sau lại là một lập trình viên khác cũng đang ngồi trong thế tù túng giống bạn. Đấy, thế giới của bạn hạn hẹp như thế. Bạn rời mắt khỏi màn hình, nhìn ra xa xăm, và chẳng phải đợi lâu khi mắt của bạn bị dội ngay lại bởi bức tường trước mặt. Lần cuối cùng mà bạn thấy ánh sáng mặt trời khi đang làm việc là khi nào? Phần lớn những người không bao giờ hình dung nổi mình có thể sống trong một căn nhà không bao giờ có ánh sáng tự nhiên, thế mà họ không nhận ra rằng mình dành hết thời gian ban ngày ở một môi trường khủng khiếp như vậy.
Đáng buồn thay, ở trong một mội trường như vậy còn khiến cho bạn ít có cơ hội tiếp xúc với thế giới bên ngoài. Bạn sẽ ít khi gặp được những người mà bạn yêu thương, ít có điều kiện làm quen được với những người có thể giúp thay đổi cuộc đời hay sự nghiệp của bạn một cách tích cực. Khi bộ óc của bạn lúc nào cũng chỉ hoạt động trong 2 trạng thái: suy nghĩ logic (lúc bạn làm việc và đi học thêm vào buổi tối) và ngủ, chắc chắn bạn sẽ bị thui chụt đi rất nhiều khả năng cảm nhận cảm xúc của người đang nói chuyện với mình, hay khả năng biểu lộ suy nghĩ của mình một cách mạch lạc và đầy xúc cảm.
Ồ không, bạn không hề cô đơn trong thế giới riêng của mình, vì bây giờ khoa học kỹ thuật đã phát triển rất cao. Có 2 phát minh vĩ đại có thể giúp cho bạn tiếp xúc với thế giới bên ngoài dù bạn ở bất kỳ đâu, bất kỳ khi nào: điện thoại di động và online messenger (ở VN thì có thể gọi luôn là Yahoo! Messenger, hay IM, vì nó quá phổ biến). Nhưng thật ra thì chúng chỉ làm cho thế giới của người lập trình viên tồi tệ thêm thôi. Hãy nghĩ về người mà bạn yêu thương nhất. Có thể bạn đã quá quen thuộc với khả năng gọi đến người đó, hay là nghe được giọng nói của người đó bất kỳ lúc nào, bất kỳ ở đâu. Hãy nghĩ lại thử xem. Thế ngoài giọng nói của người đó, bạn có thể nghe được tâm trạng, đọc được cảm xúc trên khuôn mặt người đó, nghe không chỉ bằng tai mà còn bằng trái tim của mình không? Hãy nghĩ lại thử xem. Có bao giời bạn thấy buồn cười không khi bạn trao đổi với người đó hằng ngày, mà người đó cũng không ở xa bạn, nhưng đến một hôm bạn chợt nhận ra người đó đã ốm đi rất nhiều, có vẻ mệt mỏi hơn rất nhiều, khi bạn có được thời gian hiếm hoi gặp mặt. Hãy thử nghĩ lại xem. Bạn có thể gọi đến người đó bất kỳ khi nào bạn muốn, nhưng liệu điện thoại di động có giúp cho bạn biết đúng lúc nào đó mà người đó cần bạn đến nhất không. Không thể rồi. Chỉ có ánh mắt, cử chỉ, khuôn mặt, hơi thở của người đó mới giúp bạn nghe ra được điều đó. Những tín hiệu này thì còn rất lâu khoa học kỹ thuật mới có thể giúp bạn được.
Hay như tôi đây, trước khi biết đến YM, tôi có thể viết một hơi mười mấy trang giấy, biểu lộ cảm xúc của mình qua từng từ ngữ, chấm câu, ngắt đoạn. Còn bây giờ tôi dùng phần lớn thời gian để suy nghĩ xem chèn cái emotion nào để thay cho sự bất lực trong cách thể hiện cảm xúc của mình.
Tóm lại, bất kỳ ai cũng cần một cuộc sống cân bằng, vừa có thế giới riêng tư vừa có thể giới bên ngoài. Công việc lập trình viên có thể khiến cho cuộc sống của bạn mất cân bằng. Bạn có thể giải quyết bằng cách chữa trị đúng vào nguyên nhân của vấn đề (sự mất cân bằng), hoặc bạn có thể chọn cách chữa trị vào các triệu chứng (ít giao tiếp, tách biệt với thế giới bên ngoài). Phần lớn lập trình viên đều chọn cách thứ hai, và họ dành thật nhiều thời gian cho điện thoại di động và YM. Bất kỳ ai cũng hiểu điều đơn giản này: không thể tin vào một bác sĩ chỉ biết chữa bệnh bằng cách tìm mọi cách dứt cho được triệu chứng, cái mà bệnh nhân cần là chuẩn đoán tìm ra nguyên nhân và chữa được nguyên nhân của căn bệnh.
Điện thoại di động và YM chỉ giúp lập trình viên chữa trị các triệu chứng. Nó là những phương tiện thông tin tốt, đặc biệt tốt với những ai có cuộc sống cân bằng. Nhưng nó là một thảm họa đối với những ai có cuộc sống không cân bằng. Hầu hết mọi lập trình viên đều có cuộc sống không cân bằng.
5) Làm lập trình viên không “cao cấp” như mọi người nghĩ
Mọi người thương quan niệm ngành CNTT là ngành khoa học trình độ cao, hay là kỹ thuật cao (high-tech). Bởi vậy ai cũng cho rằng làm phần mềm là ngành kỹ thuật cao. Ở đâu sắp mở khu công nghệ cao, ở đấy người ta sẽ tìm cách chào đón các công ty phần mềm vào đầu tiên.
Thực sự không phải như vậy. Làm phần mềm không phải là kỹ thuật cao, ngược lại là khác, nó chính là ngành kỹ thuật thấp (low-tech). Công việc mà tôi đang làm là gì? Đó là chuyển những yêu cầu chưa rõ ràng của khách hàng thành những mã lệnh của máy vi tính. Chấm hết. Chẳng có gì là high-tech cả. Nếu nói thông dịch viên là một ngành kỹ thuật cao thì thật là buồn cười, còn tôi thấy nói rằng làm phần mềm là một ngành kỹ thuật đỉnh cao thì còn buồn cuời hơn.
CNTT là một ngành high-tech, và một khoa học cao cấp. Chính xác.
Nhưng làm phần mềm không phải là CNTT, và càng không phải là high-tech.
Những người nghiên cứu chuyên sâu về các lý thuyết lập trình, về các khoa học cơ bản cho ngành phần mềm là high-tech. Các lĩnh vực về compiler, database, AI (trí tuệ nhân tạo), robot, kể cả về cấu trúc dữ liệu và thuật toán,… đều có thể xem là high-tech. (À, mà hiện nay ở Việt Nam người ta đổ xô học lên cao để đi theo những cái high-tech này, nhưng có thật họ có làm những việc high-tech ở trong đó không thì tôi sẽ có dịp trình bày sau).
Còn làm phần mềm lại ở một cấp thấp hơn rất nhiều. Tất cả mọi việc tôi cần làm để chuyển yêu cầu thành các mã lệnh là sử dụng các cấu trúc dữ liệu, các thuật toán đã sẵn có. Chẳng có gì là high-tech cả. Làm phần mềm mà một kỹ nghệ (engineering) chứ không phải là khoa học (science) hay là nghiên cứu (research) gì cả.
Bây giờ trở lại với công việc thực tế của lập trình viên. Các sinh viên ngành CNTT đều mơ mộng về một công việc rất high-tech, trong đó mình có thể tìm ra những thuật toán mạnh mẽ, những lý thuyết mới mẻ, những mô hình độc đáo, sáng tạo. Những chỉ sau 1,2 năm làm việc thì đều vỡ mộng vì thấy rằng công việc thực tế lại quá low-tech, quá “cơ bắp”.
Sử dụng lý thuyết sẵn có để làm ra phần mềm chính là kỹ nghệ phần mềm, cái này thì chằng có gì là high-tech theo như cách hiểu của mọi người cả.
Còn nếu muốn tìm ra những lý thuyết mới thì đó là một lĩnh vực hoàn toàn khác. Có thể rất high-tech, nhưng ở VN có lẽ có rất ít công ty tạo điều kiện để làm việc này. Còn ở nước ngoài có thể vào những bộ phần nghiên cứu phát triển ở các công ty lớn mà làm. Mà công việc đó thì cũng không còn được gọi là software engineering nữa.
Vậy thì bị kịch của lập trình viên là gì? Đó là phải làm một công việc rất low-tech trong khi đầu óc lại luôn mơ về một công việc high-tech. Hậu quả: công việc cực khổ, cơ bắp, nhàm chán, và chẳng có gì mới mẻ.
Có thể hiễu nỗi khổ này của lập trình viên bằng cách hình dung một anh chàng lúc nào cũng mơ mộng trở thành một nhà toán học lỗi lạc, trong khi công việc hằng ngày là phải tính toán sổ sách cho một cửa hiệu tạp hóa.
ooOoo
Nãy giờ tôi nhìn vào nghề lập trình viên bằng suy nghĩ phiến diện, tiêu cực. Bây giờ thử bỏ chiếc mũ màu đen trên đầu, bỏ cả cặp mắt kính đen Image ra, đội chiếc mũ màu vàng vào, ngước lên bầu trời trên cao, nhìn thấy ánh sáng mặt trời vàng rực. Vậy thử tìm cách nhìn nghề lập trình viên bằng con mắt lạc quan xem thế nào.
Nhưng trước hết thì phải đi uống nước ép trái cây đã.
Lại có một dịp khác tôi có dịp đi ăn tối với các người bạn của một người bạn của tôi. Thành phần thì đủ cả: dược sĩ, nhân viên bán hàng, marketing, giáo viên, người không có việc làm và người chưa có việc làm.
- Biết vậy hồi trước tao học ngành CNTT thì bây giờ sướng rồi.
Tôi giật mình và tiếp tục chăm chú lắng nghe.
- Ừ! - Một người khác nói. - Làm cái đó lương cao mà không phải lo lắng, chạy vạy nhiều.
- Làm ngành của tao nhìn bên ngoài thì đã thật, nhưng nhiều cái mình không thích nhưng cứ phải ráng mà chịu đựng, nhìn bọn làm phần mềm thảnh thơi mà thấy thèm.
À há! Khi mình thay đổi cách nhìn vào cùng một việc, mình sẽ thấy được nhiều điều quan trọng hơn. Vậy thì thử đội mũ vàng vào và nhìn mọi việc một cách tích cực và yêu đời xem.
1) Làm phần mềm thật là vui
Không có nhiều công việc trên đời này tự bản thân nó đem lại niềm vui như khi làm phần mềm.
Bằng chứng thì rất dễ tìm thấy. Hãy đến một công ty phần mềm vào buổi tối, vào ngày cuối tuần, thậm chí là ngày lễ, bạn sẽ thấy có một vài nhân viên vẫn đang ở công ty mày mò tìm hiểu, viết thêm một số phần mềm chẳng liên quan đến công việc, cũng chẳng để kiếm tiền. Họ mày mò chỉ đơn giản vì họ thích, vì nó hay, vì nó vui. Ngoài ra, những công nghệ mới liên quan đến phần mềm, và ngay cả bản thân chiếc máy vi tính, đều có thể đem lại niềm vui và sự thích thú cho người sử dụng. Tôi luôn thấy nhiều nhân viên ở lại công ty để duyệt web, chơi game bằng máy vi tính. Ngoài ra còn có vô số điều lý thú khác để làm với máy vi tính.
Ngược lại, tôi chưa bao giờ thấy một nhân viên kế toán hay tài chính ở lại công ty để “chơi” với mấy cái sổ sách cả. Tôi cũng chưa thấy ở nhà máy nào có công nhân tình nguyệnở lại để “quậy” với mấy cái máy mọc cả. Hay những người làm sales, họ sẽ làm gì sau khi hoàn thành công việc? Chẳng có gì trong công việc để “giải trí” cho họ cả. Có lẽ bia, rượu, thuốc lá, đồ nhắm thì vui hơn chăng?
Dĩ nhiên cũng có người ở lại để mày mò tìm hiểu thêm về công việc. Nhưng mục đích chủ yếu là để nâng cao kiến thức chuyên môn và thăng tiến. Đây là một phạm trù khác. Cái mà tôi muốn nói đến là niềm vui, là động lực tự nhiên, vô tư.
Tôi còn nhớ khi mình tham gia đội dự tuyển bóng đá ỏ trường hồi cấp II, sau giờ tập luyện mệt nhọc, tất cả chúng tôi đều ở lại để chia làm hai phe đá banh tiếp. Chẳng phải để rèn luyện gì cả, chỉ bởi vì đá banh thì vui, chơi với bạn bè thì rất vui.
Tôi còn quen một anh bạn làm nhân viên trong bệnh viện, chưa hề đi học chính thức về tin học, nhưng khi rảnh rỗi vẫn tự đọc sách để việt máy chương trình bằng VB để phục vụ cho công việc của mình và đồng nghiệp. Hay một ông bác tự mày mò học viết chương trình đơn giản, học thiết kế đồ họa để tự làm web cho mình. Thật là vui và thật là say mê. Họ cũng rất vui nếu tôi tặng họ những cuốn sách hay hay gửi cho họ những chương trình mẫu hữu ích.
Ngược lại, tôi chưa có dịp tặng những cuốn sách kiểu như “Nhập môn kế toán”, “Nghệ thuật bán hàng” cho ai đó mà tôi quen, để họ có thêm thú vui tiêu khiển.
Một công việc mà bản thân nó có thể đem lại niêm vui, sự thích thú một cách tự nhiên, vô tư, thì đó chắc chắn là một công việc tốt về lâu dài.
2) Làm phần mềm hướng mình đến những mục tiêu tốt đẹp
Ở bất kỳ công ty phần mềm nào, nhân viên luôn được khuyến khích:
* Nâng cao và cập nhật kiến thức chuyên môn.
* Rèn luyện ngoại ngữ.
* Rèn luyện kỹ năng giao tiếp, giải quyết vấn đề, kỹ năng trình bày,…
* Chăm chỉ, có trách nhiệm,….
Nếu bạn thực hiện tốt những việc trên, bạn sẽ được đền đáp về nhiều mặt: thu nhập, chức vụ,… Nghĩa là bạn cần đặt những mục tiêu tốt đẹp, và thực hiện những kế hoạch tốt đẹp.
Những công việc khác thì thế nào? Ai cũng hiểu mục tiêu của ngành y là cao đẹp, nhưng để bảo đảm cuộc sống tốt đẹp thì phần lớn bác sĩ phải thực hiện những kế hoạch chẳng tốt đẹp tí nào. Image Bây giờ thì thầy cô giáo cũng phải chạy xô, ép buộc học sinh rất nhiều. Image Thậm chí cũng có những công việc mà cả mục tiêu và kế hoạch đều không cao đẹp tí nào cả. Chẳng hạn mục tiêu cuối cùng là phải rút ruột được khách hàng, chén ép người khác,…. ImageImageImage
Nói dễ hiểu hơn, môi trường làm phần mềm bản thân nó là nơi tạo điều kiện cho mọi người nỗ lực vì những mục tiêu cao đẹp, để mọi bên đều có lợi (Win/Win). Còn nhiều công việc khác, nếu muốn tốt cho mình thì phải bon chen, thủ đoạn, nói chung lợi cho mình thì hại cho người khác và ngược lại (Win/Lose hoặc Lose/Win).
3) Làm phần mềm có thể giúp đem lại thu nhập cao
Lương bổng của kỹ sư phần mềm thì không thể giúp mình làm giàu được. Tính ra lại không bằng những ngành khác. Nhưng thử nghĩ lại xem, có ai làm giàu chỉ bằng đồng lương của mình không? Image
Trước tiên, hãy xem lại mục tiêu của bạn là gì?
1. Kiếm một công việc có lương cao nhất?
2. Có được tài chính để mình đạt được những mục tiêu khác trong cuộc sống?
Nếu mục tiêu của bạn là 1, thì làm phần mềm không phải là công việc phù hợp. Mà thật ra cũng khó có một công việc phù hợp với mục tiêu này, vì ngay khi bạn kiếm được một công việc có mức lương cao hơn, bạn sẽ lại thấy (hay nghe đồn thấy) có một công việc có lương cao hơn nữa.
Còn để đạt được mục tiêu thứ 2, bạn cần làm tốt 3 điều:
1. Biết cách kiếm tiền.
2. Biết cách tiêu tiền.
3. Biết cách dùng số tiền còn dư lại để sinh ra nhiều tiền hơn.
Nghĩa là, làm việc và làm giàu là hai việc hoàn toàn khác nhau. Kẻ nào cố gắng nhập chung lại để giải quyết cùng một lúc cuối cùng chỉ thêm thất vọng mà thôi.
Điều tuyệt vời là thế này: làm phần mềm là công việc rất tốt để bạn hoàn thành tốt điều thứ nhất trong 3 việc trên. Tuyệt vời hơn nữa là bạn có thể kiếm tiền một cách lương thiện.
Nếu muốn có nhiều tiền hơn, cái mà bạn cần không phải là một công việc mới, mà là học và làm thật tốt hai điều còn lại. Dĩ nhiên, trên đời cũng có thể có công việc có mức lương quá tốt đến nỗi bạn không cần quan tâm đến hai điều còn lại. Nhưng nó sẽ rất hiếm, và dù sao thì thực hiện tốt cả 3 điều vẫn dễ dàng và căn cơ hơn là chỉ cần làm đều thứ nhất.
Khi nào có thời gian, tôi sẽ nói nhiều hơn về vấn đề “cơm áo gạo tiền này”.
4) Làm phần mềm tạo điều kiện có được cuộc sống cân bằng
Muốn sống hạnh phúc thì chúng ta phải khỏe mạnh về thể chất lẫn đầu óc. Mà đối với mỗi thứ, cách tốt nhất để nó khỏe mạnh là phải vận động.
Làm phần mềm là cách tốt nhất để vật động đầu óc. Nói chung các công việc liên quan đến dịch vụ, làm việc văn phòng, dạy học, nghiên cứu, ít nhiều cũng giúp vận động đầu óc. Sau khi kết thúc công việc, bạn có thể sử dụng thời gian rảnh để vận động tay chân, chơi thể thao, làm những việc khác để bồi bổ cơ thể. Thật là dễ dàng (dĩ nhiên nếu bạn chịu cố gắng).
Những người làm công việc tay chân, cơ bắp thì không được thuận lợi như vậy. Tôi từng có thời gian làm rồi nên biết rõ. Sau một ngày làm việc đầu óc mệt nhoài, tôi có thể dễ dàng vận động gân cốt cho cân bằng. Nhưng sau một ngày làm việc tay chân rã rời, thật không dễ tí nào để dành thêm thời gian để vận động đầu óc. Đọc sách, chơi ô chữ, luyện vài bài toán Image Không đời nào làm được. Khả thi nhất là nằm dài xuống và coi một bộ phim lê thê, ướt át của Hàn Quốc. Cái đó thì thật ra chẳng giúp vận động đầu óc được một tí gì hết.
Một số công việc khác cũng độc hại không kém. Làm sếp chẳng hạn, hay đi tiếp khách để bán hàng cũng vậy. Bia rượu, thuốc lá, và có khi thêm mấy cái khoản nếu-không-nói-ra-thì-ai-cũng-hiểu, thật là một tai họa cho thể chất lẫn đầu óc. Image Uống xong một chai bia phải mất gần 1 giờ đồng hồ chạy bộ để khắc phục sự cố; nếu uống hết một két bia chắc phải mất hết một ngày không ăn uống gì để chạy bộ.
5) Và thử suy nghĩ tích cực về những suy nghĩ tiêu cực trước đó
Nếu mình làm phần mềm thì gia đình không “nhờ vả” gì được. Nhưng nếu nghĩ kỹ lại, thì thật là tốt. Ai trong chúng ta đều có gia đình, họ hàng, bạn bè, người quen để có thể “nhờ vả” những dịp như vậy. Thế thì khi nào mình cần, hay gia đình mình cần, thì cứ việc nhờ những người đó giúp đỡ.
Tôi muốn làm công việc mà mình yêu thích, làm người thực sự có ích; còn mấy việc “linh tinh và rắc rối” đó, chắc chắn có rất nhiều người có thể giúp đỡ tôi. Điều ngược lại thì tôi không muốn làm tí nào. Còn bạn thì sao?
Còn muốn tiếp xúc với bên ngoài nhiều hơn? Công việc lập trình đúng là không cho phép bạn tiếp xúc với nhiều người bên ngoài, nhưng đó là trong công việc. Lập trình không hề ngăn cản bạn sử dụng thời gian còn lại để làm những việc đó.
Đối với tôi, điều tuyệt vời nhất của công việc là nó không cho phép tôi gặp quá nhều người. Có nghĩa là nó sẽ giúp tôi không phải gặp những người mà tôi không thích, những người mà tôi và họ không đem lại sự thay đổi tốt đẹp cho nhau. Có nghĩa là nó giúp tôi quý trọng thời gian của mình, thời gian mà lẽ ra tôi phải dành cho những người tôi yêu thương nhất, những người yêu thương tôi nhất, những người có ý nghĩa đối với tôi nhất trong gia đình, công việc, sở thích,… Khi nhìn ra xung quanh, tôi thấy mình không thể làm một số công việc đơn giản bởi vì để làm tốt những việc đó, tôi phải hy sinh những điều có ý nghĩa nhất đối với tôi, để có được những điều mà thật ra chẳng có ý nghĩa gì về lâu dài cả, tôi phải làm bởi vì người ta yêu cầu tôi làm, hay là vì muốn được bằng như những người khác.
Vậy làm phần mềm thì lý thú hay là quá “cơ bắp”? Cũng nói về phần mềm, có người làm những việc rất high-tech, nhưng có người lại làm việc rất low-tech.
Thế nào là high-tech? Bạn có thể đọc cuốn sách “Nghệ thuật lập trình máy tính”
Thế nào là low-tech? Bạn thử đọc qua cuốn sách “Code Complete” Tôi đã đọc gần hết cuốn Code Complete, và đã từng cố gắng đọc cuốn “Nghệ thuật lập trình máy tính”, nhưng chỉ được vài chương của tập I là bỏ cuộc. Từ đó tôi hiểu mình thích hợp với phần low-tech khi làm phần mềm.
Điều hấp dẫn khi làm mấy cái low-tech này là gì? Đó là tư duy để hiểu đúng vấn đề cần giải quyết, phân tích những giải pháp có thể rồi chọn là giải pháp tốt nhất, dùng những kiến thức và công nghệ hiện có (những cái hiện có thôi, còn muốn tìm ra cái mới thì không thuộc về phạm trù ở đây nữa) để thiết kế giải pháp đó, hiện thực, rồi kiểm tra. Tất cả những việc trên luôn đặt dưới áp lực thời gian, áp lực về chất lượng.
Dĩ nhiên, nếu công việc lập trình là đáng chán thì nguyên nhân không phải bởi vì bản chất công việc là đáng chán; mà nguyên nhân là có sự khác biệt giữa nguyện vọng của bạn và thực tế bạn đang làm. Trong trường hợp đó, cái mà bạn cần không phải là một chức vụ mới (tôi không bao giờ muốn làm sếp để sai những người cấp dưới làm những việc mà bản thân tôi cũng thấy “è lưỡi”), không phải là một công ty mới, mà là một trong 3 cách:
1. Một công việc hoàn toàn mới, để thay đổi cái hiện tại.
2. Một suy nghĩ hoàn toàn mới, để thay đổi cái nguyện vọng.
3. Cả 1 và 2.
Tóm lại, mệnh đề “Làm phần mềm chẳng có gì cao sang và thật chán” là sai.
Lời kết
Lâu lắm rồi mới tập viết lại, thật là đã. Ở đây tôi chỉ mới đội mũ đen và mũ vàng để nhìn vào công việc mà mình đang làm. Khi nào rảnh chắc phải thử đội mũ trắng (dữ kiện, khách quan), hay các mũ màu khác để xem sao. Hay là có bạn nào giúp tôi làm việc này với.
Lập trình viên (người lập trình hay thảo chương viên điện toán) là người viết ra các chương trình máy tính. “Thảo chương viên điện toán” là một từ cũ, được dùng trước 1975, và đang trở nên ít phổ thông hơn. Hiện nay lập trình viên thường được gọi là người phát triển phần mềm (software developer).
Các lập trình viên thường có thể làm việc trên nhiều ngôn ngữ lập trình, trong đó chủ yếu là Java, C, C++, Delphi, PHP, ASP.NET, Visual Basic.NET, Python và C#.
Nữ bá tước Ada Lovelace được xem như là lập trình viên đầu tiên trong lịch sử.
—————————————————————————————————————————
Một lập trình viên thì cần có:
Khả năng suy nghĩ một cách logic
Trong lập trình thì logic chính là điều quan trọng nhất. Các bạn phải có khả năng giải quyết triệt để một vấn đề bằng phương pháp suy luận logic. Chính vì vậy, nếu không có khả năng suy luận logic thì tôi có thể khẳng định rằng lập trình không phải là công việc phù hợp với bạn. Bạn sẽ trở nên hoàn toàn mất phương hướng khi theo đuổi các đoạn code của chương trình, các vấn đề về debug (gỡ rối), về lỗi… và hầu như trong mọi trường hợp bạn sẽ không tìm được giải pháp đúng nhất cho vấn đề.
Khả năng tiếp cận vấn đề có thứ tự và luôn chú ý tới chi tiết
Các lập trình viên mất rất nhiều thời gian trong việc kiểm tra hàng ngàn, hàng vạn dòng mã phức tạp. Vì vậy họ rất cần giải quyết vấn đề một cách có thứ tự. Chú ý tới các chi tiết nhỏ cũng rất quan trọng. Việc thiếu vài thứ tưởng chừng tầm thường như một dấu chấm, dấu phẩy cũng có thể khiến bạn mất nhiều ngày để tìm lỗi.
Các chương trình của các lập trình viên giỏi luôn dễ đọc và có rất nhiều chú thích để chỉ rõ tại sao họ lại viết đoạn mã như vậy và cái gì sẽ xảy ra trong chương trình. Vì vậy, bạn cần có kỹ năng truyền đạt thông tin tốt cũng như viết chương trình của mình một cách mạch lạc, có cấu trúc.
Khả năng làm việc nhóm
Thật khó có thể tưởng tượng một dự án lập trình có thể được thực hiện bởi một người. Công việc ngày nay thường đòi hỏi sự cộng tác của cả một đội ngũ lập trình viên. Chính vì thế, khả năng làm việc nhóm là rất quan trọng. Bạn phải biết cách phối hợp công việc với cộng sự, khả năng thuyết trình, giao tiếp, ứng xử của bạn sẽ được sử dụng tối đa trong môi trường làm việc này.
Khả năng làm việc một mình trong thời gian dài
Tuy khả năng làm việc nhóm là rất quan trọng nhưng bạn cũng phải có khả năng làm việc độc lập. Phần lớn công việc của một lập trình viên đều liên quan đến việc ngồi trước màn hình máy tính, đọc/viết mã và các loại tài liệu khác. Nếu bạn cảm thấy thú vị khi ngồi hàng giờ đọc một quyển sách thì có lẽ bạn cũng thích hợp với nghề lập trình. Bạn cần phải biết cách tổ chức tốt công việc và thời gian của mình để thực hiện các công việc trong thời hạn của dự án.
Các kỹ năng thiết kế
Công việc phân tích và thiết kế luôn là công việc rất quan trọng của lập trình. Bạn có thể phải thiết kế toàn bộ một hệ thống cho kinh doanh, bao gồm các bảng lưu trữ thông tin, các giao diện để nhập xuất thông tin hay các tài liệu kỹ thuật liên quan đến chương trình… Bạn phải giỏi trong việc lắng nghe và chuyển đổi các yêu cầu của các khách hàng đơn lẻ, các nhóm khách hàng và thậm chí cả việc kinh doanh thành các ứng dụng. Các chương trình của bạn phải dễ dùng và có hiệu quả cao. Do vậy, bất kỳ kỹ năng thiết kế nào của bạn cũng sẽ rất hữu ích trong lĩnh vực này.
Tính kiên nhẫn
Các vấn đề mà các lập trình viên phải giải quyết thường là các vấn đề khó có thể giải quyết ngay lập tức. Nó mất nhiều giờ, nhiều ngày, thậm chí nhiều tháng làm việc một cách cẩn thận để giải quyết, tìm hướng đi. Nhiều khi bạn đi sai hướng lại phải quay lại giải quyết từ phần đã giải quyết đúng và bắt đầu lại.
Khả năng tự học cao
Không trường lớp nào có thể đào tạo cho bạn tất cả những thứ bạn cần cho công việc lập trình sau này. Chính vì thế, khả năng tự học qua sách vở, tài liệu, internet và qua cả bạn bè nữa là không thể thiếu. Kết hợp với những dự án làm việc trong thực tế, bạn sẽ dần dần thành thạo những gì mình đã tự học được.
Các mặt tốt của nghề lập trình
Thu nhập
Tiền lương của một lập trình viên thường rất khá, khởi điểm thường là khoảng 200 USD. Kể cả những lập trình viên mới và có thu nhập thấp nhất cũng vẫn có thu nhập cao hơn mức trung bình của cả nước. Nhiều công ty sẵn sàng chi trả những khoản tiền lương kếch xù để thu hút những lập trình viên giỏi. Đó là chưa kể các khoản tiền thưởng, bảo hiểm và các phí dịch vụ khác.
Niềm vui trong công việc
Cảm giác giải quyết được một vấn đề khiến bạn phải đau đầu nhức óc hàng giờ, thậm chí hàng tuần phải nói là rất phấn chấn. Việc lập trình thường là sự pha trộn giữa các dự án lớn và các lỗi nhỏ cần phải sửa và cả hai vấn đề trên đều có sự hứng thú riêng của nó – cảm giác của việc hoàn tất một dự án lớn hoà với niềm vui khi sửa được những lỗi chương trình nhỏ và làm cho người dùng hài lòng hơn với chương trình của mình.
Tự mình quyết định
Nếu bạn là người ghét bị người khác bắt phải làm việc này như thế này, làm việc kia như thế ấy và chỉ thích tự mình đưa ra cách làm cho công việc của riêng mình thì bạn sẽ hài lòng với việc lập trình. Cấp trên của bạn sẽ giao cho bạn các công việc và có thể đưa ra một vài ràng buộc về chúng như thời gian hoàn tất, trình tự thực hiện nhưng chính bạn là người quyết định phải giải quyết công việc như thế nào.
Các khó khăn
Dễ lâm vào cảm giác chán nản
Có lần, tôi phải mất cả ngày để giải quyết một vấn đề và hoàn toàn bế tắc. Sau đó, tôi nhận ra rằng lỗi trong chương trình chỉ là một dấu chấm bị thiếu. Chắc bạn cũng có thể hiểu được cảm giác của tôi lúc đó, cực kỳ bực dọc và chán nản. Đôi lúc bạn sẽ gặp những tình huống mà bạn sẽ chỉ muốn vứt quách cái computer vào sọt rác cho rồi. Nhiều khi bực dọc và chán nản là không thể tránh được. Tuy nhiên, vấn đề càng phức tạp thì niềm vui có được khi giải quyết được chúng càng cao.
Làm thêm giờ là việc thường xuyên
Ít có lập trình viên nào tự nhận là mình chỉ làm theo giờ giấc quy định của công ty. Áp lực về thời gian và khối lượng công việc đối với lập trình viên là rất lớn. Nếu phần việc của bạn có thể khiến cho cả dự án trễ một ngày thì bạn không thể từ từ giải quyết chúng được. Trong đa số trường hợp bạn phải tự mình làm thêm giờ mà không có thêm khoản lương phụ trội nào.
Lập trình không phải là một việc dễ dàng
Đây là một công việc đòi hỏi kỹ năng cao và bạn phải luôn có khả năng tập trung tối đa vào công việc mình đang làm. Nhức đầu là một bệnh rất thường gặp của các lập trình viên. Có khi bạn đang nằm ngủ nhưng trong đầu vẫn là những hình ảnh của những đoạn mã chương trình đang nhảy múa, những vấn đề nan giải trong ngày cứ thế mà hiện ra khiến bạn luôn trong tình trạng phải suy nghĩ. Nếu bạn muốn có một công việc không căng thẳng, không stress thì đừng nên làm lập trình.
Có lẽ, bây giờ các bạn đã có thể tự trả lời câu hỏi tôi nêu ở đầu bài viết cho chính bản thân mình. Tuy nhiên, không có một công thức chung nào cho nghề lập trình. Những vấn đề tôi nêu trong bài viết này chỉ là những đánh giá cá nhân của riêng tôi, qua những gì tôi đã tiếp xúc trong thực tế. Còn đối với các bạn, cái quan trọng là có niềm đam mê lập trình. Điều đó sẽ làm cho các bạn có được niềm vui trong công việc, để những khó khăn của nghề lập trình chỉ còn là “chuyện nhỏ”…
———————————————————————————————————————-
Không bao giờ sợ phải bắt đầu.
Tôi sẽ không viết hai lần cùng một đoạn mã giống nhau.
Khi phát triển phần mềm, hãy nghĩ đến tương lai.
Viết mã càng ít bao nhiêu ,mắc lỗi càng ít bấy nhiêu.
Bạn sẽ không bao giờ trở thành một lập trình viên giỏi nếu chỉ tập luyện 2giờ mỗi ngày.
Tất cả các công việc đều có phần thú vị và phần buồn chán, không có ngoại lệ.
Kẻ thù số một của cáclập trình viên là gì? Kiêu căng.
Lập trình viên sử dụng hầu hết thời gian của mình vào việc sửa lỗi. Chương trình càng dễ đọc bao nhiêu càng tiết kiệm thời gian bấy nhiêu.
Trường học khiến các bạn tin rằng chương trình của bạn chỉ cần thỏa mãn một mình bạn là đủ. Điều này hoàn toàn sai lầm. Chương trình phải thỏa mãn khách hàng và các lập trình viên khác.
………
Bạn cần gì để trở thành một lập trình viên?
Tôi không nghĩ rằng có một vài yêu cầu khó khăn nào đó khiến bạn không thể trở thành lập trình viên, tôi chỉ đơn giản nghĩ rằng bất cứ ai có một ít (hay rất nhiều) mong muốn đều có thể trở thành lập trình viên. Vấn đề chỉ là bạn dành ra bao nhiêu thời gian. Điều đó có nghĩa là tôi nghĩ có nhiều quan niệm sai lầm về những kỹ năng cần có để trở thành lập trình viên. Trước tiên, bạn không cần phải thật xuất sắc trong môn Toán, bạn chỉ cần có khả năng hiểu được những điều cơ bản. Dĩ nhiên là có những ngoại lệ, nếu bạn có hứng thú trong lĩnh vực đồ họa hay lập trình game thì một kiến thức Toán vững vàng sẽ giúp bạn rất nhiều. Một quan niệm sai lầm khác là bạn cần phải là thiên tài logic. Nói chung, điều đó không phải là bắt buộc, dĩ nhiên tư duy logic càng tốt thì càng dễ dàng hơn khi tiếp cận thế giới lập trình. Vậy thì kỹ năng nào là cần thiết? Bị thúc đẩy bởi những thách thức là yếu tố quan trọng nhất. Đơn giản là vì bạn đang tham gia vào một trò chơi trong đó thách thức xuất hiện trong mọi ngõ ngách. Một điều quan trọng khác là phải không ngừng theo đuổi mục tiêu, nhưng vẫn phải luôn uyển chuyển để không đuổi theo một cách mù quáng những mục tiêu xa vời.
………
Những thứ nên đọc!
Đọc sách là nguyên tắc cơ bản… Và điều này càng chính xác trong ngành phát triển phần mềm. Nếu bạn là người không thích đọc sách, có lẽ bạn nên chọn một công việc khác. Bởi vì đọc sách chính là chìa khóa để củng cố và hiện thực hóa những tiềm năng của bạn. Bạn có thể tự hỏi vì sao tôi có thể viết nhiều phần mềm trong thời gian ngắn như thế? Có 3 lý do chính: kinh nghiệm, những đồng nghiệp tài năng mà tôi luôn hài lòng khi được làm việc chung và cuối cùng là những quyển sách tôi đã đọc. Tôi không thể giúp bạn có được kinh nghiệm và những bạn đồng nghiệp giỏi, nhưng tôi có thể giới thiệu cho bạn những quyển sách hay:
Code Complete, ISBN: 1-55615-484-4.
Đây là quyển sách cần thiết cho mọi nhà phát triển phần mềm, bất kể họ đang dùng ngôn ngữ lập trình nào. Nó bao gồm nhiều bài thực hành và nhiều kỹ thuật liên quan đến phong cách viết mã.
Rapid Development, ISBN: 1-55615-900-5.
Quyển sách này hướng đến việc lập kế hoạch cho một dự án, tập trung vào những lỗi tiềm ẩn có thể mắc phải,… Đây là quyển sách cho bạn biết thế giới thực sự của ngành phát triển phần mềm.
Dynamics of Software Development, ISBN: 1-55615-823-8.
Quyển sách này có một hướng tiếp cận khác, tập trung vào việc làm việc theo nhóm và động lực của việc lập trình. Đây là điều thỉnh thoảng bị xem nhẹ, và hậu quả có thể được thấy trong nhiều dự án bị thất bại.
The Mythical Man-Month, ISBN: 0-201-83595-9.
Đây thực sự là một quyển sách nên đọc. Dù rằng nó đã được viết cách đây hơn 20 năm, thế nhưng vẫn có nhiều điều có thể áp dụng.
Programming Windows, ISBN: 1-57231-995-X.
Nếu bạn có ý định lập trình trên Windows (bằng C hay C++), bạn cần phải mua quyển sách này. Theo tôi đây là quyển sách dạy lập trình Windows tốt nhất.
The Art of Ware, ISBN: 1-55851-396-5.
Tôi là một người hâm mộ cuồng nhiệt Tôn Tử, do đó tôi rất thích thú khi đọc quyển sách này. Đây là một quyển sách có phong cách viết rất lôi cuốn, với những bài học trong binh pháp Tôn Tử được vận dụng vào ngành phát triển phần mềm.
———————————————————————————
(tất nhiên là tổng hợp từ internet rồi)
Nếu mơ ước của bá vương là thống nhất thiên hạ thì mơ ước của lập trình viên là thống nhất thế giới mã nguồn.
/*************************************************************
- lại vẫn kiểu hỗn chiến cũ, ông nói gà bà nói vịt. kiên nhẫn đọc 10 trang ở topic về Fallout 4 mà toàn cãi nhau về Fallout 1,2,3 , cắt tỉa mỏi cả tay mới đc vài bài.(nhưng kể ra cũng vui, Fallout đúng là huyền thoại)
- Có thật là trong Fallout3 mọi việc chỉ còn được giải quyết một cách đơn giản là móc súng ra mà nói chuyện ?
- rất bực khi k thấy đc 1 người khen Fallout Tactics (thậm chí nhiều người con chê dở, k biết mấy người có tham gia buổi trainning nào k?)
- cái chất của Fallout là những gì ?
- cái WYSIWYG của turmblr hay thật. hâm mộ. (bố khỉ, vừa khen hay thì cái giao diện lại k hỗ trợ >_<)
*************************************************************/
#include <http://forum.gamevn.com/showthread.php?t=500835>
void main()
{
//——————————————————————————————————————
Tôi chưa chơi FO3 nên không biết FO3 có Easter Eggs giống như FO2 không, nếu không có là lại thua thêm 1 điểm nữa rồi. Vì Easter Eggs góp phần không nhỏ đến tính thú vị của FO2 , máu me đấy nhưng cũng cực kì funny. À còn cả Dialog của Random NPC nữa chứ, vui nhất là mặc Power Armor vào New Reno rồi nc với bọn gái điếm, FO3 có không
hay chỉ bắn bắn và bắn ??
//————————————————————————————————————————
Nó hay nếu không mang tên Fallout, còn mang tên Fallout thì chỉ là sh!t. Thế thôi.
//————————————————————————————————————————
từ nay sẽ áp dụng luật của các forum game quốc tế nhé
bạn nào bảo : “FO3 dở , như sh!t ko bằng FO2 ” là ăn chém nhé
nhưng bảo : “FO3 dở , như sh!t ko bằng FO2 vì …….. ” thì ko sao nhưng nhớ điền vào cái ……. kia 1 cái lý do nào nó chính đáng 1 chút nhé !
dở hay ko ở mỗi người ! ko nên vào phán 1 câu kiểu đấy ! nhìn mất cảm tình lắm !
//————————————————————————————————————————
Từ bài viết của voduyhai
Hê hê, ko có Bethesda thì nó sẽ như vầy nè:
5 năm sau: bồ chơi game Fallout 2 chưa > Có nghe nói chút chút về nó 
10 năm sau: bồ chơi game Fallout 2 chưa> Rớt ra ngoài là cái gì?? 
//————————————————————————————————————————
Fallout 3 dở hơn Fallout 2 vì:
1. Đạn mỗi cỡ thông dụng như 5mm, 10mm v.v… chỉ có một loại duy nhất, còn Fallout 2 có nhiều loại cho một cỡ đạn thông dụng như AP, JHP, FMJ cho từng các loại giáp khác nhau.
2. Giáp trong Fallout 3 chỉ có một chỉ số giảm sát thương duy nhất, còn Fallout 2 thì mỗi loại có nhiều chỉ số chống từng loại sát thương khác nhau, ví dụ: Metal Armor chống sát thương Laser tốt hơn nhưng chống sát thương vật lý và lửa kém hơn Combat Armor, Tesla Armor chống sát thương Laser, Plasma và Electric tốt trong khi chống vật lý chỉ ngang giáp da và lửa ngang giáp Metal.
3. Giáp không còn chỉ số Armor Class dùng để tăng tỉ lệ né tránh đạn, nếu chỉ số này trong Fallout 3 thì nên làm tăng khả năng phản xạ né đạn trong chế độ V.A.T.S và tốc độ duy chuyển của người mặc sẽ tốt hơn.
4. Súng cũng như trên chỉ còn một chỉ số damg duy nhất chứ không phải phân loại vật lý, laser, plasma, electric hay lửa.
5. Không có vụ nâng cấp vũ khi như Fallout 2, như gắn thêm ống nhắm cho Hunting Rifle, hay Night Vision để nhìn ban đêm, hay nâng cấp hộp tiếp đạn cho súng ngắn, hộp năng lượng cho súng Laser Plasma để trữ nhiều đạn hơn trước khi phải nạp đạn và sát thương mạnh hơn.
6. Không có xe để di chuyển, ít ra cũng nên có xe tự chế để đi tạm.
7. Không có việc chuyển sang chế độ Turn Base khi chiến đấu, chiến đấu Turn Base như trong góc nhìn của VATS sẽ thật hơn và hay hơn đồng thơi làm hài lòng fan Fallout yêu chế độ này. Còn ai không thích thì cứ để Real Time mà bắn.
8. Yếu tố giới tính không nổi bật như Fallout 2
9. Yếu tố cuối cùng dù không có trong Fallout 2 nhưng cũng chỉ cho có chứ không thật sự hay là chế vũ khí, số lượng loại đồ chế thật sự không nhiều và phong phú. Arcanum có phần chế đồ này hay hơn rất nhiều như chế tạo đạn dược, linh kiện để dùng cho việc chế đồ ở mức cao hơn, thậm chí còn chế cả robot
.
10. Không có chế độ nằm như Fallout Tactics, chế độ ngồi nhiều lúc vẫn cao hơn chỗ núp, vẫn bị bắn tỉa.
//———————————————————————————————————————-
A_Dragon
VAST chỉ là turn-base nữa mùa chỉ giống như 1 skill trong 1 game FPS thôi, mà chuyển qua real time thì lại trở thành quá dễ vì AI của địch là dạng bán rpg lại ko xuất hiện nhiều cùng lúc.
Các chỉ số dùng để tăng tính thực tế nhưng FO3 lại bỏ qua thì có người đã nói rồi ko nhắc lại nữa.
Nói về teleport, khi teleport thì thời gian vẫn trôi như sẽ đến ngay vị trí cần đến, ko gặp trở ngại gì. Suprise encouter đâu rồi 
Còn nếu nói fan sẽ làm 1 bản mod đưa hết những tinh túy của FO2 lên FO3 thì nói làm gì nữa 
game để giải trí, đúng. Thế ko đc quyền phàn nàn à, bọn làm game còn thích nghe fan phần nàn nữa là đằng khác, cty nào chả có 1 đội ngũ chuyên đi lắng nghe feedback từ gamer để cái tiến game của mình ngày 1 tốt hơn.
//———————————————————————————————————————-
xp_virus
nói tóm lại 1 câu ; không cãi vã nửa ; như bethsoft nói ngay từ lúc dự án mới được sinh ra ; là bethsoft sẽ không bước theo vết bánh xe của các phiên bản trước ; nhưng sẽ giữ lại những cái cần phải có cho dòng fallout ; có lẽ đầu óc gamer ko bằng đầu óc các chuyên gia phát triễn game đâu nên đừng phàn nàn ; hơn nửa không 1 luật lệ nào bắt buộc phiên bản sau phải giống phiên bản trước ; vậy thì còn gì là phiên bản mới ; thường người ta sẽ hỏi ; cái mới có gì mới ko ? có gì hay không ? chứ ko ai hỏi cái mới có giống cái cũ ko ? vậy chơi làm gì ?
; mọi người confirm chỗ đó ; bethsoft muốn F3 tái sinh và dành cho tất cả fan RPG ; turnbase và cả FPS ; vậy số lượng người chơi sẽ tăng cao ; và rộng hơn ; vì thời buổi này FPS đang lên ngôi ; trong khi F3 ra đời đã mang theo gen di truyền từ Fallout 2 ; nhất là VATS ; để cho gamer nhìn là biết đó chỉ có là fallout chứ không phải trò khác ; thì bethsoft đã thành công ; và kết quả là gì ? top 1 trong 3 trang web game ; hàng trăm ngàn đĩa được đặt trên trang bestbuy bà amazon 2 ngày trước khi phát hành ; và thành 1 chủ đề hot mà chúng ta đang bàn luận ; rõ ràng ; bethsoft đã làm rất tốt và hài lòng gamer ; nếu cứ phải quy định F3 phải giống F2 điểm này điểm kia thì thà chơi lại Fallout 2 cho lành ; công nghệ game ngày càng phát triễn và tạo ra thêm những thứ mới ; những phiên bản cũ chỉ có giá trị rút kinh nghiệm chứ không hẳn là phải dựa theo y chang thì gamer mới hài lòng ; còn theo những điều bạn panzercracker nói ở trên thì tôi có 1 số ý kiến như sau :
- chỉ số armor class thật sự không cần thiết lắm nếu nói rằng nó để thể hiện việc né tránh đạn ; trong F3 vẫn có perk giúp giảm damage và né đạn và thật sự không cần phải làm bổi bật vì F3 là 1 chiến trường thật ; 1 gốc nhìn 3D bắn trực tiếp vào người chứ không như F2 chỉ đơn thuần bấm vào người rồi bắn ; điểm đó F2 thua
- còn việc các loại đạn AP, JHP, FMJ…. thật sự nó có quan trọng trong quá trình chơi không ? câu trả lời là ko wan tâm ; bạn có nghĩ rằng đạn AP có bắn xuyên nổi power armor không ? và kết quả vẫn là no damage ; hơn nửa F2 chỉ thông dụng những loại súng như bozar ; turbo plasma rifle ; YK32P Pluse rifle ; gauss rifle và mega power fist là thật sự hữu dụng và đánh khắp thiên hạ vô địch thủ ; bạn có nghĩ rằng cầm khẩu pacor jackhammer hay combat shotgun bắn bọn enclave không ? không thể nào.. còn F3 thì không ; combat shotgun hay Chinese assault rifle có thể rỉa tận mặt bọn enclave cho đến chết chứ không vô dụng như trong F2 ; điểm này F2 tiếp tục thua
- về việc nâng cấp súng ; ngoài việc thêm đạn hay tăng 1 chút damage thì không nói ; còn vụ night vision có thật sự hữu dụng không ? có chắc chắn là bắn chính xác hơn trong ban đêm không với cây FN Fal assault rifle ?
chỉ là hình thức thôi bạn hữu
trong khi F3 có thể repair up đồ bền lên cao và tăng được max damage ; giúp đạn bay chuẩn hơn
- F2 có xe di chuyển ? vâng ; vì map nó nhỏ ; di chuyển dễ ; còn F3 có teleport ; có nhanh hơn là phi xe tằng tằng trên đường không ? nếu có xe hơi thì teleport sẽ dư thừa ; cho dù là xe hơi ; di chuyển cũng sẽ chậm hơn teleport ; rõ ràng teleport rất thuận tiện trong việc làm quest ; điểm này F2 thua tiếp
- Nếu xuyên suốt game toàn VATS với VATS ; vì VATS sẽ rút gần đến địch và chọn điểm bắn ; bạn tưởng tượng 1 đám mutant 10 con mà bạn cứ bắn kiểu đấy thì có chán không ? quá chán ; hết AP bạn cứ chuyển về dạng realtime mà bắn ; như thế hay hơn nhiều
- Ai bảo yếu tố giới tính không quan trọng
cứ chơi thử char nữ sẽ thấy sự khác biệt ; và có những perk chỉ char nữ mới có ; khác cả cách đối thoại với NPC , F2 mới là không nổi bật giới tính ; bạn nhầm rồi 
- à ; còn chế độ nằm thì chịu ; còn chế độ ngồi là dùng để cho skill sneak ; hidden for hide ; steal hoặc move silent ; chứ không hổ trợ cho bắn phá
mặt dù ngồi sẽ tăng chính xác trong VATS lên 3 - 5%
xong ; F2 trên lý thuyết là thua F3 về mặt game play ; đồ họa ; âm thanh ; cốt truyện và lẫn hiệu ứng chiến đấu ( chiếu chậm ; nát sọ ; đứt đầu ; đứt tay chân…)
mình mong rằng bài review so sánh F2 và F3 của mình sẽ giúp các anh em hiểu rõ hơn 1 chút về sự khác biệt và cái hay riêng của 2 phiên bản 
GL & HF
//———————————————————————————————————————-
Nav B.D
Nếu như không được đưa ra những đánh giá không tốt, tiêu cực về 1 game mà bạn chơi chỉ vì ‘nếu không thích thì đừng chơi’ thì thật là vớ vẩn. Vậy tức là nếu bạn chơi 1 game thì bạn chỉ được phép đưa ra những đánh giá tốt, tích cực về nó sao?
- Những fan cũ của series Fallout (gồm cả tôi) không hề bực hay ghét bạn vì bạn thích Bethesda, Fallout 3, mỗi người đều có những sở thích, những cảm nhận khác nhau. Chúng tôi chỉ khó chịu khi bạn cứ cố tìm cách nói với chúng tôi về những cái hay ho, vượt trội của Fallout 3 so với Fallout 1,2; rằng cái ý tưởng Bethesda phát triển tiếp series Fallout là một điều tuyệt vời như thế nào.
- Mỗi người đều có những suy nghĩ, cảm nhận và sở thích khác nhau, ở đây không có chuyện đúng hay sai mà chỉ là sự khác biệt. Vì thế những điều đó nên nhận được những đánh giá về nó trên tinh thần lịch sự và tôn trọng lẫn nhau. (nếu ko thì $ày hãy nói chuyện với khẩu A3-21’s Plasma Rifle của #ao nhá
). Cái này tôi viết đặc biệt gửi đến bạn Panzer và những bạn anti-Panzer khác.
P/S: to xp_virus không hiểu bạn này thế nào, chứ nếu trong Fallout 3 mà thiết kế thêm một quả xe bụi bặm hoặc bặm trợn + 1 thùng đồ đằng sau (kiểu như trong Mad Max ấy), để có thể vi vu trên hoang mạc thì có lẽ trên GameSpot bây giờ có lẽ chấm Fallout 3 10/10 ấy chứ. (Nhưng có lẽ với địa hình trong Fallout 3, thì ước mơ của tôi khó có thể thành hiện thực được, có lẽ đợi đến Fallout 4 thôi.)
//——————————————————————————————————————
nhớ lại thời tiền sử :))
- Thì cày đi cày lại cái fallout 3 tới khi nó ra fallout 4 là đẹp mà bác
tính từ hồi chơi fallout 2 tới giờ dễ 6-7 năm rồi chứ ít à 
- 6-7 năm thôi à ? mình là 10 năm rồi
thay đến 4 đời PC rồi 
- hồi chơi Fallout 2 máy tui là máy P2 400 ; ram 64 VGA 8MB
- p1 166MHz, ram 65, VGA 4MG vẫn chiến tốt.
- Celeron 450Mhz, ram 32Mb, VGA 4Mb, HDD 4GB
lúc đó là con pc trong mơ 
- P MMX 166Mhz , ram 16m , vga 1 , HDD 1,6G ! mỗi lần load lại là trời ơi luôn 
- pentium (chẵn), 133Mhz (no MMX [-o<), ram 18mb, hdd 1,6 gb. cũng nhờ vậy mới thấy giá trị của những lần chôm đồ hụt hay nói năng cẩu thả 
//—————————————————End————————————————————
}
gần đây dùng cái thân xác này hoang phí quá T_T, phải lập kế hoạch bảo trì thôi.

Mitsumi Optical wheel mouse
- Optical sensor for nearly all surfaces
- Resolution 400 dpi
- Available in 4 different colours: beige, black, grey(bi-colour), silver/dark translucent