Is this the correct place to post? i don’t know. Moderators can do whatever is correct for this thread.
Let me introduce myself first, I have done my graduation in Comps Engg in 2014 and since then working as a WordPress Developer/Designer.
Enough about me now, let’s talk about my problem.
So I will start from how much I love programming but never gone in-depth learning. I have a passion to create software/games and to build something, but I never succeeded. Why? Because I was never able to go in-depth learning, long and hard time practicing. I always get distracted because of personal/family problems and my will power goes down the level. These 3 years after College, I haven’t learned anything about programming and building. I stopped growing!
That’s about my past and present problem. See, I like Java. Don’t know, but maybe because I started with Java or maybe I have learned more about Java (basics only) than any other language.
So, after 3 years, I have again gained some confidence and re-ignited my passion and want to re-start my career in this, I have started learning Java, starting this week.
But, After my initial touch with the latest happening in the tech world after 3 years shows me that, other things have become more popular and important, like Machine Learning, AI, Python, React and other web based Scripts and tools. So I got little confused on my choice to learn Java.
So, in short, I am stuck in two problems.
I got distracted in my learning and never finished anything. I learned all this during my college days (I have knowledge in Java/Android, HTML/CSS/WordPress Like CMS’s, I have learned Hacking, I have learned SEO, SMO, and other Digital Marketing things) but never became good in anything. You can say I am Jack of some and Master of none. And here, Jack is also just a basic and superficial one. So what to do? Please Help.
Not able to decide between Java or something else. Please help.
So the first problem is the major one.
And I am Really Passionate towards programming and building stuff!!
Well you are on FreeCodeCamp so why not go through the FCC course?
The language may be different (to Java) but the principles are the same.
Focus most on what you enjoy. Front end or back end.
When I see graphs of ‘most popular languages’, ‘most used languages’ Java is always somewhere in the top. So, I suppose, as a language it’s popular enough.
However, I have a feeling that you don’t really know what you want to do. Games? Java? ML, AI and Python? IMO, all are good options, you just need to decide what you really want.
learn Javascript or Python or something that interestsyou, otherwise you’ll just be forcing yourself to learn Java, because from the sound of it you don’t seem to be interested on it.
Study on your free time, wake up early, like 5am, or late, when the sounds are quiet.
What country are you? some countries offer free school, maybe try going to a distant college?
I have the same distraction problem. Probably ADHD to some extent. This often comes paired with the ability to hyper focus on something interesting. This is where intense interest is there at the expense of all previous interests and then sharply falls off in favour of something new. Eventually rotating back to the same interests and hence Jack of all trades…I know how you feel. Overwhelmed by choice, unable to choose, frustration with lack of progress… Just speculation, of course but it’s something I can relate to.
I like Java, it interest me more than Web Development or Python. I am from India, probably won’t join any school because i believe in self learning and the internet has more than enough resource for learning just like this website. My interest falls in Mobile Apps/games development and i am trying to target this for future Jobs, I plan to learn Java first then Android plus Cross platform development in future.
Thank you, sir. Yes, Java is always popular. I am interested in mobile Apps/Game development for Android or Cross platform. In my college day, I decided to learn Software Development between Web and Soft. Then for App dev, i selected Java between C# .Net and & Java because of its versatility and robustness. There is not much difference though for beginners like me.
I’m sure part of the reason for Java’s consistent popularity is because it’s being used for so many different applications: Android (although Google is currently trying to phase it out in favor of Kotlin), JEE (tons of companies use it for their distributed apps), web servers (various Apache components are written in Java) and microservices (via Spring), and even machine learning now.
As for the OP, no need to give up Java if you don’t want to since it is being used for so many applications these days, and you could specialize in one of them. Although if you want to go the Android route, it’d be a good idea to start picking up Kotlin, and if you want to go the JEE route, that’s another thing to get into (since you probably just have knowledge of Java SE from the sound of it). And yes, although Python is probably the dominant language for ML/AI, Java has some frameworks for those now too.
Java combined with Spring can form the foundation for the back-end of a web application, so you can always combine it with HTML/CSS/JS for the front-end. No need to use Node.js & Express for the back-end if you don’t want to, it just makes things more consistent.
Of course, C# with .NET is very popular too, and I’m starting to see more and more jobs for that tech stack every day. And if you like Java (I do too, btw), you’ll probably like C# since they’re fairly similar to each other. So that could be something you might want to pick up as well.
Thank you sir for such constructed reply. So I can go with Java even today, despite the hype in other frameworks and language. This helps to clear my 2nd issue. Thank you, sir. Any advice on the 1st issue?
If you want to specialize in mobile apps/games, there are basically 3 routes to choose from: Android only, iOS only (which uses Swift now), or multi-platform (Android, iOS, Windows) using C# and Xamarin. You can’t realistically specialize in all three routes, so pick the route you’d prefer the most. Although as I said before, if you go with Android, you’ll have to learn Kotlin as well, which could very well end up replacing Java down the road.
No one here can tell you what to do though, you have to decide that for yourself. It’s fine to be a “jack of some things” but you should definitely master something—not a language per se (because languages can and will change over time), but at least the type of application you want to develop. What I mean is, if you want to make mobile games, then settle on that because it’s rare for developers of a certain type to cross over to another field. If you like Java, then you could stick with it for Android as long as that’s feasible, but also keep in mind that with Kotlin, Java now has a limited shelf-life as far as it goes with Android.
Thank you. So I decide to learn Java first as I am not sure I will be able to land jobs as Android Dev. So I will learn Java for now and master it. And will Learn Kotlin later in future for android. Is this correct path, sir?
I can’t tell if you understood what I wrote in my previous posts. There’s no correct path. Do the kind of software development that you want to do. Also, now that I’m re-reading your first post at the top, it appears to contradict itself—you said you “started learning Java, starting this week”, but in your numbered point #1 you mention already having knowledge in Java/Android? Which one is correct? Do you know Java or not? You don’t need to answer these questions in a response, I’m just posting them for the sake of being rhetorical.
If you really went to a university and got a technical degree (Computer Engineering, as you said), and have some work experience in the software industry, you really don’t need to bother spending additional time on your own to learn anything. I’ve never heard of any recent college graduates who needed to study additional topics to get a job. Once most people get that sort of degree, most companies hire them for entry-level jobs or internships. That’s the kind of job you should be looking for.
A lot of people, especially here on FCC, think they need to study more to get a job. While that may be true for individual people (I certainly can’t speak for everyone), if you have any kind of technical degree you’re already qualfied for entry-level developer jobs. If you know some Java, then look for entry-level Java developer jobs, don’t bother trying to study more. You should get a job to learn more, not learn more to get a job, because that’s not how most college graduates get their jobs. If you don’t know any Java period, I’d recommend not wasting your time on it, because learning a new language from the ground up is a huge time investment that will take you at least a few years to get moderately good at. Get an entry-level job using a language that you know, and use that job to learn more.
And if you truly have a passion for programming, or making games, then you need to be creating. Heck, nowadays you don’t even need to know how to code to make games since there are now tools that do all the heavy lifting for you:
Thank you, sir. I understand now. I was really confused, but with your answers I am more clear now. Thanks again for taking so much time for answering.
Sir @ghost, I am hopeless. I tried again and started learning and practicing, purchased a Java Course on Udemy, and even committed to #100daysofcode. But this only continued for 1 month, after that I again lost the drive and stopped studying. Nowadays I am just wasting my time reading Light Novels. Sorry to all those who gave me so much help in this post, but I disappointed you all.