My background experience is in C. I'm studying computer science in college. I have some basic experience in Java, but the language I know best so far is C. So, on to my query:
I Want to make a program that yanks the audio from youtube and saves it as an MP3 and various other audio formats. Now, you might be thinking this is to advanced for me. I want to jump right into this and have something to work on. If someone could outline an algorithm I could follow, methods I need to implement, etc.. I WILL figure it out. Right now I just don't know where to begin.
Later Ideas I have are making a nice GUI which include playlists to store the downloads in, etc..
jay pike wrote:Now, you might be thinking this is to advanced for me. I want to jump right into this and have something to work on...
My advice: DON'T.
Learn the basics first and set your horizons a bit lower. Once you've got the basics under your belt, and can write good, clean Java code, then start experimenting with Sound APIs. I've honestly never tried it, but why not start, for example, with a simple converter or equalizer?
But first of all: read THIS.
jay pike wrote:Knowing C fairly well I have a big head going into it.
Yes, but Java is NOT C - and I say this as an old C hack who took a year or two to get over the "expectations" myself.
The fact is that knowing C++ (or another OO language) is much more likely to be helpful; otherwise you'll just translate C code into Java - and that is definitely NOT a good way to go.
P.s. First task at the moment is an audio file format convert that I can hopefully implement into the project.
jay pike wrote:Yes, I understand. Mainly what I'm saying is I have a very slight advantage. I know how low-level works which has lead to practices such as paying close attention to boundary conditions, determining how expensive / inexpensive certain methods are etc..
Hey, don't get me wrong, I love C. In fact, I'd say it's the "Java" of low-level languages.
It also has a similar syntax to Java, which helps familiarity.
What neither it, nor any of the things you've outlined above, help with is learning how to write good Java code, because what they are primarily concerned with is efficiency. And efficiency is one of the LAST things you need to concern yourself with when writing Java.
Java is also a memory-managed language, which means that you don't need to worry about destroying objects or freeing memory. It's done for you. Your primary concern, when writing Java, is to ensure that your code is correct; and that is a design measure, not an efficiency one.