Click here to Skip to main content
15,885,309 members

Welcome to the Lounge

   

For discussing anything related to a software developer's life but is not for programming questions. Got a programming question?

The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.

 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Mike Hankey13-Dec-20 7:04
mveMike Hankey13-Dec-20 7:04 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
User 1493685313-Dec-20 7:22
User 1493685313-Dec-20 7:22 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Mike Hankey13-Dec-20 7:27
mveMike Hankey13-Dec-20 7:27 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
User 1493685313-Dec-20 7:39
User 1493685313-Dec-20 7:39 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
afigegoznaet13-Dec-20 20:27
professionalafigegoznaet13-Dec-20 20:27 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Davyd McColl14-Dec-20 1:42
Davyd McColl14-Dec-20 1:42 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
User 1493685322-Dec-20 1:06
User 1493685322-Dec-20 1:06 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Davyd McColl14-Dec-20 1:41
Davyd McColl14-Dec-20 1:41 
Hey! Thanks for reaching out! Learning to code is hard for most people, and, importantly: no programming language is perfect

When I read the title of your post, I was about to respond with "write code in whatever makes you most productive!", but then I read until the end, and now I have to recommend that you try to get everything you can out of Java, because finding your first job is freaking difficult, but trying to find your first job without a qualification... well, let's say you'd better have friends in the right places.

A lot of the issues you're talking about in Java aren't intrinsic to Java. Yes, C++ doesn't have interfaces, but interfaces fulfill some of the role of abstract classes, which C++ has, but clearer: you can't inherit from them, only implement them.

precursor / disclaimer: I've worked in > 20 languages. C++ was my primary for about 6 years, I've only fiddled in Java (written small things), but my daily driver for about the last decade has been C# (and I do a reasonable amount of JS/TS), so I know that a lot of concepts from C# hold in Java land, and I have a reasonable history with C++...

Interfaces (or, in C++, you might use an abstract class for this) simply provide a "contract" for talking to something else. Let's say you have an interface for IDog: this tells you what "shape" a dog has (it might mention that there are an integer number of legs, an integer number of tails -- you'd expect values 4 and 1 from those, but some unfortunate doggos have had accidents )': ) and a method like Speak() which returns "woof!". You could see how this "shape" doesn't just apply to dogs: cats also have an integer number of tails and legs and when they "speak", they say "meow!", so you could think of a simple contract for an animal where you have, in C#:
public interface IAnimal
{
  int Legs { get; }
  int Tails { get; }
  string Speak();
}

Now, when we want to implement our own animal, it may do more than that (perhaps it can do tricks!) and it will speak with its own voice. The point is that, if we have a zoo of different animals, in a collection, eg List<IAnimal>(), we could count the total legs at the zoo, or imagine the cacophony if all animals were to "speak"!. This means that a function which was, for example, counting all legs at the zoo, doesn't have to care what animals are actually in the zoo! Even the Snake class could implement IAnimal, where Legs would return zero! Eg:
int CountLegs(IAnimal[] animals)
{
  var total = 0;
  for (var animal in animals)
  {
    total += animal.Legs;
  }
  return total;
}

(I purposely skipped LINQ because it's not important to this conversation!)

So, where to use an interface? Any time you want to abstract away the inner workings of a class from something which may work with it. It's nice to use interfaces as parameter types on methods because it means a person could make a completely new thing that implements IAnimal without having to inherit (and probably override) any behavior from a base class!

Anyway, circling back: I know that this is a difficult time, and there's bits you don't like about Java. But my experience is that the particular programming language isn't as important as your skills in being able to solve real-world problems and get paid for it. We're not code-monkeys: we're problem solvers, and sometimes we actually use code to do that!

You've obviously sunken time (and probably money) into getting accredited as a Java programmer. Stick it out! Get a job! Get experience! Experience can lead you to a new job! Whilst you're working on your first job, you will learn lots of stuff that they won't teach you in college, stuff which isn't specific to Java, but more like:
- how to work with team-mates
- how to do and receive code reviews
- how to get your code to production
- debugging
- systems thinking
- version control
- and much, much more!

Whilst you're doing this, pursue your passions in other languages, and, if you think you're getting good enough, start applying for positions with examples of work you're doing in your own time in those languages!

I know this works, because it's how I got to where I am:
  • Studied some C as part of a Chem. Eng degree (didn't finish that - ran out of money)
  • Did a diploma where the primary language was COBOL!
  • Got my first job: VB6! & SQL!
  • 2nd job: VB, ASP.NET classic, JavaScript, PHP, SQL
  • 3rd job: worked for myself: TCL, ASP.NET, PHP, SQL, JavaScript
  • 4th job: TCL, Perl, Delphi/Kylix
  • 5th job: C++
  • 6th job: C++
  • 7th job: C#, F#, JavaScript, TypeScript, Ruby, SQL, HTML, CSS
  • 8th job: C#, TypeScript, JavaScript (browser/node)
Along the way I've also become reasonably proficient in Python (love .py!), shell scripts, a little pwsh, learned a tiny bit of assembler, started learning some Rust, some Kotlin, a little Lua... I'm sure I'll learn more and probably forget some of it! The point is that the languages and environments are tools for a task and the important bit of it is to solve the tasks, and hopefully end up somewhere where you're enjoying using the tools and solving the tasks.
------------------------------------------------
If you say that getting the money
is the most important thing
You will spend your life
completely wasting your time
You will be doing things
you don't like doing
In order to go on living
That is, to go on doing things
you don't like doing

Which is stupid.

GeneralRe: If I find another programming language easier should I stay with it instead? Pin
User 1493685322-Dec-20 0:52
User 1493685322-Dec-20 0:52 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Davyd McColl22-Dec-20 1:25
Davyd McColl22-Dec-20 1:25 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
Rusty Bullet14-Dec-20 3:33
Rusty Bullet14-Dec-20 3:33 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
englebart15-Dec-20 3:26
professionalenglebart15-Dec-20 3:26 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
maze316-Dec-20 4:12
professionalmaze316-Dec-20 4:12 
GeneralRe: If I find another programming language easier should I stay with it instead? Pin
AnotherKen18-Dec-20 20:21
professionalAnotherKen18-Dec-20 20:21 
GeneralI may be moving on from .NET altogether Pin
honey the codewitch13-Dec-20 0:19
mvahoney the codewitch13-Dec-20 0:19 
GeneralRe: I may be moving on from .NET altogether Pin
Greg Utas13-Dec-20 2:03
professionalGreg Utas13-Dec-20 2:03 
GeneralRe: I may be moving on from .NET altogether Pin
honey the codewitch13-Dec-20 2:06
mvahoney the codewitch13-Dec-20 2:06 
GeneralRe: I may be moving on from .NET altogether Pin
Greg Utas13-Dec-20 2:27
professionalGreg Utas13-Dec-20 2:27 
GeneralRe: I may be moving on from .NET altogether Pin
honey the codewitch13-Dec-20 2:38
mvahoney the codewitch13-Dec-20 2:38 
GeneralRe: I may be moving on from .NET altogether Pin
Greg Utas13-Dec-20 2:59
professionalGreg Utas13-Dec-20 2:59 
GeneralRe: I may be moving on from .NET altogether Pin
honey the codewitch13-Dec-20 3:04
mvahoney the codewitch13-Dec-20 3:04 
GeneralRe: I may be moving on from .NET altogether Pin
Mike Hankey13-Dec-20 2:18
mveMike Hankey13-Dec-20 2:18 
GeneralRe: I may be moving on from .NET altogether Pin
honey the codewitch13-Dec-20 2:23
mvahoney the codewitch13-Dec-20 2:23 
GeneralRe: I may be moving on from .NET altogether Pin
Mike Hankey13-Dec-20 2:45
mveMike Hankey13-Dec-20 2:45 
GeneralRe: I may be moving on from .NET altogether Pin
Rick York13-Dec-20 7:40
mveRick York13-Dec-20 7:40 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.