Marines believe that if you have physically able men and women, you can make extraordinary soldiers out of virtually all of them with the proper training. Programming is a skill just like playing the guitar, swimming, or riding a bike. People are not born cyclists.
There are a lot of intelligent and capable people who work twice as much as programmers and earn four times less. Perhaps they just aren't in the right place?
Before studying to become a programmer, it would be good to identify what advantages programming has as a career.
1. Easy and interesting work.
Programming is easy and interesting work. It gives you room for creativity. Many beginner developers cannot immediately fully believe that they are now doing something they enjoy and also getting paid to do it. Later they get used to it.
2. It pays well.
It's delightful to see intelligent programmers buying new cars and houses after five years in this line of work.
3. Flexible hours.
Working in the office from 9 AM to 5 PM sucks. Anyone who has ever been stuck in traffic or penalized for being five minutes late will tell you that. How would you like to be able to come in at 11 AM and leave at 5 PM? Think that's just a dream? It's reality for most programmers. Just do your job, and nobody will mind. At many companies, you don't have to come to the office at all. Everything is negotiable.
4. Professional growth.
Effort is required to get a desirable position and salary at almost any firm. But a programmer only needs to be a programmer. You don't need to retrain to become a manager or fight for a senior position. All you have to do is grow as a professional. Programmers with 5-10 years' work experience are paid really well.
5. High international mobility.
The three highest paying jobs in the world are lawyer, doctor, and programmer. It's really hard for lawyers to find a job abroad: they'd have to study other laws, legal precedents, etc. of the country they're moving to. A doctor would have to learn the language, study medical protocols, and then also pass an exam to get a local license. A programmer doesn't need to study anything. Same language, same standards, and often even the same clients.
The combination of three factors makes this programming language highly attractive.
1. Java is one of the easiest programming languages
It can be learned in 3-6 months, or in 12, depending on your general knowledge and the number of hours per day you are prepared to dedicate to studying.
2. Skills in high demand.
You can find a job even without prior experience. Firms are happy to hire promising rookies and train them.
3. Highest salaries in the industry.
They are among the highest, which is especially important for beginners.
You can't become a programmer by reading a book. You need at least 500 hours of practice. It's like boxing. You don't become a pro by watching all the fights. You need to spend long hours practicing in the ring (this is why CodeGym has so many exercises in it).
Any offer to teach you Java programming in ten hours is like an offer to teach you boxing in ten hours and then send you into the ring. Don't do that!
Sometimes, a novice posts on a forum and asks for advice on how to become a programmer, and people say, 'Come up with some exercises yourself and work on them.' This isn't how it works. A person cannot invent a task that lies outside the scope of his or her knowledge. Either you know something or you don't.
Only someone who is really proficient in a subject can invent a coherent set of tasks that teach you something new and don't require a week to complete. This is exactly what we have done.
Innovative approach to learning
The CodeGym course doesn't work the way a college course does. You'll quickly realize this. However, our way is more effective.
At college, you probably had to learn in this format: long lectures, followed by labs to reinforce the lectures. This approach is aimed at giving you extensive knowledge, but it leaves your real, practical skills with much to be desired. And if we are honest with ourselves, this approach gives you virtually no valuable skills.
Here the approach is different. The theoretical part means knowledge, and knowing something means being able to answer our questions. That's why we start with questions – exercises that are hard to complete with your current knowledge – and only then do we give you answers (the theory that will make the tasks much easier).
New material is presented in three stages:
1. Introduction (minimum theory or a few exercises)
2. Foundational knowledge (gives you complete understanding of the subject)
3. Details and nuances (we fill in the gaps).
Thus, you'll deal with every subject at least three times. Besides, every topic is interrelated, and you can't fully explain one without at least superficially discussing others.
Some students get frustrated with tasks that involve material they haven't worked through yet. Such tasks give you a chance to think of ways to complete them with the knowledge you already possess. It may take an hour or two of effort, but then you will be rewarded with a novel or satisfying solution.
Besides, in real life, you get an assignment at work and only then do you start to look for the required information. This is real life for you. The earlier you get used to it, the better.