How do you know if you are a good programmer? There is no single criterion. This test provides some benchmark for your abilities. What other tools do you have to judge your own abilities?
Programming polyglot
Just like knowing many languages facilitates some business transactions, knowing many programming languages facilitates your conversation with other programmers and opens new opportunities. I am not only talking about programming languages, but also about various specific frameworks like Boost, OpenCV, FFMPEG etc. If you are a Java programmer, programming on J2EE is very different from server side Javascript or Android Java. And if you program Android Java, connecting to native code via JNI increases significantly the range of things you can do.
Design patterns
There is a huge number of design patterns and numerical recipes of all sorts. Probably nobody knows and uses all of them, but the more you know the better is your programming literacy.
What did you learn lately?
We are living in very dynamic environment. Things change all the time. If you read tech blogs, there will be new things you will occasionally want to learn. Being always on top of the new developments, always learning new tricks is required to stay young and well-paid professional. This somewhat contradicts the typical job experience, and requires you to learn outside of the day job environment.
Specific experience
More often than not, our new job will be very much like our old job. How many years of experience do you have? How complex were the projects you coded? What kind of tools did you use?
Platform awareness
How well do you know the platform you are using? Are you using intrinsic codes where needed? Do you optimize speed and memory? Can you port your code to other devices and operating systems?
Problem solving capabilities
When you will eventually look for a new job, they will give you riddles and watch how you solve them. Creativity and problem solving skills are kind of independent of your actual programming experience but they will help you solve your on-job problems and find a new job.
Networking
While knowing the right people is not a programming skill, being able to work in a team and having good people to work with increase your value for any employer or investor.
It is quite easy to benchmark yourself as a programmer, and it is also easy to improve this benchmark. We all have a day job, but increasingly we need to spend 20% of our time on things not related to the daily tasks.
“” If you are a Java programmer, programming on J2EE is very different from **server side Javascript** or Android Java””
Were you trying to say **server side java**?
I cannot see why you’d compare two different things like Server side javascript (common js) and a library j2ee or android api for java
Servers side javascript = nodejs or equivalent. There are many flavors of java and javascript.
They can be viewed as very different from each other, yet they are very much alike when you compare them to assembler.
“If you are a Java programmer, programming on J2EE is very different from server side Javascript or Android Java. And if you program Android Java, connecting to native code via JNI increases significantly the range of things you can do.”
Could you be kind and rephrase the sentence?
Not all the programmers are coming for JAVA world. (PHP, PYTHON, C#, JavaScript, Ruby also exist) ; Moreover I am trying to track the hint and to figure out the main idea.
from a perspective like JAVA Developer will find differences in server-side J2EE comparing with Javascript server side (NodeJs) or Android Java. And to extend the possibility to create various features better use “Android Java, connecting to native code via JNI”.
1. Maybe you can send us some links why is better to use JNI, because the sentence is not rich in details.
2. With other words learning another framework or programming language is allow you to master the concept, to learn better design, not the programming language and improve problem solving skill. Allow you to adapt to any type of the programming language.
This just an example, telling that to know a programming language is not enough. There are many different paradigms you need to know to apply the programming language effectively. Simply accept this, and do not focus on specific examples.