3 Replies - 2346 Views - Last Post: 03 January 2012 - 10:44 AM

#1 waleed95  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 19
  • Joined: 15-December 11

What are Skills Every Good Programmer Should Have?

Posted 03 January 2012 - 05:38 AM

Hey guys, I'm not that new to programming, I've been doing it on and off for a year. But recently I decided that I want to hone my skills. So I came here and went through the different subforums. I noticed that there are a lot of things I have never even heard of. So my question is what skills should a programmer, software engineer, know? I'm in 11th grade so I really want to be a decent programmer by the time I get to college. Thanks a lot guys!

Is This A Good Question/Topic? 0
  • +

Replies To: What are Skills Every Good Programmer Should Have?

#2 Gavisann  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 103
  • View blog
  • Posts: 382
  • Joined: 01-July 11

Re: What are Skills Every Good Programmer Should Have?

Posted 03 January 2012 - 06:53 AM

Well it depends on the language you are learning, but the most generic requirements I can think of are problem solving skills and patience.
Was This Post Helpful? 0
  • +
  • -

#3 jon.kiparsky  Icon User is offline

  • Pancakes!
  • member icon


Reputation: 7564
  • View blog
  • Posts: 12,681
  • Joined: 19-March 11

Re: What are Skills Every Good Programmer Should Have?

Posted 03 January 2012 - 09:10 AM

Quote

the most generic requirements I can think of are problem solving skills and patience.


So if you're planning on becoming a good programmer in the next year, you need to work on at least the latter. :)


Not knowing what languages you work in or what sorts of problems you like to solve, it's hard to say anything beyond the generic, but it can never hurt to study math and formal logic. You might not use the subjects directly, but the mode of thought is the same, so it'll help. You want to be able to think in multiple abstractions. Dover has reissued Raymond Smullyan's work, so you can get classics like What Is the Name of This Book for cheap - great fun, and good exercise for the brain.

Direct practice in programming is useful, of course. Solve Euler Problems. Reinvent wheels. Write the basic data structures in whatever language you're using. When you've done that, write some basic utilities. Figure out how to parse XML, make a simple text editor, make a Othello (Reversi) game. Come up with a backgammon, and try to write a good strategy for it.

If you're in a language with good library support, explore the libraries and come up with ways to exercise them. Figure out what you have at your fingertips already. If your language's libraries are open, find the source and figure out how the libraries work. Why did they do it that way? Why not some other way?

When you feel comfortable writing in one language, learn a different one. Try to make it different enough to learn something from it.

Look up the undergrad CS track at your local college. What courses does a first-year student take, and what are they expected to know? Can you learn some of this stuff on your own?

Look at MIT's open course offerings - the Sussman and Abelson SICP course is a classic, and both course and text are on line for free. If you want to learn some scheme, this is a good way to do it.


There's a few things off the top of my head. Mostly, if comes down to: find things to learn and learn the hell out of them. What they are is up to you.
Was This Post Helpful? 1
  • +
  • -

#4 ForcedSterilizationsForAll  Icon User is offline

  • D.I.C Addict

Reputation: 33
  • View blog
  • Posts: 506
  • Joined: 16-July 09

Re: What are Skills Every Good Programmer Should Have?

Posted 03 January 2012 - 10:44 AM

You need logic. The language you use doesn't matter as much as you would think (it's simply a tool). You need to be able to understand the problem and how to solve it in a psuedo-step-by-step method.

Some good practice for this is to think of a repetitive/difficult task and how it could be made easier. Maybe something to rename all the files in a directory to something more generic and numbered (for your "photos").

Maybe you want to catalog all your "photos" or music. You need to work out what you'll need to do this (steps, features, etc). Then you'll pick the tool that best fits (aka which programming language to use). Then you can begin.

A good programmer should be able to accomplish the task in a multitude of languages (some are obviously better suited for certain tasks than others) as the logic should be the same even though the syntax is different.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1