CodeGym /Blog Java /Ngẫu nhiên /Không cần phải chống lại cái ác trong quá trình phát triể...
John Squirrels
Mức độ
San Francisco

Không cần phải chống lại cái ác trong quá trình phát triển, nhưng bạn cũng không nên chạm vào nó: câu chuyện về Lập trình viên Irina

Xuất bản trong nhóm
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. Vì vậy, 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 là về Irina. Ở trường phổ thông và đại học, cô yêu thích ngành khoa học kỹ thuật. Cô biết một chút về lập trình nhưng lại chọn làm việc trong lĩnh vực quảng cáo theo ngữ cảnh. Tuy nhiên, Irina vẫn muốn thử sức mình trong lĩnh vực phát triển. Một ngày nọ, cô nhận được email thông báo rằng các thực tập sinh phát triển đang được thuê cho một dịch vụ cụ thể. Và mặc dù nữ chính của chúng ta không vượt qua được cuộc phỏng vấn nhưng trải nghiệm này đã thúc đẩy cô ấy bắt đầu học Java.“Trong phát triển không cần phải chống lại cái ác, nhưng cũng không nên động tới nó”: câu chuyện Lập trình viên Irina - 1

"Tôi chắc chắn muốn thử sức mình trong lĩnh vực phát triển"

Sau lớp 9, khi phải lựa chọn hướng đi học tiếp (tức là con đường kỹ thuật, nhân đạo, kinh tế, y tế), tôi bị giằng xé giữa con đường nhân đạo và con đường kỹ thuật. Đối với tôi, ngành nhân văn đại diện cho nghề nhà báo, tố cáo cái ác và đấu tranh cho những mục đích tốt đẹp trên toàn thế giới. Khi ngẫm nghĩ về đường đua kỹ thuật, tôi nghĩ, nếu tôi không chiến đấu với cái ác thì ít nhất tôi sẽ không chạm vào nó. Tôi đi theo con đường ít trở ngại nhất và chọn con đường kỹ thuật. Sau giờ học, tôi vào đại học chuyên ngành Khoa học Máy tính và Kỹ thuật Máy tính. Than ôi, trường đại học không cung cấp bất kỳ kỹ năng nào trong bất kỳ ngôn ngữ cụ thể nào. Theo cách rời rạc, tôi đã học được một số điều về cách bố trí C++, C#, JavaScript và UI. Vào năm thứ ba, tôi ngẫu nhiên quan tâm đến quảng cáo theo ngữ cảnh và tình cờ xin được việc làm tại một công ty khá nổi tiếng. Kết quả là tôi vẫn làm quảng cáo được 2 năm. Tôi đã đạt được những thành công xứng đáng, nhưng tôi chắc chắn muốn thử sức mình trong quá trình phát triển. Việc quay lại lập trình của tôi cũng không có kế hoạch được tính toán kỹ lưỡng: Tôi nhận được email tại nơi làm việc về một dịch vụ mới đang tìm cách thuê thực tập sinh nhà phát triển Java. Tôi quyết định đi phỏng vấn. Tất nhiên, lúc đó kiến ​​thức cơ bản của tôi chưa đủ để nhận được lời đề nghị, nhưng tình tiết này đã thôi thúc tôi tìm kiếm một số tài nguyên về Java. Tôi tình cờ tìm thấy khóa học này trên Internet. Lúc đầu, chúng không thu hút tôi: tất cả những hình ảnh vui nhộn và những câu chuyện về robot khiến tôi có vẻ không nghiêm túc, nhưng tôi thực sự thích cơ hội được thực hành và kiểm tra nhiệm vụ của mình. Tôi chần chừ và quyết định thử, rồi tôi bị cuốn vào.

“Tôi đã thất bại trong vài cuộc phỏng vấn đầu tiên”

Tôi học không có lịch trình cứng nhắc, phù hợp và bắt đầu: trong giờ giải lao ở nơi làm việc, đôi khi vào ban đêm. Ở cấp độ 16-17, tôi bắt đầu cố gắng tìm việc làm. Vào thời điểm đó, tôi đã học được khoảng ba tháng và có một số thời gian nghỉ ngơi. Nếu bạn chưa có kinh nghiệm làm việc thì họ thích hỏi về các thuật toán, nhưng tôi cũng hầu như không biết về chúng. Thế là tôi đã thất bại trong vài cuộc phỏng vấn đầu tiên. Tôi phải chuẩn bị nhiều hơn, tìm kiếm những câu hỏi thường gặp nhất và ghi nhớ câu trả lời cho chúng. Tôi khẩn trương học SQL, nghiên cứu các hệ thống tạo phiên bản mã (IMO, CodeGym đề cập đến Git ở cấp độ nâng cao không hợp lý, phải đến Cấp 30) và các nguyên tắc SOLID cũng như học các thuật toán sắp xếp. Cuối cùng, tôi được thuê làm nhà phát triển cấp dưới tại một công ty nhỏ. Nhiệm vụ của tôi trong công việc đầu tiên cực kỳ tầm thường: phát triển chức năng hệ thống mới, cải thiện chức năng hiện có, sửa lỗi. Chúng tôi đã sử dụng phương pháp thác nước: một doanh nhân gửi một nhiệm vụ, một nhà phân tích mô tả nó chi tiết hơn một chút, một nhà phát triển triển khai nó, một nhà phân tích kiểm tra nó và sau đó nhà phát triển đưa nó vào sản phẩm. Chúng tôi không sử dụng bất kỳ công nghệ đặc biệt nào: chúng tôi viết mọi thứ bằng Java thuần túy — một khối nguyên khối thay vì các dịch vụ vi mô. Để làm việc với cơ sở dữ liệu, chúng tôi đã sử dụng khung nguồn đóng độc quyền của riêng mình. Ngay từ đầu đã có rất nhiều khó khăn - từ việc học cách tải dự án lên kho lưu trữ, đến cách viết yêu cầu vào cơ sở dữ liệu để nó không bị hết thời gian chờ. Tôi đã phải tra cứu rất nhiều trên Google về cách làm việc với JSON, SOAP, về Maven là gì và về cách xây dựng một dự án Maven. Tôi không từ bỏ việc học. Tôi đã cố gắng học ít nhất hai ngày một lần, nhưng có một vài lần tôi phải gác lại việc đó cả tháng. Nhưng mục tiêu của tôi là hoàn thành 40 cấp độ ấp ủ. Song song đó, tôi còn tham gia một khóa học về Spring framework. Mùa xuân đã mở ra cho tôi rất nhiều cơ hội mới, những lời mời mà tôi nhận được nhờ vào sơ yếu lý lịch của mình đã nhân lên gấp nhiều lần. Trong thời gian cách ly, tôi đã thay đổi công việc và chuyển sang một dự án có kiến ​​trúc microservice. Chúng tôi đang tạo ra một dịch vụ tìm kiếm, bán, mua và cho thuê bất động sản nhà ở và thương mại cũng như đăng ký và thực hiện các khoản thế chấp. 80% dịch vụ của chúng tôi được viết bằng Kotlin. 20% còn lại được viết bằng Java.

Kế hoạch sắp tới của tôi là:

  1. Đắm chìm sâu hơn trong kiến ​​trúc. Tôi muốn tìm hiểu sâu về thiết kế kiến ​​trúc phụ trợ.

  2. Học C++. Tôi nghĩ điều này chắc chắn sẽ hữu ích cho bất kỳ lập trình viên nào - nếu cần, có thể viết các phần của ứng dụng cần chạy cực nhanh. Điều này sẽ hữu ích cho bất kỳ phép tính toán học phức tạp nào.

  3. DevOps. Một số công ty thậm chí còn coi kỹ năng này là yêu cầu bắt buộc đối với các lập trình viên. Và nó chắc chắn sẽ hữu ích ở bất kỳ công ty nào khác.

Tôi không hề hối hận chút nào khi hồi lớp 9 tôi đã chọn theo ngành kỹ thuật và hai năm trước tôi đã đủ dũng cảm rời bỏ ngành quảng cáo và bắt đầu sự nghiệp lập trình. Sự phát triển là một loại phép thuật, một cách để biến những điều phức tạp trở nên đơn giản đối với con người, thay thế sự nhầm lẫn bằng sự rõ ràng. Hiện tại tôi đang cố gắng thuyết phục em trai 12 tuổi của mình quan tâm đến lập trình. Một năm trước, tôi đã tặng anh ấy một bộ công cụ khởi đầu Arduino và tôi đang nghĩ đến việc mua cho anh ấy một cuốn sách về cách viết mã Python cho Minecraft. Khi cháu lớn hơn một chút, tôi sẽ giới thiệu cháu với CodeGym. Tôi nghĩ anh ấy sẽ thích nó. Một điều quan trọng tôi học được từ CodeGym là tôi nhận ra rằng bạn thực sự không nên ngại trả tiền cho những vật liệu tốt. Nó sẽ được đền đáp gấp trăm lần.

Lời khuyên dành cho nhà phát triển mới bắt đầu:

  • Tiếp tục lập trình. Công việc của một lập trình viên hoàn toàn bao gồm việc giải quyết một số vấn đề nhất định, tìm ra một số lỗi nhất định và sửa chúng. Đôi khi điều này có thể (và chắc chắn sẽ như vậy!) có vẻ khó khăn, nhàm chán và khó chịu không thể chịu nổi, nhưng cuối cùng khi bạn giải quyết được vấn đề, nó giống như một bước đột phá thực sự, một chiến thắng, gần như một khám phá. Và chu kỳ này lặp lại. Giận dữ, chấp nhận, nỗ lực lâu dài và thất bại không ngừng, rồi chiến thắng. Sự hồi hộp trong công việc của một lập trình viên nằm ở sự chờ đợi sự đột phá và chiến thắng tiếp theo. “Trong phát triển không cần phải chống lại cái ác, nhưng cũng không nên động tới nó”: câu chuyện Lập trình viên Irina - 2
  • Tiếp tục học bất cứ khi nào và bất cứ nơi nào có thể. Đọc các bài báo và sách. Tìm và tham gia các khóa học về các lĩnh vực phát triển phần mềm khác nhau. Hãy chắc chắn để thử các công nghệ mới. Áp dụng chúng vào các dự án cá nhân của bạn. Tương tác với những người khác có niềm đam mê phát triển phần mềm. Trao đổi kinh nghiệm và ý tưởng. Ngày xửa ngày xưa, chính việc nói chuyện với những người đầy tham vọng như vậy đã giúp tôi không uể oải ở công ty đầu tiên và không ngại chuyển tiếp.

  • Do đó, mẹo thứ ba của tôi - Đừng ngại thay đổi mọi thứ : một công việc mới, một khuôn khổ mới, một ngôn ngữ mới (thứ lỗi cho tôi, CodeGym). Tất cả những chiến thắng quan trọng của tôi đối với bản thân đều xảy ra vào đúng thời điểm tôi thay đổi công việc. Ban đầu, có vẻ đáng sợ khi đi đến một nơi nào đó mà không hoàn toàn thông thạo công nghệ hoặc ngôn ngữ, nhưng điều này sẽ kích thích sự phát triển rất nhiều khi bạn nghiên cứu công nghệ hoặc ngôn ngữ chưa biết này. Cơn gió thứ hai thổi vào và bạn tìm thấy ý nghĩa đặc biệt trong việc hiểu và nghiên cứu điều gì đó mới.

  • Hãy hợp lý trong việc đánh giá điểm mạnh của bạn. Ngay cả khi bạn có thể kết hợp việc làm, học tập độc lập ở nhà, một số khóa học trực tuyến, trường đại học và có thể là gia đình, trong một thời gian, rất có thể bạn sẽ kiệt sức. Thật không may, tôi biết một số chàng trai đã kiệt sức và từ bỏ việc lập trình sau một thời gian dài kết hợp học đại học, kiếm được việc làm thành công và đồng thời làm thực tập sinh phát triển không lương. Nếu họ nghỉ thêm một ngày hoặc nghỉ học ở trường đại học, nếu họ nghỉ một ngày và tạm gác việc học nếu họ tạm dừng các khóa học trực tuyến trong vài tuần, thì có lẽ mọi chuyện đã ổn khác nhau.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION