Jeanne Boyarsky wrote:Karol,
Welcome to CodeRanch! First of all, this is not your last chance. Many people learn programming when way older than you.
Head first Java is a great first book. As is Murach's introductory Java book.
Pete Letkeman wrote:Hello @karol worek,
You are never too old to learn something new. In fact learning something new helps keep the mind young and prevent brain deterioration, especially when you get older.
Please note that learning programming and learning Java are two different things. In theory you can be a great programmer, but bad a Java programming and vice versa. Many things that you learn as a programmer are transferable from one programming language to another.
Java programming and/or programming in general is one of those things that is easy to start doing, e.g. printing Hello World to the screen, yet difficult to master, but please don't let this discourage you in any way.
Max Chan wrote:Hey, Karol!
I'm about your age and have a similar problem - 2 years into SW degree, high average grade and as far fit for a job as possible (well, at least till recently).
I've never being related to programming until I've started the degree; which happened at an age of 23.
To be honest, I've signed up for this forum simply to post a reply for your question - because I've been asking a similar question to yours (mine being: "What are the actual themes I should study to get a job??") and all I got was elusive answers, like the replies above (no offense, but people, if you bother to reply - than give at least a little decent piece of advice!!).
I know how frustrating it may be to see fellow programmers giving you general replies like: "Research forums" or "Look up for Tutorials", etc, because I've been receiving these for more than a year.
However, I've been able to scratch some info here and there into a somewhat decent plan of action that has started to bring some results (I have started to understand and pass interview exams recently):
----> First of all, this whole page is a must: https://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html. You should click on every link that is out there and make sure you understand every topic, except maybe for the following sections: "Cherish the Client" & "Fervor Over Server". If you get stuck on one of the topics, simply google "topic name explained" or "topic name tutorial youtube". For example, say you do not understand what generics mean - than you would like to search for "Generics explained" or go to youtube and look for "Generics tutorial".
The reason for such importance is that themes on this page are part of any Object Oriented Language and often interviewers will ask you about their meaning, rather than their implementation in specific language.
----> Second of all, constantly look for guys like them: https://www.youtube.com/user/koushks/featured, http://zetcode.com/, http://tutorials.jenkov.com/ and learn from them. Books are no longer relevant, because it takes too long to write them and often the material in them is "too basic" or concerns outdated technology (from the perspective of interviewers). Which is why, guys who post information about new technologies and how to adapt to them are gold and should replace what books did 5-10 years ago.
Your next question is probably - how to look for them exactly? In my case, I just google from time to time "Things Java developer should know today" and visit about 10 links and see what people are talking about. Later I take these themes and look for people who give tutorials about them on youtube.
----> Practice your ability to adapt your programs to custom built libraries, which are often referred to as Frameworks, or APIs, or a couple of more of fancy names. The bottom line is that you can not and should not build everything from a "scratch". Instead, you should be great at one thing (say, algortihms) and learn to gain access to the code of people who are good at something else and integrate between the codes. For example, instead of writing SQL queries for your application's server and taking care of bunch of "technical" aspects - you should use frameworks like Spring Persistence (or at the very least see what JDBC has in store for you).
Now, let's sum up what you should know according to these three steps:
1) Meaning of themes mentioned on https://docs.oracle.com/javase/tutorial/tutorialLearningPaths.html;
2) Ability to adapt and use Frameworks, API's - custom built libraries by others, in short;
3) Spring Boot & Spring Persistance (both part of Spring Framework) - they will allow you to easily take care of server side of your applications. Note! This is simply a good start as there are other options for managing server;
5) Maven or any other dependency language. They are needed to tell application what are it's settings and mainly what "outside" libraries (the ones that are not provided by JDK) it uses and where to get them. Any Spring Boot tutorial explains this point as well;
5) Build a simple business management application that combines steps 1) - 5).
Now, the most important thing is that when you have a couple of applications in your resume - you have to find a programming job. The reason is that there is a limit to what a single person is able to know and do, no matter what people try to convince you. Reality is that programming is team-based, because there is too much things to know.
One last piece of advice - do not program games with Java. This language is simply not meant for this and I am telling you this on a bitter personal experience. Try creating a store / restaurant / stock trading management application instead.
Good luck, dude!
Campbell Ritchie wrote:Welcome to the Ranch
Are you sure books are obsolete? How do you assess a video tutorial so you don't waste 45 minutes or 45 dollars on it and then decide it's no good? Rather than saying Java®'s client side abilities are poor, maybe say it wasn't designed for client side code (at least not now applets have gone the way of all flesh)? Maybe go on about learning several languages in general, or different programming paradigms? Did you mention database connectivity in Java®?
I am going away soon, so shan't have much opportunity to answer, but have a token of thanks for raising such a lot of interesting points; we hope we shall see more of you here.
"However, I've been able to scratch some info here and there into a somewhat decent plan of action that has started to bring some results (I have started to understand and pass interview exams recently)"