10 fun ways to program (for beginners)

When most of us are just beginning to program we can become intimidated with language syntax and logic. It seems the only way to learn is paging through daunting 300 page books and trying to think of somehow applying this stuff in our own programs…
Well learning to program doesn’t have to be intimidating at all, it can be down right fun if you‘re truly passionate about the code you write. That’s exactly what this article’s here for, to give you ideas for great projects that will spark your passion and skyrocket your skills in the fastest time.



1. Don’t switch languages or learn two languages at once:
With so many programming languages out there and people raving as to which programming language is “best”, you might be tempted to change the one you’re studying every week or try to learn more than one at a time. Not only is this a bad idea but it can get boring fast! How fun can it be, never mastering a language and never creating programs like the one(s) in your dreams? Once you really start focusing on one language (though it may take months) you will come to a point were you have the capability to accomplish many programming tasks that you set your mind to; you will even understand the logic of programming and be able to apply it while learning another language. Just chillax and the skillz will come.



2. Have any hobbies other than programming?:
Perhaps you play chess, piano, or w/e. Creating programs that compliment your interest in other areas of life are a sure fire way to have fun programming and accelerate the learning processes. As an example lets say you’re really into piano, in order to play piano most people need sheet music. Instead of having to go out and search through the internet for sheet music and having to organize it in a folder maybe you can write a program to do it for you. It’s not as hard as it sounds, and if you’re interested, it’s that much easier due to your initial whole hearted approach.



3. Make a game:
This ones a given. You like games, they like games, hell even I like games. So why not make your own? You’ve probably had ideas for games but never the tools to bring these to fruition. Making a game is relatively easy across a broad spectrum of programming languages, many have their own game libraries (like pythons pygame module). My advice is start out simple because simple, elegant, games can be just as fun as any self respecting xbox360 game (chess for example). This area really allows you to stretch your creative muscles as well; although opinion may differ, programming is an art form and like any other requires a certain amount of creative thinking to be successful.



4. Make an IRC bot:
Definition (wiki): “An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. An IRC bot differs from a regular client in that instead of providing interactive access to IRC for a human user, it performs automated functions.”
Both making an IRC bot and spending time on IRC are great ways for a beginner to evolve as a programmer while having loads of fun. If you’ve never heard of IRC before, it’s basically a place (chat client/server model) where many people knowledgeable in computers/networking/security (and many other areas as well) like to hang out. By using IRC you’re exposing yourself to a plethora of expert knowledge.. Given that you try not to seem like an idiot of course. An IRC bot is like any other user of IRC except they’re not human. An IRC bot takes commands/conditions and responds accordingly; you’ve probably seen bots at work before, they’re the ones that automatically ban fruit hats who think spamming is cool.



5. Make it personal/make your life easier:
One of the easiest ways to ensure you remain interested and have fun in programming is by taking tedious tasks you perform often, and automating them. By doing this you are making your life easier and programming will undoubtedly earn your respect. Say for example you usually rename your downloaded files in a specified directory every other Wednesday according to a preferred system (perhaps a file like “epic movie.avi” will be renamed “epic_mov45.avi”). Usually this might take you anywhere from 10 to 30 minutes (or more) depending on how many files you’ve downloaded in the last two weeks, however after making a program to automate this task it will take less than a second!



6. Develop for other people:
Making programs for people other than yourself often rewards us with a sense of importance. Not only does it feel good to write software that other people use, you will gain many valuable programming related skills such as version control and writing program documentation. This is a great chance to get real world experience. Perhaps you can find a local non profit organization that would welcome programmers willing to work for no charge; maybe it would make your friends, family, or collogues lives easier if you automated a task for them. If you’re interested in working with other people, you might even want to check out preexisting open source projects. The experience will be rich and exciting, especially the first time you try it.



7. Have a robot do your math homework:
Okay maybe not a robot with moving arms, but you can still write programs that automate an extensive portion of the work you have to do assuming you’re a high school student. Teachers have a tendency to assign a crap load of homework and somehow retain the ability of teaching nothing at the same time. Obviously it would be beneficial for you to write programs that solve trivial homework stuff such as formulas so you can spend more time learning real math elsewhere.



8. Choose a fun programming language:
This one’s a little ticky; there’s no hard and fast rule as to which programming language is the most fun or even more fun than others. However there are certainly programming languages which are hardly fun at all! So in this case I will Simply list a few of the languages I’ve heard are pretty fun:

LUA
Python (I use this one myself)
C/C++
Perl
Before you begin learning a language seriously, it’s essential that you choose a language you’re going to enjoy for the long haul (because it could take months or years before you “really” learn it). This helps ensure that you remain interested and experience minimal frustration.



9. Make a virus:
Alright this one might be the reason you wanted to learn programming in the first place. Everyone has a bit of a dark side, and making a virus can be a really fun way of expressing it. If you choose to make a virus you should know that it’s illegal to test it on any system other than your own (using virtual machines are a great idea for this) and you really shouldn’t have any malicious intents either. Writing viruses are illustrative in the sense that you will closely be working with your targeted operating system and the system library for your language (many have one). I suggest that you don’t attempt this one if you’re not smart/stable enough to be responsible for your actions, otherwise you’re going to be sorry.



10. Project Euler:
Last but certainly not least is Project Euler! I personally find this to be one of the funniest ways to apply my programming skills above all else. Project Euler is a website that poses problems that you must solve using any programming language (or even paper and pencil if you’re up to it) and a bit of math know how. Project Euler can be frustrating at first (especially if you’re not a very experienced programmer or you lack in math ability) however if you press forward I can guarantee the rewards you earn will outweigh any and all frustration you come to face. After solving a respectable amount of problems (~25) you will probably be an exceptionally better programming (and even math). You don’t have to take my word for it though, check out http://projecteuler.net and remember to have fun :}


reference: http://packetfire.org/content/10-fun-ways-program-beginners