Is studying computer science the best way to prepare to be a programmer?

Let’s begin with a quote:

Is studying computer science the best way to prepare to be a programmer?

Asked a journalist.

No. the best way to prepare is to write programs, and to study great programs that other people have written. In my case, I went to the garbage cans at the Computer Science Center and I fished out listings of their operating system. You got to be willing to read other people’s code, then write your own, then have other people review your code. You’ve got to want to be in this incredible feedback loop where you get the world-class people to tell you what you’re doing wrong.

Answered Bill Gates.

I’ve posted this Bill Gates’ quote about preparing to be a good programmer some time ago. He says that studying computer science is not the best way, but programming is.

Well, why do I agree with that?

First of all, we have to consider that is there a lot of programming languages, and in the course you will not learn all them. If you work in a bank, they will have the platform made in a language, if you work with a game engine, there is another language to learn.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.” (Eric Raymond)

OK, so why is good studying computer science?

There is no programming language that is equal to another. But, when you learn some language, you will be more prepared to learn another. The first step to learn programming, is learn logic. All language works with logical arguments, creating a flow on the program. Other important point is to learn the structure of some languages. Python and Ruby have a similar structure, C# and Java also. But every language have your own singularity, like commands, structure and paradigms. “Hello world” examples are good to see that.

Studying Computer Science you will learn logic, some languages and structures, and it will help a lot.

The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability. (Randall E. Stross)

The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer (Edsger W. Dijkstra)

Programming is the only way to be a good programmer. You have to prepare to always study and learn new things, because this is a dynamic area. Maybe a new language can arise, or a framework that can make your work easier, and you will have to learn it. Train a lot and study, and you will be a great programmer.

Fonts: