My experience with Python and C so far


I started Python on 18th May 2013 after I discovered that doing project euler problems via C(my primary language) wasn’t easy for me. Using Python doing those problems were quite easy. I started neglecting C and went ahead with Python with zeal. That has been helpful as using Python I have been able to solve 59 problems on project euler so far.

My project Euler progress so far.

Using C I went ahead to solving problems 11 and then felt discouraged. Maybe I wasn’t focusing on the logic so much.

By Python I have been able to do some things that I couldn’t do using C. Like making solutions easily to some problems. Using scripting in Python I found out that looking into files, copying them and many other things can be extremely easy.

  • I wrote scripts for finding whether I had done a particular thing in C but not in Python and vice versa. I arranged the files in folders for using this script but organizing code is always nice.  What was taking me a lot of time manually now can be done by a simple double-click now.
  • Writing a lot of functions in a single file was starting to be confusing. I wrote up a script for finding the function signatures. Took out a lot of confusion.
  • Check my github repo if you want to have a look at any of these scripts/

I am thinking about breaking down the file containing all the functions into many different files. That is the only way to go forward if I want to keep writing. Then I am thinking of making a GUI that I can use to separate all the functions by tags. I don’t know much how to do that as of now but I think I’ll use wxPython but that isn’t final.

I found that there are always a lot of new things that can be learned in programming and that stackoverflow can be a great resource. Check out my list of favourite questions and my own questions on stackoverflow. Maybe you’ll find something that you are looking for.

I have found out that using online judging can be a great thing. I have been using codechef for practicing C and Python. By using this I discovered that I will need to learn many algorithms and that there a lot more things to learn in any programming language that I choose to learn. It has been really helpful and the community is good. I started reading other people’s code thanks to codechef and stackoverflow. It has been helpful to me. I discovered that I can discover many different ways of doing things by looking at other people’s code. I initially joined github for the the same reason – looking at other people’s code. But I discovered that looking at other people’s code also helps if there is a large vvariety of code and their time and memory usage is available.

I  tried spoj for 2-3 days. I think there are more problems for practice than on codechef but I will need to learn more algorithms before I seriously try to solve them.

Solving codechef’s problems I discovered that the simple program of factorial that I usually wrote in C wouldn’t work even for factorials of 100. I later found out a way to calculate factorials of any number. It will be needing some polishing and final touches but I found a way.

I have placed Python on hold for past few days. I use it now and then but I am shifting focus back on C. I have started the MIT’s course Introduction to algorithms whose I have placed with a lot of other programming links. It is nice. I have finally overcome my fear of sorting algorithms. They are kind-of-basic things in programming but I couldn’t do them properly. While using linked lists, stacks etc. was something that I could do sorting was difficult for me. But now I am able to write insertion sort, selection sort, bubble sort and merge sort easily. Reading Cormen’s Book of algorithm is a challenge that I have taken up. It is more than 1300 pages book so it is a huge challenge but I believe that it can bridge a lot of gaps in my knowledge.

Using codereview is helpful. It helped me in changing a lot of formatting problems and bad coding practices that I was using. I have decided to get code reviewed for all algorithms that I use. Writing review is helpful. Looking up someone’s code and trying to give suggestions is good as experience.

I have some things to do this week. I’ll try to do programming in spare time. I’ll keep my focus on C and learning algorithms. I believe it would be helpful in the long run.

Advertisements

A lot of links for learning, practicing and other things related to programming


I thought today that I had a tough time finding appropriate links to learn programming so maybe everybody else who is learning may be having a similar problem. I decided to make a page containing a lot of links for everything related to programming – learning new languages, practicing etc.

It’s a work-in-progress but I already put many links to huge lists of links. Check it out.

Finally getting a hang of codechef Judging


My exams are nearly done and I am finally starting to understand the codechef Judging. I was messing up my submissions and in some cases I simply needed a better algorithm. I solved some practice problems and even two of the June Challenge 2013 problems. Here’s my profile showing solved problems.

As I have solved 2 of the 10 problems I’ll finally be getting ranks for competitions for which I have been waiting for quite some time. I uploaded the solved practice problems on github, will upload the competition solutions after the competition is over.

I have been continuing to solve Project Euler problems. Reached 45 problems

When I was solving the codechef problems I realized that I’ll be needing to do much practice before I’ll  be able to solve all the problems. I will also need to read the Python documentation completely. I didn’t knew that some tools existed. So I’ll start with going back to Python documentation. Stackoverflow helped me a lot to solve the practice problems.

Been following project euler, started codechef problems


Project Euler

It’s been some days since I wrote last here. My exams started so I stopped writing on the blog. I have been doing problems of project euler. Completed 25 problems although not in sequence. I uploaded all in the Python repository on Github.com. Following the tutorials provided by Python.org I have been able to optimize many functions that I have been using. I have been doing this in spare time during exam preperations.

Codechef.com

I started using codechef.com for practice. It contains a lot of practice problems. I have done a few problems. It’s taking me some time understanding why certain test cases are failing as it’s my first time with online judges.

Python Challenge

It does not seem like it will lead to much progamming practice. This is starting to seem like trick questions instead of much programming.

Started project euler by Python


Started a git repository today for the solutions of Project euler by python. I am using codeacademy for learning python. It seems to be good for basics but I have the feeling that it won’t be good enough for learning Python properly. Project Euler and python challenge should give me the required practice. I’ll am looking for other problems for practicing Python. If anyone has any suggestions please drop by.