Tôi, một lập trình trẻ chưa có nhiều kinh nghiệm về lập trình, vẫn đang học những ngày tháng cuối cùng trên ghế nhà trường, đã lựa chọn đến với DEHA, 1 startup chuyên về lập trình với mong muốn tìm kiếm cho bản thân những kinh nghiệm , kiến thức để sẵn sàng trở thành 1 lập trình viên thực sự.
Đến thời điểm này, tôi đã làm việc ở đây được 5 tháng , một khoảng thời gian không quá dài nhưng cũng đã mang lại cho tôi rất nhiều bài học kinh nghiệm quý giá. Ban đầu vào công ty với vị trí thực tập sinh PHP, hầu hết những kiến thức cần có của 1 lập trình viên tôi đều chưa biết , có chăng là kiến thức lập trình căn bản mà tôi tự học trước đó, có rất nhiều thứ tôi cần phải học để bắt đầu được làm việc
Điều đầu tiên tôi phải học chưa phải là kiến thức chuyên môn mà đó là cách làm việc , cách hòa nhập vào trong 1 công ty lập trình. Công ty có khoảng 15 nhân viên là chủ yếu là nam. Ban đầu ,tôi rất nhút nhát, chưa dám giao tiếp nhiều với các anh trong công ty, điều đó khiến quá trình học tập và trao đổi ban đầu rất của tôi rất chậm. Tôi ngại bắt chuyện hay hỏi những điều mình chưa biết với các đàn anh trong công ty, cho đến khi các anh trong công ty thường xuyên chủ động hỏi hạn và đề nghị giúp đỡ , tôi nhận ra mọi người không khó gần vậy. Từ đó , tôi học được sự chủ động trong giao tiếp, chủ động hỏi các anh về những kiến thức lập trình mình chưa biết, không ngại chia sẻ, nói chuyện với mọi người, chỉ khi đó, tôi cảm thấy môi trường làm việc thoải mái và hưng phấn hơn rất nhiều, mọi người trong công ty cũng vì thế mà có thiện cảm với mình hơn.
Tôi cũng nhận thức được những quy tắc khi tham gia làm việc trong 1 công ty là như thế nào, cho dù có là 1 thực tập sinh , chưa tham gia, nhận trách nhiệm trong dự án nhưng cũng không được bỏ qua những nguyên tắc , quy định của công ty. Đi làm sớm hơn giờ bắt đầu, tan làm cùng với mọi người, ăn mặc phải đúng quy tắc văn phòng,.. phá vỡ những điều đó không những hình thành thói quen xấu cho bản thân mà còn ảnh hưởng đến tâm lí của các nhân viên khác.
Trước khi chính thức được tham gia vào làm dự án đầu tiên, tôi được dạy những kiến thức chuyên môn về lập trình trong vòng gần 2 tháng. Kiến thức đầu tiên tôi phải học đó là về hệ điều hành Linux (thay vì Window thường hay sử dụng), một môi trường phát triển code mà bất cứ lập trình viên thực thụ nào cũng đều phải ,những câu lệnh, tổ chức thư mục trong Linux , cách chỉnh sửa các file, đặt quyền truy cập, chỉnh sửa cho các file đó, từ đó nhận ra tính chặt chẽ và bảo mật của hệ điều hành này, cách tận dụng nó để phát triển 1 máy ảo chạy ngay trên hệ điều hành mà mình đang sử dụng (window) bằng những công cụ là vagrant hoặc docker.
Kiến thức tiếp theo tôi được học đó là 1 công cụ rất tiện ích và giúp rất nhiều khi code trong cùng 1 nhóm : GIT . Nói ngắn gọn theo những gì tôi sử dụng là 1 công cụ cho phép nhiều người cùng tham gia chỉnh sửa code của dự án một lúc mà không gây conflict giữa những thay đổi của từng người ( hoặc nếu có conflict thì sẽ thông báo ngay cho người chỉnh sửa).GIT còn giúp chia sẻ code của 1 người đến những thành viên khác tham gia dự án, lưu trữ những thay đổi đã chỉnh sửa. 1 công cụ theo tôi có lẽ là không thể thiếu khi phát triển 1 phần mềm.
Đó là những công cụ cần thiết mà tôi học được cách sử dụng để có thể bắt đầu công việc chính của 1 programmer : code. Để trở thành 1 programmer có thể tham gia 1 dự án, không đơn giản là viết code để chương trình chạy được, đó là cách phân chia thư mục, thiết kế mô hình, phân luồng dữ liệu , code đúng chuẩn và đẹp, và điều quan trọng nhất mà tôi được học đó là code viết ra không phải để mình hiểu mà là để người khác hiểu được.
Kiến thức lập trình đầu tiên mà tôi phải học đó là kĩ thuật lập trình hướng đối tượng (oop) và cách phân chia các class, phân luồng dữ liệu. Tôi đã học được thế nào là hướng đối tượng, tại sao phải code như vậy, sắp xếp và phân chia mục đích của các class , thực thể, các hàm cần phải tạo ra. Những quy tắc về tác dụng xác định của class, function, cách đặt tên hàm , tên biến đúng chuẩn và dễ hiểu, quy tắc viết code sao cho khoa học và dễ nhìn.Tại sao phải có class này, tại sao phải có function kia, tại sao lại tách riêng mà không gộp lại cho đỡ tốn công. Những thói quen , hay những thói quan code xấu và không tốt trước kia của tôi đã thay đổi rất nhiều khi bắt đầu làm quen với những quy tắc chặt chẽ và khoa học đó. Đến khi chính thức được tham gia vào dự án đầu tiên, tôi càng nhận ra những kiến thức đó có ích như thế nào, những phần mềm ,sản phẩm mình làm ra không phải để mình sử dụng mà là dành cho khách hàng.Điều họ mong muốn không chỉ là khi nhận được sản phẩm chạy bình thường mà phần mềm không bị bug và khi có bug thì tôi- người đã phát triển phần mềm đó phải có trách nhiệm chỉnh sửa nó trong thời gian nhanh nhất, chưa kể phần mềm phải có khả năng mở rộng, thêm chức năng mới vì khách hàng mua ứng dụng rất hay có nhu cầu đó. Chính vì thế, các leader trong dự án luôn nhấn mạnh với tôi về cách viết code khoa học , dễ hiểu và dễ chỉnh sửa chứ không phải chỉ để code chạy. Tôi từng bị yêu cầu viết lại 1 đoạn code bình thường đã chạy 4,5 lần ,bị leader mắng mỏ, khiển trách và từng cảm thấy khó chịu nhưng dần dần tôi mới nhận ra mục đích thực sự quan trọng đó sau này.
Những điều đó giúp tôi nhận ra trách nhiệm của mình khi tham gia vào 1 dự án và tôi nhận ra mình đã trưởng thành hơn rất nhiều so với thời gian trước khi bắt đầu công việc, không chỉ về kiến thức chuyên môn mà còn cả tác phong , cách làm việc cần có của 1 lập trình viên thực thụ