Lộ trình của một nhà phát triển Java
Một người bạn của tôi đã thắc mắc tại sao các nhà phát triển luôn vui vẻ như vậy. Câu trả lời mà cô ấy đưa ra rất đơn giản và đáng ngạc nhiên: họ làm những gì họ thích và kiếm được nhiều tiền. Chào mừng đến với thế giới của các nhà phát triển phần mềm.
Lương của nhà phát triển phần mềm
Tôi muốn nói với bạn về mức lương của các nhà phát triển. Đất đai nằm ở mức lương như thế nào, nơi bạn nên làm việc và nơi bạn không nên làm việc. Nếu bạn không phải là nhà phát triển và cố gắng tự mình giải đố, bạn có thể nhận được một dữ liệu khá gây tranh cãi. Điểm chính là yếu tố chính ảnh hưởng đến mức lương của nhà phát triển không phải là bằng cấp, mà là nơi làm việc. Đôi khi, với trình độ bằng nhau, sự khác biệt giữa nơi làm việc tốt và xấu có thể từ 2 đến 10 lần(!) Mỗi thời điểm nhất định, trình độ của bạn là không đổi. Bạn không thể trở nên đủ điều kiện gấp đôi trong một tháng và được trả gấp đôi. Nhưng bạn có thể thay đổi nơi làm việc trong một tháng và nhận lương gấp đôi. Một lần trong vòng hai tháng, lương của tôi nhân ba (!) – Trải nghiệm khó quên. Vì vậy, hãy tìm hiểu xem, nơi nào là tốt nhất.- Cho dù kinh doanh chính của một công ty là phát triển phần mềm
- Cho dù công ty được định hướng trên thị trường toàn cầu hay địa phương
- Văn phòng chính đặt tại đâu: nước phát triển hay nước đang phát triển
con số cụ thể
Vì mức lương ở các nơi khác nhau trên thế giới là khác nhau, nên tôi đề xuất lấy mức lương của Nhà phát triển Java cấp cao với 5 năm kinh nghiệm làm điểm khởi đầu và gọi đó là “tối đa 5 năm”. Tất cả các số liệu dưới đây sẽ được đưa ra dưới dạng phần trăm của số tiền này. Dưới đây là một số ví dụ về mức lương “tối đa 5 năm” ở các thành phố khác nhau trên thế giới:


Những gì bạn có thể đạt được trừ khi bạn làm những điều ngu ngốc
Nếu bạn bắt đầu tự học lập trình ngay bây giờ, mức lương của bạn có thể như sau:
Kế hoạch
0-3 tháng (Học sinh)
Bạn biết rất ít về lập trình. Bạn có thể đã học nó ở trường hoặc ở một trường cao đẳng ở cấp độ cơ bản. Điều bạn cần làm là học cách lập trình và học Java. Mục tiêu của bạn là có được công việc với tư cách là Nhà phát triển Java Junior trong một công ty cấp 3 trở lên. Trong ba tháng đầu tiên của kế hoạch, bạn sẽ không nhận được gì, bởi vì bạn chỉ đang học cách lập trình. Nhưng bạn bắt đầu càng sớm thì càng tốt. Thời điểm tốt nhất là NGAY BÂY GIỜ. Trong tương lai, khi bạn có một gia đình và nhiều khoản vay, việc tái đủ điều kiện sẽ khó khăn hơn nhiều. Để sửa chữa sai lầm của mình, bạn sẽ phải dành dụm tiền để chi trả ít nhất cho một năm sống bình thường. Đừng phạm sai lầm ngớ ngẩn.3-15 tháng (Java Junior Developer)
Bạn đã làm việc với tư cách là nhà phát triển phần mềm và kinh nghiệm của bạn tăng lên hàng ngày. Đừng thư giãn. Bạn có rất nhiều việc phải làm trước khi nghỉ ngơi trên mái chèo. Điều bạn cần làm là – nghiên cứu các công nghệ mà bạn sẽ cần với tư cách là Nhà phát triển cấp trung. Cái gì đây? Thế giới không ngừng thay đổi. Tôi sẽ đưa cho bạn những lời khuyên và cuộc sống sẽ thay đổi tất cả. Tìm một vài vị trí tuyển dụng trên trang web và xem những gì bạn cần áp dụng. Hãy nhớ đọc một cuốn sách của Bruce Eckel “Tư duy bằng Java”. Mục tiêu của bạn trong năm đầu tiên làm Java Junior Developer là đạt cấp độ Java Middle Developer. Không ai nói rằng điều đó sẽ dễ dàng, nhưng điều đó là có thể đối với một người có mục tiêu. Nó sẽ tăng lương của bạn ngay lập tức lên tới 40% của “tối đa 5 năm” ($50K cho SF và London, $6K cho Bangalore).Lập trình 2 năm (Nhà phát triển trung cấp Java, cấp 1)
Bạn đã hoàn thành tốt công việc vào năm ngoái và hiện tại bạn là Nhà phát triển cấp trung Java. Bạn có thể sống khá giả khi kiếm được 50% tiền lương của Nhà phát triển Java cấp cao. Bạn đang được giao một số nhiệm vụ nghiêm túc trong công việc và kinh nghiệm của bạn tăng lên đáng kể. Bạn sẽ đạt cấp độ Nhà phát triển cấp cao Java sau hai hoặc ba năm. Không cần vội. Dù sao thì bạn cũng sẽ không nhận được những phần thưởng lớn về tiền lương. Điều bạn cần làm là tìm hiểu các mẫu thiết kế, đọc – McConnell's Code Complete. Hoàn thiện chất lượng mã và kỹ năng nhóm của bạn. Tạo quy tắc đọc 1 cuốn sách về lập trình máy tính mỗi tháng. Sau đó, trong 4 năm, bạn sẽ thông minh hơn 50 cuốn sách còn lại. Đừng trì hoãn nó: bạn sẽ không có nhiều thời gian rảnh rỗi hơn, ngoài ra, rất có thể bạn sẽ lập gia đình, hoặc nếu có thì sẽ lớn hơn. Mục tiêu của bạnlà chọn một số công nghệ để chuyên môn hóa với tư cách là Nhà phát triển Java cấp cao. Bạn không thể học tất cả, bạn biết đấy. Và việc trở thành bậc thầy trong một chuyên ngành duy nhất luôn là một quyết định đúng đắn.
Lập trình 3 năm (Nhà phát triển trung cấp Java, cấp 2)
Bạn hiện là Nhà phát triển cấp trung có kinh nghiệm và bạn đang nghĩ đến việc trở thành Nhà phát triển cấp cao. Thật dễ chịu cũng như uy tín. Mức lương của bạn vượt quá 60% mức “tối đa 5 năm” ($10 nghìn ở Bangalore, $25 nghìn ở Kiev, $40 nghìn ở Berlin, $80 nghìn ở New York). Kể từ thời điểm này, theo yêu cầu đối với các chuyên gia như bạn, ưu đãi sẽ tăng lên. Bạn sẽ luôn có thể tìm được việc làm trong một vài ngày và bạn sẽ hiếm khi kiếm được ít tiền hơn hiện tại. Điều đó, tất nhiên, nếu bạn không làm điều gì ngu ngốc. Những gì bạn cần làm làtiếp tục nghiên cứu các công nghệ bạn đã chọn. Làm việc tốt hơn. Không phải vì lợi ích của chủ nhân của bạn, vì lợi ích của riêng bạn. Đăng ký tham gia vào các dự án liên quan đến các công nghệ đầy hứa hẹn (như BigData, tại thời điểm bài viết này đang được viết). Dù sao thì bạn cũng sẽ dành 8 giờ mỗi ngày trong văn phòng, vậy tại sao không kiếm thêm một ít tiền cho việc đó, và điều quan trọng hơn nhiều, là trải nghiệm quý giá nhất mà bạn sẽ cần trong tương lai. Mục tiêu của bạn là tìm một công việc mới. Một đội tốt luôn luôn được tìm thấy. Bạn sẽ phải đối mặt với các dự án và công nghệ mới. Bạn không cần phải cắm rễ vào ghế của mình. Nếu bạn vẫn đang làm việc ở công ty cấp ba, hãy nghĩ đến việc tuyển dụng vào công ty cấp bốn.Lập trình viên năm thứ 5 (Java Senior Developer, level 1
Bạn hiện là Nhà phát triển cấp cao. Có thể, bạn không xứng đáng với điều đó, và bạn cảm thấy điều đó. Tuy nhiên, xin chúc mừng tôi. Không quan trọng bạn có xứng đáng với vị trí của mình bây giờ hay không, điều quan trọng là bạn trở nên xứng đáng với nó trong tương lai. Tôi nghĩ bạn sẽ đồng ý rằng tốt hơn hết là bạn nên kiếm một công việc tốt và sau khi phát triển đến mức cần thiết thì ngược lại. Tôi hy vọng bạn vẫn chưa quên lời khuyên đọc một cuốn sách mỗi tháng của tôi chứ? Bất kỳ sinh viên nào cũng sẽ ghen tị với kiến thức và kỹ năng của bạn bây giờ. Cụ thể hơn, anh ấy sẽ cầu nguyện cho họ. Nghĩ mà xem: bạn có thu nhập khủng, gần bằng 90% mức lương “tối đa 5 năm”. Chắc bạn vẫn còn trẻ. Thế giới đang ở dưới chân bạn. Những gì bạn cần làm làđể đánh giá lại các công nghệ bạn đã chọn. Có lẽ, bạn cần thay đổi chuyên môn. Thế giới đã thay đổi, công nghệ đã thay đổi và bạn đã thu được khá nhiều kiến thức trong hai năm qua. Những gì bạn chọn bây giờ sẽ trở thành tiêu đề cho bạn trong vài năm tới. Đã đến lúc chọn công nghệ yêu thích của bạn. Mục tiêu của bạn là chọn hướng phát triển của bạn. Chúng nhiều vô kể, không ai có thể gọi tên hết được, nhưng sự lựa chọn của bạn phải được thực hiện ngay bây giờ. Nếu bạn tạo ra một thay đổi nhỏ ngày hôm nay, bạn sẽ nhận được một thay đổi lớn trong tương lai.Lập trình năm thứ 6 (Nhà phát triển Java Senior, cấp độ 2)
Bạn đã quyết định về tương lai của mình và bạn đang thực hiện ước mơ của mình thành hiện thực. Một hướng đi được chọn đúng cùng với mong muốn tiến về phía trước – và kết quả sẽ không lâu dài. Chúc mừng. Tôi rất vui khi thấy có thêm một người chạm đến ước mơ của mình. Có một sự thật sâu sắc. Mọi người thường đánh giá quá cao những gì họ có thể đạt được trong một năm và đánh giá thấp những gì họ có thể làm trong năm năm. Nhìn lại năm năm trước. Nó là như vậy. Điều bạn cần làm là tránh những quyết định thiếu sáng suốt và không được lười biếng. Mục tiêu của bạn là chọn hướng và tiến về phía trước. Hay bạn nghĩ nó kết thúc ở đây? Nhớ tốt nghiệp của bạn. Nó không phải là kết thúc, nó chỉ là bắt đầu.Chuyên ngành tương lai của bạn

Sự nghiệp của Java Developer
Sự nghiệp của nhà phát triển khác với bất kỳ nghề nghiệp nào khác. Bạn không cần phải trở thành người quản lý để kiếm được nhiều tiền. Thường xảy ra trường hợp Nhà phát triển cấp cao kiếm được nhiều tiền hơn người quản lý-sếp của anh ta. Bạn càng có nhiều kinh nghiệm thì mối quan hệ làm việc của bạn với sếp càng bền chặt, thay đổi từ “sếp-cấp dưới” thành “ngôi sao và người quản lý”.
Nhà phát triển 200 tuổi
Nếu bạn thích lập trình nhất, thì đây là con đường của bạn: Nhà phát triển cấp cao, sau đó là Nhà phát triển trưởng công nghệ và một kiến trúc sư. Bằng cách này, bạn có thể làm việc với tư cách là nhà phát triển trong 50 năm và hơn thế nữa. Trong hầu hết các trường hợp, mức lương của Nhà phát triển cấp cao và Nhà phát triển lãnh đạo công nghệ cao hơn mức lương của người quản lý của họ. Vì vậy, nhận được giá trị tiền của bạn.Giám đốc. Bạn thật may mắn vì bạn không giống như những người khác
Bạn đã đi đến chỗ kẻ thù. Chỉ đùa thôi. Nếu bạn phát hiện ra những kỹ năng tổ chức tuyệt vời, thì cách của bạn là: Trưởng nhóm và sau đó là Quản lý dự án. Nó sẽ cho bạn cơ hội trở thành trưởng phòng và mở doanh nghiệp của riêng bạn. Đó là những gì bạn muốn, phải không?Nhà là nơi có trái tim

Xem Napoli và không chết.
Bạn chưa có gia đình và bạn thích đi du lịch . oDesk là tất cả của bạn. Tìm một khách hàng, đồng ý với mức lương $20-$50 mỗi giờ, mang theo máy tính xách tay và đi! Tiền lương của bạn sẽ đủ để sống ở bất cứ đâu trên thế giới. Tại sao không bắt đầu biến ước mơ của bạn thành hiện thực ngay lập tức?Tôi không muốn lập trình, tôi là con gái..
Nếu bạn là con gái , bạn có thể phải nghỉ thai sản . Nó giống như một trò đùa phân biệt giới tính. Tuy nhiên, có rất nhiều ý nghĩa thông thường trong đó. Nhiều khả năng, khi nghỉ thai sản, bạn sẽ có thể nhận được rất nhiều tiền nghỉ thai sản (ở những quốc gia có chế độ bảo trợ xã hội cao). Có những công ty không phải trả tiền, và có những công ty trả lương cao. Một trong những sinh viên của tôi nhận được một phần ba tiền lương hàng năm khi nghỉ sinh. Và điều này đã xảy ra vào mùa xuân năm 2009, trong đợt sa thải nhân viên. Và trong một năm rưỡi nữa, bạn có thể quay lại, ít nhất là Nhà phát triển cấp trung.Cấp 6

1 Elly. Khả năng hiển thị đối tượng. vô giá trị
- Này, Amigo! - Chào Elly! Bạn sẽ cho tôi biết một cái gì đó thú vị ngày hôm nay? - Hôm nay tôi sẽ kể cho các bạn nghe về thời gian tồn tại của một vật . Sau khi một đối tượng được tạo, nó tồn tại (sống) cho đến khi có ít nhất một biến lưu trữ địa chỉ của nó (có ít nhất một tham chiếu đối tượng). Nếu không còn tham chiếu nào nữa, thì đối tượng sẽ chết. Ví dụ:
2 Giáo sư, Thu gom rác

3 Elly, hoàn thiện
- Xin chào lần nữa! Bây giờ tôi sẽ giới thiệu ngắn gọn cho bạn về phương thức finalize() . Phương thức này được gọi bởi máy ảo Java trên đối tượng trước khi đối tượng bị hủy. Trên thực tế, phương thức này ngược lại với phương thức khởi tạo. Trong phương pháp này, có thể giải phóng các tài nguyên được sử dụng bởi một đối tượng. - Lớp Object có phương thức này nên lớp nào cũng có ( tất cả các lớp trong Java được coi là kế thừa từ lớp Object và chứa một bản sao các phương thức của nó ). Nếu bạn viết phương thức finalize() trong lớp của mình và nó sẽ được gọi trước khi các đối tượng của lớp này bị hủy. Ví dụ:
4 Elly, Đối tượng trọn đời
- Tôi cũng muốn nói với bạn một vài điều thú vị về thời gian tồn tại của đối tượng. Trong Java, rất khó để mất đối tượng một cách tình cờ; nếu bạn có một tham chiếu đối tượng, điều đó có nghĩa là đối tượng đó chắc chắn còn sống. - Bên trong một tham chiếu đối tượng lưu trữ một số – địa chỉ của đối tượng này trong bộ nhớ. Bạn không thể thay đổi con số đó, tăng hoặc giảm nó. Bạn không thể tạo một tham chiếu khi bạn chỉ có địa chỉ trong bộ nhớ. Bạn chỉ có thể tạo một đối tượng mới và gán tham chiếu của nó cho một biến. Đây là cách duy nhất để có được một tài liệu tham khảo mới. - Tôi hiểu rồi. Nghĩa là, nếu tôi đặt thành null (xóa) tất cả các tham chiếu đối tượng, tôi sẽ không bao giờ lấy được tham chiếu đối tượng và truy cập nó? - Chuẩn rồi. Nhưng thường thì điều ngược lại là đúng - có quá nhiều đối tượng trực tiếp không được sử dụng.Hầu hết các chương trình tạo hàng chục đối tượng và lưu trữ chúng trong các danh sách khác nhau khi chạy, nhưng không bao giờ xóa các danh sách đó. - Hầu hết, các lập trình viên gắn nhãn các đối tượng không mong muốn là “đã xóa”, vậy thôi. Không ai quan tâm đến việc loại bỏ chúng khỏi danh sách. Vì vậy, các chương trình Java lớn có xu hướng phình to - ngày càng có nhiều đối tượng không được sử dụng vẫn tồn tại trong bộ nhớ. - Đó là tất cả. Trong tương lai, tôi sẽ luôn thu hút sự chú ý của bạn đến những đồ vật không sử dụng và cách xử lý chúng đúng cách. - ОK, cảm ơn. Bạn đã làm sáng tỏ một vài điều về các tài liệu tham khảo.5 Diego, Nhiệm vụ vòng đời đối tượng
- Này, Amigo! Đây là một vài nhiệm vụ dành cho bạn:nhiệm vụ | |
---|---|
1 | 1. Phương thức finalize() của lớp Cat Viết phương thức protected void finalize() throws Throwable trong lớp Cat |
3 | 2. Các lớp Cat and Dog và phương thức finalize() cho mỗi lớp Trong mỗi lớp Cat and Dog hãy viết một phương thức finalize() , phương thức này hiển thị ra màn hình một thông báo rằng đối tượng bị hủy. |
3 | 3. 50.000 đối tượng của lớp Cat và 50.000 đối tượng của lớp Dog Tạo trong một vòng lặp 50.000 đối tượng của lớp Cat và 50.000 đối tượng của lớp Dog. (Máy ảo Java sẽ hủy các đối tượng không sử dụng, vì vậy phương thức finalize() sẽ được gọi ít nhất một lần). |
4 | 4. Bộ đếm mèo Trong hàm tạo lớp Cat [public Cat()], tăng bộ đếm mèo (biến tĩnh catCount của cùng một lớp) lên 1. Trong phương thức finalize() giảm 1. |
6 Elly, Các lớp và phương thức tĩnh
- Đây là một chủ đề thú vị mới. Tôi muốn nói với bạn về các biến và phương thức tĩnh. - Ồ, tôi đã nghe nói về các biến tĩnh. Về các phương thức tĩnh, tôi đoán vậy. Nhưng tôi muốn biết thêm chi tiết. - Khi khai báo các biến trong một lớp, chúng ta xác định xem các biến này được tạo trong một thể hiện dùng chung duy nhất hay có cần tạo các bản sao của chúng cho từng đối tượng hay không. Theo mặc định, một bản sao mới của biến lớp được tạo cho mỗi đối tượng của lớp này. Đây là giao diện của nó:



7 Risha, Các lớp và phương thức tĩnh
- Ngoài các phương thức tĩnh còn có các lớp tĩnh . Chúng ta sẽ xem xét trường hợp này sau, tôi sẽ chỉ cho bạn một ví dụ về nó:
8 Diego, Nhiệm vụ trên phương thức tĩnh
- Này, Amigo! Dưới đây là một số tác vụ thú vị trên các phương thức tĩnh:nhiệm vụ | |
1 | 1. Lớp Cat và biến tĩnh catCount Viết một biến tĩnh int catCount trong lớp Cat. Tạo một hàm tạo [ public Cat() ], trong đó biến đã cho sẽ được tăng thêm 1. |
2 | 2. Các phương thức tĩnh: int getCatCount() và setCatCount(int) Thêm hai phương thức tĩnh vào lớp Cat: int getCatCount( ) và setCatCount(int) sử dụng để lấy/thay đổi số lượng mèo (biến catCount) |
3 | 3. Sử dụng lớp Triển khai phương thức tĩnh double getDistance(x1, y1, x2, y2) . Nó sẽ tính toán khoảng cách giữa các điểm. Sử dụng phương thức double Math.sqrt(double a) để tính căn bậc hai của tham số truyền vào |
4 | 4. Lớp ConsoleReader Viết một lớp ConsoleReader, lớp này sẽ có 4 phương thức tĩnh: - String readString() để đọc chuỗi từ bàn phím - int readInt() để đọc số từ bàn phím - double readDouble() để đọc số phân số từ bàn phím - void readLn () để chờ nhấn enter [dùng readString()] |
5 | 5. Lớp StringHelper Viết một lớp StringHelper, lớp này sẽ có 2 phương thức tĩnh: - Chuỗi multi(String s, int count) sẽ trả về số lần lặp lại của chuỗi s. - Chuỗi nhân(Chuỗi s) sẽ trả về chuỗi s được lặp lại 5 lần. Ví dụ: Amigo → AmigoAmigoAmigoAmigoAmigo |
9 Giáo sư, phạm vi tĩnh và thời gian tồn tại của đối tượng

10 tháng 7
- Này, Amigo! Bạn đã làm một công việc tuyệt vời ngày hôm nay. Đó là lý do tại sao tôi không thể cho bạn nhiều hơn nữa. Nào, ngồi xuống, chương trình bắt đầu:11 Đội Trưởng Sóc
- Chào chú bộ đội! - Chào buổi sáng thưa ngài! - Tôi có một số tin tuyệt vời cho bạn. Đây là một kiểm tra nhanh để củng cố kỹ năng của bạn. Làm điều đó mỗi ngày và bạn sẽ nâng cao kỹ năng của mình nhanh chóng. Các tác vụ được thiết kế đặc biệt để thực hiện trong Intellij IDEA.Các tác vụ bổ sung cần thực hiện trong Intellij Idea | |
---|---|
1 | Lớp Cat và biến tĩnh catCount Viết một biến tĩnh public int catCount trong lớp Cat. Tạo một hàm tạo [public Cat()]. Hãy để biến tĩnh catCount tăng lên 1 mỗi khi bạn tạo một con mèo (một đối tượng mới Cat). Tạo 10 đối tượng Cat và hiển thị giá trị của biến catCount . |
2 | 2. Mèo tĩnh
Để tạo biến mèo , hãy sử dụng dòng mã: public static ArrayList<Cat> cats = new ArrayList<Cat>(); |
3 | 3. Di chuyển một công cụ sửa đổi tĩnh Di chuyển một công cụ sửa đổi tĩnh để mã biên dịch. |
4 | 4. Số lượng từ khóa tĩnh tối thiểu Thêm số lượng từ khóa tĩnh tối thiểu để mã được biên dịch và chương trình hoàn tất thành công. |
5 | 5. Có ý tưởng mới nào không? Nghĩ thử xem...
|
6 | 6. KissMyShinyMetalAss Viết một lớp có tên KissMyShinyMetalAss. Tạo một đối tượng của lớp này, sau đó hiển thị nó ra màn hình. |
7 | 7. Ba biến tĩnh tên Viết 3 biến tĩnh công khai: String Solution.name , String Cat.name , String Dog.name |
GO TO FULL VERSION