Most computer programmers are self-taught

How important is autodidact in programming? [closed]


I'm 16. I started programming about a year ago when I was near high school. I am aiming for a career in programming and I do my best to learn as much as possible. When I started out I learned the basics of C ++ from a book and from then on I started learning things on my own. I am much more experienced today than I was a year ago. I knew I had to study on my own because high school (probably) didn't teach me anything valuable about programming, and I want to be prepared for that.

The question here is: how important is it to learn to code yourself?




Reply:


It's critical. I don't think I've ever known a good programmer who wasn't self-taught on some level. As a hiring manager in a large company I can say that a candidate who personal projects and the Desire to learn describes, has an impressive degree every time. (Although it's best to have both.)

Here's the thing about college: computer science courses teach theory, not technology. You will learn the difference between a hash table and a B-tree, as well as the basics of how an operating system works. They will be yours in general no Teach computer languages, operating systems or other technologies beyond a low level.

I remember the time when I was taking my first class on data structures and we were given a thin manual for this new language called "C ++" where they decided to start learning. We had two weeks to write the code. That was a good lesson in itself. This is how your career will be.

Your school is unlikely to teach you what it takes to get a good job. Schools are often many years behind what is trending in the industry. Then you get a job. Whichever company you visit, you will almost certainly not go to any particular effort to train you. The bad companies are too cheap, and frankly, the good companies only hire people smart enough to take them on.

I graduated from college in 1987. I worked as a C programmer with expertise in DOS, NetBIOS and terminate and stay resident programs. In the past few years I have had little or no training. Take a look at the job advertisements ... not much to ask for those skills! The only reason I can be employed today is because I've spent the intervening years studying constantly. To be successful as an engineer, you have to have the habit of learning. Hell, I would go above and beyond this: you must have the love to learn. You have to be the type to play around with WebGL, Android, or iOS because it's fun. If you are that type of person and keep the habit of learning you will go far in the industry.







Self-taught is very important. You cannot rely on formal education to teach you everything you need to know about your subject. However, formal training is also very important if you want to enter this professional field well prepared and well equipped.

I'm on my way to college and have taught myself how to develop software for the past four years. So I now work for a large, well-known company that serves enterprise applications. It doesn't take a lot of talent, but a lot of work and motivation. I think literature and practice are the best choices when it comes to learning. It is also important to choose a specific subject because, while you can use languages ​​and logic in all subject areas, you can only become truly "great" if you have adequate practice and understanding of a particular subject.






Independent learning is very important. When you have the discipline to research and gather the knowledge necessary to complete a task, you are way ahead of many others who rely on formal training to complete the same task. This applies to every industry, not just the software industry.

Don't get me wrong, formal training or education will help, but your own motivation to improve your skills will help you grow into a better software developer. There is always something to learn: new platforms or programming languages ​​to experiment with, development methods to be implemented, tools and algorithms, the list goes on. Not everything is introduced to you through formal training. It is therefore up to you to find out about other topics and ideas that may interest you during your career in programming.


When it comes to programming, self-taught is what you will be doing every day. There are a lot of things you need to teach yourself, not just computer languages ​​and tools that are constantly changing. You have to learn code that other people have written, and you have to fix that, too, with minimal guidance and supervision. In some organizations it is rare to have real training more than once a year (if at all!). Make sure you can do (and enjoy) this. Otherwise, consider another career while you are still young.


Self-teaching is an indispensable skill for a programmer. Not too many. If you are good at it, you will use this skill for the rest of your career.







Self-study is very important as you do not always have the option of formal training. If you're looking for a project, internship, or job, look for those that have solid senior developers who can really teach you something. Being in an environment that gets things right can be the express route to quality code.


I can tell you that there have been several places I've worked that they didn't even consider someone who didn't have projects of their own outside of work. It shows a love of programming than just showing up to a job and collecting a check. I'm going to put this to the test here and say this: All programmers who don't like to program suck at their work. Worse, they don't have anything to add to any team to join.

I would take an inexperienced junior developer who loves what he does, who plays with code in his spare time, through three medium-sized developers who just go through the following movements: this junior developer is going to be great one day and the others will be Never be better than her.

If you don't learn anything new, you just sit around forgetting what you know.


Talent is overrated.

It takes at least 10 years of practice to become great in a particular area. So it's important to start early.

The fact that at an early stage in your life you started doing something you seem to like puts you in the black. So listen up don't stop ... never stop , it unless you have concerns about the area in which you work !

I consider self-learning to be one of the best skills of any developer and the second is a college degree. A good college degree is important just because it adds so much quality to your knowledge that you probably couldn't collect it yourself. There are certainly exceptions to this rule, but that's all they are; Exceptions.

The more experience you get early, the better you'll enjoy college and the better you'll absorb new concepts that are presented to you. At first you will find everything so simple and pointless, but very quickly you will feel challenged and eager to learn more.

When you leave college you never stop studying as it will be one of your best qualities. I recommend reading "Talent Is Overrated". You can check out this short article about this book:

http://www.devlounge.net/strategy/the-talent-myth







Compared to almost every other area I can think of, programming turns everything about self-education. Formal computer science / software engineering education is useful, but it's not really where you learn programming.

What you really should be doing is start working on projects: build something that you want to exist. Then join an open source project to work on something you still want to improve. Learning is then free ...


You have to learn new things on your own - go where your curiosity takes you.

Get Formal Education Also - 90% of what you learn in formal education isn't used in the workplace. But the 10% that is used is going to be a strange and opaque thing that you thought at the time would never be of any use.

Without formal training, you suffer from a problem best described as "you don't know what you don't know". Formal training gives you wide coverage of many things with the knowledge that no one will ever use everything. Since you don't know what you are going to use until you need it, you need to be prepared for it so you know where to go.

The self-learning / curious is what makes you a much more knowledgeable and versatile person. Not to mention added value to an employer.

Side note: I've spent my entire career starting programming around the age of 15 (gosh, over 25 years ... almost 30 years) and found that, aside from my college education, most of the training courses (you know ... learning BLAH in English) 3 full time days) are pretty useless. These tend to be superficial, and as for the much-invoked mantra "hold on to your skills," it doesn't help very much for someone who has to deal with deep technical details. Buying books, surfing the internet, math, physics, architecture and whatever has made me useful and valuable. At one point I was one in 10 people in the world with specific expertise on a particular topic - all of that knowledge was acquired through self-taught and on-the-job learning.

The only time to stop learning is when you are 6 feet under in a pine box.


There is a good parable about it:

The annual world championship in British Columbia. The finalists were Canadians and Norwegians.

Your task was as follows. Each of them has a certain part of the forest. The winner is the one who can cut the most trees by 8:00 a.m. to 4:00 p.m.

At eight o'clock a whistle whistled and two woodcutters stood up. They felled a tree behind a tree while the Canadian hadn't heard the Norwegian stop. The Canadian realized this was his chance and redoubled his efforts.

At nine o'clock the Canadian heard that the Norwegian was going back to work. And again they were working almost at the same time when ten to ten Canadians heard that the Norwegian was stopping again. And again the Canadian went to work to take advantage of the enemy's weakness.

At ten o'clock the Norwegians go back to work. He did not interrupt for a moment until ten to eleven. With the growing sense of cheer, Canadian continued to work at the same pace and already felt the smell of victory.

It lasted all day. Each hour of the Norwegian stayed ten minutes and the Canadian went on working. When the news of the competition's end at four in the afternoon, the Canadian was pretty sure the prize was in his pocket.

You can imagine how surprised he was that he lost.

  • How did this happen? - He asked the Norwegian. - I heard you for ten minutes every hour. Damn you managed to cut more wood than me? It is impossible.

  • In fact, everything is very simple - just to say, Norwegians. - I stopped ten minutes every hour. And while you keep chopping wood, I've been sharpening my ax.

So you should be learning about your Ax sharp to keep .


  • It is crucial otherwise you will be left behind

  • I study here every day at work by reading books, asking questions and answering. The more I learn, the more I understand how little I know.


Self-taught is very important for two reasons:

  • after graduation : as already mentioned in other answers, self-taught is what you will do in your everyday life as a developer. You can't know everything and companies do. What you NEED to know is how to improve. The best developers have the ability to quickly learn new languages ​​and technologies on their own.
  • During your studies : The distance between what you learn in the university courses and the reality of what your job will be is enormous. In particular, I am talking about maintenance and maintainability. An essential part of a developer's job is maintaining old code (bug fixes, enhancements, adding features, etc.). You can read. In general, is creating brand new software a major part of most programming jobs? for more details.
    Since maintaining legacy code is essential, you will also need to write manageable code, and this is rarely taught in formal lessons (see How Can I Improve Student Training About Maintainability?). If you do not self-teach yourself and read a lot during your studies, it is unlikely that you will acquire the skills necessary to make you an above-average developer.
    Don't try to learn many languages ​​/ technologies during your studies, learn best practices and clean coding. For example, you should read Robert C. Martin's "Clean Code" better during your studies than Herbert Schildt's "Java The Complete Reference".

Self-teaching is very important as you internalize the concepts in your own way and this really helps. Choosing a language for self-teaching is very important. Languages ​​that are clearly documented are very important and what you don't want is very ambitious Since you say you started out with C ++ I would recommend Java for you, it always works so well for the self-taught.


I probably learned 95% of my knowledge about programming by trying things out myself and learning how it works. School can help teach good programming style and optimize the code for speed, etc., but you will never become a "good" programmer if you just read a textbook. A great way to build programming skills is to find everyday problems that you can solve with a computer and try to write code to solve them. Getting stuck is part of learning. In the beginning I wanted to be a web developer, so I pretty often made dummy websites (with no hosting or something) trying new things that I wanted to try. It worked out pretty well for me!


I started programming 2 years ago. My school couldn't teach the languages ​​well and I have to go online and do a lot of research on myself. I learn more slowly, so it took me 2 years to write my first program while all of my schoolmates are still struggling or giving up programming.

This shows that it is better for a programmer to teach himself than to be dependent on the school. The school will always hide information because they think we are not ready.






As always in mathematics and computer science, there are two aspects: 1. Necessary and 2. Sufficient conditions

  1. It is necessary to learn (self-) throughout your life. No other way to be and remain a good programmer.
  2. The above point is not a sufficient condition - you must have a strong background in mathematics - high school and then a good university degree in computer science. This is (perhaps) the sufficient condition. Your brain needs to be taught to think algorithmically. This cannot be achieved through self-learning.


We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.

By continuing, you consent to our use of cookies and other tracking technologies and affirm you're at least 16 years old or have consent from a parent or guardian.

You can read details in our Cookie policy and Privacy policy.