How to become a truly professional programmer

Source: Internet
Author: User

To be a professional programmer , it's not enough to just write code. From team work to problem solving to versioning, you'll also have a toolkit with other key skills. Here's what we learned when we asked the relevant professional developers what the essential skills were.

about how to learn the code, a lot of different sounds, and then a lot of people are misled into becoming a professional developer know a programming language is enough?! Hehe, just like other jobs, light will be a skill that is far from enough. If you want to be a developer, here are some of the most important skills you have to master (coding this requirement doesn't go into it, that's for granted).

Learn and be good at communication

While some media have described programming as a "closed-doors" behavior, in fact it involves a lot of communication and collaboration with people. If you work in a company, you become part of the development team and have to communicate and collaborate with others.

However, Jeff Bargmann,lifehacker, the developer of fences and bins, stressed that knowing how to speak and write clearly and reliably is even more important to those independent developers:

The school curriculum did not teach us to learn the necessary written expression skills. (Teach us to program, right?) In your career--if you want to continue your promotion in the future--then you need to spend a lot of time on clear, convincing communication--from the need to email your colleagues, managers, clients/partners, and perhaps even one day as executives, that's enough convincing. But because our developers are accustomed to doing things twice times faster than others (we're all smart, right?) , so frustrating is that it can take up to twice times more time to articulate clearly. And as an independent developer, in a word, "not in silence broke out in silence"-how hard it is also necessary to master this important skill.

Jeff also made some suggestions for communication skills:

Either cross this barrier, or learn in the process, what you need is real social practice (we want to be good at coding too!). )。 Try to publish short articles, read e-mails aloud, confront critical education, and create lessons that are right for you.

If you don't have a chance to join a team to develop it, consider some of the university's communication, speech and writing classes. In addition there are a variety of extracurricular network resources for June pick.

Improve your ability to solve problems

Many developers say that understanding a programming language is just a small part of coding. Solving the problem is another important skill that is lacking for novice developers. If software development is likened to a huge mystery: then you need to figure out how to connect one of your program fragments to the other, and this process is often not easy. Some readers have jsimon the following explanations:

I've come across the kind of people who are known to have mastered the whole programming language so-called "cattle Man," but the solution that comes out of it can only be thrown into the wastebasket. The best example is at the university, at that time we were developing a project. I was asked to take a look at some part of the code because the owner of the code could not connect it to the server's interface. The reason is that he didn't set the port. So, the ability to solve problems is very important.

However, solving a problem is really a difficult skill to learn. Practice is the key. You can take a small project hackers, such as developing a sticky note app, calculator, as long as you are interested in can. In the development process, you need to focus on the logic behind the code, learn to think like a computer, and not just understand the programming language.

It is also helpful to learn how computers work in advance. This technique comes from Jacobm001, the reader:

Solving the problem is the most part of what we have to do. Computer thinking is not the same as we are, you often need to re-learn the way they think about problems. To improve efficiency, you need to really understand how a computer works and how it handles CPU information. I personally hate computer compiling, but fortunately I have learned about the content of this course. As long as you know a little bit about compiling knowledge, you can often come up with better ideas to achieve something correctly.

As Jsimon says, knowing how to write code and how to solve the problems associated with connecting parts is the key to our learning. Once you have really entered the door of the development process, you need to focus on developing a systematic approach to solving the various problems you face.

Up, it's time to learn version control.

If you are in college, you can work with the team in the programming class to develop the project. WINDOWSSVN and GitHub are the two tools common to many development teams to create and update open source apps together. And there are no restrictions on these two tools, and anyone can use them. But companies favor subversion and Apache SVN. So before you start a new job, you'd better get a look at how these systems work, so you can "blockbuster" in front of those new teammates. Learning tools can take time and practice, but if you don't understand them, you'll lag far behind other people's progress.

The only way to really master the system is to practice. If you're still in college, learning these tools can help you get into a large, team-oriented classroom project. If this is the case, you can request a GitHub or other form of repository, even if the teacher does not request it. If you are self-taught, find a team of collaborators who can start a new project with a project on GitHub or a companion you want to work with.

Tips for developing learning

Technology is like the wheel of history is always rolling forward, developers of knowledge should be the same attitude. If you want to stay in the relevant field, the key is to keep up with the pace of development, and constantly update the programming language, software and hardware technology. Reader Wakers01 's views on this are:

...... You need to constantly learn new languages, technologies and tools. You have to spend your energies researching new techniques, analyzing their strengths and weaknesses, and digesting them quickly. Please note that the reason why I use "digestion" rather than "learning" is because I want to say that you have to fully assimilate, understand, and incorporate this new thing into your skill set, not just getting some new knowledge about how to work. As long as you can keep the momentum of learning new things, you will be more and more strong.

We can also learn skills quickly with some skills. For example, if you can take some time to understand how memory works, you will use them more efficiently. Learning also includes understanding, so in addition to the communication skills mentioned above, the ability to focus on improving reading comprehension is also essential, which can be obtained by reading the relevant technical documentation and other written resources. A good memory is better than a bad one, and having a good note-taking system helps you find the reference information you need quickly.

Start from the basics: think of learning as a skill that you should focus on. Once you have done this, you will be able to keep up with the pace of technological development faster and ahead of your competitors in this area.

Programming actually includes a lot of content, rather than just sitting in front of your computer and writing code on your original thought. If you understand this better than anyone else, you will have more opportunities to master the key skills that employers and clients need you to know and be ahead of others.

This paper draws on http://www.codeceo.com/article/how-to-professional-programmer.html

Link: http://www.codeceo.com/article/how-to-professional-programmer.html
English Original: What It really Takes to be a Professional Programmer

How to become a truly professional programmer

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.