I am powering through https://docs.oracle.com/javase/tutorial/java/TOC.html for now, then I should head back to documentation. I think this is about as good as a reasonably-good textbook in the area. I will consider a textbook if I don’t feel confident by the end of it.
As with most of my projects; time and focus is limited by my interest. So finding a textbook and then retrieving it will be difficult and probably take longer than my interest in the project allows.
I would recommend you don’t. You’ll give up soon enough and be left with a bad taste in your mouth about programming for a long time. That is not a good outcome.
You actually don’t need a textbook—you need a good intro to programming. Java documentation (shudder) is quite the opposite of that.
I should have clarified more—I am not a beginner programmer; I am (debatably) capable of procedural programming. Been spending the past few days wondering how I managed to go as far as understanding procedural programming and never go any further into OOP. Starting to question both my brain and the sanity of anyone who ever tried to teach me anything relevant to programming; and how we all missed that I was unclear about what OOP is.
I will spend no more than 3 more hours on this reading before trying an alternative like the other textbook suggested by Douglas_Knight; or restart with an intro to programming guide.
I am confused about your goals, then. So you have some experience programming in an imperative (procedural) language. You want to figure out the OOP paradigm? That’s a good idea, but what in the world are you doing in Java, then?
For figuring out how OOP works I’d actually recommend a more-or-less pure OOP language. Ruby is a good choice. If you have a very twisted mind (it’s LW, after all), there is an… unconventional but interesting guide to Ruby written by a person who goes by the name of Why The Lucky Stiff X-)
If you don’t want to do Ruby, Python is also fine. Smalltalk is cute, but… is of mostly academic interest by now. In any case I’d avoid Java if you’re trying to understand the OOP paradigm and how it’s different from imperative.
Original goal: make an android app that does something (specific and not particularly important right now).
My path: try to use android studio via developer.android training (as linked in the first comment). Get lost. Try to work out what was going on. Discover what OOP actually is. Read more and more. Roughly get to where I am now.
Important question: Is there are better/smarter/faster/easier way to be making an app? I figured android studio would be the most easy to use (where I was previously not sure how to get an app onto the phone) because its built to go with android devices.
Just make sure you don’t try going too meta too soon, otherwise you may lose touch with reality.
1) The “hello world” app you made—did you have anyone review your code? Maybe it contains obvious errors you didn’t notice. Maybe learning about them could be very beneficial in long term. Having an improvement shown in a program you already spent a lot of time thinking about could be better (more motivating, easier to remember) than reading about a similar technique in a book illustrated with a fictional example.
2) Every time you learn something new—do you also make another “hello world” app to test this new knowledge? Otherwise you may get a fake understanding. Also, if you learn about cool new techniques, but never use them, you may not understand the trade-offs. By making sample applications you test your new models against the reality.
I figured android studio would be the most easy to use (where I was previously not sure how to get an app onto the phone) because its built to go with android devices.
I agree.
Unless you want to make a game, in which case Unity is probably a better option. It is not Android-specific, but it can compile to Android platform.
EDIT: Feel free to ask me specific things about Java or Android.
it took hours to figure out how to correctly install Android Studio and get it to compile. Including completely starting again; installing extra packages and accepting that some errors will exist.
eventually most of the hello world app was a sample program; so I didn’t really write it; just worked out how each part went together and how the files were stored in the weird app-code-files folders.
I will be making test programs along the way hopefully. Thanks
Sorry, I haven’t played in the Android world so I’m useless there.
As a general piece of advice about an easier way of making an app—find an open-source app that does something in the same ballpark as what you want your app to do, understand how the relevant parts of it work, then modify them to make the app do your stuff.
I tried looking at a bit of github; but found I lacked fundamentals of OOP to make any sense of what I was looking at. I will see if my final construction is within my reach (after some more reading); if not—I will head back to the gits and fork someone else’s code.
If by “reasonably good” you mean at the 50th percentile of textbooks, sure, it’s fine. But textbooks that are actually good are rare. And they are valuable. It is worth your time to work through the book that I linked. It would be more valuable to do it before reading about java.
According to the table of contents I already understand up to around chapter 40 of 52 of that book. And I was aiming to learn Java because of its relevance to android studio.
which is coincidentally where I am reading through on the java trail right now
I am powering through https://docs.oracle.com/javase/tutorial/java/TOC.html for now, then I should head back to documentation. I think this is about as good as a reasonably-good textbook in the area. I will consider a textbook if I don’t feel confident by the end of it.
As with most of my projects; time and focus is limited by my interest. So finding a textbook and then retrieving it will be difficult and probably take longer than my interest in the project allows.
I would recommend you don’t. You’ll give up soon enough and be left with a bad taste in your mouth about programming for a long time. That is not a good outcome.
You actually don’t need a textbook—you need a good intro to programming. Java documentation (shudder) is quite the opposite of that.
I should have clarified more—I am not a beginner programmer; I am (debatably) capable of procedural programming. Been spending the past few days wondering how I managed to go as far as understanding procedural programming and never go any further into OOP. Starting to question both my brain and the sanity of anyone who ever tried to teach me anything relevant to programming; and how we all missed that I was unclear about what OOP is.
I will spend no more than 3 more hours on this reading before trying an alternative like the other textbook suggested by Douglas_Knight; or restart with an intro to programming guide.
I am confused about your goals, then. So you have some experience programming in an imperative (procedural) language. You want to figure out the OOP paradigm? That’s a good idea, but what in the world are you doing in Java, then?
For figuring out how OOP works I’d actually recommend a more-or-less pure OOP language. Ruby is a good choice. If you have a very twisted mind (it’s LW, after all), there is an… unconventional but interesting guide to Ruby written by a person who goes by the name of Why The Lucky Stiff X-)
If you don’t want to do Ruby, Python is also fine. Smalltalk is cute, but… is of mostly academic interest by now. In any case I’d avoid Java if you’re trying to understand the OOP paradigm and how it’s different from imperative.
I too am confused about my goal.
Original goal: make an android app that does something (specific and not particularly important right now).
My path: try to use android studio via developer.android training (as linked in the first comment). Get lost. Try to work out what was going on. Discover what OOP actually is. Read more and more. Roughly get to where I am now.
Important question: Is there are better/smarter/faster/easier way to be making an app? I figured android studio would be the most easy to use (where I was previously not sure how to get an app onto the phone) because its built to go with android devices.
Just make sure you don’t try going too meta too soon, otherwise you may lose touch with reality.
1) The “hello world” app you made—did you have anyone review your code? Maybe it contains obvious errors you didn’t notice. Maybe learning about them could be very beneficial in long term. Having an improvement shown in a program you already spent a lot of time thinking about could be better (more motivating, easier to remember) than reading about a similar technique in a book illustrated with a fictional example.
2) Every time you learn something new—do you also make another “hello world” app to test this new knowledge? Otherwise you may get a fake understanding. Also, if you learn about cool new techniques, but never use them, you may not understand the trade-offs. By making sample applications you test your new models against the reality.
I agree.
Unless you want to make a game, in which case Unity is probably a better option. It is not Android-specific, but it can compile to Android platform.
EDIT: Feel free to ask me specific things about Java or Android.
Thanks!
it took hours to figure out how to correctly install Android Studio and get it to compile. Including completely starting again; installing extra packages and accepting that some errors will exist.
eventually most of the hello world app was a sample program; so I didn’t really write it; just worked out how each part went together and how the files were stored in the weird app-code-files folders.
I will be making test programs along the way hopefully. Thanks
Not a game; shouldn’t have to worry about it.
Will ask if I need. Thanks!
Sorry, I haven’t played in the Android world so I’m useless there.
As a general piece of advice about an easier way of making an app—find an open-source app that does something in the same ballpark as what you want your app to do, understand how the relevant parts of it work, then modify them to make the app do your stuff.
I tried looking at a bit of github; but found I lacked fundamentals of OOP to make any sense of what I was looking at. I will see if my final construction is within my reach (after some more reading); if not—I will head back to the gits and fork someone else’s code.
Also thanks for the help!
If by “reasonably good” you mean at the 50th percentile of textbooks, sure, it’s fine. But textbooks that are actually good are rare. And they are valuable. It is worth your time to work through the book that I linked. It would be more valuable to do it before reading about java.
By reasonably good I mean—good enough for now.
According to the table of contents I already understand up to around chapter 40 of 52 of that book. And I was aiming to learn Java because of its relevance to android studio.
which is coincidentally where I am reading through on the java trail right now