How can I convert my knowledge in Java programming into skills?

Through PracticeApplication, Advancing and Contribution.

Just most of the programmers do in other programming languages they use in
their projects, they do not limit themselves by merely understanding the basics.

In school or in a beginner’s tutorial, whenever you learn new a programming language, you see the same things being taught across these write ups (eg. syntax, control flow, loops, arrays, etc.). Why? Because these are the fundamentals.

Practicing

Converting these as your skill will require you a thorough practicing. Perhaps after reading about arrays, you can start studying Object Oriented Programming. You will find a lot of resources regarding that. Along this stage, you will apparently encounter more errors during runtime or compile time that you tend to solve each time it happens by searching its error code or message in StackOverflow or Google Search.

Application of Knowledge

After you feel comfortable practicing the basics and fundamentals, you will now find yourself not only looking and reading outputs on your IDE’s console but instead, you will be more tempted on applying it on a project based outputs.

You start creating a small project with GUI or form controls using frameworks such as AWTSwing or SWT. Whilst there are several good other options, for me, it’s better if you try it more in-depth rather than jumping on advanced frameworks you might not even have the chance to configure or touch most of the core functionalities that Java SDK offers.

Advancing

Starting with small projects is a good jumpstart on improving your programming skills, but then again, the industry is in need of a more skilled and knowledgeable programmer who knows the hows and whys in a scalable project.

This is where you consider yourself to be more expert on the technical side of what you know. You may need to start reading topics regarding software tests, threading, software architectural patterns, asynchronous functions or maybe dig deeper on how JVM actually run.

From this point, you can now confidently justify what’s happening under the hood whenever you run and compile your code. It’s also makes reading someone else’s easier for you (well, depending really on how it is written or maintained).

Contribute

Last thing you need to consider doing is to contribute. Either start with GitHub’s open source projects, read someone else project’s documentation and code base, find a bug and submit a patch or start becoming a tech evangelistwhere you can do tutorials, write blogs or even teach in workshops especially for the young and aspiring programmers.

Is programming a good career choice these days?

I would put programming up there with professions such as * engineer, lawyer and doctor, especially after including student debt.  If you are average, you will have a spectacularly average career and may have to downsize greatly during poor job markets.  If you are below average, you may float by in good years, and fall spectacularly when you can’t find work during bad years.  If you are well above average, you will thrive regardless of the job market.

How good you are as a software engineer will depend heavily on (at least) these three things:

1. Do you enjoy it?  If you don’t enjoy it, you will very quickly fall behind, quite likely before you even finish school.
2. Are you willing to work at it?  If you aren’t willing to put in the time and effort, you will also fail spectacularly.
3. How smart are you?  A strong work ethic can put someone of below average intelligence above someone of mediocre work ethic and average ability.

It may even put you on par with someone of high intelligence and a relatively weak work ethic.  However, at the end of the day, you will still be behind those of average and above average intelligence.  At the end of the day, 50% of people will be below the median.

Ultimately, 1 and 2 matter far more than 3.  Choose a career path which has good job opportunities and which you enjoy and are willing to work at and all else will follow.  Software engineer is one such profession and there will always be a demand for talented software engineers.  What nobody can promise is that the software engineer market won’t look like the law market today so from a purely financial perspective, I don’t see much advantage or disadvantage in choosing to become a software engineer over another type of engineer or a doctor or a lawyer.