Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java

Brendan Whiting
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Brendan Whiting
Front End Web Development Techdegree Graduate 84,738 Points

What are the benefits of programming in Java?

I'm half-way through the Java Web Development track. It's challenging, but I'm enjoying it. I dabbled in the Python/Django and Ruby on Rails tracks before, but I was drawn to Java because the Object Oriented nature seems like it helps tackle complexity, and it seems this is what the 'adults' are using to build large enterprise applications. On the front end, I've been drawn to Angular 2/Typescript for the same reasons.

But one of my roommates, who is actually employed as a software developer, saw me learning Java and is trying to convince me that I'm wasting my time, he says:

  • the Object Oriented nature of Java kind of went too far, with UML diagrams and lots of emphasis on building a rigid structure, and in more agile processes they are trying to unwind that way of doing things, getting rid of some of that boilerplate and overhead, and Python is just fine for handling complexity.
  • a lot of legacy code is in Java but people are unlikely to use it to build something brand new
  • Java jobs tend to go to candidates who have strong CS backgrounds and formal education. Someone like me who is self-taught and has no bachelor's degree is more likely to get a job at a startup using newer technologies.

I'm the kind of person that tends to over-complicate things, and maybe that explains why I want to program the fancy way. But I'm also ambitious and I want to build big things with complicated business logic on the back end.

Any advice or other opinions are appreciated.

3 Answers

Hi

I think it all depends. If I am learning my first programming language ... I would go for Java.

Here is a good post ... please go through it ... I am pretty sure it will shed some insight and may answer your question.

https://www.quora.com/If-I-had-to-choose-between-learning-Java-and-Python-what-should-I-choose-to-learn-first

Thanks

The software world is like going back to school every 18 months. New technologies keep on coming.

It is true that given 2 candidates, one with BS CS and one without, it is likely the employer will select the one with BS in most cases (assuming both are qualified).

Java is one of the most widely used languages in the world. There is no harm in learning java and it is great if you have experience. However, this is really not the issue here .... The real issue is that you and another qualified person are competing for an opening ... who is more likely to get the offer?

It is always good to have this BS handy ... However, this should not impeded you from getting a job. Not having a college degree may limit how far you can go corporate wise.

There is always a chance that you may come up with the next great idea (or work for a small startup company that is working on the next great idea) ... and you may end up to be the next billionaire ... As I said, New technologies and ideas keep on coming.

Good Luck

Little advice ... learn a lot of front end development as well.

Hope this helps.

Greg Kitchin
Greg Kitchin
31,522 Points

I'm not a developer so I can't answer from a working perspective, but learning Java does give you some benefits. Firstly, it teaches you about object oriented programming right from the beginning. Understanding OOP is extremely handy. Secondly, it's still in use. If you decide to go onto Android apps, then since Java is used, you'll have an edge there.

In regards to trade-offs, Java does have it's issues. Some people disable Java on their machines on principle. However, as a compiled language, you'll have better performance compared to Python, which is interpreted.

The end of the day, you'll have to decide where you want to focus your skills on, and what the market is like. I'm in Scotland, and I've seen a few local Java and Python jobs, but I've only ever seen one job for a Ruby developer in the last few years.

I'd suggest at least learning the basics. You can then see how you like the language. I personally find Java very off-putting, there seems to be so much more work required for the simplest task (in Python, Hello World I can code in one line, with Java I need to build a class), but I originally learned it from the uni stuff I was doing at the time, which I just couldn't get my head around. I wish I had Craig as a teacher when I tried (and failed it twice) years ago.