Slashdot Mirror


'I Know How To Program, But I Don't Know What To Program' (devdungeon.com)

An anonymous reader has shared an interesting article that talks about one of the most common challenges faced by novice developers: "I know how to program, but I don't know what to program." The author of the article also shares his views on some of the most common solutions for that problem: "do programming challenges", "contribute to an open source project", or "make a game." From the post: Doing programming challenges is good mental practice, but they do little to help someone learn how to create a new program. Contributing to an open source project is a step up. You might learn about how a real project is structured and improve your skill with the programming language, but you won't learn much about the full lifecycle of a project. Some projects are very complex too which can be intimidating for a novice. Making a game is another step up. Games are fun! I started by programming games in QBASIC. The same dilemma arises though. "I want to make a game, but I don't know what to make." The author advises these beginners to try rewriting a library which already exists (despite this being considered as a prohibited practice by many). Developers should also not wait to get the "best idea" before they begin writing it, the author adds. From the post: I've seen the same mentality with musicians. Trying to create a masterpiece on their first attempt, putting all their energy into one song and not seeing a bigger picture. The bigger picture being, you will write LOTS of songs over time, not just one!

2 of 255 comments (clear)

  1. Re:solve a small problem by mrchaotica · · Score: 3, Informative

    Find a small problem that you are in fact facing in your day to day life, and write code that would solve it.

    All my (computing) problems are either big or already solved. : /

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  2. Re:This by unrtst · · Score: 4, Informative

    Another slight twist on this is to manually port a library or solution to a different language (which I think the GP hinted at with his work with the STL).
    There are loads and loads of options here:
    * take something from CPAN and bring it to Python or Ruby or PHP etc
    * take small-ish C / C++ programs and port them to Rust
    * take any well known algorithm and try to write it from scratch, maybe in a language where it doesn't fit so well (so there are no existing dupes)
    * update/upgrade/port features from "standard" libs in more popular languages to less popular languages (ex. I brought most of the latest greatest features for memcached libs to the perl library - though I don't think they ever made it to CPAN, they're on github). This can actually help multiple communities if those are now more feature compatible.