View Single Post
  #8   Spotlight this post!  
Unread 28-06-2014, 01:25
MatthewC529 MatthewC529 is offline
Lcom/mattc/halp;
AKA: Matthew
FRC #1554 (Oceanside Sailors)
Team Role: Mentor
 
Join Date: Feb 2014
Rookie Year: 2013
Location: New York
Posts: 39
MatthewC529 is on a distinguished road
Post Re: Best way to learn Java ?

Apologies for the essay... hopefully its helpful for you and anyone else! I will be available most of the time (as will many other awesome people on this forum) if you have questions!

If you want to learn how to code FRC Robots specifically you are going to have a hard time. True FRC Tutorials are sparse and distant in terms of keywords when searching for them. The best I can offer is the WPI ScreenSteps Live page that provides what I would call it a "Quick Start Guide to the WPI API" for all the languages, including Java.

WPI ScreenSteps Live Guide

There is setting up your IDE, writing your first program and so on and the WPILib Programming section provides plenty of examples on the basics of Actuators, PWM's, Sensors and the such with examples. Usually in C++ and Java. Anything in C++ should be easily portable to Java since most of the differences are in syntax.

Team 3133 Tutorial

This is a nice tutorial by Team 3133 which is small (covers basic Input, PWM, Pneumatics and Vision) but, in my opinion, sparse in detail and the "Why" of what works and what doesnt. Its a more "Trust Me" tutorial. I am considering doing a more in depth tutorial but it would be for IterativeBot. Useful only if you use Simple or Iterative.

The other option is to read through the WPILib Source Code which can be a HUGE help for even the most stubborn of problems. Usually the Javadocs give a lot of detail or just enough detail, the WPI team was pretty good with documentation. If there is little or no documentation you may have to dive right into the Code of WPILib itself if you want to know what you want to do is feasible and not breaking anything.

I think general Java knowledge will be to your advantage, most Computer Science programs cover VB and Alice in their first year but that makes you a Programmer... not a "Good" Programmer. You need to spend time between now and next season working on various experimental projects like Chat Clients, Games or various Applications, reading source code of other projects and learning the ins and outs of Java like at least IO, Generics, the limits of Polymorphism, Interfaces, Anonymous Inner Classes (Or Lambda's if Java SE 8 is available next year), Collections, Manipulating Arrays, How Reference Handling Works in Java, And all the awesome Utilities like java.util.Arrays, java.lang.Objects and so on.

Beginner's Java with Bucky Roberts
Intermediate Java with Bucky Roberts
Thorough Java Tutorial with Derek Banas
Java Algorithms with Derek Banas (For Fun)

These are always my general go to Recommendations. You would have found Thenewboston (Bucky) through any youtube search for Java Tutorials and Derek Banas covers so many things from Java to C# to Android to Algorithms to... Personality Tests! And his tend to be more in depth and a more conventional approach than Bucky's.

Again though I not only recommend watching these videos and reading up on WPILib Documentation and FRC Documentation but you should do stuff outside of Robotics to get your general programming ability down or else you will find it very difficult to write a cohesive, readable, maintainable code base.

Good Luck! I will be omnipotent and available if you have questions (being friendly)!

Last edited by MatthewC529 : 28-06-2014 at 23:20. Reason: Cleaner Hyperlinks
Reply With Quote