又是转载的,谢谢原作者哈!!
“The goal of this guide is to be the easiest and funnest way for a beginner to get started programming.”
Read more: Learn To Program – Beginner’s Guide
“To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one’s coworkers and customers. Writing computer programs is important and takes great intelligence and skill.
But it is really child’s play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible.”
Read more: How to be a Programmer: A Short, Comprehensive, and Personal Summary
Read more: How to become a good developer? – Gunnar Peipman’s ASP.NET blog
Read more: The Top 10 Attributes of a Great Programmer
Read much more here: What I wanted to know before I left college: A programmer reflects
Also learn answers to these questions:
Read more: Programming FAQ
Learn more: 10 Object Oriented Design Principles | Livrona
“The older I get, the more I believe that the only way to become a better programmer is by not programming. You have to come up for air, put down the compiler for a moment, and take stock of what you’re really doing. Code is important, but it’s a small part of the overall process.”
“To truly become a better programmer, you have to to cultivate passion for everything else that goes on around the programming.”
“The nature of these jobs is not just closing your door and doing coding, and it’s easy to get that fact out. The greatest missing skill is somebody who’s both good at understanding the engineering and who has good relationships with the hard-core engineers, and bridges that to working with the customers and the marketing and things like that.”
Bill Gates, remarks, 2005
Read more: How To Become a Better Programmer by Not Programming
“If you want to be a top-notch programmer, you can no more afford to ignore the C and C++ languages than a civil engineer can afford to ignore the difference between a plumb line and a snap line, a right angle and an oblique one.”
Read more: Learning To Drive a Stick Shift – Coding the Wheel
“Learning Python taught me the value of programming at a higher level. Things like using boost::signals to break up dependencies; boost::bind and boost::function to use functions as first-class objects; boost::foreach to separate iteration from the algorithm; boost::any for generic data types; and much more.”
Read more: How learning Python made me a better C++ programmer | The GITS Blog
Read more: 10 Programming Proverbs Every Developer Should Know
“Aside from the invention of the computer, the routine is arguably the single greatest invention in computer science. It makes programs easier to read and understand. It makes them smaller (imagine how much larger your code would be if you had to repeat the code for every call to a routine instead of invoking the routine). And it makes them faster (imagine how hard it would be to make performance improvements in similar code used in a dozen places rather than making all the performance improvements in one routine). In large part, routines are what make modern programming possible.”
Read more: Why You Should Use Routines, Routinely.
“Good programmers — regardless of whatever language they happen to be working in — understand the importance of crafting each routine with the utmost care. The routines in your code should be treated like tiny, highly polished diamonds, each one more exquisitely polished and finely cut than the last.”
Read more: The Greatest Invention in Computer Science.
“We tend to look at software estimates as successive hundred yard dashes instead of a long distance race. It allows a client to pick out just what they want built, while using their line item veto on tasks they don’t want to do. But this assumes that you can break a software system down into features that have no interactions. A series of silos, though, isn’t an accurate description of software. There’s interactions between features, and rarely do you see estimates take that into account.”
Read more: RossCode.com – The Art of Software Estimation
“The problem with patterns, best practices and idioms is the overuse of a single principle. Regardless what you are considering: overuse of DRY can lead to “fat” layers and classes, overuse of Separation Of Concerns to many fine grained units, overuse of modularization to jar, plugin or just governance hell. Common sense and the balance between concepts and idioms are the solution- but it’s hard to find in real world .”
Read more: Adam Bien’s Weblog : Weblog
“Your application is useful and popular. Your users love it. Your users love you. But over the next week, something curious happens. As people use the application, it gets progressively slower and slower. Soon, the complaints start filtering in. Within a few weeks, the app is well-neigh unusable due to all the insufferable delays it subjects users to– and your users turn on you.”
Read more at Everything Is Fast For Small n.
Also the article covers signs that you are a mediocre programmer and that you shouldn’t be a programmer.
Read more: Signs that you are a bad programmer (Bad Programmers)
“When we build our applications, we have to decide what foundation (or platform) to use, and those decisions are not at all simple. In fact, these technology choices can be so difficult that you don’t have to be “foolish” to earn bad results. Many a wise man has watched his software product floating away in the floodwaters after a big rain.”
Read more: Be Careful where you Build
There are several reasons to work with a framework for a business:
There are 3 reasons why developers benefit from frameworks, too:
Read more: should you learn a framework? Yes!
“Just because it’s cleaner to do something in Perl does not mean that it’s right. Nor does it mean the solution we had was “bad”.”
Read more: Being a Better Programmer #2: Don’t Be a Missionary | Javalobby
“As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for breaking these laws; rather, there is often a reward.”
Read more: 21 Laws of Computer Programming
“You may be thinking in starting programming something, for work, for your studies or as a hobby. You may also have a software project that is quite successful, but need to go beyond.
This list will help you to reach what you need.”
Read more to learn how: 50 Ways To Improve Your Software Project
“Huge collection of Computer Science Video Lectures from Universities like ADUNI ,MIT, Washington, Berkeley, IIT, etc”
Read more: LinkMingle.com > 30+ List of Computer Science Video Lectures (Over 200 Videos)
“we use search we should make effort to expand all types of knowledge instead of just solving particular problems. It will pay off with enhancing ability to solve much more advanced problems and becoming even more effective programmer.”
Read more: Software Creation Mystery > How to use search skills to become an effective programmer
Read more: Ten commandments for developers > DamienG
Read more: Top 10 Concepts That Every Software Engineer Should Know
“I am a great believer in not ‘re-inventing the wheel’ and now encourage in others to get out of the habit of thinking ‘I can make a better what-ever-it-is”.
Read more: How to be a better programmer – What is this Tech?
Read more: Seven practices for healthier, faster software development
“Modeling is frequently used in certain software development domains to help verify the design of software, both formally and informally, before implementation starts.
One of the reasons that this approach hasn’t caught on in the programming community at large is that it slows down development and increases the overall cost significantly. You have to maintain separate artifacts that contain largely the same information: the source code and the model. Finally models are often ignored after implementation starts.
This is well-known in the modelling community as the Achilles heal of modeling. Nonetheless modeling is still important enough for creating correct and robust software that it is widely used in many software projects where robustness is important.”
Read more: The Future of Programming includes Modeling
If a non-developer gives you a technical task for you to programm, ask “Why?”. It might happen that the result that the client/manager wants to get can be achieved with much less effort.
Trying to understand how things work and asking people for more information definitely helps, too. (Thanks to Wade Wilson via DZone for the tip.)
“The more you know about your co-workers, the more you’ll understand the puzzle. The more you understand the puzzle, the more indispensable you become.”
“Justice Gray and Bill Simser asked folks ‘What are you doing for the next 6 months to be a better developer?’ In this episode, Scott and Carl kick the question around.”
Read more: Hanselminutes Podcast 72 – Be a Better Developer in Six Months
Read more:
Thanks to: Particletree > Becoming a Better Programmer
Perhaps, you’ll find these gems of wisdom from the members of Digg helpful, too.
“Generally, that’s how long it takes to become an “expert” at any complex task (but only if you are effectively making an effort to improve)”
Read the tips from DonPMitchell in more detail.
Read the tips from fenris6644 in more detail.
There are as many opinions on writing code and commenting as there are developers. Learn their opinions and form your own.
“While comments are neither inherently good or bad, they are frequently used as a crutch. You should always write your code as if comments didn’t exist. This forces you to write your code in the simplest, plainest, most self-documenting way you can humanly come up with.”
“When you’ve rewritten, refactored, and rearchitected your code a dozen times to make it easy for your fellow developers to read and understand — when you can’t possibly imagine any conceivable way your code could be changed to become more straightforward and obvious — then, and only then, should you feel compelled to add a comment explaining what your code does.”
Read more:
“The only “comments” guaranteed to be accurate 100% of the time– and even that is debatable– is the body of the code itself. Endeavor to write self-documenting code whenever possible.”
Read more: Coding Horror: When Good Comments Go Bad
Learn how to cope with the excuses: Common Excuses Used To Comment Code and What To Do About Them
“I often find that code I’m maintaining is missing comments regarding the business logic. Rather than “Why is the code designed like this?”, something like “Why is the business process designed like this?”
This becomes most useful when you look at unfamiliar code (your own, probably) and decide that the easily-digestible code is nevertheless doing something you are sure is silly, and you change it. Big mistake.”
Read more: Code commenting? Try Business Commenting.
Read more: 6 tips to make your fellow coders love you
“..somehow you look at your code and you say, “I understand how to write tests for your code, but my code is different “. Well your code is different because you violated one or more of the following things.”
Learn more: Top 10 things which make your code hard to test | Misko Hevery
Learn more: 5 rules of variable naming.
Read more and learn what makes good documentation: Why you really, *really* should document your code properly, inside and out
One thing is to know the functions or application structure, but there are things that can help you work more efficiently.
Read more: 10 Ways to Improve Your Programming Productivity – Articles – Matthew Moore
Read more: 10 ways to increase the productivity of your programmers | 10 Things | TechRepublic.com
“What it will help you with is building the kind of foundational skills and ways of thinking that make it easier to learn about the new and flashy things because you’re not wasting time in other areas.”
Read more: The Productive Programmer | Book Zone, discuss at the “Productive Programmer” wiki.
“Starting programming or simply refining your work flow can be a daunting task. Everyone has their set way of working and it’s the way that works best for them. This is a list of suggestions that can help coders of all levels and languages.”
Read more: Beginning Programming Productivity Tips
Read more: 11 Tips to make you more efficient
“It may seem hard to believe that working at your desk can cause you long term harm, but unfortunately the real toll of sitting in the same location and doing the same operations over and over again may not be felt until it is too late.”
Read more: 7 Ways to be a healthier programmer
“I have found that programmers who are willing to crack this social code with their soft skills, are often the very same geeks who end up in leadership positions, or who start their own company. I can say without question that it is not my ability to decipher collaborative filtering algorithms that has brought me the most success, but it is the soft skills that continue to generate interest with employers. This was a difficult realization, but one that I have come to accept and embrace.”
Read more: d’bug > Blog Archive > Soft skills for the programmer
Read more on what others learn from creative programmers: Creative Code: 14 Ways to Learn From Creative Programmers
“This software developer does not have a detailed list of all the things he needs to do. Which means, despite adamantly claiming that he is 99 percent done — he has no idea how long development will take! There’s simply no factual basis for any of his schedule claims.”
Read more: Coding Horror: On Our Project, We’re Always 90% Done
“Over the past couple of weeks I have been trying to find out what the main principles of time management are in the case of agile software development. I was able to distinguish 10 principles so far, and I will present them here for your convenience.”
Read more: 10 Principles of Agile Project Time Management
Read more: Programming Skills vs Life Skills.
“You might have all the time in the world to work on your game and you just don’t feel motivated enough to work. When that happens, you might need some tools to be productive.”
Read more: 14 Ways to Motivate Yourself
Read more: Becoming a Better Developer
“The huge demand for developers, coupled with the relative youth of our industry, has created hordes of developers who simply don’t understand what they are doing. They do not understand how computers work, or how a compiler works. They use dictionaries and stacks all the time, but they don’t understand that these are classic data structures, and not something that Microsoft just made up. And the problem isn’t that they don’t know these things, it is that they don’t want to know these things.”
Read more: Being Smart Does Not a Good Developer Make
“In fact, after browsing chairs for the last few years of my career, I’ve come to one conclusion: you can’t expect to get a decent chair for less than $500. If you are spending less than that on seating — unless you are getting the deal of the century on dot-bomb bankruptcy auctions — you’re probably making a mistake.”
“Choice of seating is as fundamental and constant as it gets in a programming career otherwise marked by relentless change. They are long term investments. Why not take the same care and consideration in selecting a chair as you would with the other strategic directions that you’ll carry with you for the rest of your career? Skimping yourself on a chair just doesn’t make sense. “
Read more:
“To Mr./Ms. Pessimism new ideas and new thinking are “yet another thing I have to learn”, rather than a chance to improve one’s self and challenge one’s own assumptions. If left unchecked, such negative attitudes can result in the team member sticking their head in the sand in hopes they can avoid learning anything at all.”
Read more: Negative Attitudes are a Cancer to Successful Teams
“Great clients are worth their weight in gold and over the last few months I’ve been fortunate to work with a couple who are top drawer. Such clients bring interesting challenges to the table. Challenges that stretch the team yet produce a solid, satisfying result.”
Read more:
“In the long run, what do great clients need? Do they need simple implementers that can get menial tasks done quickly and cheaply, or do they need long term, stable and reliable web development experts that can get the job, however great or small, done right the first time? Well, there are plenty of clients out there of either kind, but we aim to serve the latter group.”
Read more: Accurately Scaling Services and Pricing
Read more: 101 Ways To Know Your Software Project Is Doomed
“Bosses: You can’t live with them, and you can’t live without them. Like it or not, most of us must deal with a boss, and the way we do so affects not just our career advancement and our salary, but also our mental well-being. Here are some tips on how to get along better with your boss.”
Read more: 10 ways to work better with your boss | 10 Things | TechRepublic.com
Read more: David Siegel – The Plenitude of Arboreal Beauty – 5 Rules I Had to Break to Create a Senior Project that Rules
Read more:
Learn how to dress up: Metrosexual Developers
Regardless of the state of the economy, companies still need developers. And a good developer is a developer with a job, no matter, if inhouse or freelance.
Here are some tips on how to get a good development job.
“To me, one of the most important parts of a job is the fact that you should enjoy doing it. If you do the math, you’ll quickly realize that you’ll spend somewhere around half of your active adult life at your job, so you might as well try to make the most of it. If you’re unhappy or frustrated at your job, you’re essentially wasting a large part of your life so you’re better off trying to find something that you actually enjoy doing.”
Read more: Career Advice For Young Developers
Since you have your own unique set of abilities and skills and the company you want to work for has its situation, you’ll be able to get a fairer salary, than, if you had one in mind.
Nick Corcodilos, the IT hiring expert and the owner of AskTheHeadHunter, advises IT jobseekers:
“You should never, ever, ever divulge your prior salary to any employer. Because as soon as you do, you destroy your ability to negotiate. It’s the equivalent of inviting your prospective employer to judge you by the standards of your last job. Which is utterly insane.”
Read more:
Read more:
Read more:
Read more: The Best States For Tech Jobs–And The Worst – Forbes.com
Read more: Technology: It’s Where the Jobs Are (June 2008)
Learn more: Lifehacker’s Guide to Nabbing the Job You Want.
“It doesn’t matter where you look, you’ll get to know over time hundreds of people working as programmers for those corporations and it’s very, very rare to encounter someone who really has a clue about what he’s doing.”
“Wouldn’t it be great to employ the master/apprentice model known since the middle ages? Why do we allow inexperienced people to mess around with the most important thing in software, which is the code? I think a well motivated apprentice working alongside with a good master will evolve into a true master himself over the years.”
Read more: What’s wrong with software development in large corporations – Stephan Schwab
“Technology tends to separate normal from natural. Our bodies weren’t designed to eat the foods that people in rich countries eat, or to get so little exercise. There may be a similar problem with the way we work: a normal job may be as bad for us intellectually as white flour or sugar is for us physically.”
Read more: You Weren’t Meant to Have a Boss