How self-taught programmers actually get the job done

Original author: Brian Knapp
  • Transfer

Question from Quora :


How do self-taught programmers actually get work?

I am 17 years old and I have been programming since 14 years. The main focus on Java, I got 5 points on the subject of AP Computer Science. I'm pretty good at Java (syntax, core classes, GUI / JFrame, etc.) and am fairly familiar with HTML5 and CSS3. It seems that I lack a lot of knowledge to really qualify for work in the industry (for example, how DBMSs work and which one should be used), and I wonder how other programmers learn such things. I plan to go to college with a degree in Software Engineering, but the idea that college is a prerequisite for getting a job starts to upset me. Are there any courses that I missed, although I had to study them, or something else that I did not do?


My answer:


I think you're looking at things wrong. You think you should take courses so that someone else will give answers and teach you. From a fundamental point of view, self-taught programmers act differently.

A self-taught programmer has a lot in common with someone who independently learned to play the guitar. I don’t know if you ever played the guitar, so I’ll explain how the training takes place.

Firstly, it all starts with the fact that someone sees the other person playing the guitar. Most of those who are already playing at some point wanted to be like someone else. After that, he makes a decision: “I can also learn!”, Goes to a local musical instrument store and buys a second-hand guitar (because it is cheaper, but still cool).

Then one of two things happens. Or a person finds a guitar tutorial in some form, OR he goes to YouTube and starts trying to play his favorite songs. As a rule, the second option is more effective.

Now that the young guitarist is motivated to play a specific song, he will watch the video, print tabs, chords and so on - he will sit and try to recreate the song himself, guided by videos and accessible tabs.

After many hours of practice, selecting chords, solo, rhythm and other things, he will be able to play his version of the song. It will not be exactly the same, but close enough to the original for rock and roll.

Then he will choose another song that he likes and one more. Gradually, the novice guitarist will master the patterns, techniques, and everything else, without even realizing what it is. He simply finds a way to do the necessary thing without studying the name and theory.

In the end, playing the guitar will become “natural,” and learning a new song will become a common and painless affair. The "language" of the guitar for him will become something natural, like human speech.

All this happens over thousands of hours of practice. Even if you practice a few hours a day, the process takes years.

So what does this have to do with self-taught programmers?

Well, what really makes a programmer self-taught is that he creates different things. And a lot of all sorts of things. To become an excellent programmer with demanded skills, you must create things and write code.

Attending classes and studying theory is good, but many professors are unable to write even the simplest program. They cannot make you a useful application that someone wants to use.

It’s not that they don’t know their subject, just the main thing in teaching is to research the subject and understand the theory, rather than write code and benefit the client.

Feel the difference?

The best programmers I have ever worked with have become so because they wrote real code. Almost constantly.

For example, today every web developer (and his brother) use WordPress. Long before WordPress, I wrote for myself 3 or 5 different content management systems in PHP and MySQL. I made games. He wrote mobile applications. Frameworks SAAS applications.

No one paid me for this. All this I did for pleasure or for training, or out of curiosity.

For many years I did not attend any courses and I do not think that they would significantly advance my career. But if I sat down and decided to create my own programming language or operating system from scratch, I would surely learn a lot of useful things along the way.

Yes, I could attend courses in these subjects. But much more can be learned if you create things yourself, make mistakes and truly “feel” all this, and not learn from a book or lecture.

So I can give advice with which you will get a huge advantage over those who almost do not do this ...

Solve a problem that you can solve. Create programs that do such cool things that you yourself or others would like to see in the program. Write the code every single day. In the evenings, on weekends, every day. Even if only 15 minutes, fine.

In the end, you will get something working and pretty decent.

Then start again. Do something else. Keep writing and writing, and writing, and writing. Invest thousands of hours in your skill, challenging yourself to create new projects.

As you write code, save your work in a small portfolio on your site. Each time you finish a project, report it on Hacker News or Reddit, or elsewhere. On the blog.

You are 17 ... By the age of 20, you can easily invest more than 2000 hours in developing your skill, there will be 10-20 projects in your portfolio and you will learn many lessons that students in the courses will never learn.

More importantly, you will be able to clearly demonstrate your ability to write code, solve problems, and release something working into this world. This is a great value. Exactly what companies are looking for.

As soon as you find work, continue to program in your free time and promote your projects. You will grow faster than your peers because they come home and watch TV, do not learn, do not grow and do not create ANYTHING. They get paid and go home.

The more you create, the more knowledge you have. The more knowledge, the higher your value. The higher the value, the easier it is to find a job, the higher the salary, and so on.

So get out of the shell and create something. Write the code!

Also popular now: