• Post Reply Bookmark Topic Watch Topic
  • New Topic

How long does it take to be good at Java?  RSS feed

 
Troy Hatchard
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hey everyone, I'm an absolute beginner in java and programming in general. I am considering going to school for it but am trying to save up money to go.
For now I'm trying to learn Java because I want to be able to create my own android apps. I'm just working through an online course and it seems fairly daunting but I'm trying to work through it.
I don't do this very often since I work full time and I have other things on my plate, but I'm sitting down to code for an hour or two about twice a week.

My question is whether this is even worth my time?? It's pretty discouraging to not be making a lot of progress and to constantly have to learn and relearn concepts that seem so basic and simple to programming but are very difficult to grasp.
My end goal is just to be able to code my own apps. But I want to do it through being a competent and capable java developer.
I want to know how long this might take and what I can do differently to speed up my progress or whether it's ever going to happen.
Am I ever going to get where I want to go by doing the little bit of practice and coursework that I'm doing?


Any help or input would be hugely appreciated. Thanks a ton and I hope you all have a great day.
 
Knute Snortum
Sheriff
Posts: 4276
127
Chrome Eclipse IDE Java Postgres Database VI Editor
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Welcome to the Ranch, and welcome to the wild and wacky world of programming!

First off, don't be discouraged! Programming is hard. Learning and relearning concepts is pretty much par for the course.

Second, Java development and Android apps are fairly different. Opinions from those who do both are welcome, but I found Android programming difficult, although I would call myself a Java developer. I would focus on one or the other. Of course, there are some basic programming techniques that you have to learn first.

What course are you taking? It might be good to take another, more basic course before jumping into Android programming. Oracle has a good tutorial to start with and it's free. Head First Java is a different approach and works well for some people. There are also online courses like CodeCademy.

Lastly, feel free to post what you're learning here or in the Android forum.

Good Luck!
 
Rizal Tabley
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi

I'm in the same boat as Troy.

I'm going through the Head First book which is very helpful.

My question is how do I build on this study? What is the best way to practice and build the Java knowledge? Is there a website that has exercises that I can do? Join a coding dojo? Or open source community?

I know I need to practice coding but not sure how to do it.

Thanks
 
Troy Hatchard
Greenhorn
Posts: 3
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rizal Tabley wrote:Hi

I'm in the same boat as Troy.

I'm going through the Head First book which is very helpful.

My question is how do I build on this study? What is the best way to practice and build the Java knowledge? Is there a website that has exercises that I can do? Join a coding dojo? Or open source community?

I know I need to practice coding but not sure how to do it.

Thanks


I totally agree. I feel like learning the syntax of java isn't learning to program. Maybe we need to be looking on GitHub for beginner projects to do?
I have just been going through a youtube tutorial by a guy named Micheal Fudge. It has been good so far but I guess I can't be a very good judge of it.
The one thing that's great is his supplimentary activities to do.
https://github.com/mafudge/LearnJava
This is the folder for his materials on GitHub.
I suggest doing the challenge activites for whatever topics you might be a little confused about, then using his solutions to check and learn how he might have solved a problem differently.
I found that often his solutions used about half the code than mine to do the same action. Then I was able to modify and understand my code and learn how to do it better.
This of course is pretty basic stuff and I'm not sure what level you're at, but it was a good challenge and quite helpful for me.

If anyone has other suggestions or better ways to get started, please let us know.

 
Troy Hatchard
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Knute Snortum wrote:Welcome to the Ranch, and welcome to the wild and wacky world of programming!

First off, don't be discouraged! Programming is hard. Learning and relearning concepts is pretty much par for the course.

Second, Java development and Android apps are fairly different. Opinions from those who do both are welcome, but I found Android programming difficult, although I would call myself a Java developer. I would focus on one or the other. Of course, there are some basic programming techniques that you have to learn first.

What course are you taking? It might be good to take another, more basic course before jumping into Android programming. Oracle has a good tutorial to start with and it's free. Head First Java is a different approach and works well for some people. There are also online courses like CodeCademy.

Lastly, feel free to post what you're learning here or in the Android forum.

Good Luck!


Thanks a lot Knute! May I ask how you learned to program and how much work it took before you were competent enough to write your own fully fleshed out programs? Is it possible to get a developer job just from knowing how to code in java from taking courses like the one I'm doing? Or from completing a book like Head First Java?
 
Junilu Lacar
Sheriff
Posts: 11477
180
Android Debian Eclipse IDE IntelliJ IDE Java Linux Mac Spring Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Not to dampen your spirits or anything but it takes a lot more than just knowing basic Java programming these days to get hired for a decent paying job. A more realistic path, if you're really interested in a career change, would be to get formal education towards a degree or something like that. There are online offerings but it could take a while if you only have a few hours a week to devote to your studies. It's quite a commitment and one that's both costly in time and money.

Being an enthusiastic hobbyist can help but I don't think it's enough, not unless you're really hard-core and can do amazing things. I've been trying my hand at Android apps myself and there's a LOT of stuff you need to learn to write a decent, full-blown, useful app. That "Hello, Android" program doesn't even begin to scratch the surface of what you need to learn.

Just to give you an idea of my journey, I already had over 10 years of programming experience in other languages when I started programming in Java in 2001, right around the time I joined JavaRanch. It took me about 6 months of learning on the job and practicing at night, every night, and on the weekends, to get decently conversant with the Java language. It has taken up until a few years ago of constant practice to get relatively fluent with Java, and that includes the time I spend on the job writing Java programs and working here as a bartender, trying to learn while helping others learn. And then the keepers of the language are always coming out with new features like annotations, lambdas, functional programming, etc. and it seems there's even more to learn. And then, there are the frameworks and related technologies like Spring, Hibernate, JUnit, etc. By now you probably get the picture: it's a never-ending journey of learning. The irony is that it took me almost 9 years of slacking and muddling through college to get my BS in Mechanical Engineering. I never studied much when I was in school but now I find myself studying incessantly.

I'm a pretty tough interviewer but what I look for in general, even with junior level candidates are:
1. An enthusiasm for learning
2. An aptitude for learning and being coachable
3. Knowledge of basic Java language concepts
4. Familiarity with OO concepts and programming principles

Sometimes even candidates applying for senior level positions don't meet these criteria but I think I'm harder on them because I expect them to already know a lot about 3 and 4 and I just don't meet that many candidates who are. Anyway, I hope this doesn't put a damper on your ambitions. If you have the desire and dedication to do it, it's not impossible. Just know you're in for a lot of hard work outside of the actual work, which isn't easy either.
 
Knute Snortum
Sheriff
Posts: 4276
127
Chrome Eclipse IDE Java Postgres Database VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Rizal Tabley wrote:Hi

I'm in the same boat as Troy.

I'm going through the Head First book which is very helpful.

My question is how do I build on this study? What is the best way to practice and build the Java knowledge? Is there a website that has exercises that I can do? Join a coding dojo? Or open source community?

I know I need to practice coding but not sure how to do it.

Thanks

There is a site called HackerRank (and others) that provide programming challenges. This is a low-commitment way to practice programming. Then maybe create a small project for yourself and try to code it. This forces you to use documentation, ask questions, and experiment.

And, as it has already been said, nothing beats a good class.
 
Knute Snortum
Sheriff
Posts: 4276
127
Chrome Eclipse IDE Java Postgres Database VI Editor
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Troy Hatchard wrote:May I ask how you learned to program and how much work it took before you were competent enough to write your own fully fleshed out programs? Is it possible to get a developer job just from knowing how to code in java from taking courses like the one I'm doing? Or from completing a book like Head First Java?

I'm an old programmer but new to Java (three years) so my experience may not be typical. I was lucky enough to get on-the-job training. I was contributing to real projects after four months. I was also halfway through a BS in Computer Science so I knew some of the academics. But if you're young and can afford it, I would take formal classes like Junilu suggested. You're not going to find a job just with Head First Programming, but you can get a leg-up on a programming class and maybe have some fun on the way.
 
J. Kevin Robbins
Bartender
Posts: 1801
28
Chrome Eclipse IDE Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I always feel obliged to post this for new programmers. It will help set your expectations.

Also, for training sites, I like Project Euler. I also recently discovered Code Wars but I haven't tried it yet. It appears to be a bit more advanced. And if course there is CodeAcademy, Coursera, and Udemy.
 
Winston Gutkowski
Bartender
Posts: 10575
66
Eclipse IDE Hibernate Ubuntu
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
J. Kevin Robbins wrote:I always feel obliged to post this for new programmers.

And if you hadn't, I would have,

Troy Hatchard wrote:My question is whether this is even worth my time?? It's pretty discouraging to not be making a lot of progress and to constantly have to learn and relearn concepts that seem so basic and simple to programming but are very difficult to grasp.

I'm afraid only you can answer that one - and you really should read J. Kevin's link.

Programming is not simple. It's frustrating, complex, and often boring (something a lot of people forget) - and for a long time you'll fail more often than you succeed; but if you LIKE it, then all those failures and bloody foreheads melt away when you DO succeed.

Winston
 
nick woodward
Ranch Hand
Posts: 382
12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
resource wise I definitely recommend http://courses.caveofprogramming.com/ - John is a really decent guy and there are some good courses that go beyond the core stuff you find with your more traditional online courses (swing, spring, multithreading, patterns, JDBC etc).
i've also come across Daniel Ross on youtube - the amount of content he has is pretty amazing for such an unknown channel - i like Derek Banas and thenewboston too, but think Daniel's channel is great.

certification, while not really necessary, has massively upped the quality of my knowledge. it's not broad, but its got depth. getting to the OCP level (whether you take the exams or not) won't guarantee you're necessarily good at programming, but will give you a good platform to be.

i personally like www.codingbat.com for smaller problems, project euler is another that's recommended. Daily Programmer on reddit is also good in my opinion.

you should (eventually) take part in a project with others, and obviously if you can do your own from day 1, but by the sounds of things you are learning the basics:

they will come with time. i remember not long ago an author said "for now, just accept that the main method has the arguments (String[] args) - its not important at the moment, and you'll be seeing a lot of it in the future anyway". i hated taking that on faith. i hated not understanding. but he was right. what looks complicated today, won't tomorrow. the OCA book by K&B took me AGES to read the first time - i struggled with many of the sentences and examples. I can now breeze through it - I've read it 3 times i think.

So i guess my point is - no, you won't get where you want to go with a little practice and coursework. You'll get there by realising there is no end Just keep doing it, however it does start to make more sense!

Nick

 
Stevens Miller
Bartender
Posts: 1445
30
C++ Java Netbeans IDE Windows
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:Programming is not simple. It's frustrating, complex, and often boring (something a lot of people forget) - and for a long time you'll fail more often than you succeed; but if you LIKE it, then all those failures and bloody foreheads melt away when you DO succeed.

Yes, that captures it for me, too. I was half lucky. I taught myself to program computers in 1973, when I was 14 years old. It came easily to me and I did some things I was proud of. It wasn't always easy, but it was always fun (if you've ever found yourself grinding your teeth over a difficult crossword puzzle, but kept at it because you like doing crosswords, you know what I mean). Because I was able to start young, teach myself, and do some good work, I proceeded into adulthood thinking that I was a good programmer, that I would always be a good programmer, and that learning new programming languages would always be easy.

Well, that's not how it worked out. In part, here's why: the programs I wrote in 1973 looked something like this...

There's nothing inherently wrong with that program and, even in Java, it would look something like it does in that listing (which is in an early version of BASIC). But, it doesn't really do anything all that interesting or remarkable. Still, it's not a bad start and I went on to discover that I was pretty good at using the limited abstractions and constructs of simple programming languages to cobble up solutions to increasingly difficult problems. What I turned out to have a knack for was designing algorithms, which is not the same thing as writing code. That knack, my personal interest, and (I hope) some good work habits got me a career in programming and a master's degree in computer science.

Then came Java, and my world changed. I had never used an object-oriented language before (well, C++, some), and I had been away from programming for a few years (working more as an expert witness in legal matters involving evidence recovered from computers). In that time, what I call The Rise of the API had come to pass. So, what that meant for me, when I started learning Java in 2008, was that I had to learn an entirely new paradigm for writing programs, and I found out I also had to learn what was in some extensive API libraries. Just "learning Java" is not enough to do anything useful. You have to learn a fair bit about what's in the standard library and (if you're me) you also have to unlearn some old methodologies that, if forced upon a Java program, make things harder than if you had never learned them in the first place.

So, I encourage you to embark on this adventure if you feel the call, but my advice is twofold: respect the magnitude of what it means to be "a programmer" in the year 2016, because it ain't what it was in 1973, and, if you find you don't like writing computer programs, give it up. I really can't imagine putting up with these maddening machines (and the people who serve them ) if, ultimately, I didn't enjoy it.
 
Juha Aaltonen
Greenhorn
Posts: 8
Debian
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
And one problem with many courses is that they teach more about graphical libraries than Java programming.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!