Thứ Năm, 28 tháng 8, 2014

Học gì để trở thành nhà phát triển web

Học gì để trở thành nhà phát triển web

Web hơn 20 năm tuổi và hiện có rất nhiều nhà phát triển đang làm việc với nó. Danh xưng "Webmaster" có mọi hàm nghĩa, từ nhà phát triển, nhà thiết kế, nhà quản trị cơ sở dữ liệu và nhà quản trị hệ thống web. Ngày nay, chúng ta thấy ngày càng có nhiều khía cạnh chuyên sâu hơn trong lĩnh vực phát triển web như nhà phát triển front-end, nhà phát triển back-end, chuyên gia DevOps và kiểu nhà phát triển "fullstack", nghĩa là làm từ A-Z.


Tính chuyên môn hóa từng lĩnh vực riêng biệt cho web nói lên rằng web đang trở thành một nền tảng thiết yếu và vô cùng rộng lớn. Các trang web là một phần rất quan trọng trong nền kinh tế thế giới và tự bản thân web cũng đóng vai trò không hề nhỏ trong các thành phần cấu thành nên nó như thiết kế, phát triển, bảo trì.


Nhưng với việc chuyên môn hóa như vậy, và mức tăng trưởng chóng mặt của web thì nó cũng mở ra cơ hội cho nhiều người. Trong vài tháng qua, nhiều người đang muốn chuyển hướng từ ngành nghề khác sang làm nhà phát triển web, còn những ai đang phát triển web tiếp tục muốn đào sâu hơn nữa và rộng hơn nữa qua những mảng khác của web. Phát triển web rõ ràng mở ra cơ hội kiếm việc cho nhiều người khi càng ngày càng có nhiều công ty cần những kĩ năng riêng biệt cho web. Thậm chí, nếu bạn thành thục một kĩ năng chuyên sâu phát triển web nào đó, bạn cũng có thể tự mở một công ty khởi nghiệp trực tuyến cho riêng mình.


Nhưng có một thực tế là những người phát triển web không hẳn đã biết chính xác những nền tảng hoặc thậm chí nơi nào nên bắt đầu cho công việc. Do vậy, bài viết mô tả sơ lược những yếu tố cơ bản nếu bạn quan tâm và muốn dấn thân vào lĩnh vực này.


Nếu bạn là nhà phát triển web dạng fullstack, từ A-Z thì ít nhất cần biết những công nghệ web như: Linux, cơ sở dữ liệu, ngôn ngữ máy chủ và framework, các công nghệ máy khách như HTML, CSS và JavaScript.


Nếu các thứ trên, mỗi thứ bạn biết chút ít thì bạn có thể tạo được ứng dụng web cho riêng mình rồi. Tuy nhiên, bạn cần phải tìm hiểu rộng hơn nữa, thêm vài phần nữa về các công nghệ web, để cho bạn cái nhìn khái quát, từ đó hướng bạn đi đến một lĩnh vực phát triển chuyên sâu cho web. Hoặc nếu bạn vẫn thích thú với mọi lĩnh vực của web thì vẫn tốt, miễn là bạn nắm được hết mọi "ngóc ngách" để có thể phát triển được một ứng dụng web tốt.


Linux và máy chủ


Ai cũng quen thuộc với hệ điều hành Windows, nhưng nắm biết được Linux là phần rất quan trọng vì Linux liên quan rất nhiều đến web. Không phải vì nhiều máy chủ truyền thống chạy Linux nhưng công nghệ ảo hóa đang ngày càng ổn định và phổ biến, sử dụng những hệ thống như Vagrant, là hệ thống nguồn mở cho bạn phát triển một máy ảo rồi sử dụng chính máy ảo để chạy ứng dụng.


Nhưng thực chất, không nhất thiết bạn phải hiểu tường tận nền tảng Linux thì mới có thể phát triển web tốt. Nhưng bạn cần hiểu vài thứ cơ bản của Linux, như thự mục, tài khoản và quyền người dùng cũng như làm thế nào để cài đặt chương trình. Bạn cũng cần biết file log của hệ thống được lưu ở đâu, cả file log chung và file log do máy chủ HTTP phát sinh.


Nếu bạn còn lạ lẫm với quyền quản trị hệ thống trên Linux thì việc tìm hiểu những hệ thống như DNS, SMTP và SSL sẽ chẳng giúp ích gì nhiều, mà còn làm cho bạn thêm rối nữa; lúc này hãng cố gắng dựa nhiều vào các công cụ của bên thứ 3 nhiều nhất có thể.


Biết được cách sử dụng những công cụ xử lí văn bản cổ điển nền UNIX như Emacs hay Vim sẽ giúp ích rất nhiều, thạm chí nếu bạn là người chuộng giao diện đồ họa GUI hơn dòng lệnh. Và dĩ nhiên, nếu biết thêm về các công cụ vào/ra của UNIX như grep và find thì sẽ giúp bạn rất nhiều.


Bạn cũng không nên để tâm quá nhiều vào các hệ thống ảo hóa và bộ chứa, không phải vì chúng không liên quan, mà vì chúng sẽ làm bạn thêm rối, làm cho quá trình học hỏi của bạn phức tạp hơn. Những thứ ấy về sau bạn có thể từ từ nắm bắt. Còn nếu khi bạn quyết định sử dụng Vargant, Docker hay Amazon Web Services thì bạn có thể chuyên tâm học riêng những công nghệ của các dịch vụ này.


Linux là hệ thống rất chuyên sâu và phức tạp. Một người có thể mất nhiều năm mới mong hiểu và nắm bắt được toàn bộ hệ thống Linux. Đầu tiên, có thể Linux rất lạ lẫm và khó nhưng dần dần, bạn sẽ tùy biến được môi trường, học được cách nó vận hành và rồi sẽ cảm thấy thoải mái hơn với nó.


Cơ sở dữ liệu


Chẳng có ràng buộc nào bắt buộc một ứng dụng web phải có cơ sở dữ liệu cả. Tuy vậy, trên thực tế, rất hiếm ứng dụng web hiện đại mà không sử dụng cơ sở dữ liệu. Những nhà phát triển mang hướng "hoài cổ" vẫn thích sử dụng loại cơ sở dữ liệu truyền thống, liên kết chặt chẽ với nhau như SQL và nhiều ứng dụng web hiện nay vẫn sử dụng. Tuy vậy, cần công nhận rằng một chuẩn nào đó cũng có lúc thăng, lúc trầm, và cơ sở dữ liệu SQL cũng có thể đang đi xuống.


Vì lí do này mà nhiều người bắt đầu lĩnh vực phát triển web với các loại cơ sở dữ liệu tạm gọi là NoSQL như MongoDB, cho phép bạn lưu các tài liệu phức tạp theo một định dạng hướng đối tượng và ngôn ngữ lập trình hiện đại mà không phải tạo các overhead để truy vấn SQL. Nếu bạn cảm thấy SQL quá rắc rối thì tại sao lại không nghĩ theo hướng NoSQL?


Tuy vậy, có một lí do mà dạng cơ sở dữ liệu có liên kết chặt chẽ như SQL vẫn phổ biến, bởi vì nó đã có hơn 40 năm nghiên cứu, áp dụng và nhất là mang lại nhiều lợi ích. Vẫn rất đáng bỏ công nếu bạn dành thời gian nghiên cứu sâu hơn về một cơ sở dữ liệu liên kết chặt chẽ như vậy, nhất là khi bạn sử dụng các ngôn ngữ cấp cao và trình quản lí đối tượng liên kết ORM (object-relational manager) để xử lí phần lớn truy vấn. Lợi ích lâu dài khi bạn nắm được SQL và các hệ cơ sở dữ liệu liên kết, tính linh động của cơ sở dữ liệu liên kết vẫn "vô đối".


Tất nhiên, điều này không có nghĩa là NoSQL không là gì cả. MongoDB, mới hơn là PostgreSQL giúp nhà phát triển web rất dễ lưu trữ và trích xuất các đối tượng JSON, và chúng vận hành rất hiệu quả.


Nếu bạn đam mê công nghệ về cơ sở dữ liệu thì có thể tìm đọc cuốn Seven Databases in Seven Weeks của Eric Redmond và Jim Wilson, do nhà xuất bản Pragmatic Programers phát hành.


Ngôn ngữ lập trình


Tiếp theo là chọn lựa quan trọng nhất nhưng cũng gây nhiều tranh cãi nhất trong cộng đồng các nhà phát triển, đó là ngôn ngữ lập trình phía máy chủ. Bài viết không nêu ra đâu là ngôn ngữ tốt nhất, nhưng có 2 ngôn ngữ lập trình bạn cần quan tâm: Python và Ruby, không phải hoàn toàn vì bản thân chúng hay, mà còn vì framework Flash và Sinatra đơn giản, mạnh mẽ, có hướng dẫn sử dụng cụ thể và có cộng đồng đông đảo. Bạn có thể tạo các ứng dụng web rất tuyệt vời với 2 framework này, hoặc bạn có thể kết hợp nhiều gói khác nhau để hướng lên framework Django và Rails, mở ra cho bạn nhiều khả năng mới để phát triển ứng dụng.


Thế mạnh của Ruby và Python không chỉ ở khả năng mà chúng làm được, mà còn đây là ngôn ngữ dễ nắm bắt đối với người mới học.


Một tùy chọn khác đang ngày một phổ biến là JavaScript, thường sử dụng node.js, và được cho là ngôn ngữ lí tưởng cho cả 2 đầu: máy khách (trình duyệt) và máy chủ. Node.js không phải là một framwork tuyệt vời nhưng ngày nay lại có rất nhiều người sử dụng nó. Do vậy, JavaScript càng ngày càng phổ biến trong lập trình web cho các ứng dụng đại trà và cho những người nhập môn.


Cũng có vài chọn lựa khác, như PHP dễ học và có cộng đồng đông đảo. Tuy nhiên, PHP không ấn tượng và không "ra dáng" là một ngôn ngữ. Sự thật là WordPress hiện đang chiếm đến 10% nền tảng web trên internet hiện nay, do vậy mà PHP còn tồn tại lâu nữa. Ngoài ra, có nhiều cơ hội để khai phá thêm các mảng mới bên trong hệ sinh thái WordPress.


Tùy vào nền tảng phát triển, kinh nghiệm và sở thích của bạn mà bạn có thể muốn thử một số ngôn ngữ khác như Go, Scala hoặc Clojure, tất cả ngôn ngữ này đều được dùng phát triển ứng dụng web và có cộng đồng hỗ trợ rộng rãi.


Tóm lại, nếu bạn đã biết một ngôn ngữ lập trình nào đó rồi thì bạn nên thử tận dụng nó cho phát triển web. Còn nếu bạn không thấy thoải mái với ngôn ngữ mình đã học thì hãy thử với Python hoặc Ruby. Chúng dễ học, nhiều người dùng và có hệ sinh thái lớn, nhiều framework đáp ứng được đủ mức quy mô ứng dụng. Dĩ nhiên, quyết định là do bạn, có thể bạn không thích 2 ngôn ngữ trên mà muốn theo một ngôn ngữ "độc, lạ" nào đó thì cũng OK. Học để trở thành nhà phát triển web thực thụ nhìn chung khó hơn nhiều so với học chỉ để phát triển ứng dụng web bằng một ngôn ngữ mới hay với một framework mới.


Front-end


Thập kỉ qua, front-end trong phát triển web càng ngày càng trở thành yếu tố tối quan trọng. HTML, rồi CSS, và kết hợp HTML5, CSS, JavaScript và nhiều API để tạo một giao diện front-end trở thành khâu sống còn trong quy trình phát triển ứng dụng web.


Bạn không phải nắm hết mọi thứ trên thì mới có thể phát triển front-end được. Nhưng bạn cần biết đôi chút về HTML cũng như CSS cơ bản. Giỏi hơn chút nữa, bạn cần học thêm JavaScript, mặc dù học được bao nhiêu còn tùy vào ứng dụng web phức tạp đến mức độ nào.


Có lẽ cú hích lớn nhất trong mảng phát triển front-end trong vài năm vừa qua là sự ra đời của các framework front-end như Zurb Foundation và Twitter Bootstrap. Những framework này giúp bạn tập trung vào thiết kế mà mình muốn, khắc phục được những vấn đề mà người khác từng gặp phải trước đây khi chưa có chúng. Như Bootstrap có thể tiết kiệm được cho bạn nhiều thời gian, giúp bạn chuyên tâm hơn về mặt thiết kế hơn là ngồi chỉnh sửa code. Tuy nhiên, Bootstrap và Foundation không có nghĩa là bạn không học CSS, nhưng chúng chỉ giảm số lượng CSS bạn cần để giúp trang web chạy được.


JavaScript cũng hưởng được lợi một phần vì các ứng dụng web càng ngày càng phức tạp hơn và vì mọi người đều có môi trường phát triển JavaScript, đó là trình duyệt web. Lượng module và pakage cho JavaScript cực kì nhiều và không có dấu hiệu ngưng lại. Ember.js và Angular.js phát triển mạnh càng khuyến khích nhà phát triển sử dụng. Cùng lúc đso, những framework front-end thường quá phức tạp đối với nhà lập trình mới vào nghề. Mặc dù jQuery khá cũ nhưng vẫn có một thư viện JavaScript tuyệt vời, giúp nó dễ dàng sinh DOM cho đa nền tảng.


JavaScript vẫn là kĩ năng rất quan trọng cho bất kì nhà phát triển web nào.


Vậy nên bắt đầu từ đâu?


Tin tốt là phát triển web rất rộng, khó có thể chọn sai vì không "bổ đầu này cũng bổ đầu kia". Vì bất kể bạn chọn thứ gì thì cũng luôn có một cộng đồng rất lớn sử dụng cùng công nghệ sẵn sàng hỗ trợ bạn.


Nếu bạn chưa biết gì, hãy thử Python với framework Flask, cơ sở dữ liệu PostgreSQL, framework Bootstrap với jQuery.


Nếu bạn cảm thấy thích lập trình hướng đối tượng hay muốn thêm một chút tính linh động trong viết code, có thể tìm hiểu Ruby với framework Sinatra, kèm cả PostgreSQL, Bootstrap và jQuery.


Cuối cùng, phát triển WordPress là cách thức rất tốt để bạn bước chân vào chính hệ sinh thái của nó.


Kết luận


Đôi khi, có vẻ như là phát triển phần mềm đang biến dần thành phát triển web. Có vẻ nói thái quá nhưng rõ ràng thị trường có một nhu cầu rất lớn về nhà phát triển web. Bất kể bạn học ngôn ngữ lập trình, công nghệ lập trình gì đi nữa thì điều quan trọng là học được tư duy web và cố gắng hình dung điều gì giúp ngành công nghiệp này đi lên, để từ đó bạn mới có thể "gãi đúng chỗ ngứa".


Theo PC World VN.



Không có nhận xét nào:

Đăng nhận xét

QUẢN LÝ KHÁCH SẠN NHÀ HÀNG

QUẢN TRỊ NHÀ HÀNG KHÁCH SẠN

QUẢN TRỊ NHÀ HÀNG KHÁCH SẠN Nỗ lực tìm một CEO (tổng giám đốc) chuyên nghiệp với kỳ vọng người này sẽ đồng hành, gắn bó lâu dài là tâm lý chung của đa số doanh nghiệp Việt Nam. Tuy nhiên, trên thực tế, những cuộc “hôn nhân” đó đều chấm dứt chỉ sau một thời gian ngắn. Khi có sự thay đổi lớn về chiến lược, chẳng hạn như tái cấu trúc, chuẩn bị mua bán – sáp nhập, mở rộng vốn đầu tư và thị trường, các chủ doanh nghiệp thường có nhu cầu tìm kiếm một tướng giỏi để giúp họ lèo lái công việc. Song, khi đã thành công hoặc tạm thành công với chiến lược mới, dấu hiệu rạn nứt giữa đôi bên bắt đầu xảy ra và CEO phải ra đi. Ông Robert Trần, CEO Công ty Robenny khu vực châu Á – Thái Bình Dương, chuyên tư vấn và cho thuê CEO, khuyên, các ông chủ doanh nghiệp đừng quá kỳ vọng vào một cuộc hôn nhân bền vững, lâu dài. “Doanh nghiệp Việt nên thay đổi quan niệm, chọn đúng CEO vào đúng từng giai đoạn phát triển của công ty”, ông nói. Đây cũng là cách thức mà các nước phát triển đã áp dụng thành công.

Khi nào tôi cần thuê CEO?
Nam Long là một tập đoàn chuyên đầu tư và kinh doanh bất động sản đã trải qua 18 năm tồn tại, có 8 công ty con và đang hoạt động mạnh trong 3 lĩnh vực: phát triển quỹ đất, nhà ở và các dự án văn phòng, trung tâm thương mại. Với quy mô ngày càng lớn, ông Nguyễn Xuân Quang, Chủ tịch Hội đồng Quản trị kiêm Tổng Giám đốc Công ty Cổ phần Đầu tư Nam Long, cho biết ông muốn tìm một CEO chuyên nghiệp nhưng 5 năm rồi vẫn chưa tìm được.
Không giống như Nam Long, các công ty như Đồng Tâm, Giấy Sài Gòn đều đã thuê CEO, nhưng rồi họ cũng ra đi. Sau các cuộc chia tay đó, ông Võ Quốc Thắng, Chủ tịch Hội đồng Quản trị Đồng Tâm và ông Cao Tiến Vị, Chủ tịch Hội đồng Quản trị Giấy Sài Gòn, đã có những trải nghiệm quý giá chia sẻ với gần 200 doanh nhân tại buổi Tọa đàm “Finding CEO – Gian nan đường tìm tướng giỏi” do Nhịp Cầu Đầu Tư tổ chức vào cuối tháng 10 vừa qua.
Theo ông Robert Trần, mỗi doanh nghiệp đều trải qua 3 giai đoạn phát triển: bắt đầu phát triển, phát triển và phát triển bền vững. Ở mỗi giai đoạn doanh nghiệp sẽ có mục tiêu khác nhau nên nhu cầu thuê CEO cũng khác nhau. Theo ông, đa số doanh nghiệp lớn tại Việt Nam hiện nay ở giai đoạn đang phát triển, nhưng chính xác là vào đầu, giữa hay cuối giai đoạn thì chủ doanh nghiệp cần phải xác định rõ.
Năm 2007, Đồng Tâm là 1 trong 2 doanh nghiệp lớn của Việt Nam được Bộ Khoa học Công nghệ chọn triển khai thí điểm dự án “Vươn tới đỉnh cao” (BiC – Best in Class), xây dựng những thương hiệu lớn của Việt Nam vươn lên tầm khu vực. Để làm được điều đó, doanh nghiệp phải tái cấu trúc dây chuyền sản xuất, nhân sự… Chủ tịch Võ Quốc Thắng đã mời ông Etienne Lucien Laude (quốc tịch Pháp), từng là CEO Công ty Thiết bị Điện Schneider Vietnam, về giữ chức CEO của Đồng Tâm.
Về Đồng Tâm tháng 8.2008, ông Laude đã bắt tay triển khai module đầu tiên về quản lý sản xuất theo BiC, giúp tiết kiệm tối đa chi phí quản lý, hạn chế tồn kho… Tuy nhiên, cuối tháng 9 vừa qua, Tập đoàn Đồng Tâm đã kết thúc hợp đồng 2 năm với CEO người Pháp này, dù những module quan trọng của quá trình tái cấu trúc vẫn chưa kết thúc.
Giống như Đồng Tâm, đầu năm 2003, Giấy Sài Gòn tiến hành cổ phần hóa, ông Vị đã bắt đầu nghĩ đến việc thay đổi mô hình quản trị từ gia đình sang kiểu quản lý chuyên nghiệp thường thấy ở nhiều tập đoàn đa quốc gia, thuê CEO điều hành Công ty, còn ông lui về làm chiến lược. Đến năm 2008, Giấy Sài Gòn quyết định tăng vốn, mở rộng đầu tư và đã mời ông Trần Xuân Nam về làm CEO. Ông Nam từng là giám đốc tài chính của nhiều công ty lớn như Đồ gỗ Scancom Việt Nam (Đan Mạch), Coca-Cola Việt Nam, Tập đoàn Kinh Đô và là Phó Giám đốc Công ty Gỗ Trường Thành. Với kinh nghiệm và chuyên môn về tài chính, ông Nam đã rất thành công trong việc huy động vốn cho Công ty. Tuy nhiên, khi Giấy Sài Gòn đặt ra chỉ tiêu duy trì và tăng trưởng doanh thu trong thời kỳ khủng hoảng tài chính toàn cầu thì sở trường tài chính của vị CEO mới không còn phù hợp. Cuối năm 2008, ông Nam từ chức.
Lúc này, ông Vị đã mời ông Huỳnh Văn Rô, vốn giỏi trong lĩnh vực bán hàng, về thay ông Nam. Năm 2008, dưới thời ông Rô, tốc độ tăng trưởng của Giấy Sài Gòn có phần ổn định, song tình hình nhân sự lại có nhiều xáo trộn, không ít người giỏi đã ra đi. Đến cuối năm 2009 ông Rô cũng rời Giấy Sài Gòn, ông Vị lại trở về với vai trò CEO.
Cũng với mục đích thay đổi chiến lược, năm 2009, Công ty Cổ phần Kềm Nghĩa quyết định mở rộng thị trường ở nước ngoài, tham vọng xây dựng thương hiệu toàn cầu và mời ông Đỗ Hòa về làm CEO. Ông Hòa từng có hơn 10 năm làm CEO cho các công ty thương mại nước ngoài và Giám đốc Chiến lược Khu vực Đông Nam Á cùng với New Zealand và Úc của Tập đoàn Shell (Hà Lan) suốt 9 năm, trong đó có 2 năm làm chuyên gia cao cấp của Shell tại Indonesia. Tuy nhiên, sau 1 năm, ông Hòa cũng rời Kềm Nghĩa với lý do không đồng quan điểm về chiến lược phát triển của Công ty. Sau 1 năm ông Hòa làm CEO, doanh số của Kềm Nghĩa đã tăng từ 13% lên 21%, ngay trong giai đoạn khủng hoảng tài chính toàn cầu và doanh số của toàn ngành lúc đó giảm đến 40%.
Dù đều có kết cục chung đường ai nấy đi, nhưng sau những cuộc chia tay này ông Robert Trần cho rằng, các ông chủ doanh nghiệp nói trên vẫn đạt được những thành công nhất định vì đã chọn đúng CEO vào đúng giai đoạn phát triển của doanh nghiệp. Tuy nhiên, đến đây một câu hỏi khó lại được đặt ra là biết tìm ở đâu những CEO như vậy.
CEO đến từ đâu?
Theo ông Robert Trần, có 3 nguồn thuê CEO là người Việt làm quản lý tại các công ty đa quốc gia, Việt kiều và nhà quản lý người nước ngoài.
Nhóm CEO người Việt có mặt mạnh là am hiểu thị trường, có nhiệt huyết và tham vọng phát triển nhanh. Đặc biệt, họ cùng có chung ngôn ngữ, am hiểu văn hóa làm việc của người Việt. Trong khi đó, các CEO là Việt kiều đa số có kinh nghiệm quản lý từ các tập đoàn đa quốc gia và lợi thế của họ là giỏi ngoại ngữ, biết văn hóa làm việc ở trong nước và cả nước ngoài. Cuối cùng là CEO người nước ngoài, với lợi thế được đào tạo và làm việc trong môi trường chuyên nghiệp của các tập đoàn đa quốc gia, hiểu thị trường nước ngoài.