Java Programming Bootstrap
I am a new student with INE and also new to the IEOC community. I saw that this area was empty and thought it could be an easy way to contribute. I suppose I can make a few suggestions about programming resources and learning resources if you want to get started in Java programming. As a caveat, I am still learning myself, I am a few classes shy of a Bachelor's in Computer Science and my school's language of choice is Java SE.
What do I install?
You will need a version of the Java Software Development Kit (SDK) and the corresponding Java Runtime Environment (JRE).
You will also need a text editor. Notepad in Windows, or gedit/vim/vi/emacs or something similar in a Linux environment. There are fancy ones with bells and whistles as well, but save that for after you have written a few basic programs. (Once you've gotten your feet wet, Notepad++ for Windows is a personal favorite). Don't use Word, Libreoffice etc as these programs will add additional characters "behind the scenes" that will ruin your code. (This is also great advice for Cisco IOS configuration files)! There
Which Java environment (SDK) should I be running?
Java has a few different "flavors" to choose from depending on the environment you are developing for. A simple web search for Java SDK (Software Development Kit) will take you to an Oracle page that offers SE, ME, and EE version.
If you are just starting out with programming, or with Java, then SE (Standard Edition) may well be for you. The libraries and structure of this version of the language are focused on Desktop applications, but also offer functionality for Server hosted applications. SE is the edition you will see covered in the majority of Java books, particularly those targeted for an academic environment.
ME (Mobile Edition) is self explanatory.
EE (Enterprise Edition) is definitely worth exploring if you are already working in an enterprise environment or are looking to develop web backend solutions.
Okay...programming...where do I start?
Once you have selected the appropriate Java SDK, ensure you have the correct/matching JRE installed as well. All Java SDK and/or JRE files should be coming from *.oracle.com
Java programs are executed in the Java Virtual Machine, which has the advantage of write-once, install (almost) anywhere, but the Java Runtime Environment must be installed on the device to actually run and test your applications.
You would be silly not to use INE's course to get started. For additional resources, I personally recommend Y. Daniel Liang - Introduction to Java Programming (9th Ed). This book assumes you are new to programming, and will teach you programming theory while you also learn Java.
Whenever an instructor or a book gives you example programs, physicall type them out to recreate them. You will learn a lot simply by typing the code and fixing the error messages that pop up when you type ':' instead of ';'. Type out all of the examples. The Core Java books are also excellent and will serve as a good reference to quite a bit of the Java API. docs.oracle.com also hosts a reference for the library functions that is constantly updated, and the appropriate SDK on this website should be bookmarked.
I'm seeing all this stuff about IntelliJ IDEA, NetBeans, Eclipse...and other Integrated Development Environments (IDEs) ...do I need one?
Not at first, and unless you are working in a team that requires some of these add-ons, maybe not ever. Many professional programmers scoff at the idea of using IDEs. Some love them. My advice: keep it simple at first and just use a text editor. Focus on learning the language and what you can do with it. Once you are spending more than 4-5 hours a week working on Java code, then I think it is worth your time getting and learning how to use an IDE. Until then, it is an added learning curve which can hamper your efforts at learning how to program and getting the job done. If you really hate Notepad in Windows, Notepad++ is excellent and free.
I installed all the things...what next?
Focus on command line programs at first. Creating GUI (graphical) applications in Java has perhaps one of the steepest learning curves in the entire language.
Manually copy and type the example programs from the thousands of tutorials available on the web. Once you have copied them correctly and they compile and run correctly, play around with the functions the example teaches. See what entertaining or interesting stuff you can make the program do.
Hopefully all of this info wasn't too basic and some of you find it useful. Like I said before I'm still learning programming myself, but it would be really cool to help people skip over some of the mistakes I've made getting to where I am now. If nothing else, it would be really cool to help keep the programming sections going so I can get the most out of my two main interests in tech - Programming and Networking!