Cũng đã khá lâu kể từ khi mình đặt bút – à không – đặt bàn phím viết những dòng chia sẻ đầu tiên, hôm nay như thói quen cả năm qua mình vẫn làm – thức dậy và mở trang blog lên để kiểm tra xem có tin tức hay phải hồi gì mới của mọi người không, mình nhận được thông báo có vài bạn đã tương tác (like, comment, …) với blog. Đảo mắt qua trang thống kê, có một con số khiến mình đôi chút thích thú: lượng view posts đã vượt con số 5000.
Thực ra thì trước giờ vẫn thế, mình viết blog không phải nhằm câu like câu view sống ảo làm gì, đơn giản mình chỉ muốn có một nơi để ghi lại được những gì mình đã tìm hiểu được, lưu trữ được những thông tin mình chiêm nghiệm và đúc kết, để ngoài máy tính cá nhân ở nhà thì mình có thể truy cập bất cứ đâu. Là một lập trình viên như bao nhiêu người khác, rất nhiều những thông tin mình tìm và đọc được ở những trang như stackoverflow thần thánh, cplusplus về C++, scotch.io hướng dẫn lập trình, codeproject, congdongcviet, quora … và rất nhiều trang web cũng như blog cá nhân khác đã – có thể nói rằng – cứu rỗi cuộc đời mình. Đôi nghi ngẫm lại: cũng nên tìm cách để đóng góp cho sự phát triển chung chứ nhỉ …

Thật ra thì không chỉ riêng mình viết bài trong này, mà còn vài bạn nữa. Đôi khi, mình chỉ muốn nói là … cảm ơn mọi người rất nhiều.
Thời gian qua blog có gì?
1. Web – Phức tạp mà cũng đơn giản
Thời gian ban đầu, blog được tạo ra để viết tài liệu chia sẻ nội bộ cho một số bạn học môn Phát triển ứng dụng web thôi, bọn mình đều học Khoa Học Tự Nhiên cả, phần lớn là theo đuổi chuyên ngành Khoa học máy tính ^^. Chủ đề chính được thảo luận đương nhiên là web rồi, do là công nghệ PHP và Java là những thứ được dạy và được dùng nhiều ở bên ngoài nên tụi mình có những bài viết hướng dẫn về lập trình web với PHP và lập trình web với Java, bạn nào muốn tìm hiểu về web có thể bắt đầu bằng những bài viết này.
Đã làm web thì ngoài những kiến thức back-end ở trên, còn có những kiến thức về front-end nữa, về cái này thì cốt lỗi nó chỉ có 3 cái chính đó là HTML xây dựng bộ khung hiển thị, CSS đóng vai trò makeup cho trang web, và cuối cùng là javascript đóng vai trò xử lí các thao tác trên browser.

Nếu ví hệ thống web của bạn giống như một nhà hàng, thì back-end xử lí là các server chạy PHP hoặc Java đóng vai trò làm ra món ăn (dữ liệu), ở phía front-end, các bàn ghế đã được bố trí sẵn tựa như HTML đóng vai trò bộ khung để quy định vị trí hiển thị thông tin, các khăn trải bàn hay bình hoa trang trí tựa như CSS đóng vai trò làm đẹp cho trang web, làm cho trang web trở nên màu sắc hơn. Khi khách hàng vào ăn (truy cập vào trang web của bạn), đầu bếp sẽ chuẩn bị và cung cấp món ăn bạn yêu cầu (dữ liệu trả về được hiển thị lên trang web), Javascript thì đứng đó tựa như những anh bồi bàn sẵn sàng tiếp nhận những yêu cầu khác của các bạn. Một cách nôm na, hệ thống web chỉ có các phần chính là thế, bạn có thể học tất tần tật về những thứ cốt lõi của web ở các bài viết kể trên. Có cả những bài về setup môi trường phát triển luôn nhé mọi người.
Ngoài các phần chính về phát triển hệ thống, còn có các vấn đề khác như bảo mật, web hosting, tên miền để public website ra internet, setup môi trường phát triển ứng dụng, các vấn đề tối ưu … Những kiến thức kiểu đó được để trong phần các vấn đề hệ thống.

Nhắc tới web là phải nhắc tới các công nghệ và framework hỗ trợ. Do hiện nay nhu cầu xây dựng các trang web ngày càng lớn, đồng thời rút ngắn thời gian phát triển, nên các framework ra đời nhằm mục đích này, do không có công nghệ nào là hoàn hảo nên cũng sẽ có nhiều công nghệ bổ khuyết cho nhau là vậy. Trước đây, vai trò xử lí dữ liệu được dồn toàn bộ về server, nhưng những công nghệ mới hiện nay đã chia bớt các công việc này cho client, và để thao tác với client thì không thể bỏ qua Javascript. Do Javascript là ngôn ngữ kì dị và khó lường, nên người ta có xu hướng tạo ra nhiều thư viện và framework để hỗ trợ lập trình viên, Angular là một ví dụ. Thậm chí với Angular-Meteor (meteor là một framework), thì bạn có thể trở thành full-stack developer chỉ với ngôn ngữ là Javascript.
2. Con đường trở thành developer tốt
Có thể nói rằng, sau khi tốt nghiệp đại học, hoặc ở những năm đầu của sự nghiệp lập trình viên, thì chúng ta chỉ mới ở một mức gọi là coder – mình hay nói đùa rằng coder là code xong rồi đơ 🙂 có nghĩa là chúng ta mới chỉ có khả năng viết ra chương trình chạy được đúng yêu cầu, và … chỉ thế thôi. Chương trình chạy được là một chuyện, nhưng còn hàng tá thứ khác cần quan tâm: bảo trì dễ không, mở rộng có được không, performance thế nào, xử lí đã tối ưu chưa, code đã đẹp và chuẩn chưa .v.v.. Có thể thấy, code chạy được chỉ là một trong những tiêu chí rất nhỏ, chúng ta cần nhiều hơn thế.

Con đường sự nghiệp của mỗi người là rất dài, chúng ta cần liên tục học hỏi và cải thiện mình. Để làm được điều đó, chúng ta có thể học hỏi kinh nghiệm từ các anh chị đi trước, đi học thêm các lớp chuyên môn, tự học thêm ở nhà, ..v..v. Học từ những người đi trước là một trong những cách rất hay và thiết thực, chúng ta có thể hỏi trực tiếp hoặc theo dõi cách họ làm. Đọc sách để học hỏi từ họ cũng là một cách rất hữu ích. Chắc chắn kinh nghiệm nhiều năm trong lĩnh vực phát triển phần mềm của họ sẽ giúp ích rất nhiều rồi. Một vài cuốn hay mình đã đọc như: The clean coder giúp hình thành thái độ tốt và định hướng con đường, The art of readable code chỉ cách viết code đẹp, dễ đọc và chuẩn hơn, .v.v. Tóm lại, chỉ đi làm kiếm tiền là không đủ, chúng ta còn phải chú ý để phát triển hằng ngày, tất cả những gì hữu ích mà mình học được hoặc được chỉ dạy thì mình sẽ chia sẻ trong mục “trở thành developer“, và “chuyện ngoài giờ” là mục để nói chuyện trò linh tinh, tâm sự thầm kín, .v..v. 🙂
3. Chia sẻ kinh nghiệm cho những em còn đi học
Thật sự mà nói, rất khó để đạt được một điều gì đó có giá trị nếu như bạn không yêu thích công việc của bạn làm, và nếu bạn không yêu thích công việc của bạn thì bạn cũng sẽ khó mà cảm thấy vui, cảm thấy “hạnh phúc” trong cuộc sống được. Mình không dám nói là đã có nhiều kinh nghiệm, nhưng thôi biết được gì thì cứ chia sẻ thôi: cách để tìm ra được điều mình yêu thích, học xong phổ thông thì làm gì, tại sao bạn nên học đại học, nên chọn đại học và ngành nghề như thế nào, .v.v. Mình không thấy nhiều người nói về mấy chuyện này, nên mình chia sẻ một vài kinh nghiệm bản thân để giúp các em hình dung được phần nào, hi vọng là sau này sẽ có nhiều người chia sẻ về chuyện đó hơn cho các em hướng nghiệp được tốt.

Sắp tới có gì nào?
Để xem nào, sắp tới sẽ làm gì nhỉ?
- Mình đang đọc vài cuốn sách về IT, sẽ sớm review để mọi người có thể tham khảo.
- SOLID là một bộ nguyên lý lập trình hay, mình sẽ viết đầy đủ về nó trong thời gian tới.
- Có cả những bài viết về công nghệ và framework mới nữa, có thể là Bootstrap (3 và 4), Angular, Node, WordPress …
- Trong thời gian tới mình cũng dự định dành thời gian tìm hiểu về system architect, dev-ops, dessign patter, … sẽ có những bài chia sẻ về những gì mình tìm hiểu được
- Đương nhiên có cả những kinh nghiệm, trải nghiệm, tips, … về cách để trờ thành một developer nữa. Phương châm là: đừng là coder, hãy trở thành developer 🙂
- và còn nhiều thứ lặt vặt nữa …
Hi vọng là đã và sẽ luôn chia sẻ được điều gì đó bổ ích cho mọi người. Cảm ơn tất cả 🙂

Pingback: [Giới thiệu sách] The art of readable code – Cái tên đã nói lên tất cả – Webbynat
Pingback: [ Giới thiệu sách ] The pragmatic programmer – Lập trình viên … tiêu biểu. (P1) – Những dòng code vui
Pingback: Điều gì làm bạn trở thành một lập trình viên tiêu biểu – CodeGym Blog