Làm thế nào để đào tạo lập trình viên cơ sở cho môi trường web (phức tạp) ngày nay?


39

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?


8
Đoạn thứ hai đến đoạn cuối có vẻ như bạn có thể không nhận thấy một sự thay đổi quan trọng đã xảy ra trong 15 năm qua: Các lập trình viên nói chung thực tế đã biến mất . Cho bất cứ ai biết tất cả các chi tiết mà bạn đề cập đến họ sẽ phải có, trong ngành công nghiệp trong 15 năm. Bạn có thể có kết quả tốt hơn trong việc tìm kiếm / đào tạo các chuyên gia biết một hoặc hai trong số những điều bạn liệt kê rất mật thiết và tạo một nhóm từ các chuyên gia khác nhau mà bạn cần ( sau đó là crosstrain). Hoặc tìm các kỹ sư cao cấp với 15 năm kinh nghiệm như mình, nhưng đó không phải là nhiệm vụ dễ dàng.
Jimmy Hoffa

Chỉ cần FYI, một đường cong học tập dốc có nghĩa là bạn học được điều gì đó thực sự nhanh chóng. Nó gây nhầm lẫn cho một số người khi sử dụng không chính xác :)
Alternatex

Tôi luôn sử dụng cụm từ có nghĩa là "khó" (tiếng Anh không phải là tiếng mẹ đẻ của tôi) nhưng Wikipedia nói nó mơ hồ, vì vậy tôi không biết lựa chọn tốt nhất ở đây: en.wikipedia.org/wiki/Learning_curve :)
Rômulo Ceccon

Câu trả lời:


39

Nhiều người sẽ không thích ý tưởng này, nhưng tôi ủng hộ điều này bất cứ nơi nào tôi có thể: bất kể ngôn ngữ lập trình và môi trường, nếu họ không có kinh nghiệm và nếu có các nhiệm vụ bảo trì phát sinh từ các báo cáo lỗi của khách hàng trong thế giới thực của bạn, hãy cố gắng đảm bảo rằng họ được giao cho loại nhiệm vụ đó ít nhất là trong 30-40% (+) thời gian của họ. "Đây là báo cáo lỗi, hãy xem nó, giải quyết nó. Nếu bạn không biết tất cả những gì về nó, hãy liên lạc với các đồng nghiệp có kinh nghiệm, google nó, bất cứ điều gì". Công việc thực sự trên các vấn đề thực sự, khôngđồ chơi, ít nhất: không chỉ đồ chơi. Tất nhiên, chắc chắn rằng ai đó có nhiều kinh nghiệm sẽ nhìn vào những gì họ đã làm trước khi nó được phát hành và chuyển đến khách hàng, tất nhiên. Hãy chắc chắn rằng đồng nghiệp mới nhận được phản hồi trung thực về những gì anh ta đã làm từ đồng nghiệp và khách hàng. Chọn các nhiệm vụ này một cách cẩn thận để không làm quá tải chúng, nhưng hãy nhớ rằng một ngày nào đó bạn muốn chúng thực hiện công việc của chúng một cách độc lập.

Thực hiện sửa lỗi là học về công việc cho phép họ làm việc với mã thực sự được thực thi và có một số liên quan (nếu không sẽ không có báo cáo lỗi) và sẽ chỉ cho họ trong nhiều ví dụ về cách không làm điều đó.

Trọng tâm được tự động đặt vào các điểm đau. Họ sẽ bắt đầu tìm hiểu những chi tiết thực sự gây rắc rối. Nó cũng đặt trách nhiệm thực sự lên vai họ ngay từ đầu, điều này (trong khi việc bảo trì như vậy không thực sự hấp dẫn) có thể tạo động lực hơn nếu họ hoàn thành nó để làm hài lòng khách hàng / người dùng cuối. Vượt qua những gì họ đã làm sẽ được các đàn anh của bạn thực hiện nghiêm túc hơn vì họ biết được tác động nếu có sự cố xảy ra, và theo cách đó nó cũng sẽ đơn giản hóa việc hòa nhập vào nhóm, vì điều đó cũng sẽ khiến họ nói chuyện với nhau một cách tự động.

Vấn đề là không thiết lập chúng hiệu quả ngay từ giây phút đầu tiên (vì nó có thể trông như thế nào). Vấn đề là đảm bảo rằng họ biết rằng họ phải làm một việc gì đó có giá trị ngay từ giây phút đầu tiên, và tập trung vào những gì quan trọng nhất mà không cần phải thực sự tạo ra một danh sách.

Tôi có một số năm kinh nghiệm làm việc mỗi giờ và sau đó với những người trực tiếp từ trường đại học vào công việc phát triển mới của họ, và kết quả tồi tệ nhất tôi thấy là thường khi một người không có ít nhất một số kinh nghiệm về bảo trì được yêu cầu phát triển ứng dụng mới . Chỉ cần đảm bảo rằng họ luôn có người mà họ có thể yêu cầu hỗ trợ nếu họ cảm thấy bị mất.


Tôi làm điều tương tự. Câu trả lời tốt.
Rocklan

Tôi bắt đầu sự nghiệp sửa chữa khuyết điểm của mình trong năm đầu tiên. Khi tôi chuyển sang các dự án khác, tôi cảm thấy việc sửa lỗi giúp tôi làm tốt hơn vì tôi biết không nên làm gì.
Brandon

8

Trước tiên, hãy giả sử rằng bạn đã thuê các lập trình viên cơ sở thực sự có năng lực. Đây không hẳn là một giả định an toàn, đặc biệt là khi các lập trình viên cao cấp phỏng vấn "một người ít kinh nghiệm hơn tôi" có khả năng bỏ qua sự bất tài cơ bản.

Nhưng, giả sử họ có năng lực, bước đầu tiên là gửi họ đến một lớp học. Một lớp học một tuần sẽ tiêu tốn của bạn $ 2.000- $ 3.000 (US). Tuy nhiên, nó sẽ cung cấp cho họ kinh nghiệm thực tiễn, với một người hướng dẫn (hy vọng) hiểu tài liệu và một kế hoạch bài học được thiết kế để đưa họ đến tốc độ. Gửi ai đó bằng một cuốn sách và chỉ thị để "học cái này" sẽ không ở đâu có giá trị, và có khả năng sẽ tốn kém hơn (chi phí của lớp học chỉ bằng một tuần lập trình viên lãng phí).

Sau khi họ có kiến ​​thức cơ bản, hãy làm việc với họ. Ngồi ở bàn kế bên và dành ít nhất một nửa thời gian của bạn để đảm bảo rằng họ hiểu doanh nghiệp của bạn và cách làm việc của bạn. Vâng, nó sẽ làm giảm năng suất của bạn, ít nhất là ban đầu, nhưng về lâu dài sẽ làm cho nhóm của bạn trở nên hiệu quả hơn. Và nếu bạn nghĩ, một lần nữa, về chi phí, nếu một người trẻ lãng phí một tháng làm điều sai trái, điều đó có thể bằng một nửa tháng lương của bạn.


4

Các ứng dụng đồ chơi mà bạn yêu cầu chúng thực hiện nên thực hiện một số chức năng CRUD cơ bản và mỗi nhà phát triển nên viết mã riêng. Nhưng bạn có thể thảo luận về ứng dụng trong đánh giá mã và đưa ra lời khuyên. Họ sẽ cần hiểu kiến ​​trúc tổng thể của một ứng dụng MVC trước, nếu có bất kỳ kỳ vọng hợp lý nào về năng suất là có thể.

Từ đó, mỗi nhà phát triển sẽ có thể tự mình tấn công vào các chủ đề liên quan như Javascript, CSS, DAL, trình tạo mẫu, định tuyến, v.v. Bạn có thể cung cấp cho họ hướng dẫn về chủ đề nào cần nghiên cứu (có thể dựa trên nhu cầu cấp thiết nhất của công ty bạn), tư vấn cho họ và theo dõi tiến trình của họ. Chuyển các nhà phát triển từng lúc một sang các dự án đơn giản tạo ra chức năng sẽ đưa nỗ lực phát triển thực tế của bạn về phía trước, thời điểm họ thể hiện sự nắm bắt các kỹ năng cần thiết.

Bạn có thể ghép một số nhà phát triển có kinh nghiệm của mình với người học việc như một loại chương trình kèm cặp. Cần có hướng dẫn cho các nhà phát triển cơ sở để họ biết khi nào họ có thể làm gián đoạn người cố vấn của mình và trong bao lâu. Người cố vấn của họ có thể giám sát công việc của họ khi họ bắt đầu viết mã thật.

Bạn sẽ có một thời gian tốt hơn nếu bạn có thể tìm thấy những người trẻ rất thông minh, tò mò trí tuệ và tự khởi nghiệp. Tôi đã thấy quá trình này hoạt động; đó là cách tiếp cận của chủ nhân trước đây của tôi, vì anh ta không muốn trả nhiều tiền cho các chuyên gia, mặc dù đó là một kiểu "chìm hoặc bơi" (không có chương trình đào tạo chính thức nào như vậy). Thách thức lớn nhất của anh là khiến họ ở lại đủ lâu để thu lại khoản đầu tư của mình; luôn luôn có sự hấp dẫn của việc trả lương tốt hơn ở nơi khác.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.