Very left - Adobe Illustrator, vector illustration/design software
Middle/Left- Maxon Cinema 4D, a 3d design, modelling, rendering and animation tool
Right - Eclipse, a development and programming IDE
>HE IDEs
From now on when someone complains about Eclipse crashing I'll advise them to stop using explosive IDEs.
(What you were probably looking for was IEDs, or improvised explosive devices.)
I use Eclipse with the TeXlipse LaTex plugin to generate my thesis pdf and everything is backed up to GitHub (from within Eclipse too). References are provided by a BibTex file that is automatically generated by Mendeley. I feel the workflow is simple and self-contained. Compared to Word, I think the generated pdf looks better and I have more control over it.
I started LaTex by googling whatever I needed to do at that stage (how to have Times New Roman 12 point font? how to insert figures? how to do Harvard referencing? etc). There are loads of useful resources/templates online.
One of my supervisors likes to have a .docx version and I use Adobe PDF Exporter for that with pretty good results.
Do you have any limitation that prevents you from downloading a large program? If your only goal is to get this file running, I would strongly recommend downloading an IDE like Intellij Idea or Eclipse and let that program worry about how to compile/run the file. Then you won't have to worry about javac
, classpaths, etc...
Give it a try and let us know if you experience any specific problems - it will be much easier to provide advice in that case.
I will point out that the video is using Eclipse, an IDE. https://www.eclipse.org/ide/
If you were to write this program in eclipse, you would get a red squiggle under neath the call to sayHello with a hint on the left hand bar that reads: The method sayHello(String) is undefined for the type Dog
Furthermore, the next line gives you:
Multiple markers at this line - Syntax error on token ")", ; expected - Syntax error on token "(", ; expected - void is an invalid type for the variable sub
I would strongly encourage you to also use an IDE. Trying to code in notepad and use javac to compile by hand is much like trying to carve some wood with a blunt knife, and one hand tied behind your back so you can't hold it. It's tedious and difficult.
Use an IDE. Learn how to use the debugger that is provided by the IDE.
When I started learning Java, our instructor had recommended that we use Dr. Java, which is a light-weight IDE that's actually geared toward students.
However, I have since switched to Eclipse for when I write Java and it's a pretty good IDE in my opinion. Given that Eclipse has a decent amount of use by those working in industry, it wouldn't be a bad idea to get familiar with it, especially if you plan on becoming a professional developer in the future.
I've seen others recommend IntelliJ online, as well, but I don't have much, if any, experience with it, so I can't really comment on the features it has or how good it is.
Like others have suggested, it might be worth it to try out multiple IDEs and find one that you like. Given that most IDEs will likely have a variety of similar features, it doesn't really matter which one you choose as much as it does that you choose one that you like and that you're comfortable using. And, should you decide that you don't like the IDE you started with anymore, you can always switch to a different one!
Best wishes with your course!
Oh, and before I forget given that you come from Python/C. The package of the source file is normally enforced through the directory structure. Most compilers will complain if the class with the package "com.example.project.module" is not in the path "SOURCE_DIR/com/example/project/module". Same goes for class and filenames. The class "SomeTestStuff" is expected to reside in "SomeTextStuff.java". One also does not put multiple classes in the same file (inner classes are something different).
Now that I explain that, Java has a lot of conventions which one is expected to follow, either by tools or peers. Oracle still has a good overview of the conventions which is only slightly dated (like the file header with name/author/date is not a thing you should do). Using an IDE like Eclipse can already remove a lot of the burden here, as it simply "does its thing".
While you can write code with Notepad it's not really sufficient beyond beginner "Hello world" programs. Most programmers use an advanced text editor like Visual Studio Code or a language specific IDE like Eclipse. These editors have features like syntax highlighting, real time error checking, and build tool integration.
As for the terminal, it's not what builds the code. A terminal is just an interface to launching other programs. With a terminal you can launch something called a compiler which takes source code and turns it into an executable program. Some languages, like JavaScript, aren't compiled into programs, but there are tools that help optimize and package the source into something more appropriate to distribute. The terminal just gives you easier and more appropriate access to these tools than a standard GUI.
There are a lot of steps involved in turning source code into a program a user runs. It can appear really complex but much of it is designed to be done by another program and not by a person typing in a bunch of commands.
Sorry if I'm a tad late. Everyone seems to have tutorials nailed down (there's plenty). If you are looking into learning Java, I'd recommend downloading the Eclipse IDE. Java is one of my favorite languages due to its cross-platform abilities and Eclipse has been an enjoyable experience more often than not. I'd also recommend going to the Eclipse marketplace inside the IDE and downloading Window Builder (it is free). This will provide you with an interface for developing graphical applications with Java similar to Windows Forms with Visual Studio. It's a bit tricky to get started, but there's plenty of tutorials with Window Builder on YouTube. I feel if you're going to learn Java, this is a good opportunity to play around and be able to see your progress and get a quick understanding of how it all flows together.
​
If you'd like any more advice or information, feel free to let me know!
If you want to learn how to practically apply code, there is no better teacher than experience. Look up some cool Java projects and just start making stuff. Post questions if you need help... also remember Google, Reddit, and StackOverflow are your best friends :) Download IntelliJ IDEA, it's one of the best IDEs out there today. You can experiment with Java to your heart's content.
As for your question about JFrames, JPanels, etc., they are part of the Java Swing library, which is used for graphics development (mainly GUIs). If you want to get started on graphics development in Java, look at both Swing and Java FX. Also download NetBeans and Eclipse, these are two IDEs that are commonly used for Swing and FX (I prefer NetBeans).
Eclipse is an IDE, and you can probably figure it out as you go. Install it: https://www.eclipse.org/ide/
Then, do a couple basic Java tutorials to familiarize yourself with the syntax a little. Maybe look up some sample easy interview questions (e.g. fizz buzz) and try to implement them in Java.
At the interview itself, be frank about your experience and being new to Java, and if they ask you to code, ask if you can do it in C# instead so you can show what you can actually do. Try to inspire a sense of being willing and able to learn new stuff. That's actually often more valuable than already knowing a lot of things.
Plus, as /u/potatotub said, if it falls through, there should still be plenty other opportunities. Take this one as a compliment and as possible guidance on direction for more stuff to learn.