On the way to become a senior Ruby developer

kinh-nghiem-lap-trinh ruby-on-rails – It costs 11 mins to read Điểm xuất phát

Tôi – đã gần 4 năm từ lúc tốt nghiệp chuyên ngành CNTT của một trường Cao Đẳng thường thường bậc trung – đang quanh quẩn ở một công ty nghiên cứu thị trường, với một mức lương đủ sống. Đó là một công việc ổn định nhưng nhàm chán, không học hỏi được nhiều từ công việc, một phần cũng bởi nó không liên quan nhiều đến chuyên ngành mình đã học, phần còn lại là bởi công việc cứ lặp đi lặp lại, và khối lượng công việc rất nhiều khiến mình cảm thấy bị áp lực kinh khủng. 4 năm tuy ngắn nhưng thực dài. 

Chịu đựng như vậy là đã đủ, tôi quyết định là mình cần can đảm bước ra khỏi vòng tròn thoải mái của mình, quyết định dành cho bản thân mình một cơ hội, được làm những gì mình thích. Nếu không phải bây giờ, vậy thì là bao giờ? (Nếu không phải là tôi, thì là ai?)

Tôi thiết tha được trở lại với Lập trình Web nhưng ngại phải bắt đầu từ con số không (Hay con số âm nhỉ?) – Những kiến thức tích lũy về PHP, HTML, CSS, JavaScript, ASP.NET, Database… lâu không dùng nên đã bay biến. Tôi có hơi già để bắt đầu lại chăng? Tôi không muốn mình mắc kẹt ở sự trung bình, trung bình về mọi mặt… Và Tôi biết công việc hiện tại sẽ không đưa tôi đi đến đâu cả, bởi vì tôi không hoàn toàn yêu thích nó, có chăng chỉ là cố tìm những niềm vui nho nhỏ trong công việc thường ngày. Và ngày qua ngày, tôi thấy mình càng trở nên thiếu trách nhiệm với công việc hiện tại: tôi thường xuyên bị xao nhãng, thiếu tập trung, mắc lỗi ngày càng nhiều hơn, cáu gắt hơn, nóng nảy hơn… thỉnh thoảng, tôi tự thấy mình chỉ ráng làm qua loa cho xong việc. Tôi thấy mình ngày càng trở thành con người mà tôi không muốn trở thành… Tôi đang làm gì thế này? Ta đã làm chi đời ta? (Tiêu đề bài tản văn của Phạm Lữ Ân trong quyển “Nếu biết trăm năm là hữu hạn” cứ ám ảnh tôi mãi. – http://www.toitaigioibancungthe.vn/miennam/ta-se-lam-chi-doi-ta/ )

*

*

*

Và Tôi bắt đầu như thế nào

Sau khi xong công tác tư tưởng, bây giờ là lúc bước những bước đầu tiên đây.

Đang xem: Nội Dung Khóa Học Ruby On Rails Tại Techmaster

*

Dọn sạch 1 ổ cứng trong Laptop (Và mất sạch dữ liệu của một ổ khác – Do bất cẩn). Cài Ubuntu chạy song song với Windows (Ruby vẫn hoạt động được trên Windows). Trang bị cho mình 1 số lệnh cơ bản trong Linux (chủ yếu liên quan đến cdụngài đặt và vận hành: apt-get, ls, cd, alias, mkdir, rm, mv…), cài đặt Ruby và các ứng dụng cần thiết. (Thích Sublime Text ghê) Tìm hiểu cơ bản về Git và đăng ký tài khoản trên Github – Git là Source Control rất được cộng đồng Ruby ưa chuộng. Trước đây mình đã có kinh nghiệm dùng SVN khi làm đồ án tốt nghiệp nhưng Git có cách hoạt động và khái niệm khác nhiều với SVN, tiên tiến hơn. Đọc các bài viết chia sẻ kinh nghiệm về việc học Ruby và ngộ ra “Đừng học Rails trước khi học Ruby” (Pingo lướt qua Ruby trong 2 chương) – Và chỉ nên học Rails sau Sinatra. Bởi vì Rails hỗ trợ Developer rất nhiều, bản thân nó có khá nhiều nguyên tắc (convention), mà bạn chỉ cần áp dụng rập khuôn là có thể tạo được một ứng dụng Website hoàn chỉnh trong thời gian rất ngắn (Đặc biệt là nếu Ứng dụng Web của bạn chỉ có các thao tác CRUD). Nhưng, nếu chỉ rập khuôn như vậy mãi thì cuối cùng bạn sẽ chẳng hiểu gì về Ruby on Rails. Trong Rails, muốn thay đổi một vài thứ để phù hợp với yêu cầu của mình thì bạn sẽ gặp nhiều khó khăn nếu bạn không hiểu cách làm việc của nó. Và, mình đã chọn cách tiếp cận Lập trình Web với Ruby bằng hướng này.Chuẩn bị tài liệu: The Well-grounded Rubyist (Mình đã tận dụng máy in của Công ty để in ra và đóng thành cuốn nhưng chưa đọc) – Tham khảo các Trang Review thì thấy hầu hết đều đánh giá quyển này rất cao. Nó là một quyển sách đầy đủ, thích hợp để reference khi cần thiết. Beginning Rails 4 – Được Pingo dùng để dạy Rails, nhưng tạm thời mình sẽ không đọc nó, để dành khi cần chuyển qua Rails đã. Learn Ruby the Hard Way – Rất hay, phù hợp cho những người mới bắt đầu với Ruby – Học bằng cách thực hành từng ví dụ và những bài tập mà Tác giả Sách đưa ra. Mình đã đọc cái này trước tiên, sau khi thấy ngán ngẩm với The Well-grounded Rubyist vì nó quá dày. Complete bài học trên TryRuby.org trong khoảng 30p – Một khóa ngắn hạn, miễn phí về Ruby của CodeSchool – Cái này mình dùng để ôn lại một số khái niệm cơ bản trong Ruby (về String, Array, Hash, File, Class…), sau khi đã hoàn tất 1 tuần học và hành với LRbHW. (Sau khi hoàn thành TryRuby thì nó sẽ đề nghị mình chuyển sang Rails for Zombies – cũng miễn phí và một số khóa học có phí khác – Nếu bạn chưa quan tâm đến Rails thì bỏ qua trang này và trở lại khi khác. Trong LRbHW – những Exercise cuối cho mình bước đầu tiếp cận đến Sinatra. Mình thích cái tên Sinatra, Biểu tượng Sinatra và câu Slogan “Singing in the Rain with Sinatra”. Sinatra đã thu hút mình, và qua bước đầu tìm hiểu, nó đơn giản và nhỏ gọn hơn Rails. «

Khi tìm Blog chia sẻ kinh nghiệm học Ruby trên Internet thì tình cờ lạc vào trang của Kylembrown. Mình thấy cách tiếp cận của anh ta hợp với phương hướng tiếp cận của mình: Sau khi thực hành xong App Recall của TutPlus, Kylem sử dụng Bootstrap, Git cho App Recall và cuối cùng là commit nó lên Heroku. Việc deploy ứng dụng lên Internet (Heroku – Hosting khá nổi tiếng trong cộng đồng Ruby, có cung cấp gói miễn phí cho Developer) là một động lực không nhỏ để bạn bước tiếp con đường đầy thử thách phía trước.

Một ngày đau đầu với Heroku – Sau khi đưa Workless vào góp phần làm cho cái App Recall này trở nên xấu hơn, thực hành sử dụng Git, Push lên Repository của mình trên Github, mình đã deploy nó lên Heroku. Thật đau đầu, đụng hết từ lỗi này đến lỗi khác, từ lỗi trong Code, đến lỗi trong việc Configure App để Heroku hiểu. Hết ErrorCode H14, H20 rồi đến H10, liên tục commit, push rồi lại xem Logs để tìm lỗi… Rồi đi từ phát hiện này đến phát hiện khác.

Tham khảo Error Code – https://devcenter.heroku.com/articles/error-codes

Tham khảo Getting Started with Ruby on Heroku – https://devcenter.heroku.com/articles/getting-started-with-ruby#introduction

Heroku with Postgresql – https://devcenter.heroku.com/articles/heroku-postgresql

Trước tiên là Gemfile và Gemfile.lock, Heroku yêu cầu phải có 2 file này, thế là phải dùng đến Bundle (Bundle init và Bundle Install), nhờ vậy mà biết thêm cách quản lý Gem.

Xem thêm: Khoa Sư Phạm Trường Đại Học Bạc Liêu Năm 2021, Thông Tin Tuyển Sinh Trường Đại Học Bạc Liêu

Tiếp theo là File Config.ru, File Procfile.

Heroku không dùng Sqlite, thế là lại phải cài đặt Postgresql vào Ubuntu (Postgresql, Postgresql-contrib, Postgresql-dev – cần thiết nếu bạn muốn cài các Gem liên quan đến Postgresql vào Ruby) – Tham khảo thêm tại https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04

Fix lỗi R10 khi chạy App Sinatra + Heroku – http://stackoverflow.com/questions/17036951/heroku-production-issues-with-sinatra-app-error-r10

Và … Finally, It works!!!

Cuối tháng 8/2014 –

Những ngày tiếp theo, trở lại với công việc thường ngày, một số dự án mình đang handle đến deadline nên mình đành gác lại việc học Ruby một thời gian để hoàn thành những dự án kia. (Nhưng có vẻ là càng ngày công việc Data Processing đó ngày càng chán đối với mình).

Xem thêm: Công Ty Cổ Phần Kiến Trúc Xây Dựng Skyline, 403 Forbidden

Tranh thủ thời gian này, cài một Blog cá nhân bằng Ruby, Sau một thời gian tìm hiểu thì quyết định dùng thử Octopress xem sao. Octopress sử dụng Markdown, vậy là mình phải đọc qua Syntax của Markdown một chút. Lại tiếp tục gặp rắc rối với việc Deploy lên Heroku nhưng nhờ việc đã từng có kinh nghiệm trước đó nên lần này đã giải quyết nhanh hơn, gặp ít lỗi hơn.

Leave a Reply

Your email address will not be published. Required fields are marked *