How To Improve Programming Skills

List of contributors:

-- KrisJohnson -- ChristopheThibaut -- KatieLucas -- PeterAxelsson -- EricHodges -- VhIndukumar

plus some anonymous


Practice


Refactor


Design


CodeReview


Learn from good programmers


Broaden your horizon


Read


Learn the ProblemDomain


Reflect


Keep a Journal

See IsAnythingBetterThanPaper CollectingSeashells


These are all good points, really, but I fear most of the programmers out there are supposed to get things done under deadline, aren't they? -- LarsReineke

"Can we do it wrong if we get it done really fast?" (DilBert) -- JamieFristrom

"If a program doesn't actually have to work, it can meet any other criteria." -- GeraldWeinberg

See SharpenTheSaw

"Sorry, boss, I couldn't finish my code on duty, cause I wanted to improve the already running stuff and rewrite it in RubyLanguage, to see if I can improve my skills." (Don't take it too serious, please.)

You can't get better without doing some additional work. That's just how things are. If the boss doesn't provide time on the job for learning, and if you are not willing to devote your personal time to it, then your skills are not going to improve. (I know this may seem to be pointing out the obvious, but too many people are unwilling to accept it.)


Who said that you should improve programming skills only at the workplace? Is the workplace even suitable for cultural improvement of any kind? Of course doing a lot of reading seems to be frightening. Do less of something else (except programming). As to productivity at the job: since you're getting better at it you should not stay too long in situations of pure emergency. Sometimes there are orders of magnitude between the time it took you to do one thing, and the time it takes you after having learned and practiced a programming topic. Example: RegularExpression. -- ChristopheThibaut


Improving skills usually enhances productivity. If your organization doesn't provide for skill improvement, you should ChangeYourOrganization.


Learn the technologies used in or related to your current projects, and learn them much more broadly and deeply than strictly necessary for the job. This way, you can immediately put your newly gained knowledge to work, which helps your motivation, and helps you to understand and remember what you learn. Personally, I'm willing to spend extra time on the job to make up for the time "lost" learning. But if afterwards the learning effort should turn out to have immediate, concrete benefits to the project, I put the time on the company's/customer's bill with a good conscience. -- FalkBruegmann


The previous night of playing SidMeyersAlphaCentauri with the SignificantOther into the early morning hours reminds me how important it is to SleepToWork.


CategoryEmployment


EditText of this page (last edited June 12, 2013) or FindPage with title or text search