Sunday, June 26, 2011

Digest: TopCoder, Python and other stuff

Hi all! This blog post will be in form of a digest just to summarize all that I had to post in last two months:)

"Welcome back to TopCoder" or "TopCoder: go up, go down". Recently I considered to resume my activity at TopCoder in those tracks that I've participated before. While unfortunately I didn't manage to code some TC component due to lack of free time, I participated in both algorithm tracks - SRMs and Marathons. Actually second part of this paragraph's header is related to my Algorithm's rating :) Just look at it. I managed to reach my highest rating ever and then to get -300 :) I cannot actually explain why my results are so unstable, maybe it is just "shit happens"-behavior, or maybe sometimes I can reach "clear mind" state and sometimes I can't. You suggestions in comments are welcomed.

As for marathons, my rating decrease was foreseeable because my aim was just to code working solutions in Python in free time and I accomplished that goal in two matches (one of those was unrated). This was done just to practice in Python and it's a little pity that there weren't too much Python solutions to compare with or to learn them.

Learning Python. IMO the best way to learn new language/technology is to code as much as possible. Of course, you need to know some must-know stuff but don't accent reading many textbooks without actual coding, of course, if all what you need is not just to pass one of those dummy MS certificate exams:) So as I mentioned above I practiced Python in TC Marathons. With the same purpose I registered at SPOJ - the only major online judge that I know to have possibility to test solutions in Python. Though currently I don't have much to boast of on SPOJ :)  Also I'm considering to start contributing to some Python open-source project, probably, Orange or Natural Language Toolkit. Any considerations on the subject?

Master's degree. Yes, finally I've got it:) Believe me or not, I'm not sure how my degree title sounds like officially :-[ I think it's either Master of Applied Mathematics or Master in System Analysis and Management but let's wait when I hold my diploma in my hands:) Maybe something will change in future, but now my decision is to cease my further academic education for several reasons. This will help me concentrate on other things.

Important personal stuff. Well, this blog is intended to be purely with programming-related topics, but there is something that I cannot ignore to mention. I'm going to get married!:) And it will happen in a month. That also explains why I was so busy lately:) You congratulations are welcomed in comments :-P

Tuesday, April 26, 2011

Google Summer of Code 2011: didn't pass as well

Yesterday Google announced accepted student proposals of Google Summer of Code. To be honest I had a hope to pass at least on one of my applications, but unfortunately I both of them were unsuccessful. What I don't like in such selections that I don't have any feedback to know what's wrong with my skills actually:)

What's is your opinion? Should you ask for feedback every time when you don't pass some interview/selection process etc? Please, share you thoughts in comments:)

And some stats. As someone wrote in GSoC IRC channel there were ~5.7 thousands of applications from ~ 3.2 thousands students. And as you probable now 1,116 students passed to coding phase. Not too large rivalry, I think - approximately only three people for one ticket. So I can make conclusion that either I haven't made good choice of projects that meet my qualification (I tried to get Python ones even I haven't too much experience on it), or my qualification weren't just enough to apply to global program of such level:) Well, no luck here and I should just move on.

BTW I discovered that my Microsoft Certification Pack voucher expired on June 30, 2011, so I should take any MS exam by that date in order not to loose my precious money:) Seeking advice from my friend I'll take ASP.NET exam most probably. So if I don't pass this exam, he will be responsible for that :) Just kidding :)

Thursday, April 21, 2011

IBM Great Minds 2011: my failed attempt

That is nothing new already but I want you to know that I'm failed once more time:) This time it was Great Minds student internships 2011 at IBM Research – Zurich.

IBM Great Minds is a great opportunity for students who pursue the Master degree in computer science related fields. If your application is successful, you'll be able to try yourself as researcher in IBM research center with compensation adequate to living expenses.

Of course I haven't had big chances to pass their application process, but definitely it was worth a try. At that moment I was really unsure (and now I'm still a bit unsure) what way to choose  - to go in research or in software development. So I prepared required documents and asked vice-dean to sent them to IBM.

Well, I didn't pass:) I tried to apply to similar program at IBM Research – Haifa but I didn't pass there as well. As I said I had only vague hopes but anyway it was a little disappointment for me.

It is to be regretted that I haven't found out what exactly my weak qualifications made me not to pass applications. Of course such info is always helpful  as you can take it into account and use for self-improvement. Unfortunately they didn't provide me that information even after I'd asked them for that.

Anyway I'm optimistic about a lot of other great opportunities in the software development/computer science world:) Even if there are a bit less of them when you finish your master's:)

The one who searches will find, and for the one who knocks, the door will be opened.

Thursday, April 7, 2011

New commenting system on my blog: DISQUS

My previous post showed me that I need threaded commenting system on my blog:) So after a bit of research I chose DISQUS mainly because I saw it before on some other blogs.

So enjoy my new commenting system where you can reply to someone directly, like some comment, use your Twitter or Facebook account to log in and use other cool features :)

Sunday, April 3, 2011

Google Summer of Code 2011: don't miss it!

It is almost unbelievable that I haven't heard about this program before, especially taking into account that this is already seventh year when it takes place. So what is that actually?

In short it is a global program for students who would like to work on some interest open-source project, to get working experience and by the way to get money for that:) Yeah, Google pays $5000 to every successful participant. Not a big money actually for three months if you have more or less good job (I'm talking about Ukraine, of course), but as for me it is quite possible that I'd give up my work if I get a chance to work on a really interesting project.

Anyway if you are still student as of April 25, 2011 and you would like to become a part of something interesting don't miss your chance! The deadline for an application is April 8. Not too much time's left. Where to start? Read the Frequently Asked Questions page, check out the list of 175 mentoring organizations and their ideas lists and go ahead with your application!

Even at first sight I found few ideas that could be interesting for me. What's about you? Share your thoughts in the form of comments! :)

Sunday, January 9, 2011

Learning of Python: Pywikipedia and Facebook Hacker Cup

Being a student of computer science related department in Ukraine usually means that you have been familiarized with a bunch of programming languages. Of course generally it means that you don't know any of them unless you'll learn some on yours own:) As for me I could say that I'm really familiar more or less with only most popular languages. So it occurred to me that learning something totally new language will do me good. I think that could help you to expand your horizon that is always good idea in my opinion.

So that "something totally new" for me was Python) Actually I got involved in Python because of use of Pywikipedia framework (I don't think that cheating by editing of save files for Blade of Darkness should be counted:)). This is quite good framework for doing some useful automatic edits to Wikipedia with bot account. Of course running of scripts doesn't require knowledge of Python itself, but the time of learning comes when standard features are not enough or you want to tune standard scripts for yourself. First tries were like "copy these lines from here and that lines from there". Oh, you know, you can work at least on junior position at some software companies with such "coding" skills:) But the appetite comes in eating, so I decided to read tutorial to learn something new and systematize that I knew already.

I must say that sometimes I was impressed with Python features and how easily some things can be done with them. Of course you know problem about swapping two variables without explicit use of other variables. Can it be done more simple than in Python?) Just look:
a, b = b, a
Do you want the list of squares? Short and simple:
squares = [t*t for t in xrange(0, maxN)]
Of course these examples don't show all power of Python, this is just the first things that came to my mind. For more cool examples look, for example, into this StackOverflow question: Hidden features of Python

And additional note about official documentation. It is really good for Python newcomers and explain things with lot of examples and good explanations. Recommend! (ha-ha, looks like as feedback on Ebay:))

As conclusion I want to say that if you never programmed in other languages than classic imperative compilable (Java, .NET languages etc), then you just must to try something really different. At least for comparison. And who knows, maybe you won't return back;)

P.S. And probably you'll ask what is about Facebook Hacker Cup that is mentioned in title? Simple - this is first contest that I'm trying to compete in with Python:) I think that I'll write separate post about it. And Pywikipedia too)