Thứ Hai, 2 tháng 2, 2015

Mẹ thần đồng Đỗ Nhật Nam chia sẻ bí kíp dạy con khi mới lên 3

Bài chia sẻ của mẹ thần đồng Đỗ Nhật Nam về 8 bước nuôi dạy con khi con lên 3 tuổi, hi vọng giúp ích được cho các mẹ đang có con trong độ tuổi này

Hình như trong fb của mình, số lượng các mẹ có con ở độ 2-3 tuổi chiếm ưu thế. Nên các câu hỏi về giai đoạn này rất nhiều. Hihi. Mình tập hợp lại để trả lời chung. Thực sự là giai đoạn này của Nam cũng qua hơi lâu rồi nên mình cũng không nhớ được rõ ràng lắm. Mình phải xem lại những phần mình đã ghi chép và tổng hợp lại. Nhưng dù sao nhờ thế mà mình có dịp mở lại những cuốn nhật kí đã cũ mèm, cùng với đó là bao nhiêu yêu thương. Đây là những tổng hợp của mình nhé:

Mẹ thần đồng Đỗ Nhật Nam chia sẻ bí kíp dạy con khi mới lên 3


Dạy ngôn ngữ và giao tiếp
Giai đoạn này có thể coi là bước tiến vượt bậc trong phát triển ngôn ngữ của trẻ. Nó làm cho đứa trẻ trở nên "yêu ơi là yêu" vì sự líu lo, ríu rít suốt ngày. Chính vì thế, tận dụng để dạy ngôn ngữ cho trẻ là rất tuyệt. Khi Nam 2 tuổi, sau một giai đoạn "im lặng" không nói năng, Nam bắt đầu nói thành câu, cả câu đơn và câu ghép. Ví dụ, buổi sáng khi tỉnh dậy, Nam nói: Mẹ ơi, em xuống giường, em đi đánh răng. Hoặc khi mình đưa Nam đi chơi công viên, Nam nói: Em chơi cát nhé, em không chơi cầu trượt đâu. Chính vì thế, mình có thể dạy Nam khá nhiều điều về ngôn ngữ ở giai đoạn này mà không lo " Nam chưa hiểu". Những cách mình thường làm là:

- Đọc sách cho con: Điều này thì mình đã nói, mình để sách của Nam vào một chỗ và khi Nam chỉ tên cuốn sách, mình sẽ đọc cho con bằng một thái độ như thể mình chưa hề biết gì về cuốn sách đó. Mình nhận thấy, trẻ em có rung cảm về ngữ điệu khá tốt. Nếu mẹ đọc uể oải hoặc cho qua chuyện, con sẽ không thích đâu. Đối với mẹ có thể câu chuyện đã quen thuộc hoặc nhàm chán, nhưng trẻ em lại khác. Mỗi hôm trẻ lại khám phá một điều thú vị trong những cuốn sách đã cũ mèm. Mình đọc chậm rãi, vừa đọc vừa dừng lại hỏi hoặc giải thích. Và tất nhiên, luôn thực hiện việc này theo một giờ cố định trong thời gian biểu.

- Chơi diễn kịch cùng với con: Từ 2-3 tuổi, các bé rất thích trò này. Hồi đó chỉ có hai mẹ con ở nhà nên mình thường phải đảm nhận một lúc mấy vai. Nội dung để diễn thường do mình tự nghĩ ra, chủ yếu để dạy Nam các tình huống giao tiếp. Ví dụ, để dạy Nam biết nói lễ phép, mình kể cho Nam câu chuyện: Có bạn Ngựa nâu nhìn thấy một bạn Ngựa vằn rất đẹp. Ngựa nâu hỏi: Làm thế nào mà bạn lại có những đốm đẹp như vậy. Bạn Ngựa vằn nói: Dễ lắm, mẹ tớ dạy rằng, khi nào nói với người lớn chỉ cần thêm từ "ạ" vào đằng sau là lưng mình sẽ có thêm một đốm như bông hoa ấy. Nhưng nếu bạn quên, thì cái đốm sẽ biến mất. Bạn Ngựa nâu nói: Ôi dễ quá! Tớ làm được. Vừa lúc ấy, mẹ gọi: Ngựa nâu ơi, lấy hộ mẹ cốc nước. Ngựa nâu: Dạ, vâng mẹ ạ. Ôi thế là lưng ngựa nâu thêm cái đốm. Lát sau mẹ lại nói: Ngựa nâu ơi, con đang làm gì thế? Con đang chơi mẹ ạ. Lại thêm cái đốm thứ hai.... Cứ thế, mẹ con mình nghĩ thêm ra các câu khác để lưng ngựa nâu có thêm nhiều cái đốm nhé. Mình vừa vẽ, vừa để cho Nam tô màu, cứ mỗi câu Nam trả lời đúng, lại được tô thêm một màu. Sau đó, mình đóng vai Ngựa vằn và Mẹ Ngựa nâu, còn Nam đóng Ngựa nâu để "diễn lại". Vui lắm mà Nam lại nhớ rất lâu, rằng khi nói với người lớn, phải nói đầy đủ, lễ phép. Mình thích qua các câu chuyện Nam tự rút ra bài học, hơn là nói: Con nói ạ đi rồi mẹ cho. Con chào bác đi rồi mẹ mới yêu...

- Nói chuyện với con càng nhiều càng tốt: Có lẽ giai đoạn này, bố bị "ra rìa" nhiều nhất vì mẹ còn mải nói chuyện với con Thế giới đầy lạ lẫm, đầy ngạc nhiên trước mắt nên con cứ hỏi liên tục và mẹ cũng phải trả lời không dứt. Mình cố gắng "giữ bình tĩnh" để không khi nào cáu trước những câu hỏi không có hồi dứt của Nam. Mình luôn dành một khoảng thời gian cố định trong ngày để "nói chuyện theo chủ đề". Ví dụ, có tuần mình chọn chủ đề là: Nước. Mình sẽ cùng Nam hiểu xem nước từ đâu đến? ( Qua những tranh vẽ đơn giản)/ Nước để làm gì?/ Nếu thiếu nước thì mình sẽ ra sao?/ Nước có đẹp không? Những lần nói chuyện này phải chuẩn bị công phu ra phết: Tranh ảnh, giấy màu, vật thật. Nam sẽ được hỏi mẹ tất cả các câu hỏi Nam quan tâm, được chơi thỏa thích với những sự kiện liên quan đến chủ đề. Ngoài thời gian nói chuyện theo chủ đề, tất cả các câu hỏi khác của Nam đều được mình giải đáp chi tiết. Mình không thoái thác theo kiểu: Thôi, con hỏi gì mà nhiều thế! Hoặc Hỏi vớ vẩn. Hay: Lớn lên con sẽ biết. Với câu nào mình thực sự không hiểu, mình tìm lời giải đáp trên sách vở, trên mạng và chuyển tải bằng ngôn ngữ dễ hiểu nhất đến với Nam.

- Cùng con xem phim: Giai đoạn này, cho các con xem phim hoạt hình cũng rất thú vị. Miễn là đừng xem nhiều quá. Mình thường dành khoảng 20-25 phút trong ngày để cùng con xem phim. Hầu hết là các phim hoạt hình của Disney. Xem xong, hai mẹ con lại bàn tán rôm rả về đoạn vừa xem. Nhiều khi Nam cũng không có nhận xét gì đâu mà mẹ phải gợi ý để kích thích Nam "cãi lại". Ví dụ, mình nói, cái bạn Ong trong phim ấy chán nhở, đáng lẽ phải nhớ lối đi về chứ. Hoặc Mẹ chẳng thích kiểu của bạn Chuột ấy, lúc nào cũng vội vàng... Còn một điều nữa mình cũng nhận thấy, khi xem phim thông thường, các mẹ hay hướng cho con đến "tuýp" nhân vật xinh xắn, ngoan ngoãn, dễ thương. Nhưng trẻ em thì có lẽ không thế. Chúng thích hoàn toàn theo cảm tính. Vì thế, các mẹ cũng đừng "định hướng". Cứ để con được tự do nói lên ý thích của mình. Có lẽ đó cũng là lý do mà tại sao có nhiều nhân vật hoạt hình trong các phim bom tấn của Mỹ lại có tạo hình rất kì dị, kinh khủng. Mình tin, sự hướng tới một thế giới đa dạng, chấp nhận sự khác biệt được dạy cho con trẻ từ những điều giản đơn như thế.

- Gọi tên các đồ vật gắn kèm với chức năng của nó: Cái này thì mình kiên trì dạy Nam từ khi 1 tuổi và nâng dần độ khó. Tức là khi mẹ nói tên đồ vật, Nam nói được chức năng của nó. Cũng làm như vậy với các bộ phận của cơ thể. Khi Nam vào nhà tắm, mình coi đó là một cơ hội tuyệt vời và đầy hấp dẫn để học những bài học này trong đó có cả những bài học về giới tính. Ví dụ, mình chỉ vào bộ phận sinh dục và nói: Đây là chỗ để em đi vệ sinh. Chỗ này để mọi người nhìn thấy là không hay, mẹ mặc quần đẹp để che đi. Quần đẹp lắm đúng không. Nếu ai sờ vào thì em nói: Không ạ. Rồi gạt tay ra nhé. (Làm mẫu). Sau đó em nhớ kể cho mẹ biết. Mọi bộ phận trên cơ thể em đều yêu lắm. Mẹ thơm mắt này. Mẹ thơm mũi này... Em phải giữ cho chúng sạch sẽ nhé. Đừng để chúng đau, chúng sẽ không vui đâu. Ví dụ là như thế, mỗi hôm dành thời gian kể và nói chuyện về một bộ phận. Trong chậu tắm, mình luôn để sẵn mấy thứ đồ chơi bằng nhựa để Nam có thể vừa nghe lại vừa chơi, rất vui.

- Dạy cho Nam về những tính từ: Giai đoạn 2-3 tuổi, vốn danh từ cũng khá nhiều rồi nên mình tập trung dạy các tính từ bằng cách chơi trò chơi miêu tả. Muốn chơi trò này, mình phải "chơi thử" cho Nam nhiều lần. Ví dụ: cái ca thế nào? Cái ca to/ nhỏ/ xinh xắn/ xanh, đỏ... Con mèo thế nào? Con mèo hiền/ ngoan/ dễ thương/ xinh xắn/ đáng yêu/ dữ tợn... Tất nhiên, Nam không thể biết đó là các tính từ nhưng Nam có thói quen tìm các từ để miêu tả sự vật. Điều này rất có lợi cho việc làm văn sau này.

- Độ tuổi này, giao tiếp của con cũng rất nhạy cảm. Việc học thông qua quan sát, bắt chước người lớn chiếm ưu thế. Tuy nhiên, mẹ cần thể hiện một thái độ tôn trọng, biết lắng nghe. Nhờ thế, có lẽ việc "nổi loạn" của trẻ cũng diễn ra nhẹ nhàng hơn. Với Nam, mình TRÁNH dùng những mẫu câu như: Con để mẹ làm mẫu cho mà thay vào đó là: Con nhìn xem mẹ làm thế này có được không? Không dùng: Con làm thế là sai rồi. Mà thay bằng: Mẹ nghĩ nên làm lại thế này thì có lẽ tốt hơn... Mình cũng KHÔNG dùng những câu như: Con làm thế bố sẽ mắng đấy. Con làm thế thì công an/ngáo ộp/ ông râu xồm... bắt đấy... Mình chỉ ra hậu quả của việc đó chứ không dọa dẫm.

- Chú ý đến thái độ giao tiếp: Sau này khi Nam lớn, mọi người thường khen là Nam rất ngoan. Những lúc Nam đi cùng mẹ, nếu Nam làm việc gì sai, mẹ chỉ cần nhìn là Nam biết và tự điều chỉnh. Mình cho rằng, có được điều đó là mình đã dạy Nam về thái độ giao tiếp từ giai đoạn này. Bất cứ việc gì Nam làm sai, mình đều nhìn thẳng vào Nam và nói: Em ơi, mẹ không vui. Nhưng ngược lại, nếu việc nào Nam làm tốt, mình cũng nhìn vào mắt Nam và nói: Em giỏi lắm/ Em ngoan lắm/ Em làm cho mẹ rất vui. Đến giai đoạn này, mình cũng đã bắt đầu có hình thức thưởng/phạt rõ ràng. Con ngoan thì con sẽ được mẹ đọc thêm truyện ( Nam vô cùng thích đọc truyện), được mua thêm đồ chơi... Nhưng ngược lại, Nam sẽ phải ngồi vào "Góc buồn", trong một khoảng thời gian nào đó, thường là từ 5 đến 15 phút. Hihi.

- Một điều rất thú vị và cũng rất quan trọng là thường xuyên cùng con ghi nhật kí. Mình làm vào các buổi tối, trước khi Nam đi ngủ. Mình thường hỏi Nam: Buổi sáng/ Trưa/ Chiều nay mẹ con mình làm gì ấy nhỉ. Ví dụ Nam nói: Mẹ với em đi siêu thị. Mình sẽ nói: Đúng rồi, đi siêu thị vui lắm. Hôm nay Nam biết giúp mẹ đẩy xe hàng. Mẹ ghi vào đây, kèm theo hình vẽ nữa. Nam có muốn bổ sung gì vào hình vẽ không? Kiểu như thế, cuốn nhật kí của hai mẹ con tuyệt lắm. Đó cũng là cách giúp Nam biết chuyển tải ngôn ngữ nói thành ngôn ngữ viết và tập thói quen ghi nhớ. Mình cũng sẽ cùng Nam lên kế hoạch cho ngày hôm sau nữa. Vui ơi là vui.

Ôi chao, dài quá rồi. Chắc mọi người đọc đau cả mắt. Mình sẽ tiếp tục với việc dạy Nam giai đoạn này ở các chủ đề: Hoạt động vui chơi cùng con/ Dạy con kĩ năng tự phục vụ/ Cách để chấn chỉnh những hành vi chưa đúng của con... các mẹ nhé.

Trong khi giở lại những cuốn nhật kí, mình đọc được những mẩu ghi chép về hội thoại của mẹ và Nam rất buồn cười.
- Nam ơi, Nam yêu mẹ không?
- Có, em yêu mẹ.
- Thế em yêu mẹ nhiều không?
- Có, nhiều lắm ạ.
- Thế em ra thơm mẹ để mẹ biết là em yêu mẹ nhiều đi.
- Nhưng em bận lắm, em còn đang chơi với con cá.
- Ôi thế mà nói là yêu mẹ nhiều. Mẹ buồn quá, mẹ khóc đây. Hu hu.
- Thôi được rồi, để em ra thơm. ( Chạy lại thơm mẹ)

- Đấy được chưa. KHỔ QUÁ, MỆT QUÁ, lớn rồi mà còn khóc nhè.( Vừa quay lưng vừa lẩm bẩm)
Hihi, rất chi là ra dáng một người lớn, chàng trai 3 tuổi của mẹ!
Giá bây giờ dùng chiến thuật đó mà có chàng chạy lại thơm thì mẹ sẽ làm luôn ấy!

(Facebook: Phan Hồ Điệp)

Thứ Sáu, 5 tháng 12, 2014

WiX Template for Installing a Windows Service

The following is a lightweight template that allows you to create an installer for your Windows Service and dependent files. The following assumes that the WiX Toolset v3.7 is installed on the development machine. First, do the following to your application project:
  • Right click in the design window for your class, and select “Add Installer”.
    2014-02-14_7-22-07
Then, create your setup project:
  • To your solution, add a new Wix Setup Project.
    2014-02-14_7-24-44
  • Add a reference to your service application project.
  • Add references to WixNetFxExtension.dll and WixUIExtension.dll from C:\Program Files (x86)\WiX Toolset v3.7\bin\
    2014-02-14_7-28-40
The template follows. Replace instances of MyProduct with your product name, and MyCompany with your company name.
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Name="MyCompany MyProduct" 
             Id="*" 
             UpgradeCode="{INSERT-A-NEW-AND-UNIQUE-GUID-HERE}" 
             Manufacturer="My Company" 
             Version="!(bind.FileVersion.MyProduct.exe)" 
             Language="1033">
        <Package InstallerVersion="200" 
                 Compressed="yes" />
        <Media Id="1" 
               Cabinet="media1.cab" 
               EmbedCab="yes" />
        <Directory Id="TARGETDIR" 
                   Name="SourceDir">
            <Directory Id="INSTALLDIR" 
                       Name="PFiles">
                <Directory Id="MyCompany" 
                           Name="MyCompany">
                    <Directory Id="MyProduct" 
                               Name="MyProduct">
                        <Component Id="MyCompany.MyProduct" 
                                   Guid="{INSERT-A-NEW-AND-UNIQUE-GUID-HERE}">
                            <File Id="MyProduct.exe" 
                                  Name="MyProduct.exe" 
                                  Source="..\MyProduct\bin\Release\MyProduct.exe" 
                                  Vital="yes" 
                                  KeyPath="yes" 
                                  DiskId="1" />
                            <File Id="MyProduct.exe.config" 
                                  Name="MyProduct.exe.config" 
                                  Source="..\MyProduct\bin\Release\MyProduct.exe.config" 
                                  Vital="yes" 
                                  KeyPath="no" 
                                  DiskId="1" />
                            <ServiceInstall Id="ServiceInstaller" 
                                            Type="ownProcess" 
                                            Vital="yes" 
                                            Name="MyCompany:MyProduct" 
                                            DisplayName="MyCompany:MyProduct" 
                                            Description="My Product Description" 
                                            Start="auto" 
                                            Account="LocalSystem" 
                                            ErrorControl="ignore" 
                                            Interactive="no" />
                            <ServiceControl Id="StartService" 
                                            Start="install" 
                                            Stop="both" 
                                            Remove="uninstall" 
                                            Name="MyCompany:MyProduct" 
                                            Wait="yes" />
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>
        <Feature Id="ProductFeature" 
                 Title="MyCompany:MyProduct" 
                 Level="1">
            <ComponentRef Id="MyCompany.MyProduct" />
        </Feature>
    </Product>
</Wix>

Chủ Nhật, 2 tháng 11, 2014

Tất cả lập trình đều là lập trình web ?

Trong một bài dịch của bạn Hồ Hữu Hùng trang Vinacodedịch lại bài “All Programming is Web Programming” của tác giả Jeff Atwood viết ngày 14 tháng 8 2009. Jeff Atwood là một lập trình kỳ cực, sáng lập nên StackOverflow, một trang web hỏi đáp hàng đầu của dân tin học. StackOverflow viết bằng ASP.net, csdl: SQL Server. Nếu một ngày bạn không lượn vào StackOverflow quá 2 lần, chứng tỏ bạn chưa thực sự lập trình.
Tôi xin góp vài ý sau đây:
Tại thời điểm mà Jeff viết đang có một cuộc chiến giữa Microsoft ASP.net IIS Window Server và LAMP (Linux Apache MySQL PHP). Microsoft rất lo lắng trước sự gia tăng của mã nguồn mở. Tải về rồi cài, thích thì sửa, không thì cấu hình, mua theme giao diện về là có web site. chi phí thuê share hosting server Linux chỉ khoảng 5 USD/tháng. Trong khi xài Microsoft rất lằng nhằng về license, vậy là Microsoft nghĩ ra là phải làm cho việc lập trình web trên nền tảng Microsoft dễ đến mức không thể dễ hơn. Sự đơn giản này cũng như cách dùng CPanel cài một web site bằng WordPress step by step đã giết chết nhu cầu học lập trình một cách nghiêm túc. Ai cũng có thể tạo một web site. Hướng đối tượng là gì? Cấu trúc dữ liệu giải thuật là gì? Bộ nhớ heap, stack, con trỏ là gì? Mức độ phức tạp O là gì? Generic Programming, Machine Learning là gì? là những câu hỏi quá xa xỉ bởi giờ đây, chỉ cần xem video hướng dẫn, bạn có thể kéo thả ra một web site mà không mất một dòng code.
Tôi đã từ dùng Visual Studio 2012 beta, lúc đó Microsoft có một công cụ rất dị, LightSwitch. Chỉ cần vẽ giao diện các trường nhập liệu, thêm chút validation, Microsoft tự sinh ra cơ sở dữ liệu rồi cấu hình tự động lên tài khoản Azure. Ấn một nút run, là có luôn web site, thậm chí có lựa chọn tạo ra Desktop app. Tất cả mất tầm 10 phút. Kỹ sư trưởng của Visual Studio gọi lập trình đơn giản như bật công tác đèn ~ Light switch.
LightSwitch
Tôi bắt đầu lo cho nghề nghiệp của tôi. Tôi sắp 37 tuổi. Cứ đà này, dăm năm nữa, con người chắc khỏi kéo thả mà cứ nói chậm chậm, máy tính sẽ hiểu rồi tự đưa ra các giải pháp có sẵn, người dùng lựa, xác nhận là có một web site. Thất nghiệp đến nơi rồi !
Điều trở thành sự thật là Apple có Siri, Microsoft có Cotana, nhận dạng tiếng người rất chuẩn. Còn ứng dụng web kiểu kéo thả của Microsoft không nhận được ủng hộ của lập trình viên. Bạn thử tìm kiếm “Light Switch Job” mà xem. LightSwitch tự động, kéo thả ở nhiều khâu quá, khiến cho việc chỉnh sửa chi tiết sau này vào code trở nên khó khăn. Lập trình viên trở nên thụ động hoặc là họ cảm thấy sự sáng tạo của họ đã bị thay thế với một công cụ máy móc tạo ra sản phẩm hàng loạt giá cực rẻ. Có lẽ Microsoft đã định làm một cuộc cách mạng kéo thả WYSIWYG đối với ứng dụng web. Nhưng vì trào lưu Responsive ra đời, khiến việc kéo thả WYSIWYG trở nên không khả thi nữa. Mình nghĩ vậy…
Tóm lại ngày hôm nay (2014), làm một ứng dụng web nghiêm túc không thể kéo thả bừa được. Chính vì vậy Adobe DreamWeaver không còn là công cụ số 1 để làm web nữa, WebFusion cũng chết từ lâu.
Dream Weaver
Đúng là công việc lập trình web trở nên rất phổ biến nhưng nó sẽ không phải là tất cả. 2009 đến 2014 chứng kiến chu kỳ bùng nổ của ứng dụng di động trên IOS, Android và Windows Phone. Rất nhiều lập trình viên web chỉ có kỹ năng kéo thả, cấu hình đã cảm thấy bất an khi công việc ngày càng trở nên bèo bọt và việc lập trình di động ngày càng nhiều, thành công cũng lớn và mức độ khó, cạnh trạnh cũng tăng. Thế là người ta nghĩ ra PhoneGap, Cordova, jQuery Mobile, Kendo UI…để web dev nhanh chóng trở thành mobile dev.

Nhưng rồi đến năm nay 2014, người ta bắt đầu phàn nàn sự đi xuống trông thấy của các ứng dụng hybrid app so với native app. Tham khảo bài này The State of Native vs. Web vs. Hybrid.Người dùng di động trở nên khó tính hơn, đòi hỏi app phải mượt, đẹp, trải nghiệm không được giật, tối ưu cho từng hệ điều hành di động một.
Như vậy là lập trình web không phải là tất cả, lập trình di động đã tăng, và yêu cầu phải học bài bản hơn, kỹ càng hơn.
Có những video, tuts dạy tạo ra một web site (dạng To Do List, lịch sử từ demo của Ruby On Rails, hay PetShop của Java) hoàn thành trong 15 phút là cách để lôi cuốn lập trình viên dùng những framework này. Nó tiện, MVC ngon, code ít, convention over configuration… đó chỉ là chương nhập môn thôi. Vấn đề phức tạp vẫn còn đó rất nhiều: trải nghiệm người dùng (UX), phù hợp với nhiều màn hình (responsive), tăng hạng khi được tìm kiếm (SEO), tốc độ – khả năng chịu tải (performance -load), cách thức cập nhật thông tin chủ động hơn (reactive programming thay vì thụ động kiểu request – response), lưu-truy vấn dữ liệu phi cấu trúc (noSQL), phân tích dữ liệu lớn ra sao (big data)
Lập trình web mà giỏi hết những thứ trên chắc cần học – thực hành liên tục trong 7-10 năm rồi đó.
Kết luận là các bạn trẻ, bạn lập trình già hãy học CNTT nghiêm túc, liên tục. Đọc nhiều, code nhiều, đừng ngừng lại.
A- “Tất cả lập trình không phải là lập trình web”
B- “Lập trình web không đơn giản”.
——-Bài dịch của bạn Hồ Hữu Hùng. Cảm ơn tác giả đã có bài dịch rất hay ———–
Michael Braude đã công khai chỉ trích về sự phổ biến của lập trình web:
“Lý do mà hầu hết mọi người đều muốn lập trình web là bởi vì họ không đủ thông minh để làm bất cứ việc gì khác. Họ không hiểu về trình biên dịch, concurrency, 3D hay lớp kế thừa. Họ không có một manh mối gì về việc tại sao tôi lại sử dụng một interface hay một lớp abstract. Họ không hiểu về: các phương thức ảo, con trỏ, tham chiếu, bộ dọn rác, finalizers, truyền tham chiếu hay tham trị, các hàm hủy ảo trong C++, hay sự khác nhau giữa struct và class trong C#. Họ cũng không biết về các quy trình phát triển phần mềm như: Waterfall (thác nước), Spiral (xoắn ốc), Agile? Hãy quên tất cả những thứ đó. Họ cũng chưa bao giờ nhìn thấy một tài liệu phân tích yêu cầu (requirements document), họ cũng chưa bao giờ viết ra một tài liệu thiết kế (design document), họ chưa bao giờ vẽ ra được một lược đồ UML, và họ thậm chí còn chưa bao giờ nghe nói tới sequence diagram.
Nhưng họ biết làm một vài thứ: họ biết làm thế nào để ném ra một trang web ASP.NET, viết một số câu lệnh SQL (với cú pháp rất dở) để truy lục cơ sở dữ liệu, rồi đổ vào một dataset, và hiển thị kết quả lên lưới (grid control). Họ chỉ biết có bấy nhiêu đó. Và chắc chắn là trình độ cũng chẳng phát triển được gì hơn.
Xin thứ lỗi cho tôi vì việc đã xúc phạm, nhưng nói thực tôi không có một chút hứng thú nào để trở thành một ‘gã phát triển web’. Vì có hai lý do cho điều này. Thứ nhất, nó không đủ độ thách thức đối với tôi. Và thứ hai, bởi vì phần lớn các công ty Internet thì chứa đầy những kỹ sư tồi – đúng là như vậy bởi vì bạn không cần phải biết những thứ phức tạp để trở thành một tay phát triển web. Và tôi cũng đang lo xa rằng, Internet sẽ phải chịu trách nhiệm cho việc tập hợp của những thứ vớ vẩn và làm giảm giá trị trí tuệ của chúng ta. Bạn không cần phải thông minh để làm ra một trang web.
Tôi thực sự hy vọng rằng mọi người đã sai và mọi thứ không “chuyển hết sang môi trường web”. Bởi vì nếu điều đó xảy ra, một ngày nào đó hoặc là tôi sẽ phải miễn cưỡng gia nhập phong trào tẻ nhạt này, hoặc là tôi sẽ phải chuyển sang một ngành khác.”
Hãy để qua một bên, trong chốc lát, sự tranh cãi ngớ ngẩn về việc cho rằng phát triển web thì không thách thức, và rằng nó chỉ thu hút những lập trình viên kém chất lượng. Thậm chí nếu điều đó có đúng đi chăng nữa, thì nó cũng không thích hợp chút nào.
Tôi ghét việc phải nói một tin xấu tới Michael, nhưng bởi tỷ lệ phần trăm người dùng web đang tăng lên, thì có thể nói rằng các ứng dụng trên desktop đã chết. Hầu hết các ứng dụng desktop điển hình đã bị thay thế bởi các ứng dụng web trong mấy năm vừa qua. Và rất nhiều trong số chúng bị thay thế mỗi ngày, khi mà các trình duyệt web ngày càng trở nên mạnh mẽ, nhiều khả năng và sức mạnh hơn xưa.
Bạn hy vọng rằng mọi thứ không “chuyển hết sang môi trường web” ư? Tỉnh lại đi anh bạn! Điều đó đã xảy ra rồi!
Bất kỳ sinh viên của ngành lịch sử máy tính nào cũng sẽ nói với bạn rằng sự thống trị của các ứng dụng web là chính xác như cái mà nguyên tắc về sức mạnh tối thiểu đã dự đoán:
“Ngành Khoa học Máy tính đã mất 40 năm để làm cho các ngôn ngữ lập trình trở nên mạnh mẽ nhất có thể. Ngày nay chúng ta phải đánh giá cao những lý do cho việc chọn những giải pháp không phải là mạnh nhất mà là giải pháp ít sức mạnh nhất. Ngôn ngữ lập trình càng ít sức mạnh, thì bạn sẽ càng làm được nhiều thao tác dữ liệu trong ngôn ngữ đó. Nếu bạn viết nó bằng một hình thức đơn giản, thì bất kỳ ai cũng có thể viết một chương trình để phân tích kết quả từ nó. Ví dụ, một trang web cung cấp thông tin về dự báo thời tiết sử dụng RDF (một kiểu lưu giữ liệu đơn giản theo chuẩn XML) để mô tả dữ liệu của nó, thì một người dùng có thể truy lục nó như là một table, có thể tính toán trên nó, vẽ đồ thị, suy luận mọi thứ về nó trong sự kết hợp với những thông tin khác. Còn nếu theo một hướng khác là trang thông tin thời tiết này được viết bằng một Java applet tinh xảo. Trong khi điều này có thể mang lại một giao diện người dùng rất ấn tượng, nhưng nó lại không thể phân tích được chút nào cả. Những bộ máy tìm kiếm khi tìm thấy những trang web này sẽ không biết dạng dữ liệu của nó ra sao và nội dung của nó đang nói về cái gì. Chỉ có một cách duy nhất để biết cái Java applet đó đang nói về cái gì là chạy nó hiển thị trước mặt một con người bằng xương bằng thịt.”
Môi trường web là tiêu biểu cho việc làm ra những thứ đơn giản nhất mà có thể vẫn hoạt động tốt. Nếu điều đó làm bạn kinh hãi — hoặc làm bạn bối rối — thì tôi xin khiêm tốn để nói với bạn rằng bạn không có tố chất để trở thành một lập trình viên.
Có phải tất cả các ứng dụng đều nên trở thành ứng dụng web không? Dĩ nhiên là không. Sẽ vẫn tiếp tục có những trường hợp ngoại lệ quan trọng và những loại phần mềm mà không có gì để làm đối với web. Nhưng chúng chỉ là những ứng dụng thiểu số và quá đặc thù. Đó là những ứng dụng ngách quan trọng mà thôi.
Nếu bạn muốn phần mềm của mình được trải nghiệm bởi nhiều người dùng nhất có thể, thì không có cách nào tốt hơn là nên phát triển nó dưới dạng một ứng dụng web. Dạng web là cách hiệu quả nhất, lan tỏa nhất và hầu như có thể phân tán ngay lập tức. Bất kỳ người dùng nào chỉ cần một đường truyền Internet và một trình duyệt, bất kỳ họ ở đâu trên thế giới, thì với chỉ vài cú click chuột là đã có thể tương tác với phần mềm mà bạn viết ra. Người dùng tiếp cận đến thậm chí cả những ứng dụng web dở nhất . Đó là lý do tại sao tôi lại đúc kết ra một điều luật cho chính mình, tôi tạm gọi nó là Atwood’ Law:
“Atwood’s Law: bất kỳ một ứng dụng nào mà có thể viết bằng JavaScript, thì cuối cùng nó sẽ được viết bằng JavaScript.”
Viết ứng dụng giống Photoshop, Word, hoặc Excel bằng JavaScript thì mới nghe tưởng chừng như là hoang tưởng, nhưng điều đó là không thể tránh khỏi. Nó sẽ xảy ra. Thực tế, nó đã và đang xảy ra. Bạn hãy nhìn xung quanh mà xem.
Là một lập trình viên phần mềm, tôi hạnh phúc nhất khi sản phẩm mình viết ra được người dùng đón nhận. Điều gì là đáng nói nếu phần mềm của bạn thường đi theo một lộ trình cố định là đầu tiên nó được đóng gói trong các file nhị phân, sau đó nó được mua và cấp license và tải về và cài đặt và bảo trì rồi cập nhật? Cùng với tất cả những công đoạn cũ kỹ này, đó là những rào cản truyền thống giữa lập trình viên và người dùng, tôi lấy làm ngạc nhiên khi ngành công nghiệp phần mềm vẫn còn được tổ chức theo cách này. Nhưng trong thế giới mới của lập trình ứng dụng web, những hạn chế này đã không còn nữa. Không có ranh giới nào nữa. Phần mềm của bạn có thể sử dụng ở bất cứ đâu.
Lĩnh vực lập trình web thì còn lâu mới đạt đến mức độ hoàn hảo. Nó thực ra còn nhiều thứ cần phải cải tiến. Bất kỳ một tay Coder nào cũng có thể đẻ ra một ứng dụng web tồi, và có đến 99% các ứng dụng web là hoàn toàn dở ẹc. Nhưng điều này cũng đồng nghĩa có những lập trình viên tài năng đang giới thiệu những sản phẩm của họ đến hàng trăm, hàng ngàn, có thể thậm chí hàng triệu người dùng, điều mà họ chưa bao giờ có thể mơ tới ở thời trước khi có web. Không có gì buồn và lãng phí tiền bạc hơn khi sản phẩm của mình chết ẻo và không được ai biết đến mà sử dụng. Việc viết phần mềm dưới dạng ứng dụng web cho phép các lập trình viên đưa sản phẩm của họ đến trước mặt một ai đó, ở một nơi nào đó. Thậm chí nếu sản phẩm đó rất tồi.
Nếu những tranh luận về người dùng và nghề phần mềm vẫn chưa đủ để thuyết phục bạn, thì chúng ta hãy quan tâm đến góc độ kinh doanh:
“Bạn đang làm một ứng dụng web, phải không? Giờ không phải là thời điểm của những năm 80 nữa. Ứng dụng web của bạn dù đang lộn xộn và dở dang thì vẫn nhiều thành công hơn những phần mềm hoành tráng của đối thủ được viết dạng ứng dụng desktop.”
Không lâu nữa, tất cả lập trình sẽ là lập trình web. Nếu bạn không nghĩ rằng đó là một lý do để chúc mừng những lập trình viên bình thường, thì có thể bạn nên tìm một nghề khác.
Source: http://techmaster.vn/2014/10/tat-ca-viec-lap-trinh-deu-se-la-lap-trinh-web/