Hey CD community, I was just wondering what would be the most effective and fastest way to learn Java or if there isn’t a fast way whats the best way ? I wish to learn programming before the start of the 2015 season. Any advice on how learning programming will help. Hope to hear from you guys!! Thanks a bunch
Do you mean learning how to program an FRC robot, or learning to program in general? That’s a good first step. Do you have any general programming experience yet?
This thread contains some links to learning resources for Java: http://www.chiefdelphi.com/forums/showthread.php?t=117226
The roboRIO next season will be using Java SE Embedded 8[citation needed], so a good place to start might be Oracle’s Java Tutorials: http://docs.oracle.com/javase/tutorial/. FRC specific information can be found at http://wpilib.screenstepslive.com/s/3120.
I was not a programmer on my team, but after three years of trying to learn to code on my own, the most effective way for me to actually learn to code and how to write code that people wouldn’t hate me for was taking a class with a guy who was in industry for around thirty years. Obviously it was a school class, but I learned more in the last year of working with him than I did in three working independently. If you can find a good teacher, I would definitely argue that that’s the best way (and arguably the fastest, since you’ll pick up significantly fewer bad habits).
But that’s just my experience learning Java in a non-robotics setting. I certainly wouldn’t consider that route the only or best way. Unlike mechanics, where you can learn from a textbook or via physical experience, there are a million distinct ways to learn programming. As always though, a disclaimer: “Like all of my advice, your milage may vary.”
I know that there’s been some discussion of non-experts answering questions outside their experience, but I hope I haven’t muddied the water too much…
I mainly wanted to learn how to program an FRC robot, learning other things would’ve have been extra. I have tiny bit of experience, I learned how to program in visual basic a few months ago
I suggest you watch the video tutorials by Brad Miller here:
youtube.com/user/BradAMiller
Are team uses the book Big Java to teach new programmers. It might have some more advanced programming you don’t need to program a robot near the end but it’s pretty good.
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.
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.
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)!