Jump to content

Java - How long did it take you to learn?

tomoki

Hey Everyone,

 

How long did it take you to pick up Java? By that I mean write multiple classes, be calling on methods from different classes you've written and writing foreach loops, while loops and iterator loops.

 

What did you do when you got stuck to the point you didn't know what to do? Are there some tactics you've used to get yourself out? Certainly for some of you it must've been straight forward to solve the logic but what about the rest of you? 

 

What did you use or how did you learn Java? (i.e. codeacademy, textbooks, instructor)

 

Link to comment
Share on other sites

Link to post
Share on other sites

The only question is - why do you need this?

As for me, I needed this for work, so I got several courses at the job to get in. There's no point of learning it "just for fun", there has to be some real purpose, then you will get it fast and solid.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, paprikman said:

The only question is - why do you need this?

As for me, I needed this for work, so I got several courses at the job to get in. There's no point of learning it "just for fun", there has to be some real purpose, then you will get it fast and solid.

Just curious really haha ~ I want to be able to understand it well but it's challenging for me...for some reason. 

I've been learning for just over a month. 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, tomoki said:

Just curious really haha ~ I want to be able to understand it well but it's challenging for me...for some reason. 

I've been learning for just over a month. 

Find yourself a real task and a tutor, who knows java well, just to make sure you're not doing anything wrong. Actually, if you understand a code syntax, then you understand java. There are so many packages\ways it can be realized, that you won't learn all of them.

As for basics, you need to: understand how constructors & overloaded methods work; what are abstract classes and interfaces; what are primitive types; wtf is static and how to use it right.

And the most important - how to catch and parse exceptions (try-catch-finally constructions).

Then you can try parsing files (xml, MS word\excel), work with sql and json stuff and so on.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, paprikman said:

Find yourself a real task and a tutor, who knows java well, just to make sure you're not doing anything wrong. Actually, if you understand a code syntax, then you understand java. There are so many packages\ways it can be realized, that you won't learn all of them.

As for basics, you need to: understand how constructors & overloaded methods work; what are abstract classes and interfaces; what are primitive types; wtf is static and how to use it right.

And the most important - how to catch and parse exceptions (try-catch-finally constructions).

Then you can try parsing files (xml, MS word\excel), work with sql and json stuff and so on.

Yup I've been learning from an instructor but he only explains the very basics. We're given assignments and whatnot but they're usually challenging (for us) and we have to figure out methods to tackle it. I have learnt about constructors and overloading. I'm not sure what abstract classes and interfaces refer to and yes I do know what primitive types are. I know what static is and have learnt about symbolic constants. 

And.... after that, i have no idea what those mean haha

 

 

I'm probably going to learn it in the next course (i hope) but I feel like I have trouble figuring what happens to my code when I have multiple classes and calling on multiple methods in the same line of code... and what to do when it doesn't compile. That's my biggest drawback for now I think. 

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, tomoki said:

How long did it take you to pick up Java? By that I mean write multiple classes, be calling on methods from different classes you've written and writing foreach loops, while loops and iterator loops.

I think it's interesting when someone who is new to programming tries to contrast their own situation by asking this kind of question. The thing that you have to remember is that you are not just learning Java. You are in fact also learning a programming paradigm (or at times more than one) as well as control flow and other basic general concepts.

 

So to learn a specific language, if it is in a paradigm that one already has experience of then the answer would be a relatively short time. For me I can usually pick up a new language/technology and start producing production grade results within a day, likely much less. But that is only down to the fact that I have been in the game for a long time now. For you, remember that you are only just now starting to climb your very first mountain. Try not to worry too much about contrasting yourself against others - ever. The only things that you really need right now are: To be having fun, to care about the detail of what you are doing and to have a hunger for more.

8 hours ago, tomoki said:

What did you do when you got stuck to the point you didn't know what to do? Are there some tactics you've used to get yourself out? Certainly for some of you it must've been straight forward to solve the logic but what about the rest of you? 

Generally you build up enough experience to understand/infer what to expect out of a situation. Beyond that you should have a strong gut instinct that will tell you when something is not quite right. If you get 'completely' stuck with something then the best thing to do is to take a step back (maybe even take a complete break) and ask yourself the question: 'What does it really mean?' By that I mean you should engage in a really hard think about what it is exactly that you are doing; is it really the best thing, should you consider compromising, can you implement or design it differently or maybe you just aren't asking the right questions.

 

Another thing I find from aspirants is this general belief that one should never have to consult the internet for something - which is absolutely ludicrous. Even the most experienced amongst us will need to consult the internet from time to time. Sometimes I can spend most of a day on it just reading/watching things. Even simple implementation details need to be looked up or scrutinized occasionally. Another example is when one switches language/paradigm context to something they may have not worked in for a few weeks/months - one simply cannot retain all of that detail verbatim inside one's skull, it's not possible (yet).

8 hours ago, tomoki said:

What did you use or how did you learn Java? (i.e. codeacademy, textbooks, instructor)

I have always found physical books to be of very little value in the context of how fast the Software Industry is changing and evolving. I consider them to be a deprecated technology and investing money in such is a poor choice. Relics of the past.

 

If I need to learn a thing I will either read after it, watch videos from Pluralsight, Lynda.com or some Microsoft resource.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

9 minutes ago, Nuluvius said:

You are in fact also learning a programming paradigm (or at times more than one) as well as control flow and other basic general concepts.

This is really important. My language of choice right now is C, but everything is completely different. It's all manual memory control, but you learn so much of what happens behind the scenes in other languages. Like Strings for example

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

I started writing Java while taking university classes in programming, so I was writing simple programs with multiple methods and classes within weeks.

 

However, it has taken me much longer to get to the point where I really have a good grasp of object-oriented design, and program architecture in general. One thing I've found is that very few people understand what OOP is actually for, how it works, and why it is desirable to use it. The result of that has been running into a lot of confusing, conflicting, and bad code examples and lessons. Java claims to be "object oriented", so this is relevant.

 

Data structures and algorithms are fundamental building blocks, but more complex programs demand greater attention to design than just moving frequently used code into a neat little method. My philosophy is that design is an under-appreciated facet of software development. Many programmers seem to take it for granted that they somehow just have the knowledge to build a good architecture, when the actual code that they produce suggests otherwise.

 

I've found the best way to move forward when stuck is to seek out different perspectives on the concept that I'm trying to understand. Learning is often not a matter of getting the right information, but getting the right information in a way that you can understand.

 

If you're having trouble understanding control flow when multiple classes and method calls are involved, that's a sign that you don't have a firm grasp of what actually happens when a function or method is called, or exactly what an instantiated object is.

 

I recommend working through this online book: http://interactivepython.org/runestone/static/thinkcspy/GeneralIntro/intro-TheWayoftheProgram.html That will solidify basic programming concepts like control flow and so-on, which you appear to be having a little trouble with.

 

I also recommend Head First Java. The writing style isn't for everyone, but it does a good job of laying out the fundamental concepts of Java and OOP in a clear and organized way.

 

Learn how to use a real Java IDE with a debugger as soon as possible. Some may view these tools as learning crutches, but if you're stuck you have to start somewhere. Stepping through with a debugger will help develop your manual debugging skills. Netbeans and Eclipse are both good free options.

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, SSL said:

Learn how to use a real Java IDE with a debugger as soon as possible. Some may view these tools as learning crutches, but if you're stuck you have to start somewhere. Stepping through with a debugger will help develop your manual debugging skills.

This is critical and as you'll remember OP is something I've been stressing to you in your previous threads...

18 minutes ago, SSL said:

Netbeans and Eclipse are both good free options.

Netbeans and Eclipse are junk in contrast to IntelliJ.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Nuluvius said:

Netbeans and Eclipse are junk in contrast to IntelliJ.

 

What do you mean, Eclipse is the best program ever written by a human.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Nuluvius said:

Netbeans and Eclipse are junk in contrast to IntelliJ.

 

What do you mean, Eclipse is the best program ever written by a human.

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, SSL said:

What do you mean, Eclipse is the best program ever written by a human.

It's good for a great deal of things just not Java. Not when there's IntelliJ for free.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, Nuluvius said:

It's good for a great deal of things just not Java. Not when there's IntelliJ for free.

isn't eclipse free also? I could never use that IDE that's why i have avoided java.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, vorticalbox said:

isn't eclipse free also? I could never use that IDE that's why i have avoided java.

Yes Eclipse is free. It's just that IntelliJ is built on top of ReSharper technology. With it you get more tools and far superior intellisense. Since they have offered their community edition for free and even opened the license up for commercial development there's simply no contest.

 

Which IDE are you referring to?

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

18 minutes ago, Nuluvius said:

Yes Eclipse is free. It's just that IntelliJ is built on top of ReSharper technology. With it you get more tools and far superior intellisense. Since they have offered their community edition for free and even opened the license up for commercial development there's simply no contest.

 

Which IDE are you referring to?

Eclipse. Tbh java confuses with how it's set up file wise i'm used to visual studio that does a lot of the set up work for you.

                     ¸„»°'´¸„»°'´ Vorticalbox `'°«„¸`'°«„¸
`'°«„¸¸„»°'´¸„»°'´`'°«„¸Scientia Potentia est  ¸„»°'´`'°«„¸`'°«„¸¸„»°'´

Link to comment
Share on other sites

Link to post
Share on other sites

21 hours ago, paprikman said:

The only question is - why do you need this?

As for me, I needed this for work, so I got several courses at the job to get in. There's no point of learning it "just for fun", there has to be some real purpose, then you will get it fast and solid.

I just wanted to pop in quickly and say that your opinion is toxic. Learning "just for fun" is a perfectly valid reason for picking up a skill.

Link to comment
Share on other sites

Link to post
Share on other sites

A lot of the stuff you mentioned was our first semester Java class in school. Our degree program had a requirement of three semesters of Java. I would say things like working with other classes, and simpler loops took a few weeks of solid practice to get really comfortable with. Talking it through with classmates when things got tough really helped.

 

At least personally I kind of noticed that if I just kept working at it, reading a bit online and in my textbooks, I would eventually experience a moment of clarity when things started to fall into place. For some people that moment seemed to take significantly longer than for others, however (assuming they were diligent in their practice) everyone eventually got there.

 

I will agree with the folks that say you should get comfortable with an IDE and using it's debugger if you aren't already using one. My personal preference right now is for Netbeans, but that is mostly because I like some of the things it does for web applications which is what I primarily write currently. IntelliJ is excellent, and if you have no preference already it'd probably be best to start with that one. My understanding is that's the one used most often in the industry, and Android Studio is based on that. In a couple years that might not mean much, but right now you'll be that much more comfortable when/if you decide to try your Java skills on a mobile platform.

 

I'd also like to address the idea that you need to have a reason to learn a new skill. The only reason you ever need to learn anything is "just because". Never stop learning. Never stop growing as a person.

 

Anyway I'll try to summarize a little:

 

  • Get yourself an IDE
    • IntelliJ, Netbeans, Eclipse
  • Keep practicing
    • Some people just take longer to "get" things. Don't get discouraged
  • Learn everywhere
    • There are resources around every corner. Buy a book, watch some videos (learn to love YouTube for more than cat videos), talk to others
  • Have fun
    • Start a "pet project". Something you find entertaining. It doesn't have to be out of this world, just something to get you coding.
Link to comment
Share on other sites

Link to post
Share on other sites

On ‎6‎/‎16‎/‎2016 at 1:00 AM, SSL said:

 

What do you mean, Eclipse is the best program ever written by a human.

I have to disagree.

 

On ‎6‎/‎16‎/‎2016 at 1:00 AM, Nuluvius said:

It's good for a great deal of things just not Java. Not when there's IntelliJ for free.

Eclipse is just fine.

 

On ‎6‎/‎15‎/‎2016 at 9:40 PM, VulsaviiK said:

This is really important. My language of choice right now is C, but everything is completely different. It's all manual memory control, but you learn so much of what happens behind the scenes in other languages. Like Strings for example

C# is a great alternative to Java. It only has one downside. Only compatible with Windows.

 

On ‎6‎/‎15‎/‎2016 at 0:57 PM, tomoki said:

Just curious really haha ~ I want to be able to understand it well but it's challenging for me...for some reason. 

I've been learning for just over a month. 

It's easy enough. You get used to it quickly. Just make sure to practice regularly.

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, AluminiumTech said:

Eclipse is just fine.

If you like trying to cut a tree down with an axe maybe. Why when there are much better tools available would you insist on using the less than adequate one.

2 hours ago, AluminiumTech said:

C# is a great alternative to Java. It only has one downside. Only compatible with Windows.

This is incorrect. We have Mono and in any event .NET is now open source.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Nuluvius said:

If you like trying to cut a tree down with an axe maybe. Why when there are much better tools available would you insist on using the less than adequate one.

This is incorrect. We have Mono and in any event .NET is now open source.

But C# != Mono

 

C# .NET was more what I was referring to...

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

8 hours ago, Nuluvius said:

If you like trying to cut a tree down with an axe maybe. Why when there are much better tools available would you insist on using the less than adequate one.

This is incorrect. We have Mono and in any event .NET is now open source.

.NET is certainly open source, but it relies (HEAVILY) on Win32 system calls, which is not open source. Open sourcing .NET did a lot less for Linux/OSX developers than Microsoft would have everyone believe. For the time being, we do have Mono, but it's very difficult to beat the Visual Studio C# development experience right now.

Link to comment
Share on other sites

Link to post
Share on other sites

17 minutes ago, Pinguinsan said:

.NET is certainly open source, but it relies (HEAVILY) on Win32 system calls, which is not open source. Open sourcing .NET did a lot less for Linux/OSX developers than Microsoft would have everyone believe. For the time being, we do have Mono, but it's very difficult to beat the Visual Studio C# development experience right now.

None of that is even relevent. The point was that C# is cross platform and will continue to improve in that capacity.

 

You both seem to be confused between the language and the framework:

6 hours ago, AluminiumTech said:

But C# != Mono

Mono is an implementation of C# and the .NET framework.

6 hours ago, AluminiumTech said:

C# .NET was more what I was referring to...

Then you should have been specific:

10 hours ago, AluminiumTech said:

C# is a great alternative to Java. It only has one downside. Only compatible with Windows.

You might find Terraria an interesting demonstration. Terrible source code but a good example of effective cross platform C#. The development team are arse holes however.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, Nuluvius said:

None of that is even relevent. The point was that C# is cross platform and will continue to improve in that capacity.

 

You both seem to be confused between the language and the framework:

Mono is an implementation of C# and the .NET framework.

Then you should have been specific:

You might find Terraria an interesting demonstration. Terrible source code but a good example of effective cross platform C#. The development team are arse holes however.

Where can I find their source code?

Judge a product on its own merits AND the company that made it.

How to setup MSI Afterburner OSD | How to make your AMD Radeon GPU more efficient with Radeon Chill | (Probably) Why LMG Merch shipping to the EU is expensive

Oneplus 6 (Early 2023 to present) | HP Envy 15" x360 R7 5700U (Mid 2021 to present) | Steam Deck (Late 2022 to present)

 

Mid 2023 AlTech Desktop Refresh - AMD R7 5800X (Mid 2023), XFX Radeon RX 6700XT MBA (Mid 2021), MSI X370 Gaming Pro Carbon (Early 2018), 32GB DDR4-3200 (16GB x2) (Mid 2022

Noctua NH-D15 (Early 2021), Corsair MP510 1.92TB NVMe SSD (Mid 2020), beQuiet Pure Wings 2 140mm x2 & 120mm x1 (Mid 2023),

Link to comment
Share on other sites

Link to post
Share on other sites

7 hours ago, AluminiumTech said:

Where can I find their source code?

Sorry I was meaning TShock for Terraria. It was late and I was tired.

The single biggest problem in communication is the illusion that it has taken place.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×