Chúng tôi biết rằng sinh viên CodeGym muốn nghe câu chuyện của những người đang làm việc trong lĩnh vực CNTT. Chúng tôi đã tự mình giải quyết vấn đề và tung ra loạt bài về các nhà phát triển từ nhiều quốc gia và công ty khác nhau, những người đã hoàn thành khóa đào tạo Java của chúng tôi. Câu chuyện này kể về nhà phát triển Android Dima, người đã rời bỏ công việc kinh doanh khách sạn để theo đuổi sự nghiệp lập trình. Anh thành thạo Java và Android trong một năm rưỡi và nhận được công việc là nhà phát triển.
Kết quả là tôi đã có được một cuộc phỏng vấn tại công ty nơi tôi đã làm việc được hai năm. Lúc đó, tôi đã biết hết điểm yếu của mình và chuẩn bị sẵn sàng nhất có thể cho những câu hỏi khó. Tôi nhận được một công việc tại một studio phát triển web gia công thực hiện việc phát triển tùy chỉnh cho nhiều công ty khác nhau. Khách hàng bao gồm Gazprom Media và kênh truyền hình TNT. Công ty chúng tôi kế thừa dự án này từ các nhà phát triển khác. Nó ở tình trạng tồi tệ: mã được viết dựa trên các tiêu chuẩn lỗi thời. Lúc đó nó đã được khoảng 5 tuổi. Tôi và một nhà phát triển cấp dưới khác được đưa vào dự án này. Chúng tôi thật may mắn: chúng tôi dần dần tìm ra mật mã và giúp đỡ lẫn nhau. Trong suốt 2 năm, chúng tôi đã tạo ra cơ sở mã có thể trình bày được. Vì dự án ban đầu được viết rất sơ sài nên tôi đã có thể hiểu được Android và lấn sân sang lĩnh vực này. Ở công việc này, tôi đã đàm phán để được làm việc từ xa khi ở nước ngoài khoảng 3 tháng. Điều này cho phép tôi đi du lịch đến Bali và làm việc từ đó. Tôi không thấy điều đó là thách thức, nhưng tất cả phụ thuộc vào tính tự kỷ luật và khả năng tự tổ chức của mỗi người. Tôi rất thích dậy sớm. Tôi bắt đầu làm việc lúc 4-5 giờ sáng theo giờ Moscow. Đó là một giờ không có ai trò chuyện nên tôi có thời gian để làm rất nhiều việc. Đến giờ ăn trưa ở Moscow, ngày làm việc của tôi đã xong.
"Hàng ngày tôi thức dậy lúc 5-6 giờ sáng và học bài trước khi đi làm."
Tôi có trình độ học vấn cao hơn về nhân văn với bằng quản lý khách sạn. Vì vậy, sau khi tốt nghiệp đại học, tôi đã làm việc với khách hàng tại một công ty kinh doanh khách sạn. Vào thời điểm đó, tôi nhận ra rằng mình không còn hứng thú với lĩnh vực này vì một số lý do: làm việc với mọi người không dễ dàng và thoải mái như tôi tưởng, đồng thời lương cũng không cao lắm. Theo thời gian, tôi có cơ hội chuyển sang bộ phận sản phẩm (công ty có ứng dụng và trang web đặt phòng khách sạn), kể từ khi có một vị trí tuyển dụng ở bộ phận đảm bảo chất lượng để thử nghiệm ứng dụng di động. Tôi đã có thể tìm được việc làm, nhưng tôi không có đủ kinh nghiệm cần thiết. Trong quá trình làm việc, tôi đã viết các bài kiểm tra tự động và bắt đầu lập trình. Đó là lúc tôi nhận ra rằng viết mã thú vị hơn nhiều so với việc kiểm tra nó. Trong đầu tôi hiện lên một câu hỏi: học ở đâu? Vào thời điểm đó, tôi đã biết về khóa học này nên tôi bắt đầu nghiên cứu khóa học. Tôi đã hoàn thành 20 cấp độ và bắt đầu suy nghĩ xem nên đi đâu tiếp theo. Tôi quyết định rằng một lựa chọn tốt sẽ là phát triển ứng dụng di động. Tôi không thể nói rằng kiến thức tôi thu được từ 20 cấp độ là đủ để trở thành một nhà phát triển cấp dưới. Tôi đã học cú pháp và các khái niệm Java Core, nhưng đó chỉ là kiến thức mà không có công việc thực tế. Đúng hơn, nó là nền tảng để cố gắng viết mã. Ngoài ra, tôi còn đọc thêm hai cuốn sách về lý thuyết. Với hành trang này, tôi đã bắt tay vào phát triển Android. Tôi đã có kế hoạch tập luyện: Hàng ngày tôi thức dậy lúc 5-6 giờ sáng và học 2 giờ trước khi đi làm. Tôi cũng nghiên cứu bất cứ khi nào tôi có thời gian rảnh (ví dụ: nếu với tư cách là người thử nghiệm, tôi đang đợi nhà phát triển triển khai các tính năng mới): Tôi đã hoàn thành các nhiệm vụ lập trình trong ngày. Tôi đã hoàn thành 20 cấp độ trong 1-2 tháng. Theo lịch trình của tôi, tôi dành 1-4 ngày cho mỗi cấp độ. Sau khóa học này, tôi đã tham gia một số khóa học khác về phát triển Android. Lần đầu tiên tôi tham gia một khóa học cơ bản về Android, tìm hiểu xem cái gì là cái gì và đào sâu thêm kiến thức của mình. Thế giới Android có sở thú riêng gồm nhiều thư viện khác nhau được coi là tiêu chuẩn của ngành. Có 5-6 thư viện chính và sẽ chẳng ích gì khi đi phỏng vấn xin việc nếu bạn chưa nghiên cứu chúng. Trong khi làm việc toàn thời gian, toàn bộ nỗ lực học tập của tôi mất khoảng 1,5 năm. Nếu bạn học 8 giờ một ngày, bạn có thể làm được điều đó trong sáu tháng."Những cuộc phỏng vấn không thành công đã củng cố nền tảng của tôi"
Tôi hiểu rõ về quản lý: Tôi sẽ nghiên cứu và họ sẽ thuê tôi làm nhà phát triển. Nhưng kế hoạch này đã không thành hiện thực. Một nhà phát triển cấp cao đã nghỉ việc và họ không thể tìm được người mới trong một thời gian dài. Tôi nhận ra rằng không có ích gì khi chờ đợi và đã bắt đầu tìm kiếm các cơ hội việc làm khác và đi phỏng vấn. Trong một số trường hợp, tôi không thích công ty này. Trong những trường hợp khác, tôi không phù hợp và không nhận được cuộc gọi lại. Nếu tôi không trả lời được một câu hỏi trong một cuộc phỏng vấn, thì tôi về nhà và nghiên cứu chủ đề đó để có thể đưa ra câu trả lời hay vào lần sau. Những cuộc phỏng vấn không thành công đã củng cố nền tảng của tôi."Bất cứ ai ở bất kỳ lĩnh vực nào cũng có thể thành thạo lập trình"
Sau khi trở về Nga, tôi đã làm việc cho công ty này một thời gian. Vào tháng 5 năm 2020, tôi rời đi để nhận một vị trí tốt hơn tại công ty tạp hóa DPD. Chúng tôi phát triển và duy trì các ứng dụng chuyển phát nhanh: ứng dụng dành cho người chuyển phát và ứng dụng riêng cho khách hàng. Tôi làm việc trên hai ứng dụng cùng một lúc. Gần đây tôi đã đưa ứng dụng khách hàng vào bản phát hành đầu tiên. Khi tôi được thuê, nó chỉ mới sẵn sàng một phần. Tôi phải hoàn thành nó và đưa nó lên Google Play. Ứng dụng thứ hai, ứng dụng chuyển phát nhanh, là một ứng dụng cũ có nhiều mã kế thừa. Vì trước đây tôi đã làm việc với rất nhiều mã lỗi thời nên tôi đã có kinh nghiệm làm việc với mã cũ. Điều đó đã giúp ích cho tôi rất nhiều trong công việc hiện tại. Đúng một tháng trước, tôi đã vượt qua thời gian thử việc một cách thành công. Lập trình đòi hỏi kỹ năng giải quyết vấn đề. Những kỹ năng này có thể có được bằng nhiều cách khác nhau. Các nhà toán học, vật lý học và những người có nền tảng kỹ thuật mặc định trau dồi những kỹ năng này. Chúng tôi có thể nói rằng việc học lập trình sẽ dễ dàng hơn một chút đối với họ. Nói chung, tôi tin rằng bất kỳ ai ở bất kỳ lĩnh vực nào, nếu có mong muốn và đam mê đều có thể học lập trình và trở thành nhà phát triển.Lời khuyên dành cho nhà phát triển mới bắt đầu:
- Đọc cuốn sách "Lập trình Java cho trẻ em, cha mẹ và ông bà" của Ykov Fain. Trước đây, cuốn sách này đã giúp ích cho tôi rất nhiều vì CNTT không phải kiến thức nền tảng của tôi và tôi phải học lại nhiều khái niệm từ đầu. Cuốn sách này giải thích những điều cơ bản về lập trình theo một định dạng rất đơn giản. Đọc nó trước khi bạn bắt đầu học sẽ đơn giản hóa quá trình rất nhiều.
- Tạo một lịch trình đào tạo rõ ràng. Nếu ai đó cố gắng học vài giờ một tuần mà không có lịch trình, họ sẽ thất vọng. Đó là công thức khiến bạn quên đi những gì bạn đã học trước đây và không đạt được tiến bộ nào. Cách tiếp cận đúng đắn là học một chút mỗi ngày. Sau đó bạn sẽ thấy sự tiến bộ.
- Lời khuyên về Android: Bạn cần làm quen với các thư viện chính. Tìm một số hướng dẫn về các thư viện này và cố gắng viết mã để hiểu những nhiệm vụ mà chúng giải quyết.
- Bạn có thể chuẩn bị cho "các câu hỏi phỏng vấn" vì nhiều câu hỏi trong số đó đều có trên mạng. Có những nhà tuyển dụng thích hỏi một thủ thuật để kiểm tra trí tuệ chung của ứng viên. Bạn cũng cần phải chuẩn bị để trả lời những câu hỏi đó.
- Trong các cuộc phỏng vấn, hãy thể hiện sự quan tâm và mong muốn học hỏi của bạn. Ai đó ban đầu có thể không biết điều gì đó, nhưng họ có thể nhanh chóng tiếp thu thông tin mới và giải quyết nhanh chóng các vấn đề trong công việc. Điều đó luôn được đánh giá cao.
GO TO FULL VERSION