Is this a good game plan to become a fluent Java developer? [closed]

I am an efficient person, and I am trying to find the best method of becoming a great Java developer. Here’s what I’m thinking:

  1. First, learn syntax and Object Oriented concepts. Practice it, and read it as fluently as a spoken langauge. Program very small, all-in-one class programs (30-50 lines) to practice basic concepts, and finish most of the codingbat pratice problems.
  2. Learn the fundamental libraries: java.util, java.lang, and java.io. Master these, and the concepts that apply to them. Write some small programs with simple class structure, and solve a bunch of problems on codeabbey with the newly taught concepts.
  3. Become familiarized with many of the other Java libraries by writing a program based around the concepts that are convered in it. Ex: I could make a simply painting application w/ java.awt. Each program may take a couple days to complete, and will have class structures that will become slightly more complex over time.
  4. Start making medium sized projects and study source code of highly successful java projects. These projects might take a week or two, and will mostly be clones of simple applications and utilities. Do this until I am very comfortable with Java and the standard libraries.
  5. Start to take on progressively bigger projects. Look for big open source projects to gain experience in, and look for small time jobs (that progressively get bigger) in Java development. Maybe get certification, and take some test to verify Java programming abilities.

I would love some criticism on my plan, and if some of the more experienced programmers could tell me what they would do if they were to learn programming all over again. I am currently on the tail-end of step 2, and am highly motivated. Thanks!

4

That sounds like a great plan. Unfortunately, as they say in in the military “No plan survives contact with the enemy.”

Learning any complex subject can rarely be handled in a such a simple linear fashion. The fundamental libraries are huge, and as a beginner you simply won’t have the context need to understand large sections of them. Heck, I’ve been programming for 25 years and large sections of them are completely opaque to me.

In my experience learning programming requires lots of loops and recursion:

  1. I hear about some cool new tool that might be useful in a small
    project I’m working on. I read the documentation. I have no idea
    what it’s talking about.
  2. I Google and Wikipedia some of they key words. I’m still lost. I skim any related
    books I haven on hand. I get an inkling of the general gist of the tool. I decide
    it’s too complex and sophisticated for my current needs, so I move on.
  3. After several weeks of working on my project I get a dim recollection that something
    I’m trying to do was available in that cool tool I didn’t understand. I re-read the
    documentation. I understand parts of it now! The rest is still opaque.
  4. I try writing a few small sample programs using the cool tool. I can’t get any of
    them to work. I go back to my project.
  5. A after few days more of general reading and struggling with my project, a light bulb
    goes off and I understand why my sample programs didn’t work. I go back to my
    sample programs and get them all working.
  6. I modify my project to use the cool new tool. It works … mostly.
  7. I re-read the documentation for the cool new tool and I see now that it is a
    model of clarity and could not be written any more simply or precisely.

1

Like Charles, I have about 25 years’ commercial experience. The thing I find easier to learn a language is to just use it. Think of a project that you are interested in and just start working on it. You’ll learn the language and associated libraries as you go. Because it is a project you have interest in, you’ll stay motivated when things get difficult. Because it is a stand-alone project, it has a completion to look forward to. Keep the project small enough to be do-able

Learning a language is (relatively) easy. “Getting” a language takes time (Python was a big jump from C#). Learning all the associated libraries tends to be hard. You can’t learn them all, so target the project so you pick up the things you’re after.

I started a project a couple of months ago. The aim was to learn Swift, Mac development and Cocao. My previous project was Objective-C and OpenGL.

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật