views:

111

answers:

6

My problem is that every time I hear about an interresting programming language (Python, Ruby, Processing) I'm very excited, I read some tutorials (maybe even a book), I understand the basics, but I can't go beyond that. I think I never really wrote a full program (a useful one, not the basic fibonacci, sorting ... stuff). I have a lot of good ideas, but I just can't get from learning a programming language to actually using it. What was your first serious program, how did you solve this problem (if you ever encountered it), what would you recommend I should do ?

+8  A: 

One option is to find an open-source software project in your language of choice that interests you, and contribute to it. This has the advantages of:

  • definitely qualifying as "real-world" programming
  • having a structure already in place, so you don't have to conceptualize everything yourself
  • having other developers that you can bounce questions and ideas off of
  • giving you experience understanding and working with others' code
  • actually being beneficial to the community as a whole
Amber
Even doing testing, or writing documentation for an open source project is a good start. You're exposed to how things are done, how people communicate and solve problems, etc. Actually writing lines of code is only a small part of being a successful developer. Good answer. +1
Charlie Salts
Terrible answer. someone who has never written a single real program of his own is going to contribute to a FOSS project? Get real!
anon
Crazier things have been known to happen. Why not be constructive as opposed to just shooting people down?
Amber
Must every post be "constructive"? I personally try for "truthful" and "realistic".
anon
+1  A: 

My first serious programming if you don't consider College work serious :) was at my first programming job.... However, it sounds like you are not working in programming yet so I would recommend looking into open source projects. First to read and learn from how real world apps can be written and second to participate in them to get first hand experience in doing it on something that is actually going to be used by others. It's also potentially a great way to receive mentorship from other developers.

klabranche
+2  A: 

"Real world" programming is largely a concatenation of tutorials. If you can work your way through simple exercises, you can probably write a large application -- though, slowly.

The most important thing about development is knowing what you want to develop. If you've got some solid idea of what you want, then just build it bit-by-bit until it does everything you want.

For example, consider a TODO list. First you'll need some way to store TODO items, then a way to mark them complete. Perhaps next you'd add priorities, or deadlines, or dependencies. Each step is an evolutionary modification to the existing code. If you start out trying to write a web browser, you'll fail and feel bad, but writing small applications is a great way to get started.

John Millikin
A: 

My First Real Program was creating a Wordpress Theme from Scratch. I honestly don't think that Wordpress counts as PHP, because its basically copy and paste tags from the documentation.

I found that if you get involved with a group of people that actually need the ability you have (in my case PHP), you are almost pushed to apply it, which I found to be immensely helpful. Because of the people that I blog with, I have written numerous applications that have become really helpful.

Plus, by having people that use your creations, you are able to feel very proud about your work, while also seeing the bugs and things you could fix.

Chacha102
+1  A: 

I think it's important to build something that you find interesting or a problem you want solving. Choose a language and framework with an active community for support.

I generally find Google has most of the answers. But a lot of the of knowledge is comes from building something yourself and is acquired by experience.

Tutorials can give you the edge in the real world :D

Chalkers
+2  A: 

Find an itch, then scratch it!

What I mean by that is: if you pick a random programming project just for the sake of trying out a new language, you might not be motivated enough to see it through to a finished product. But if you pick a project that's personally interesting to you, maybe something related to a hobby or interest of yours, the end product will be useful to you in its own right, and you'll be more motivated to finish it.

Are you a photographer or visual artist? Maybe you could write some image processing and manipulation tools. A musician? Write a program to identify a chord from the note names or vice versa. Hanging out on StackOverflow all day? Write a browser extension that does something you'd find useful.

Jim Lewis