Hiện tại, công ty chúng tôi phát triển các ứng dụng bao gồm, hầu hết thời gian, trong các máy chủ web Ruby on Rails và một loạt các máy khách REST khác nhau, từ các hệ thống kiosk trong Java đến các thiết bị nhúng trong C / C ++ (bên cạnh các giao diện cho trình duyệt web tiêu chuẩn). Chúng tôi cần mở rộng đội ngũ của mình và thất bại trong việc tìm kiếm các lập trình viên giỏi, chúng tôi quyết định nỗ lực đào tạo các lập trình viên cơ sở, những người sẽ cùng phát triển với công ty.
Chúng tôi đã đưa cho họ một số sách Ruby và Rails và yêu cầu họ xây dựng một số chương trình đồ chơi, nhưng giờ tôi mới nhận ra đường cong học tập đối với tình trạng lập trình web hiện nay như thế nào.
Khi tôi bắt đầu lập trình 15 năm trước, tôi chỉ sử dụng Delphi và Source Safe và có thể sản xuất phần mềm có thể sử dụng ngay từ đầu. Chúng đều là những công cụ đơn giản và thật dễ dàng để đi sâu vào hoạt động bên trong của môi trường. Dần dần, tôi bắt đầu sử dụng các khung của bên thứ ba, đã chuyển sang CVS, SVN và cuối cùng là Git, đã học được các phần tạo ra web ngày nay, như HTTP, JavaScript, CSS, REST, v.v. Ngày nay, thậm chí sau nhiều năm kinh nghiệm, tôi không biết nhiều như cách Ruby on Rails hoạt động bên trong như tôi đã làm trong quá khứ về Delphi và đối với tôi điều đó rất quan trọng để tôi có thể kết nối các khối học tập cơ bản với các công cụ tôi đang sử dụng.
Dường như với tôi rằng các lập trình viên mà tôi đang tuyển dụng sẽ mất nhiều thời gian để tích hợp với nhóm và tạo ra thứ gì đó có thể sử dụng được, bởi vì có rất nhiều điều để học cách sử dụng một khung công tác duy nhất (Rails): Ruby, HTML, CSS, JavaScript, REST, các trường hợp thử nghiệm, truy cập cơ sở dữ liệu (với SQL được xây dựng một cách kỳ diệu bên trong khung!), MVC, ba trình quản lý gói khác nhau (apt cho Ubuntu, gem và bundler cho Ruby), ssh, git, Apache và Phusion Pasbah để triển khai, v.v.
Tôi cảm thấy lạc lõng vì đây là lần đầu tiên tôi cần giao dịch trực tiếp với các lập trình viên cơ sở. Cách tốt nhất để đào tạo lập trình viên cơ sở trong các thực tiễn tốt nhất hiện nay để phát triển web là gì khi có quá nhiều sự lựa chọn?