How to become a self-taught Java developer everyone wants to hire?

Q. Are you a beginner wanting to learn Java or an intermediate feeling stagnated and wanting to make a good headway?
A. If the answer is yes, read on. You can’t become a programmer everyone wants to hire with a 5 to 10 day or even a 3 month paid classroom or video course. It will only set you back on your wallet. Becoming a self-taught Java developer not only takes time, but also requires some creative thinking, courage to do things differently, and motivation to keep at it. Formal education like computer science degree is very valuable and will be well recognized, but there are a group of people like me who want to make a career transition from other degrees like mechanical engineering, science degree, etc. Software programming is a mindset about solving problems and adding values. Only experience can accomplish this.

I an experienced programmer who can add value

I am an experienced programmer who can add value

Pseudo-code to learn & get a job faster

}

After say 100+ iterations, you will feel more confident, and start to hate the code that you wrote in the earlier iterations. This is the clear indicator that you have become more experienced, and have the right mindset to keep at it.

Nothing beats hands-on experience.

The key principle is that: if you spend 1 hour reading or learning from a book, blog, YouTube video, etc, you need to spend 4 to 5 hours trying it out yourself by coding. Experiment with things. What if I remove the static modifier? What if I remove the synchronized keyword?, How can I debug this? How can I introduce a thread-safety issue? How can I improve on the code by applying the best practices?, How can I force a memory leak here? etc.

How to become a self-taught programmer?

Self taught usually means “interested in the art and science of creating quality code to solve business problems“, and generally speaking you will be proactively learning and mastering the

Fundamentals (e.g. data types, flow control, data structures, multi-threading, file I/O, etc)
Key Paradigms (e.g. Object Oriented Programming, Functional Programming, Aspect Oriented Programming, etc)
Tools (IDE, Dos/Unix commands, build tools, code repositories like SVN/Github, etc)
Frameworks (e.g. Spring, Hibernate, etc) and libraries (Apache libraries, Google Gauva libraries, etc).

— Aim to have 500 to 700 hours of hands-on coding capturing all the core concepts.

— and then 1500+ hours to extend this hands-on experience into enterprise concepts, technical key areas & sought-after frameworks.

As a programmer

Invest in good books that will teach you the Core Java and Enterprise Java fundamentals, and increase your researching and hands-on development skills via myriad of free/paid blog posts, online tutorials, and articles. When investing on resources to learn, make sure you review the sample chapters to see if you like the style.

Join a good Java forum like javaranch.com to seek help when you are stuck from the fellow Java professionals. It is even better if you have mentors who are your friends or former colleagues to guide you. Follow good blogs that add value to you. Build a good rapport with the authors via the social media. Good mentors can make a big difference in motivating and guiding you.

Q. Are there any limitations to becoming a self-taught programmer?
A. Yes, there are 2 key limitations

1. Lack of interest. Learning to program on your own is hard and then to be able to be knowledgeable enough to be good in technical interviews is even harder. Hope this blog will alleviate this problem to some extent. If you don’t have the interest, you will not be disciplined to make the effort. You need to motivate yourself to get into a learning cycle described in the above pseudo code

2. Getting too overwhelmed by the number of technologies and frameworks. Not knowing where to start and what path to take. If you look at Java, there are so many frameworks. So, you need to have good mentors to guide you through this jungle.

  • Java forums where fellow developers can give you advise and guidance, but you need to show interest and take initiative. You can’t expect them to do the home work for you, but can post some code, and ask them why it was not compiling, etc. You can also seek career guidance.

Q. 5 tips to become a self-taught programmer?
A.

— Learning by investing in good books/sites. E.g. “Codecademy: Learn to code”. Mix your learning with reading, writing code, and watching YouTube videos.

— Learn online via good blogs, tutorial sites, and open-source contribution (i.e. by looking at others’ code in Git hub). When there are myriad of free online materials to learn from, there are no excuses other than your lack of motivation. If you don’t have a computer science degree, you may need GitHub work (i.e. self-taught projects) to be examined and validated by the potential employers.

— Learn on the job by proactively looking at others’ code. Learn to use new tools, frameworks, and libraries.

— Learn by asking the right questions relating to 16 key areas and fundamentals.

— Learn to share your experience by blogging and helping others via forums and discussion groups. Join linkedin.com and quora.com discussion groups relevant to your programming language. Don’t under estimate the power of learning through helping others.

In all the 5 steps listed above, you must be writing hands-on code. You can’t become a programmer without writing code. The more you code, the more motivated you become. The more mistakes you make, the more questions you need to ask to gain experience. Once you start asking the right questions, you will shape up as a programmer by putting things together like a jigsaw puzzle, and often researching online and drawing on your own experience for solutions.

Q. As a self-taught programmer, how do you know that you are becoming more experienced?
A.

— You will start to hate the code that you wrote 6 months ago, and find ways to improve them.

— Project after project and day after day you will feel more and more like a “professional” and start to ask the right questions and have opinions about things without blindly accepting what others say or write. You will enjoy the feeling of accomplishing real life tasks. A “professional” means you are capable of performing work that people would pay you to do. This means building an application that can satisfy business requirements in a timely fashion.

— You will start to train yourself on the 13+ technical key areas like best practices, memory considerations, performance considerations, transaction management, security, etc.

— You will get motivated to work on your own pet or hobby coding projects like an online app, mobile app, development tool/framework, games, etc. Share these projects with other programmers via Git hub. Flaunt your skills and passion by encouraging your prospective employers to review your work on Git hub.

— You will stat to expand your horizons as a developer like becoming a freelancer, starting your own small business, making yourself more visible via your online presence, etc.

Q. Can you get a job as a self-taught programmer?
A. If you asked me this question in 2000, the answer is yes. That is when I transitioned my career from a mechanical engineer to a Java developer with just 12 months of self-study. It was a .com boom time and there were more jobs than qualified Java developers. But, now a days things are different as 100+ job applications are filtered through and you need to do more to standout from your competition.

#1: Degree. Computer Science is preferable, but at least some recognized degree. Degree means you have proven that you can be trained and learn things.

#2: Hands-on experiencee in your chosen mainstream programming language (e.g. Java, C#, PHP, etc) gained via self-taught projects, volunteer work and opensource contributions. You can provide links to your Git hub project repository.

#3: Good job hunting skills to try different avenues (e.g. online advertisements, networking, cold calling, etc) and effectively promoting yourself via eye-catching resume and good interviewing skills. Both your technical and soft skills will be under scrutiny. Use the 16 key areas to sell yourself as someone who can solve business problems with the “can do” attitude.

#4: Trying smaller software companies, community and charity organizations before trying larger organizations as experience matters a lot. The culture in smaller companies are more informal, and degrees and experience are highly appreciated but not necessarily mandatory. At smaller companies, the fact you are motivated enough to learn may get you a foot in the door. Be prepared to be flexible.

Gaining commercial experience

As you start to gain experience & confidence via self-taught hands-on tutorials,

— Expand your tutorials into more industry level self-taught hands-on projects like an online chess game, library books management system, etc and check in your code into Git code repository, and share the link to your work on your resume and social profiles. This will not only help you gain experience, but also makes you standout from your competition when you start looking for paid jobs.

— Volunteer to build a simple website for a charity or a community organization for a nominal rate or with an agreement to provide the link to the site you built on your professional profiles and resume. For example, building an online tennis court reservation system for the tennis club you are part of. Alternatively, building an online shopping cart system for the martial arts club you are a member of to sell subscriptions, uniforms, protective gears, etc.

You need to put the creative cap on and take the path less traveled. Don’t get too obsessed with certification. If something is not working for you, try different things. You can’t expect different results doing the same thing. Why not take the road less traveled? So, start thinking more in terms of

1) Gaining much needed hands-on experience

2) Adding value to something you are member of or passionate about. The beauty of programming is that it can not only automate many manual tasks, but also can promote things you are passionate about. If you are a movie buff, develop something that will help both your quest for cine news and programming.

3) Promote your value adds in solving real problems via programming through your blog, social media, professional media, resume, etc. Don’t forget that the future of recruitment process will scrutinize your online value adds to get hired. Stack overflow reputations, Java ranch thumbs ups, number of Java lobby article views & shares, nature & quality of the project(s) in GitHub, etc will add up.

So, use your ability to write quality & robust software programs to add value and solve real problems, and become a programmer everyone wants to hire by sharing your skills, experience, and accomplishments with the help of proper online presence.

“Logic will get you from A to B. Imagination will take you everywhere.” — Albert Einstein

Print Friendly
The following two tabs change content below.
Arulkumaran Kumaraswamipillai
Mechanical Engineering to Java freelancer since 2003. Published Java/JEE books via Amazon.com in 2005, and sold 35K+ copies. Books are outdated and replaced with this online Java training. join my LinkedIn group.
Arulkumaran Kumaraswamipillai

Mechanical Engineering to Java freelancer since 2003. Published Java/JEE books via Amazon.com in 2005, and sold 35K+ copies. Books are outdated and replaced with this online Java training. join my LinkedIn group.

Posted in Beginner or Intermediate?

800+ Interview Q&As ♥Free|♦FAQ (Mouse Hover for Full Text)

open all | close all

200+ Java FAQs – Memory Joggers

open all | close all

16 Java Key Areas to be a top-notch

open all | close all

80+ Java Tutorials – Step by step

open all | close all

100+ Java Coding Exercises

open all | close all

How good are your "Career Skills"?

open all | close all