Thứ Tư, 28 tháng 10, 2015

Đây không phải là điều mình tự nói với mình đâu, mà là điều mình muốn nói với bạn đấy. Mình nhắc lại một lần nữa nhé: Hãy ngồi xuống và viết blog đi nào.
Trước khi lắc đầu nguầy nguậy, đưa ra vô vàn lý do để chống chế: mình không có thời gian, biết gì mà viết, viết có được gì đâu … Hãy chịu khó bỏ chút thời gian quý giá của bạn, đọc hết bài viết này rồi bắt tay vào viết nhé.

Time-to-Share

Viết blog có được lợi lộc gì không?

Dĩ nhiên là CÓ chứ. Viết blog là một chuyện mất nhiều thời gian và công sức, nếu như không được lợi lộc ai lại đi viết blog phải không nào. Một blog về IT sẽ mang cho bạn những lợi ích sau:
  • Giúp bạn xây dựng và nâng cao thương hiệu bản thân: Mình nhận được sự tôn trọng từ mấy anh đồng nghiệp vì học thấy trên mạng và theo dõi blog của mình. Nếu bạn là senior, team leader, việc có 1 blog về IT sẽ làm đàn em nể nang, sếp coi trọng bạn hơn. Lúc xin việc, chỉ cần có CV trên linkedin, mộtaccount 2000 rep trên stackoverflow, 1 blog IT, bạn sẽ được đánh giá cao hơn hẳn các ứng viên khác nhé.
  • Mở rộng mạng lưới quan hệ: Nhờ việc viết blog mà mình làm quen được khá nhiều bạn, từ senior, junior cho tới các bạn sinh viên. Các mối quan hệ này khá hữu ích nếu bạn muốn chuyển việc, tham khảo mức lương.
  • Nâng cao trình độ và khả năng viết lách: Muốn có một blog, dĩ nhiên là bạn phải …. viết. Bạn sẽ phải tự đốc thúc mình tìm cái gì để viết, viết thế nào cho hay. Trong quá trình đọc sách, tìm hiểu những thứ hay ho để viết, trình độ của bạn sẽ tăng lên đáng kể. Khi viết chúng ra, bạn sẽ nhớ rõ, nhớ lâu hơn, khả năng trình bày cũng càng ngày càng tiến bộ. Cái khả năng trình bày/chém gió/thuyết trình này quan trọng lắm đấy nhé, nhiều khi nó quyết định vị trí – mức lương của bạn đấy.
blog
Nghe có vẻ cũng hấp dẫn phải không. Chắc bạn cũng đang háo hức muốn bắt đầu, nhưng lại ngần ngừ vì một số lý do dưới đây…

Thời gian rãnh rỗi đâu mà viết

Mình nhắc lại: Viết blog là một chuyện khá mất thời gian. Ngoài thời gian viết, bạn còn phải suy nghĩ đề tài, tìm hiểu về điều mình muốn viết, tìm hình minh họa. Thời gian cho một bài viết là khoảng 2-4 tiếng, chưa kể những bài có code demo phức tạp.
Nếu chưa quen, bạn có thể viết 1 tuần/bài, siêng năng hơn thì 2 tuần/bài. Thử ngẫm lại xem, 4 tiếng/tuần không phải là 1 con số lớn: chỉ bằng 5 ván dota, 8 ván LoL, hoặc 1 buổi tối xem phim với gấu. Chỉ cần cắt tí thời gian Dota/LoL/Facebook/phim ảnh lại, bạn sẽ có 1 blog của riêng mình, được vô số những lợi ích mà mình đề cập phía trên.
No-Time

Mình có biết gì đâu mà viết

Bạn nghĩ rằng mình chỉ là sinh viên năm 2, mới ra trường, biết gì đâu mà viết? Dễ thôi, hãy tìm hiểu những điểm hay của ngôn ngữ lập trình mình giỏi nhất, rồi chia sẻ nó với bạn bè.
Hoặc nếu bạn vừa học về OOP, SOLID, về SQL, hãy viết một post giải thích lại những điều mình học cho người khác, bạn sẽ nhớ và hiểu rõ hơn. Các cụ có câu “Học thầy không tày học bạn“, có thể các bạn SV khác sẽ thấy những điều bạn viết dễ hiểu, dễ thấm hơn so với bài giảng lê thê buồn ngủ của các thầy thì sao?
Bạn muốn viết một cái gì đó, nhưng người khác đã viết về nó rồi? Đừng lo, cứ viết,bằng ngôn ngữ của chính bạn. Có thể bạn sẽ tìm ra cách giải thích hay hơn, dễ hiểu hơn.
Bạn sợ mình chưa nắm rõ vấn đề, viết lung tung sẽ bị ném đá. Đừng lo, cộng đồng mạng rất là rãnh rỗi và sẵn lòng hỗ trợ cho bạn. Nếu bài viết của bạn có đôi chỗ sai sót, họ sẵn lòng bỏ thời gian giảng giải (ném đá) cho bạn. Hãy chia sẻ kiến thức (có thể sai) của mình để nhận lại kiến thức đúng đắn hơn nhé.
1

Nghe hay đấy, chỉ mình cách bắt đầu đi nào

Lập một blog vô cùng đơn giản. Bạn chỉ cần vào https://wordpress.com/, đăng kí một tài khoản, chọn một cái tên miền cho blog. Tiếp theo, bạn chỉ cần chọn themes, đặt một cái title thật kêu, đăng một cái banner thật ngầu và oách, thế là bạn đã có mộtblog.
Tìm nội dung để viết cũng dễ thôi. Nếu bạn giỏi C, C++, hãy viết về nó, tài liệu tiếng Việt của mấy thằng này khá ít. Đọc một cuốn sách hay, hãy giới thiệu nó cho mọi người. Nghĩ ra cách học mới, hãy đăng lên để người khác vào chia sẻ. Điều quan trọng là phải giữ nhịp độ viết. Cuộc sống là một cuộc thi marathon, không phải thi chạy nước rút. Đừng viết nhiều khi sung, chán thì bỏ xó, hãy giữ nhịp độ 1,2 bài/tuần. Dần dần blog của bạn sẽ lớn dần, có nhiều nội dung hơn.
Giai đoạn đầu, blog của bạn sẽ vắng như chùa bà đanh, một ngày chỉ khoảng 5-10 lượt xem. Đừng lo, đây là giai đoạn để bạn tạo content cho blog, hãy cứ giữ thói quen viết bài đều đặn, chịu khó quảng bá, dần dần mọi người sẽ biết tới blog của bạn thôi.
stas
Những tháng đầu, cả tháng mình chỉ được khoảng 1-200 views, trong khi hiện tại một ngày mình được 500-800 view lận. Hãy tự đặt mục tiêu, tự thưởng cho mình khi blog của bạn đạt mốc 1000 view50 bài viết, … bạn sẽ thấy hào hứng hơn nhiều, có khi còn vui hơn viết code ấy.
Vậy thì bạn còn chờ gì nữa, ngồi xuống và bắt đầu viết blog thôi nào.

Thứ Ba, 27 tháng 10, 2015

     Yêu thích công nghệ thông tin từ khi được tiếp xúc với máy vi tính vào năm lớp 8, mình quyết định theo ngành này khi vào đại học. Từ khi vào cấp 3, mình đã mày mò, tự lên mạng tìm hiểu và học lập trình. Đến nay đã được 10 năm, từ lúc học đại học cho đến khi đi làm, mình đã tiếp xúc với rất nhiều IDE khác nhau (gọi nôm na là công cụ hỗ trợ lập trình), máy tính của mình lúc nào cũng phải có vài IDE để phục vụ cho từng ngôn ngữ lập trình khác nhau, từng nền tảng khác nhau. Điều này khiến mình phải học cách sử dụng của từng IDE và gây ra một cảm giác không đồng nhất khi lập trình.

     Từ khi biết đến Visual Studio, IDE cực chất, cực mạnh mẽ và cực dễ sử dụng của Microsoft, công việc của mình được thuận lợi hơn, mình có thể làm được nhiều thứ hơn trước kia. Phiên bản đầu tiên mình được tiếp xúc là Visual Studio 2005, lúc đó mình đang học đại học. Nhờ Visual Studio 2005, mình đã tham gia và đoạt giải cuộc thi sáng tạo phần mềm trong trường đại học. Luôn luôn cập nhật các phiên bản mới nhất của Visual Studio để trải nghiệm những tính năng mới qua từng phiên bản. Cho đến nay, mình đã sử dụng Visual Studio 2005, Visual Studio 2008, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013 và mới nhất là Visual Studio 2015, mình cảm thấy Visual Studio ngày càng tuyệt vời, trên cả mong đợi của mình. Giờ đây, máy tính của mình chỉ có 1 IDE duy nhất là Visual Studio 2015, phục vụ cho tất cả công việc hiện tại của mình từ việc thiết kế website, xây dựng các dịch vụ web, xây dựng phần mềm Windows đến lập trình ứng dụng di động…

Visual Studio qua các phiên bản gần đây nhất

     Với Visual Studio 2015, Microsoft đã tạo ra một bước ngoặt lớn trong giới lập trình. Ngoài các tính năng cơ bản mà bất cứ IDE hiện đại nào cũng phải có. Visual Studio 2015 còn cho phép lập trình viên phát triển ứng dụng đa nền tảng từ Windows cho đến Linux, iOS và cả Android. Trước kia mình phải cài đặt Eclipse hoặc Android Studio để có thể lập trình ứng dụng Android. Giờ thì khác rồi, đã có Visual Studio 2015, vẫn với các thao tác, các menu, các công cụ sử dụng quen thuộc đó, bạn có thể tạo ra ứng dụng Android cho mình rồi.

Máy ảo Android của Microsoft

     Visual Studio 2015 ra đời phục vụ cho nhà phát triển viết các ứng dụng chạy đa thiết bị (Universal Apps), giúp các nhà phát triển ứng dụng giảm được rất nhiều thời gian làm ra một sản phẩm và sản phẩm lại được quảng bá rộng rãi hơn trên nhiều thiết bị. Giờ đây, bạn có thể viết ứng dụng 1 lần và chạy cho mọi thiết bị desktop, máy tính bảng, điện thoại chạy hệ điều hành của Microsoft.

     Điều mình thích nhất là Visual Studio 2015 là việc Microsoft đã tích hợp vào đó bộ thư viện khổng lồ giúp bạn có thể chuyển đổi mã nguồn Android hay iOS sang thành ứng dụng Windows rất nhanh chóng. Mình đã thử với vài bộ mã nguồn iOS và đã thành công ở một vài ứng dụng. Trong tương lai khi Microsoft hoàn thiện dự án này, chắc chắn đây sẽ là một điều rất tuyệt vời cho các lập trình viên. Bạn có thể xem chi tiết dự án này tại đây: http://aka.ms/projectastoria

Hình ảnh một ứng dụng Android được chuyển sang Windows Phone

     Còn rất nhiều tính năng mới của Visual Studio 2015 dành cho các nhà phát triển ở các nền tảng khác nhau. Với mình, công việc chủ yếu là phát triển ứng dụng di động, những tính năng độc đảo ở trên đã làm mình mê mệt với Visual Studio 2015 rồi. Còn bạn thì sao? Nếu muốn tìm hiểu thêm nhiều tính năng độc đáo khác của Visual Studio 2015, bạn xem ở link sau: https://www.visualstudio.com/en-us/news/vs2015-vs.aspx

     Ngoài ra, Microsoft còn có Visual Studio Online trên nền web, giúp bạn code bất cứ đâu, làm việc nhóm hiệu quả, giải quyết vấn đề nhanh chóng với công đồng nhà phát triển lớn mạnh. Các bạn tham khảo thêm tại: https://www.visualstudio.com/en-us/products/what-is-visual-studio-online-vs

     Còn việc cuối cùng, nếu muốn trở thành một lập trình viên chuyên nghiệp và hiện đại, hãy tải vào cài đặt ngay Visual Studio 2015 để trải nghiệm các tính năng độc đáo nhé: https://go.microsoft.com/fwlink/?LinkId=532606&clcid=0x409

Thứ Tư, 21 tháng 10, 2015

Bài viết này đã đọc cũng khá lâu rồi. Hôm nay vô tình nhớ đến nên muốn share cho mọi người cùng đọc về cái nghề cũng như cái nghiệp lập trình smile
Đượ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. 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.
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.
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. 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ờ/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 Bạn thí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 toàn 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.
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 ; 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ữ ,... 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 đó. 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), ro***, 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.
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 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, sự 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. 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. 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,....
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?
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 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. 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á nhiề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.
Nguồn : Lê Đình Lĩnh Nam.(Nam Le's Blog)

Thứ Ba, 20 tháng 10, 2015

Đăng ký tên miền .xyz miễn phí

Hiện tại có 2 cách để các bạn có thể sở hữu một tên miền .xyz miễn phí đó là đăng ký từ pop.co hoặc hostinger.vn

Trang pop.co hiện chỉ cho đăng ký tại Mĩ và Canada, các bạn có thể đổi địa chỉ IP bằng cách dùng Sock, Proxy hoặc VPN và tiến hành đăng ký bình thường. Trong bài viết này, tôi hướng dẫn đăng ký tên miền .xyz miễn phí tại trang Hostinger.
Read More
Đối với mình mà nói thì trong cuộc đời đi học, không có người thầy nào khiến mình cảm phục và kính trọng như anh Sơn. Từ 1 người mất căn bản trầm trọng, nhờ những thứ căn bản anh chỉ dạy mà mình đã tự tin tiếp tục theo đuổi học lập trình. Tuy rằng trình độ mình vẫn còn kém( mới học được 10 tháng) nhưng mình tin là với những nền tảng này, mình sẽ tự tin đi tiếp trên đường đời.
Hiện nay anh Sơn đang mở khóa học online với những video dạy học lập trình cực kỳ dễ hiểu, không phải mình PR nhưng thực sự những kiến thức anh truyền đạt thực sự rất dễ hiểu.


- Đây là trang web của anh Sơn, nếu bạn nào có niềm đam mê lập trình nhưng bị mất căn bản hoặc là muốn học với niềm đam mê thì hãy đến và đăng ký ngay vì đang có đợt khuyến mại nhân dịp sinh nhật anh 31/10.


Thứ Ba, 13 tháng 10, 2015

Một buổi tối cuối ngày, bạn chợt nhận ra mình vẫn còn rất nhiều trở ngại trong tình yêu, hay se lạnh lòng mình vì đang nhìn thấy mình cô đơn lạnh lẽo ??
Thu đến cho lòng ta cảm thấy có nhiều tâm trạng nhất. Bạn đang cảm nhận mùa thu như thế nào? Mình thì muốn chia sẻ với bạn những hình ảnh dưới đây để giải tỏa cảm xúc của bạn nếu như bạn đang nằm trong tâm trạng ấy.
Chia sẻ tâm sự qua những hình ảnh đẹp blog tâm sự
Đến một độ tuổi nhất định, tâm trí có quá nhiều điều phải suy nghĩ thì con người ta sẽ trở nên trầm lặng
chi tiết

Thứ Hai, 12 tháng 10, 2015

Bạn đã chán với kiểu nhập sô để chọn Menu
menu
menu


Bài viết sẽ giúp bạn tạo một Menu một cách bắt mắt, dễ nhìn, sinh động hơn.
menu
menu
Hoạt động: Ta thao tác chọn menu bằng cách nhấn các phím di chuyển ↑, ↓, ←, →; nhấn Enter để chọn menu; ESC để thoát.
Mình sẽ giải thích dần đần đoạn code trên(ai biết rồi thì thôi nhé :D)
Đầu tiên, lệnh nhảy tọa độ màn hình:
1
gotoxy(a,b);
Cái này search google ra một lố rồi. Nên nhớ: a – hoành độ, b – tung độ, cần có thư viện windows.h nữa.
Tiếp, hàm move() tự động bắt sự kiện được gõ từ bàn phím rồi trả về giá trị của kí tự vừa được gõ. Khi ta nhấn một phím bất kì thì kí tự đó sẽ được nạp vào mà không cần nhấn Enter.
Đọc thêm: Đọc kí tự từ bàn phím không cần nhấn enter
Tiếp, class Menu để lưu các Item trong menu. Ở đây, mình tạo mặc định menu đơn giản của một trò chơi, từ khung đó bạn có thể tạo thêm các menu khác theo ý mình.
Trong main, có một lệnh cần chú ý:
1
kbhit();// <conio.h>
Lệnh kbhit() có trả về kiểu bool trả lời câu hỏi “Có kí tự bất kì nào được nhập từ bàn phím không?”.
Khi có kí tự bất kì nhập vào từ bàn phím, kí tự đó sẽ được ghi vào bộ nhớ đệm, câu lệnh
1
x = move();
Cho phép lấy kí tự đó từ bộ nhớ đệm (nhờ lệnh getch() )rồi trả về giá trị cho x.

Tạo một menu như vậy thật thú vị phải không! Bạn hãy tạo thử một menu cho riêng mình nhé!
đây là link mã nguồn:






#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

void gotoxy(int column, int line)

{

COORD coord;

coord.X = column;

coord.Y = line;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

int move() {

char c = getch();

if ((int) c == -32) c = getch();

switch ((int) c) {

case 80:
return 1; //cout << "Xuong";

case 72:
return 2; //cout << "Len";

case 77:
return 3; //cout << "Phai";

case 75:
return 4; //cout << "Trai";

case 27:
return 8; //Nut ESC thoat

case 13:
return 5; //Nut Enter

default:
return 0; //cout << "Sai";

}

}

class Menu {

public:

Menu();

~Menu() {}

void printMenu();

void deleteMenu(); //Xóa menu khi kết thúc chương trình bằng cách viết đè kí tự trắng

int numberOfItem() {
return _numberOfItem;
}

string * getItem() {
return item;
}

private:

string * item; //Mảng lưu tên của các menu

int _numberOfItem; //Số lượng menu

};

Menu::Menu() {

item = new string[100];

_numberOfItem = 4;

item[0] = "CHOI";

item[1] = "DIEM CAO";

item[2] = "HUONG DAN";

item[3] = "THOAT";

}

void Menu::printMenu() {

for (int i = 0; i < _numberOfItem; i++) {

gotoxy(3, i);

cout << item[i];

Sleep(100); //Tạm dừng 100ms

}

}

void Menu::deleteMenu() {

for (int i = 0; i < _numberOfItem; i++) {

Sleep(100);

gotoxy(0, i);

for (int j = 0; j < item[i].size() + 3; j++) {

cout << " "; //Xóa bằng cách ghi đè kí tự trắng

}

}

}

int main()

{

Menu menu;

int x;

int line = 0; //Vị trí dòng của menu

bool thoat = false;

menu.printMenu();

gotoxy(0, line);
cout << (char) 1; //Vẽ con trỏ trỏ tới menu

while (!thoat) {

if (kbhit()) {

x = move();

gotoxy(0, line);
cout << " "; //Xóa con trỏ ở vị trí cũ

switch (x) {

case 1:

case 3:
{

line++;

if (line >= menu.numberOfItem()) line = 0;

break;

}

case 2:

case 4:
{

line--;

if (line < 0) line = menu.numberOfItem() - 1;

break;

}

case 5:
{

gotoxy(0, 10);
cout << " ";

gotoxy(0, 10);
cout << "Ban chon " << menu.getItem()[line];

break;

}

case 8:

thoat = true;

}

gotoxy(0, line);
cout << (char) 1;

}

}

menu.deleteMenu();

return 0;

}


Tập GYM bây giờ đang là 1 phong trào rèn luyện sức khỏe và xây dựng 1 body đẹp, dẻo dai không chỉ ở trong giới trẻ mà cả tầng lớp trung niên cũng đã bắt đầu thay đổi suy nghĩ.

Vậy, GYM là gì?


"Gym" xuất hiện trong các cụm từ: Tập gym, phòng gym.

Tìm hiểu: Địa chỉ các phòng gym tại Hà Nội và TP. HCM

Từ GYM có nguồn gốc từ tiếng Hy Lạp cổ đại, bắt nguồn từ từ gốc là "gymnasium".

Người Hy lạp cổ đại rất coi trọng vẻ đẹp hình thể, nếu như bạn đã từng xem các bức tượng hay tranh ảnh về các vị thần Hi Lạp, thì họ đều có thân hình to lớn, cơ bắp nổi rõ, bụng 6 múi. Con người luôn cố gắng tập luyện để hướng tới vẻ đẹp của các vị thần.

"gymnasium" được kết hợp từ hai nghĩa là "các động tác vận động cơ thể" và "không mặc quần áo", để chỉ nơi tập thể dục trong nhà.

Quanh thành phố Athens có rất nhiều các trung tâm, mục đích chủ yếu đó là tập thể dục, các hoạt động về cơ thể, tắm và giảng dạy. Và chỉ dành cho con cái nhà quý tộc. Các trung tâm bao gồm sân tập rất rộng và nhiều phòng nhỏ bao quanh, bao gồm các phòng tắm và thay đồ.

Và nếu các bạn cũng đã xem qua các cuộc thi Olympic cổ đại được phục dựng thì cũng sẽ thấy các vận động viên gần như không mặc gì, đây là 1 cách để thể hiện sự hiến dâng cơ thể lên thần linh và cũng để khán giả được chiêm ngưỡng cơ bắp của vđv.

Từ "gymnasium" được kết hợp từ 2 nghĩa là vậy.

Mô hình trung tâm được người Đức sử dụng vào thế kỷ 19 với các khu tập ngoài trời.
Vào cuối thế kỷ 19, đầu thế kỷ 20, trên đất mỹ xuất hiện nhiều trung tâm tương tự chủ yếu ở những nơi người Đức sinh sống. Sau đó, trường học cũng bắt đầu xây dựng các phòng tập này và được lắp thêm các dụng cụ tập luyện.

Nửa cuối thế kỷ 20, đầu thế kỷ 21, các trung tâm thể dục bắt đầu được thương mại hóa, với các máy móc được nghiên cứu mới, các bài tập mới được sáng tạo đa dạng nhằm mục đích xây dựng cơ thể. Cho mọi tầng lớp của xã hội.

Tập thể hình du nhập đến VN từ rất lâu rồi, bắt đầu từ các phòng tập nhỏ với đồ tập tự chế, đến bây giờ là các phòng tập hiện đại với thiết bị nhập khẩu chuẩn mực. Gym gần đây mới phát triển mạnh mẽ và được sử ủng hộ của mọi người.

Bởi nó giúp chúng ta xây dựng được 1 cơ thể đẹp hơn như mong muốn, sức khỏe được cải thiện rõ rệt.

Còn bây giờ, nếu bạn quan tâm tới việc xây dựng 1 cơ thể đẹp, bạn nam với cơ bắp vạm vỡ, bụng 6 múi, bạn gái với thân hình gọn gàng, mông cong vun cao thì hãy thử đi tập gym đi nhé.

Gym bây giờ không chỉ còn là phòng tập, mà bây giờ nó còn có ý nghĩa là 1 lối sống, phong cách sống hiện đại, năng động và khỏe mạnh.


Nếu bạn lần đầu đi tập và chưa biết gì về gym, bài viết này của GymLord sẽ giúp bạn định hình 1 phần nào để có thể làm quen với Gym: Cẩm nang chi tiết cho người mới tập gym, thể hình hiệu quả.

Hãy lựa chọn cho mình phong cách sống ý nghĩa nhé!
Hi vọng bài viết của GymLord sẽ giúp ích được cho các bạn!
GymLord

Ps: Mình tập gym được 3 tháng và thấy vóc dáng cơ thể đang dần thay đổi, mình nghĩ ai cũng nên đi tập để có cơ thể khỏe mạnh, vóc dáng đẹp, nhất là những lập trình viên suốt ngày thức khuya, ăn ít

Thứ Ba, 6 tháng 10, 2015

chrome-extension-tutorial

Mẹo nhỏ trong lập trình Chrome Extension

Trước đây tớ hay dùng localStorage để tạo flag đánh dấu khi nào người dùng vừa mới cài đặt extension của mình. Và sau này khi ngó qua mã nguồn của mấy extension phổ biến cũng thấy họ làm cách tương tự. Cụ thể thì như này:

// background.js
(function($) {
if ($.getItem('installed') === null) {
$.setItem('installed', true);

chrome.tabs.create({
url: 'http://example.com/thank-you.html'
});
}
})(localStorage);


Cách làm này tất nhiên là có thể dùng được, không sao cả. Tuy nhiên nó không chuyên nghiệp, vì:

  1. Bạn phải tạo ra một dữ liệu tạm thông qua localStorage.
  2. Bạn không thể biết được người dùng vừa cài đặt hay chỉ vừa cập nhật phiên bản mới.

Sau này khi lần mò trong Document của Google thì tớ biết được một cách hay hơn, xin chia sẻ lại với các bạn:

// background.js
chrome.runtime.onInstalled.addListener(details => {
switch (details.reason) {
case 'install':
chrome.tabs.create({url: 'http://example.com/thank-you.html'});
break;

case 'update':
chrome.tabs.create({url: 'http://example.com/changelog.html'});
break;
}
});

Ưu điểm của cách này:

  1. Là API chính thức của Chrome.
  2. Không cần tạo dữ liệu tạm để làm flag.
  3. Có thể biết người dùng vừa cài đặt hay cập nhật phiên bản mới. Từ đó chúng ta có thể mở trang cảm ơn, Donate, CTA (kêu gọi người dùng đánh giá extension trên Store chẳng hạn) hoặc cho người dùng biết các thay đổi trong phiên bản mới (changelog).
Hi vọng bài viết này sẽ giúp ích được các bạn trong việc tạo ra một Chrome Extension chuyên nghiệp!

Thứ Năm, 1 tháng 10, 2015

Bài viết được dịch từ trang web Makeuseof
Học lập trình hiệu quả
Làm thế nào để tôi có thể học lập trình một cách hiệu quả nhất?
Kiến thức lập trình có thể giúp bạn kiếm được một công việc tuyệt vời và đó là lý do mà ngày càng có nhiều người đổ xô đi học làm thế nào để viết code. Có lẽ bạn đã quyết định theo đuổi lập trình, dù cho đó là sự nghiệp hay chỉ là một sở thích. Điều đó thật tuyệt vời! Nhưng có lẽ bạn đang bắt đầu cảm thấy choáng ngợp. Không được tuyệt cho lắm phải không nào?
Trước đây chúng tôi đã viết bài về việc lựa chọn một ngôn ngữ lập trình và chúng tôi đã tổng hợp lại những nơi mà bạn có thể học lập trình, nhưng chưa nói nhiều về hướng tiếp cận làm thế nào để trong quá trình học đó bạn không bị cảm thấy căng thẳng và áp lực.
Tôi đã từng trải qua cảm giác chán nản và thất vọng trong khi học lập trình và tôi hy vọng rằng một số lời khuyên sau đây có thể giúp bạn dễ dàng hơn trong cuộc hành trình của mình.

Không phải chỉ mỗi bạn mới bị: Lập trình là việc rất khó

Đối với hầu hết mọi thứ, bạn phải có một suy nghĩ đúng đắn trước khi học làm thế nào để lập trình. Chắc chắn là bạn có thể làm điều này với một thái độ tiêu cực và bạn vẫn có thể tìm hiểu được các kiến thức đây đó, nhưng quá trình này sẽ mất nhiều thời gian hơn và bạn sẽ căm ghét nó trong toàn bộ chuyến hành trình tìm kiếm tri thức của mình.
Lập trình là một công việc rất khó, không còn nghi ngờ gì về điều đó cả. Ngay cả những lập trình viên thông minh nhất cũng bị vướng mắc trong những hoạt động cơ bản bởi các bug và lỗi trong code của họ. Nhiều lúc bạn cảm thấy như mọi người biết những gì mà họ đang làm và chỉ có bạn là người gặp khó khăn trong việc học, nhưng đó không phải là sự thật.
Học lập trình rất khó
Bạn sẽ được an ủi với một thực tế rằng mọi người đều gặp phải rắc rối khi mới học lập trình. Bạn không đơn độc trong cuộc đấu tranh của mình. Việc nhầm lẫn và nản lòng là chuyện bình thường. Nếu bạn thấy việc học rất khó thì điều đó cũng không có gì là to tát cả, vì vậy đừng cảm thấy chán nản hoặc căng thẳng. Cái gì trên đời này cũng cần phải có thời gian.
Và đó là cách nghĩ mà bạn cần phải có nếu bạn muốn học lập trình: công việc này sẽ mất một thời gian dài.Chúng ta đang nói đến đơn vị tính bằng nhiều năm. Cách nhanh nhất để bị căng thẳng và áp lực trong khi học tập đó là hy vọng vào việc hiểu ngay lập tức, tiến bộ tức thời và có những kết quả nhanh chóng. Chúng ta sẽ nhận thấy trong phần sau rằng điều đó hoàn toàn không đúng.
Hãy cảm thấy bình tâm với một thực tế là chuyến hành trình tìm kiếm tri thức đó của bạn sẽ rất lâu dài và gian khó.

Học từng bước một từ những thứ cơ bản nhất

Giống như các ngôn ngữ nói, các ngôn ngữ lập trình cũng phải học từ những thứ căn bản nhất rồi mới qua những kiến thức nâng cao. Hãy xem xét quá trình học một ngoại ngữ như tiếng Tây Ban Nha, Đức, hoặc Hàn Quốc.
Bắt đầu với những thứ căn bản. Những thành phần căn bản nhất của bất kỳ ngôn ngữ nào bắt đầu với các chữ cái, sau đó là các từ, và câu. Đối với lập trình, bạn phải bắt đầu với từ khóa, cú pháp, và bố cục của một chương trình phần mềm.
Học lập trình từ căn bản
Đừng lo lắng về những kiến thức nâng cao cho đến khi lần đầu tiên bạn nắm vững những vấn đề cơ bản. Bạn sẽ không thể viết một bài thơ trước khi bạn hiểu được những quy tắc cơ bản về ngữ pháp, phải không nào? Hãy hoãn lại những kiến thức nâng cao cho đến khi bạn thực sự nắm được những kiến thức nền tảng đó.
Nói cách khác, đừng vội vàng. Hãy tập trung vào một chủ đề tại một thời điểm trước khi chuyển sang chủ đề tiếp theo. Bằng cách giới hạn phạm vi học tập của bạn theo cách này, bạn có thể giữ cho mình không bị choáng ngợp. Đó là một trong những quy tắc trong việc thiết lập mục tiêu hiệu quả: để ăn hết một con voi, bạn phải cắn từng miếng một.

Khoảnh khắc mọi thứ trở nên rõ ràng đối với bạn

Trong khoảng một năm rưỡi, tôi đã nghiên cứu về game engine Unity, nó dựa trên mô hình entity-component chứ không phải là mô hình hướng đối tượng mà tôi đã học từ trước đến nay. Đúng là trong khoảng 12 tháng đầu tiên tôi đã rất nản lòng bởi vì tôi không thể hiểu được nó.
Cho đến một ngày, tôi ngồi vào máy tính của mình và tất cả dường như rõ mồn một trước mắt tôi. Những kiến thức đã làm cho tôi vò đầu bứt tóc trong gần một năm qua là đây ư? Cuối cùng thì tôi cũng đã hiểu được tất cả. Không có một bài hướng dẫn hoặc bài giảng đặc biệt nào giúp tôi được như vậy cả. Hoàn toàn không. Nó chỉ đơn giản là một khoảnh khắc sau bao lâu nghiên cứu rồi mọi thứ bỗng rõ như ban ngày.
Học lập trình cần thời gian
Bài học ở đây là: không phải là tất cả mọi thứ sẽ được hiểu rõ ngay lập tức. Trí thông minh hay năng khiếu của bạn cũng không phải là yếu tố quyết định trong trường hợp này. Lập trình là một trong những thứ mà hoặc là bạn hiểu nó hoặc là không và phải cần thời gian để bạn mới thực sự hiểu rõ.
Cuối cùng nó sẽ xảy ra miễn là bạn đừng bỏ cuộc. Sự kiên trì là một tính cách quan trọng của bất kỳ lập trình viên nào. Nếu bạn cạo một bức tường bằng một chiếc thìa kim loại đủ lâu thì cuối cùng bạn sẽ đục thủng được bức tường đó. Đừng nản lòng trên con đường mình đang đi.

Tìm nhiều nguồn tài liệu nhất mà bạn có thể

Giả sử một người nào đó đưa cho bạn tấm hình của một bức tượng. Tấm hình đó có thể cung cấp đủ thông tin để bạn có một cảm nhận khá đầy đủ về bức tượng đó, nhưng bạn sẽ không nhận được toàn bộ hình ảnh của bức tượng. Việc thu nhỏ bức hình sẽ làm mất những chi tiết phức tạp, còn nếu phóng to nó lên thì sẽ mất đi cài nhìn toàn cảnh về nó.
Tuy nhiên, với mỗi bức hình bổ sung, bạn có thể thực sự bắt đầu nhìn thấy đầy đủ về bức tượng đó trong kết cấu, kích thước, chi tiết, từ trước đến sau, từ bên này sang bên kia, và từ trên xuống dưới.
Học lập trình qua nhiều tài liệu
Với lĩnh vực lập trình, một sự giảng giải thường không đủ để thực sự nắm bắt được về một chủ đề cụ thể nào đó. Đó là lý do tại sao điều quan trọng là bạn nên khai thác triệt để nhiều nguồn tài nguyên nhất bạn có thể trong các thể loại như tài liệu, tutorial, video, bài giảng, v.v... Mỗi tài nguyên bổ sung có thể cung cấp cái nhìn sâu sắc thêm.
Ví dụ, bạn có thể không nhận được nhiều lợi ích từ Tutorial A và nó khiến bạn cảm thấy thất bại. Tutorial B cũng làm cho bạn bối rối, mặc dù nó có thể làm sáng tỏ một số vấn đề. Nhưng đến khi bạn đọc Tutorial C được trình bày theo cách kết hợp mọi thứ từ Tutorial A và B lại với nhau. Cuối cùng thì chủ đề đó cũng sáng rõ như ban ngày.
Sẽ rất hữu ích nếu bạn tìm được một mentor (người cố vấn) hoặc một người bạn thân cùng học lập trình.Tự học là điều rất tốt, nhưng sẽ còn tốt hơn nếu có một ai đó mà bạn có thể đặt câu hỏi và nhận được những câu trả lời nhanh chóng. Điều này có thể biến khoảng thời gian vài ngày nản lòng thành một cuộc trò chuyện đơn giản chỉ khoảng 5 phút thì đã ra được vấn đề.

Thực hành và vọc vậy - Hãy can đảm!

Từ cuối cùng trong lời khuyên này: lập trình là công việc đòi hỏi thực hành nhiều hơn lý thuyết. Không phải là không có bất kỳ khía cạnh lý thuyết nào và cũng không phải hoàn toàn là thực hành, nhưng dù cho bạn có ngồi nghiên cứu bao nhiêu đi chăng nữa mà nếu bạn chẳng bao giờ đưa nó vào thực hành thì sẽ chẳng mang lại kết quả gì.
Tôi không thể nói cho bạn biết đã bao nhiêu lần tôi đã dành rất nhiều thời gian ngồi đọc các tài liệu về một thư viện code mà tôi chẳng hiểu gì cả, nhưng chỉ trong khoảng một giờ ngồi vọc vậy với code của nó thì tất cả đã trở nên rõ ràng.
Học lập trình bằng cách thực hành
Đừng ngại việc thực hành bằng cách vọc vậy. Tạo ra một blank project và bắt đầu làm rối tung nó lên với những dòng code. Vọc vậy với nó, phá vỡ nó và sửa chữa lại nó. Những việc này không hề làm tốn thời gian của bạn. Bạn có thể không phải đang viết code để tạo ra một sản phẩm cuối cùng, nhưng bạn sẽ tiết kiệm được cho mình rất nhiều thời gian bằng cách học này.
Lập trình không phải là một cái gì đó có thể được học một cách thụ động. Bạn phải bắt tay vào làm thực hành.Thay vì lo sợ các bug và lỗi thì hãy ôm lấy chúng. Học cách làm thế nào để sửa chúng hoặc làm việc với chúng. Thực hành tạo ra kinh nghiệm, kinh nghiệm tạo nên lòng tự tin, và tự tin sẽ giúp bạn tránh được cảm giác choáng ngợp hoặc căng thẳng.
Đối với những bạn mới bắt đầu học lập trình, tôi hy vọng rằng một số điều trong bài viết này sẽ giúp ích cho bạn. Nếu bạn có điều gì còn băn khoăn thì hãy để lại câu hỏi của mình ở phần bình luận phía dưới. Nếu bạn đã là một lập trình viên chuyên nghiệp thì hãy chia sẻ lời khuyên của bạn với chúng tôi về cách làm thế nào để tránh được căng thẳng trong khi học lập trình nhé!

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page