Miscellaneous ideas about programming and sociaty

advices to learning programming:
  1. If you want something, work for it.
  2. There is no one language which is more powerful than another.
      Any language are designed to solve some area of problems. Any language has good reason to exist.
There is no such a language which is general enough to solve every problem in the world. No such a thing
at all.
  3. Practice makes perfect.
  4. Coding, coding and more coding.
    The core of programming are codes and coding. So never forget coding, otherwise you are not programming.
  5. Algorithms are the soul.
    Computer science was built on Mathematics. Programming languages are logic methods to solve some problems.
We solve problems by forming the mathematical module first. So Math and algorithms are the real things for
daily programming. For programming, we are actually construting mathematical module of problems, them find
proper logical design and algorithms to implement the mathematical module. Never think your math or algorithms
are enough, try ACM/ICPC problems, try exercises of <The art of computer programming> and try some <concrete
mathematics>
  6. Try your best to learn things beyound any languages, though you are limited to some language.
  7. Summarize your gains and translate them into language independent exerperiences.
  8. IDE(Integrated Development Environment) is not programming language.
  9. select some topic and dig it deeply.
===========================================
On Dec 20 2009 16:44
===========================================
The process of learning programming
  1. Learn basics about computer
    understand some basic concepts about computer like computer architecture, CPU, memory, prelipheral devices, monitor, keyboard and etc. You must get an impression of what a computer is and what it can do.
  2. Learn basics about Operating systems and development environment
    You must be familar with the operating system you are using, knowing its commands, its basic mechanism etc. For linux/Unix system, you have to learn something about Shell, commands and process and others
    Generally speaking, in nowadays, the first two steps can be ignored, since almost every one have acquired that.
  3. Learn a programming language
    This is the basic tool that we use to build software, like pen to a writer. Without any doubts you have to learn it well.
  4. Learn how to program
    This part concerns how to program. we know that programming is more than codes, even for codes we have to consider a lot things. Like how to name a token, how to layout source code, how to write comments and documentations, how to debug and how to write bug-free codes. Those things are vital to be a solid programmer and write great software, and they are language independent. In addition to code, software must be done with software engineering paradigm, with proper design and architecture. So you have to learn software engineering, architecture and design as well.
  5. Learn advanced programming skills
    Multi-programming either multi-process or multi-thread, data structures, algorithms are also commonly used in every peice of software. As a result, you have to master them, too.
  6. Learn special area skills
    Every software is designated to provide service to its users on some area. For instance, Operating systems is an agent between computer(hardware only) and users(or applications), MSN is instant messaging tool providing communication across internet, MySQL is for database, Windows Media player is for music playing and entertainment, and games are for entertainment.
    You can see that all those six above items are essential to any computer software. We are software engineering and we are build software so we need to master them all.
  7. You are a solid programmer now
    If you have learned all of these, you are a solid programmer now. Keep going and some day you might be an expert on computer programming
===================================
On Dec 20 2009 17:08
===================================
The process of science breathrough into daily life applications
  So far, we human being have come a long way since the raw-meat-food dawn of human. We are so proud of our civilization and we enjoy a lot of our own wits. Science and technology are revolutioning our daily life day by day and new things which is to provide more convinience are coming much and much faster and faster. Every day you can see new techs on newspapers or TV ads. And every time you go to the mall you are dizzy seeing so many bewildering latest products.
  But, any process of creating those is not daily or weekly or monthly project. It takes years of hard work of scientists, engineers and technical workers. Many product was originated by an idea. Then scientists and engineers are trying to convert the idea into technical idiom and science project. Then they will try to implemnt it and make it from a fiction into real product. The product hides all the hard work and technical complexity from users. The users see only the brilliant idea of original designer. This is much like a circle. The primary designer want to creat something confirming some concepts, which the users will enjoy finally. That is why brilliant idea, some people said, is a brilliant product.
============================
On dec 25 2009 00:36
============================
Codes----read good codes, write better codes are the best to learn programming
  If you want to learn programming, if you wanna be an excellent programmer, you have to write great code. How to do that? Read more good codes and write more better codes. We cannot write good codes from the starting learning programming, but we can practice and learn to write better codes, gradually, we can write good codes. First, we have to know and understand what is good code and learn how to write good codes. The best way to learn how to write good codes is to read good codes and set them as your examples. So the question becomes where comes the good codes? Many or all opensource project or software, Java API, APIs, standard libraries and books are all reliable and stable source of good codes. Make best of them. You can write your version before reading them, then reading those good codes closely and make a comparasion. You will know your flaws and improve your codes. Then rewrite your previous codes. Now you are writing better codes.
======================
On Dec 30 2009 23:05
----------------------
Learn language independent things to improve yourself in quality
  When you are learning Java, you better learn OO, UML, Design Pattern, software engineering and Architecture. When you are learning C programming, you better learn Operating Systems, System calls, Computer Organization and architecture, Assembly and other low-level things. Because those extra things will give you a leap in quality.

你可能感兴趣的:(Math,assembly,basic,System,idea,OpenSource)