How do I become a programmer?

Source: Internet
Author: User
How do I become a programmer?
1,Skills that an IT engineer should possess

I think practical skills include three aspects, as shown in 1:




These are important:

● Encoding: you must be able to write high-quality code within a limited period of time.
● Experience: have relevant experience to show your enthusiasm for the industry and be able to enter the working status from the very beginning.
● Theory: theoretical knowledge is the foundation of IT engineers. good theoretical knowledge can help you quickly solve new problems.


Preparing for a job interview is an excellent opportunity to improve your abilities.


1. improve your theoretical knowledge


(1) learning C language


C language is the foundation of programming. Therefore, learning C language can lay a solid foundation for us to understand high-level concepts. it will not take too long to learn basic C language knowledge. it will take only a few weeks to master. C does not have much abstract encapsulation, which makes the C Language relatively simple. like others, I learned C Language by reading C Programming Language (we can read Tan Haoqiang's book ).
Once you can really understand the pointer and memory management in C, C will become an interesting language, because it will help us understand the language at the processor level (underlying hardware, this is exactly what most other advanced languages do not have. Understanding these concepts will also help you understand high-level language work.

(2) understanding data structures and algorithms

Although complex algorithms and data structures are rare in website/application development, data structures and algorithms will affect our thinking when writing complex systems. Even if you do not need to write your own data structure, you may use it in programming. Therefore, it is critical to understand the basic options.

I recommend this book, Introduction to Algorithms. Since this book is very long, if you don't have time to read it, you should also learn the sorting, hash table, binary tree, and string matching parts.

Once you have a good grasp of the data structure and algorithms, you will find that these concepts will simply sum up everything you do into a problem.

2. Comparison of programming languages

At the beginning, you will often come into contact with multiple programming languages. You may also need to quickly learn new languages and concepts.
To accelerate learning, learning different languages helps us understand their concepts and their similarities and differences.
The best way is to learn a language in each of the following languages:

● Bottom layer: C language.
● Object-oriented: JAVA, C ++, etc.
● Dynamic and high-level languages: python and ruby
● Functional language: Lisp, Erlang, Haskell, etc. (I translated it into a functional language and thanked zzljlu for its correction)

3. proficient in at least one language and one framework

This can be explained as follows:
● Since you can become an expert in one field, it indicates that you can do as well in other fields.
● Understanding the details of these languages/frameworks allows you to make decisions based on the advantages and disadvantages of different technologies.
● You are passionate about exploring a project and exploring the underlying language.

It takes some time and experience to become an expert. Here are some suggestions:

● Try different projects to help you understand the programming language.
● Read other technical blogs. Hacker News is a good technical blog.
● Make contributions to the open-source community. for example, you can find your code on GitHub.

4. improve the actual encoding capability

Here, we mainly test the engineer's coding capability through 3 methods during the interview:

● You contribute code to the open-source community (for example, on GitHub)
● Write a piece of code on site
● The challenge of writing code for two consecutive hours

The quality and speed of an engineer's coding capability are important, and this can only come from practical experience.
In addition, using the appropriate language and framework is also very helpful for a project. For example, using Python, Ruby, and other scripting languages can be much faster than using static languages such as Java and C ++. Because we know that a job seeker may not have much experience in dynamic scripting language, we did not focus on it during the interview.
Do some challenging programming tests to hone your skills. You can find a lot of resources on the Internet, which can also test your programming speed, so that you can further improve the speed of code writing. Google Code Jam has some good questions.

5. improve your technical experience

It is important to have some relevant work experience:

● This shows that you are passionate about programming.
● Your development experience can guide others in the company
● You will be amazed at your work.

● You have the ability to explore more modern technologies and have a more comprehensive perspective


You can learn from your previous company or other projects.

6. Conclusion

Of course, it is only a coin in terms of technology. In section 2nd, I will discuss non-technical aspects.


Finally, let's take a look at yours. welcome to the starting group: 438012030


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.