The whole process is very dry, there are a lot of links did not do, recommend to read the original link in the following, the master said very well, programming is not blindly write code to see the code, more is to contact with all kinds of knowledge related to human.

Professional advice for new programmers by Eich, Van Rossum, Johnson, Hickey and Schleuter

With the proliferation of programming languages, the number of programmers in demand is expected to grow 17 percent from 2014 to 2024, according to the Official Bureau of Labor Statistics — compared with 7 percent for all other occupations. We have to say that the software development industry is getting hot.

Faced with such a huge demand, there are many non-majors and students who have not yet graduated are actively considering the career of programmer. So, what do you need to prepare to become a qualified programmer? We talked to some of the biggest names in software development to find out what advice they have for those just starting out. Interviewees included JavaScript author Brendan Eich, Clojure founder Rich Hickey, Spring framework founder Rod Johnson, Npm founder Isaac Schlueter, And Guido van Rossum, inventor of the Python language.

Let’s take a look at some of the best programming gurus on how to learn programming, choose a language, and improve your skills. How to learn programming

Having a degree in computer science from some university or a diploma from some training institution doesn’t mean anything, and programming leaders are stressing the importance of a well-rounded education, not just sitting on an uninspired shell console.

“You only live once and you can’t do it again,” Eich said. “Young people should not waste their time on computers and studying how to write code. They should be exposed to all kinds of knowledge related to human beings, such as history, literature and art.”

Hickey also agrees that programming is not just about writing code, but about taking a broader view of it.

“Programming is a very wonderful and new profession relative to human history,” he said. “We shouldn’t assume that this is its complete form, yes, it’s something we need to find and witness together.”

“We need to learn more about other things so that we can better understand programming and its applications,” Hickey argues.

“The really good programmers are the ones who focus on understanding, understanding, communicating and solving problems,” he said. “You have to understand that software is just a tool to increase productivity.”

If you want to be a programmer, you should take advantage of your time in school to learn more about other subjects, rather than wasting your time on computers and algorithms. After all, “programs are written through human logic, and human logic is supposed to be alive and spiritual. Don’t get stuck in a theory. It’s boring.”

“Having a solid academic background and a professional degree can give you a big advantage, but experience is something that comes with actually working,” Johnson says. “And there are a lot of great programmers out there who come from different backgrounds.”

Van Rossum agrees. “I know a couple of Web developers who are English majors who have taught themselves the Django Girls and are doing just as well, if not better, than a typical 4-year computer major,” he says.

Of course, there’s no substitute for algorithms, Johnson says, even in the real world.

“Yesterday I learned a new compilation algorithm and applied it to my project, and it solved a problem that really bothered me,” he said. “It doesn’t happen very often, but when it does work, it’s pretty efficient.”

Eich sees value in learning math, not just to learn programming.

“It’s not all math, and sometimes it’s even like moving bricks (the foreman said they were 50 cents a load),” he said. “But if you’re good at math, it’s no problem at all. I would say that mathematics is a more abstract language that is closer to the archetype of technology, and it can be applied to many fields.”

Van Rossum also recommends focusing on ways to improve mathematical logic.

“You can try to get into the habit of writing about anything,” Schlueter says. “I think that’s part of being a good programmer.”

“The best is to go to a four-year college after high school, with quality-oriented education (or general education), constantly writing, check information, you will understand more and more”, he said, “this will be your life the most splendid period, in learning and writing fully enjoy the beauty of youth, you then you will be recognized by the society.”

“If you can’t afford high tuition, it might be cheaper to go to a public school, but student loans are no joke, so save money,” he said. “You can try applying for scholarships or grants to make your life a little brighter.”

“Whether you go to college or not, try to read as much literature and philosophy as you can and write as much as you can,” he said. “Even spend some money on a writing tutor to give you homework and grade it. There are a lot of them on the Internet. Talk to people on literary forums, and you’ll grow faster through them.” On which programming language to choose

Once you decide to become a coder farmer, one of the first questions you must face is, which programming language do you want to learn?

“OCaml, Haskell, Rust, C++, TypeScript, JS, Racket, SICP, etc.” “Obviously I don’t want you to learn all the languages,” Eich advises. “I’m not talking about gifted students with high grades.”

Hickey also supports a multilingual approach and offers a better solution, which is to select a representative language for each language type.

“A language (C) that you can pick one of each type to get a better understanding of how computers work, A language with good encapsulation features (Haskell, Prolog), a statically typed functional language (Haskell, Again, Fine), and a dynamic language that values functionality, such as Clojure.” He said.

Johnson believes that language learning should be targeted.

“Languages can affect how you think about programming, so it’s important to learn multiple languages, and different languages have different ways of doing it,” he said. “for example, I would recommend learning an object-oriented language and a functional language, rather than saying, Java or C#.”

“Python is a good place to start,” van Rossum said. “Starting from scratch, you should definitely go straight to Python 3.”

Johnson also recommended that young developers take a look at Swift.

“It’s a nice, thoughtful modern language that I think will spread across iOS,” he said. “JavaScript is very useful and easy to use, although it’s not a great language. Java is very learnable, not hard to understand and still popular, and JVMS are everywhere.” On the improvement of programming skills

So, after a couple of projects, you think you’ve got the hang of it, but what can you do next to take it to the next level?

Eich recommends taking a look at other people’s code, especially popular frameworks or open source projects, where logical thinking and coding styles are worth learning.

“Read high-quality code, print it out if necessary, write notes, highlight it, ha ha, just like in class,” Eich said, “Recommend The classic Kernighan and Ritchie The C Programming Language, etc., I am not exposed to age… There is also The Unix Programming Environment. The last code read is “Solving Every Sudoku Puzzle”. I recommend you check out Norvig.com. There are a lot of articles to read.”

Hickey recommends patience and preparation.

“Writing code on the computer should be the last thing to do, and more important things will be done in thought and discussion,” he says. “Before you write code, you should think about what you want to do, what you want to achieve, and how you can do it better. Instead of just typing in your head so that you don’t know if your logic is working. Remember, you’re not judged by your lines of code. You’re judged by your logic, by your thoughts. Your logic, your ideas, will be reflected in the code you write.”

But once you’ve sat down and started coding, don’t give up until you’ve achieved your goal. I still use Ken Thompson’s quote “brute force it all” to motivate me, Eich suggests. Don’t be a coward, just do it!

Johnson offers another way to improve your writing skills: open source.

“You can create or participate in a good open source project, thus come into contact with more useful content, and contribute to the platform,” he said, “it than you do a boring job in the company are much more interesting, isn’t it, you can maintain the open source project and other members of the exchanges, it also helps improve your working ability.”

For young people about to get into programming, Eich suggested that they focus on emerging industries such as space exploration, 3D printing, 3D rendering, bioinformatics and the Internet. It’s all high-tech and exciting to think about.

Van Rossum’s advice is specific to job selection: “Always avoid taking a job that doesn’t interest you or will make you unhappy. To put it bluntly, the demand is so great, but there is no work to worry about. Take it slow and find something you really enjoy doing so that you’ll be more productive and happy and everyone will be happy.”

Mr Hickey agrees. “One of the great things about programming is that it can be applied to almost any domain,” he says. So of course you can choose a field that interests you.”

Whatever you choose, Schlueter says it’s important to keep your eyes open.

“Programming, as long as you have patience and persistence to learn, is not difficult. But all the career development path eventually no more than two choices, either in industry or management (to some extent), “he said,” even if you focus on technology, can you go up the working life, experience is rich than others, so we certainly will follow your advice and arrangement, you will surely from greater scope to do more complicated things?”

Finally, Schlueter recommends reading books on leadership, communication, and business.

“It may seem boring and complicated, but it’s really, really important.” He said.

Translated by Chajn

Original link: click here