A letter addressed to novice programmers

Source: Internet
Author: User
Tags using git

First, welcome to the world of programmers. In this world, not many people want to create software and solve problems. You are a hacker and belong to people who are willing to do something challenging.

"When you don't create something, you only look at the problem in terms of your feelings, not your abilities." "–whytheluckystiff

You don't have to be completely receptive to the following text, all from a homely programmer. I like to do the best things, not tinkering with the original stuff.

Just because the hobby starts to do some innovation, this is a very good start! If you say, "I need to learn a little bit before I start," then you'll never really start. Everyone needs to start somewhere, so now open your editor and start writing code.

Here are some very important suggestions, although some people disagree, but I promise you will be on my side after reading my analysis. First, do not control algorithms and data structures. Most simple programs don't need to use algorithms and data structures, so when you really need them, then learn. After programming for a while, you'll know where to use them. At this point know the name of the algorithm and understand their function, and then find some relevant papers to understand the algorithm and hands-on programming practice. Without a ready-made library of functions (reusable code provided by other programmers), you implement it in your preferred programming language.

  0. Choose a good programming language, a language you think you can use to quickly make something useful.

Do not choose c as your first programming language. Perhaps choosing C will give you an outdated sense of satisfaction. Although it provides a better syntax than earlier assembly language, C (or C + +) today is not a language that can write software quickly. Without prejudice, I suggest you learn a dynamic language. Choose a program that you think the grammar (document) makes you more comfortable with. To do this, you may need to spend some time comparing the different languages. This is not done to make you feel better or to make programming easier. Completing your work faster and seeing results is the source of motivation that motivates you to program. Don't choose a language that requires some sort of heavyweight IDE (the IDE is a tool that helps you write and run code) to easily program. All you need is a text editor. (Note: The original text is not labeled, we added, please don't forget, oh, we are starting from the zero number.) :) )

  1. Select a good editor.

Editors are as important to programmers as bows are to archers. Here are some recommended editors:

    • Sublimetext-If you have just started programming, we recommend using Sublimetext 2
    • emacs– learning curve Steep, shortcut key complex. If you want to customize your usage habits, you need to learn Emacs Lisp.
    • vim– is popular because it is not only simple to operate but it is included in the Linux distribution by default. I started using Emacs for 2 years. Because of the complexity of the shortcut key operation in Emacs, my hands began to ache frequently, forcing me to turn to the Vim camp. It is necessary to understand the shortcut keys for vim. When you edit the code on a remote server, the only editor you don't need to install is vim.

Attention! Emacs and Vim may have become antiques. However, they all have features that some modern editors don't have.

  2. Choose an operating system from which you can learn something

Windows doesn't teach you anything. The only thing you learn to do with Windows is to open an EXE (executable) file to install the software and use it. You might feel cool at first, but in the long run, if you aspire to be a web developer, you might want to have basic Linux knowledge, especially if you want to publish a program. Linux also allows you to customize the program according to your own requirements. Macs is cool too, but I don't think you can afford it financially.

  3. Do not copy and paste to do backup

A novice programmer usually copies and pastes files into a temporary directory to be backed up. This is perhaps the only way they know. Don't do that! You need to use version control software. I strongly recommend using Git, which is a very popular version control tool and very simple to use. For a git novice, there is a good community and a lot of reference resources to learn. (besides git, there are mercurial, darcs, fossil and so on.) But I suggest starting with git, I have a lot of reasons to support git, and there's not much more to it. )

  4. Know where to find help

Participate in a community of programmers associated with you (you use programming tools). StackOverflow, for example, is the programmer's Facebook. There is no message status and no response, instead the question and answer. In addition to learning to use IRC. IRC is an old-fashioned chat room that is now being used by most developers to share technical information and help solve problems.

  5. Cultivate your manners

Know when to ask questions. Most of the problems you encounter are people who have met and can find answers on the internet. Before you ask questions on IRC or any forum, search Google (or Blekko) to see if there is a ready answer. It takes patience to ask questions on IRC. Always remember that people are just being kind enough to help you for free. Sometimes it takes a few hours for you to ask questions to get a reply. So, wait patiently. In addition, remember to ask questions politely. The world is very small, how you treat others, how others will treat you.

  6. Make friends, technical books can only teach you to solve common problems (they say: The book is dead)

When you are tinkering with programs or learning from the program's authors, you can learn something that is not in the book. When you take a walk, please greet the friend you meet. You're definitely not the only programmer. Work with other programmers to make friends. You'll notice that when a group of technology enthusiasts are together, no matter where the topic starts, it ends with a technical topic. This is the inevitable phenomenon. So you can take part in the fun. Working hard at your golden age, I can tell you that I started 6 years ago looking for friends and started talking about programming, and from then on I learned that books and articles would not be my stuff. So I always say, my programming experience is 6 years, because only then, I began to communicate with people and began to feel really beginning to learn programming.

  7. Participate in open source projects

Writing code for open source projects can be rewarding. This is not just about helping others, the code you leave will be used by others or (possibly) improved. When someone adds functionality to your code or suggests changes, it's also improving your programming level. Open source software projects aren't necessarily a big project, and it's also useful to write a small program that downloads YouTube videos. More importantly, you will be amazed to find that the code you write becomes a bridge for effective communication with others.

Finally, after a few years if the content of this article has been a little help to you, in return please write a similar letter to the people who wish to start programming and do not know how to get started, if possible, correct the outdated content in this article.

The wise man said that it takes 10 or 10,000 hours to master something, that is, "ten years of grinding a sword" in Chinese, so don't worry.

English Original: An open letters to those who want to start programming

Chinese translation: Bole online

From:http://www.williamlong.info/archives/2700.html

A letter addressed to novice programmers

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.