Seven points of thinking about programming Learning

Source: Internet
Author: User

Author: Chad Perrin
Translation: purpleendurer, version 2nd
Category: * nix, code writing, writeCode, Databases, database, macros, Macro, programming, programming
Tags: Administrator, smart phone, JavaScript, code, web browser, web browser, programmer,ProgramEmployee, language,Programming Language, Plug-in, plug-in, programming, programming

Confucius (Confucius), a thinker in ancient China, has contributed to insights on many things, from Fortune cookie messages to obviously absurd jokes, for example, "man who stand on toilet is high on pot. (standing in the [Mao] toilet, happy to [urine] pot )". He once said something helpful for people to learn programming:

I hear and I forget)
I see and I remember)
I do and I understand)

For most people, sitting in a classroom is far from an ideal way to learn programming. Reading books that introduce programming concepts may be helpful, but it is impossible to read and think about other people'sSource codeUntil you understand the practical skills you have gained.

However, there is really no way to accumulate programming skills better than writing programs by yourself. You can only learn one thing, but you can get a lot from hands-on programming. Find the things you want to simplify and write some program code to make them easier to handle through automation.

Unfortunately, figuring out what can be done is sometimes the most difficult part of programming learning. Based on your personal experience, the answer seems to be that you can just get started, rather than things from the top seven, and find a solution to the problem through programming through epiphany.

When looking for such an epiphany, since the knowledge of people who are new to programming is usually very limited, it is helpful to draw a flow chart to prepare in advance as you like. Please do this at least in the beginning, including figuring out the process of using your computer every day and simplifying the most used part. Once you have sorted it out, you will focus on programming skills that are particularly useful in those cases. This opportunity is scarce to a certain extent. You may need to change the computing environment to provide such an opportunity.

The most important thing to do is to find a way to motivate yourself to write code. The following are suggestions on how to take action to learn programming.

1. Database Management System (dbmses)

Professional and durable database management systems such as PostgreSQL, Oracle, Microsoft SQL Server, and Informix provide script functions through stored procedures or storage functions. The most widely recognized language options may be Microsoft SQL Server and Sybase's transactsql, and Oracle's PL/SQL. PostgreSQL provides a PL/postgresql-like program named PL/pgsql to be extended to SQL, however, it also provides options for other languages including PL/perl, PL/python, PL/Ruby, and PL/TCL.

Although this programming opportunity is limited to a specific set of problem areas, if you are a DBA (Database Administrator) or your work involves database development reports, it will be very useful for you to experience it.

2. Plug-ins

Many new computer games provide the ability to write and load plug-ins. For example, World of Warcraft provides a plug-in system using Lua scripting language. With the popularity and widespread use of Firefox, modern Web browsers often provide flexible plug-in systems. In the simplest case, Firefox plug-ins are all written in JavaScript. Open source browsers tend to be more attractive in Plug-in development than closed source browsers, and the plug-in system of chromium browsers may become the second goal of plug-in developers, this is because Google Chrome's high-profile marketing strategy and unlimited license policy.

* Purpleendurer Note: Lua is a simple, lightweight, and scalable scripting language. Lua reads/'lua/(Lu Ah), which means "luna" (Moon) in Portuguese. For details, see:
Http://zh.wikipedia.org/zh-cn/Lua

Many other applications have plug-ins and extension systems that provide ample opportunities to develop these rapidly evolving coding skills, and even include terminal emulators and console-based text editors, for example, Vim. (Good news: I have contributed some code to the urlpicker project .)

3. Practical Problems

You can try to solve the problem that the General List in the Code task provides. The Code task is specially designed to provide the programmer with an internship opportunity. Project Euler is a popular project regardless of programming languages, including "a series of challenging mathematical/computer programming problems ". The euler project collects hundreds of problems, which are generally from easy to difficult, enough to keep you busy for a long time.

* Purpleendurer NOTE: For the Euler's project, visit:Http://projecteuler.net

Other examples include rubyquiz, which has been popular in the ruby-talk mailing list for many years. In addition, codekata is a small project of Dave Thomas with short service life. Dave Thomas is a co-author of the pragmatic programmer, a programmer's path to practice.

* Purpleendurer Note: codekata is accessible.Http://codekata.pragprog.com/

These options are not suitable for self-motivated exploratory learning tasks, because they can be scratching your head, But if you discover the fun, they can be used in programming practice education just like other methods.

4. Smartphones)

The biggest new wave in the application development industry is smartphone applications. Such a device usually requires developers to use a specific language that can bring the device's functions into full play as an application platform, at least in an officially recognized manner.

An emerging industry in the smartphone development system is emerging, allowing developers to write their own code in other languages native to the non-smartphone platform, and then convert it into an application in the native language. Because you do not need to learn the official application development language of any specific smartphone platform, web applications are also blurred and become a method for smartphone application development. Another solution that selects languages better than the Platform is to use devices like Nokia's N900, which runs the Debian Linux system, A wide range of software is available-including many software that are not designed for smartphones.
Books and online tutorials that focus on developing smartphone applications in a variety of ways have emerged, especially for Android and iPhone devices. Some third-party frameworks "compile" code that can be written from HTML + JavaScript to Ruby or python into "local" applications on multiple platforms, sometimes including not only the smart phone platform, it also includes a desktop system. Perhaps the most exciting thing about this situation is that these frameworks and related ides do not tend to try to solve all programming problems, which is the same as the main framework of the same outstanding programming method, such as Visual Studio and.. NET Framework is different. This makes it possible for people to significantly simplify the development process by narrowing down options to a manageable problem area. The result is that the software development style is very easy for beginners to accept.

The downside is that when learning how to program, it is difficult for you to write new smartphone applications every day. However, if your smartphone operating system is Unix-like (such as N900), the same gadgets are useful in both workstation and server development projects.

5. workbooks

If you use a spreadsheet program with a powerful macro system, you will have a quick way to read other people (or things) Code and write your own code. First, record the tasks that have been executed for many times and generally require several tedious steps into a macro. Next, open the macro source code, read and edit it to make it more suitable for general purposes. This is a very limited method that won't lead to much growth, but it may help you get on the road and naturally like simple script code.

The most common spreadsheet program using such Scripts may be Microsoft Excel. The VBA used in Excel is a poor language, but if you use Excel extensively in your daily work, it may be a skill you should master in any way. OpenOffice.org uses a similar macro system and uses the same method. libreoffice also provides the opportunity to learn code like Microsoft Office.

In any case, the programming difficulty is slightly higher than the simple command line shell script code, because the menu options and buttons need to be clicked to enable. The cost of getting started is similar to starting a new project with a major ide on the market, but with a "project" that has shrunk significantly ". This is a good idea, and it can be ensured that this is not just an opportunity to write scripts in the daily development environment, but even to use them.

6. UNIX

If you use Unix-like systems on a regular basis, you will have a huge advantage in finding ways to exercise your initial programming skills. UNIX provides more opportunities to use simple script automation than any other general family operating system, thanks to the great flexibility of script management on the platform. In the least complex case, a management script may simply save a series of shell commands to a file. On this basis, you can use a simple loop and condition structure, input/output processing, file read/write, and scheduled tasks for expansion.

After writing simple shell scripts, you can spend some time learning how to use Perl, Python, and Ruby to write management scripts for any UNIX system administrator. Key Skills for using these languages in UNIX environments include accessing text streams through UNIX pipelines and redirection, processing command line options, reading and writing files, searching and operating using regular expressionsComposition. Administrators also want to know the basic public knowledge of programming, such as processing output, loops (or recursion in some cases), based on clearly defined standards, make decisions by using conditional judgment structure programming.

Writing a Unix command line tool is a fertile ground and there are many opportunities to use the huge capabilities of the scripting language for programming. Due to the flexibility and simplicity requirements of management script development, the scope of writing tools can be from the simplest examples of some useful tools to powerful server processes, or even large-scale parallel task automation, load balancing, heuristic filtering, and some other interesting problem-solving tasks have aroused the interest of the world's best programmers.

Although almost all general operating systems have the ability to use management scripts, a considerable portion of them have narrow purposes, while other operating systems are relatively balanced. UNIX is superior in terms of the applicability of management scripts, because Unix systems such as major Linux distributions and bsd unix systems share the same basic operating environment design, they can all benefit from the portability between the management scripts and the script platform-as long as you write these scripts based on portability requirements (such as by using Sh or Perl instead of bash, select the system standard sysctl value instead of the data source's proc file system ).

This work also applies to languages other than advanced, dynamic, and interpreted languages. C, C ++, Haskell, objective-C, objective caml, and a large number of other options are suitable for writing tasks in various simple UNIX tools. For many of these languages, even if you want to complete a simple engineering project like a small management tool, you must also learn a wider range of skills, which is more demanding than Perl, ruby and Bourne shell are highly popular. However, compared with GUI application development, system programming, and other frequently used tasks (especially on other platforms), these tasks are much less difficult for Programming beginners.

In fact, since UNIX philosophy has provided a large number of commonly used tools over the years, these tools are strictly divided (mostly) and work well, some of the value of a Unix-like environment for new programmers is to take full advantage of the power of the Unix Command Line environment and encourage users to think like programmers, rather than the audience.

7. Web pages

This is a dangerous suggestion. You can use JavaScript to learn programming. This is not because Javascript is a bad language, but because of the pursuit of dynamic user experience, the web page has been abused without restrictions, therefore, it may be considered irresponsible to indulge new programmers on the web page. Javascript also has some active usage in web pages, and it will make new users more and more interested in the idea of writing desktop applications running in browsers, this gives us many reasons to start learning JavaScript as early as possible in a programmer's career.

In fact, JavaScript is the most common and independent client web page script, which also means JavaScript may be the simplest language and can be learned by reading other people's code. Find any webpage with dynamic client elements, right-click and select the option to view the page source code, and you will find it filled with scattered JavaScript fragments. For more complex dynamic pages, (x) HTML pages may even reference a separate. js file with pure code.

Before uploading code to a Web server with public access, make sure it is good. If you want more useful scripts to be started locally, browser scalability allows you to apply any scripts to the web page you view -- and only applies to your personal browsing experience. The greasemonkey of Firefox is an example.

Ask for code feedback

Another great way to improve programming skills is to seek feedback from your peers and learn the knowledge they share with you. They may not always agree with each other, but if you think they are excellent programmers worthy of respect, what they say can at least remind you to think about new ideas and review old ideas in new ways.

There are many ways to ask for feedback. Here are several types:

▲When you start work, it is helpful to selectCommunityFor example, the ruby programming language includes the ruby-talk email list, and the Perl programming language includes the perlmonks website. Join one of these communities (or one of them), learn the culture and best experience of the language, and get the most effective help.

▲Paired with another programmer. Pair Programming (Pair Programming) is a fashionable practice that has been respected by the rise of agile development methods. Two people come together to build a project, but often only one of them is to actually write code at any specific time. When one of the programmers enters the code, the other reads the code later to ensure that they get a lot of coding time. Continuous code conversations can help ensure that the best solution to a given problem is gradually presented and finally adopted. Anyone with an epiphany should be aware of the potential value of Pair programming when trying to explain a problem to another person.

▲Seek a mentor. Find a mentor, which can be a programming language community, a friend or colleague, an open source software development project, and a heavyweight technical theme meeting. The school may be another good place to find a mentor. The so-called mentor is a mentor who is fond of you, dormitory roommates, and even research groups, and has a less traditional and more respectful relationship with each other. In the early stages of programming, the one-to-one relationship with the mentor is sometimes the most valuable way to get feedback. If you are lucky enough to find a good mentor, you should take advantage of this resource and never take it for granted.

▲Create a project on a code hosting website (such as Bitbucket or GitHub. Tell your programmers and friends to post it to their own weblog or Twitter, and inspire others to read your code and provide feedback. Make sure that the problem tracking system is enabled, so that people can submit bugs or suggestions for improvement through the Code hosting website interaction function.

In terms of practical skills and feedback from experts, you should be able to learn the basic programming knowledge in your own way and gain practical useful experience.

Start now and write the code!

( http://blogs.techrepublic.com.com/programming-and-development? P = 3308 )

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.