1. Learn the Skills You Need
-
Learn the programming basics
“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 -
Get a complete understanding of programming
“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 -
Remember these 9 principles to become a good developer:
- Attitude
- Read the books
- Code! Code! Code!
- Try out tools and utilities that make your work easier
- Try out new technologies
- Look how other guys develop systems
- Everything that shines is not gold
- Participate in communities
- Visit technology events
Read more: How
to become a good developer? – Gunnar Peipman’s ASP.NET blog -
Know what makes a great programmer:
- Being a great problem solver.
- Being driven and lazy at the same time.
- Ability to understand other people’s code
- Having a passion for programming
- Loving learning for the sake of learning
- Being good at math
- Having good communications skills
- Strong debating skills
- Extreme optimism
- Extreme pessimism
Read more: The
Top 10 Attributes of a Great Programmer -
Learn what really matters in programming
- Work with other OSes
- Research classes and internships more
- Consider taking the SCJA or SCJP exams
- Connect with more people
- People in the workplace seemed more easygoing than I would have thought and socialization (face-time) is an important part of working
- Company/workgroup attitude is the most important factor in how much I succeeded in my work.
- The best job is not usually the best-paying job
- Consider blogging and/or mentoring
Read much more here: What
I wanted to know before I left college: A programmer reflects -
Use the advice from Paul Graham:
-
To start with, read Appjet’s
guide to learning to program - start thinking about specific programs you want to write
- don’t start with a problem that’s too big
- Initially your programs will be ugly
- you’ll find it useful to look at programs other people have written. But you’ll learn more from this once you’ve tried programming yourself.
- find friends who like to write programs
Also learn answers to these questions:
- Why do you advise plunging right into a programming project instead of carefully planning it first?
- Why do you keep going on about Lisp?
- Isn’t object-oriented programming naturally suited to some problems?
Read more: Programming
FAQ -
To start with, read Appjet’s
-
Remember the 11 object-oriented programming principles:
- Open closed principle
- Liskov substitution principle
- Common reuse principle>
- Interface segregation principle
- Stable dependancy principle
- Acyclic dependencies principle
- Common closure principle
- Stable abstraction principle
- Release-reuse equivalency principle
- Dependency inversion principle
- Single responsibility principle
Learn more: 10
Object Oriented Design Principles | Livrona -
Learn programming by not programming
“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.”Read more: How
To Become a Better Programmer by Not Programming -
Learn C/C++ no matter what your main language is
“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 -
Try Python to learn to code at a higher level
“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 -
If 11 object oriented design principles weren’t enough, remember the 10 proverbs every developer should know:
- There’s no smoke without fire.
- An ounce of prevention is worth a pound of cure
- Don’t put all your eggs in one basket
- As you sow, so shall you reap
- Great haste makes great waste
- Look before you leap
- When the only tool you have is a hammer, everything looks like a nail
- Silence is construed as approval
- A bird in the hand is worth two in the bush
- With great power comes great responsibility
Read more: 10
Programming Proverbs Every Developer Should Know -
Master the use of routines to:
- reduce complexity
- avoid duplicate code
- reduce the effect of changes
- hide sequences
- improve performance
- hide data structure
- hide global data
- promote code reuse
- plan for a family of programs
- improve readability
- improve portability
- isolat the use of nonstandard language functions
- isolate complex operations
“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.”