You are not logged in. Please login at www.codechef.com to post your questions!

×

Approach to become Good Programmer.

24
28

I really want to know that whats the ideal approach for becoming a good programmer? Whats the secret to solve the Codechef questions? Any External links, online tutorials, e-books are welcome. ANY help will be appreciated. I also want to know whats the X-factor that your resume must have in order to be shortlisted for Software Developers post. What is actually required? Is it theory, is it just practice or something else?

asked 21 Jun '13, 12:19

msehgal's gravatar image

2★msehgal
3425610
accept rate: 0%

closed 21 Jun '13, 20:37

bit_cracker007's gravatar image

3★bit_cracker007
5.7k266868

learn java ....get cool tutorials.... learn java click here.... http://goo.gl/gpdP3K

(06 Feb '14, 12:51) sahil120★

This link will really help you for learning compititive programming

http://discuss.codechef.com/questions/37684/learn-competitive-programming

(09 Feb '14, 10:17) theshubhamgoel3★

Sometimes while doing we don't get answers of our questions and doubts either because they may seem very easy or foolish asking. What to do and how to approach in that case..?!!

(19 Apr '14, 17:04) damn_me3★

See I will answer each of your query one by one....

First of all, for being a "Good Programmer" comes from the mental capabilities of a person.... for writing and understanding good programs you need logical understanding and implementation capabilities....

Now how to attain these capabilities, the key to this is "PRACTICE".... we all here are capable of coding awesome codes, but these codes are written with huge analysis and finding the deepest logics behind question... sometimes this takes more than a day or even 10s of days..... and this is secret of solving Codechef questions....

Yes, you need to refer to external links, tutorials, books, research papers, etc. on various topics like for Data Structures and Algorithms you need to study Greedy Approaches, Divide and Conquer, Constructive/Iterative Algorithms, Graphs, Trees and other Data Structures... and some of the tuff ones like, Ropes, Segmentation Trees, etc. which you will eventually learn after much of your efforts..... apart from this you need to build your mathematical basics to the best, to utilize your capabilities, including series(Fibonacci, Catalan, AP, GP, HP etc.), formulas, Probability, Permutation, Combination etc.... Sometimes there is a requirement some other subjects(like Physics) but most of relevant information is provided in the question itself....

And for your purpose of being a "Good Programmer".... dont ever try to copy codes.... even if you are looking some editorial or research papers... try to study the logic and then write the code yourself.... Try to study the codes of other coders... if you cant understand them... just try to print the intermediate results to understand the logic behind each line.... One thing which may effect you during the competitive programming is cheating... to overcome this you can take a print out of the relevant resources and try to solve things by hand.... for more purposes use discussion forums to solve your problems, there are so many awesome coder and top performers like @bugkiller, @kuruma, @junior94, @vineetpaliwal, @anton_lunyov, @betlista, @cyberax etc etc etc here which are thirsty of solving and advicing your doubts :P ....

For your Resume purpose, first you need to decide whether you want to enter this field or any other... you must not force yourself into competitive programming if dont like to become a coder... just follow your passion and your resume will have any X-factor you desire....

I think this can help you in deciding what you need to do,,,, with this long answer I will end typing and will love to see you on leaderboard charts soon... all will come with passion and patience.... well anyways for now welcome to codechef community....

link

answered 21 Jun '13, 15:58

devanshug's gravatar image

4★devanshug
2.7k111927
accept rate: 13%

1

that was an excellent answer.... yes i want to be a programmer. I ignore my grades in other subjects for coding. I like to devote time but was not getting the guidelines. Thanks @devanshug. I was waiting for answer since I posted it. :-)

(21 Jun '13, 16:11) msehgal2★
1

@devanshug : well said, it was very useful. Even i feel the same as @msehgal. good question and a great answer :)

(21 Jun '13, 18:20) squal4★
1

@devanshug This is indeed a great answer and I hope that @msehgal can get the extra motivation he needed from it :D

(21 Jun '13, 19:02) kuruma3★
1

thanx everyone... for such a wonderful response, I just meant to motivate @msehgal and provide him some instructions in competitive coding.... Its good that it is useful to all of you..... haven't thought that the answer will be so acceptable..... jst wanted to listen thoughts of other coders @bugkiller, @kuruma, @junior94, @vineetpaliwal, @anton_lunyov, @betlista, @cyberax, @bit_cracker007(Sorry, I forgot to mention your name) to this question, but I dont knw why this question is closed and I dont knw how to start it again..... :(

(22 Jun '13, 00:03) devanshug4★

now it is open again @devanshug

(22 Jun '13, 04:29) msehgal2★

Now its open :D

(22 Jun '13, 04:31) kuruma3★

@devanshug there's nothing I can add besides what I've said a lot of times, even if I did, your answer is detailed enough...

(22 Jun '13, 15:39) junior944★
showing 5 of 7 show all
40

Hello @all and @msehgal in particular,

I am not a top performer for starters... Faaaaar from it... I would define myself as a very interested and somehow dedicated "noob". In fact, I shall write a longer post this time and sort of describe my story with programming and then provide some of the tips I have been providing over my participation so far in Codechef Discuss.

I started programming when I was around 8/9 years old. But, it was a short journey. My father, who is a Civil Enginner that recurrentely uses Visual Basic and MATLAB/Fortran to deploy some of its research results over the form of data analysis/graphics, showed me my first program ever:

A rectangle drawn inside a Visual Basic Window!! How exciting can that be?

It turns out, that for a 9 year-old, that's really pretty boring actually...He then gave me a book called: "Programming with Visual Basic 6" (it is a portuguese book, I translated the title) and he encouraged me to work troughout it and see some examples... I swear to God I tried... I tried very hard!! I lost all my cartoons for that afternoon in an attempt to do a Drop-down menu and I had to program inside it, a new command to draw the above rectangle as I clicked on it.

(Obviously, I know now that what I was doing was using a framework that relied on Visual Basic programming language and I was actually doing event-driven programming which is a subset of OOP, that falls a bit out of ambit of Codechef... Nontheless, this was my first contact with a computer)

After that very bad experience, I totally lost interest in programming for ages... I kept acing at secondary school, always with good grades on Maths and Physics school subjects... And from say, 10 years old until I was 17/18, I never even thought about programming for a single second...

Then, at the age of 17, I joined a Physics forum, from a famous Portuguese University, called: "Universidade de Coimbra"... That forum could be compared to an hypotetical IOI forum, that is, it was a forum whose main goal was to prepare students from secondary school to do very well on IphO (International Physics Olympiads)... However, I didn't compete at them (I wasn't selected), but I stayed in touch with those people using those forums for quite some time (almost 2 years), and it was on one day, when I knew that the forum administrator was the 1st person in Portugal to have learnt Python!!!

He actually introduced Python on the forums and that was when my spark for coding lit up again! After struggling with the syntax of Python for weeks (no shit, it took me three weeks to figure Python used white-space as identation! :p ), I then successfully wrote my second program ever:

Ask user to input two numbers and print the result of their sum!!! :)

This, however, for being away of the OOP paradigm of Visual Basic, got me more motivated, and, as I had been recentely introduced to Project Euler, I immediately started expanding my Python knowledge and started solving as many PE problems as I could!! :D

Some of them were trivial in Python, some I hacked, some I always brute-forced and waited for days to see output and other silly stuff any un-guided begginer would possibly do.

After solving around 40 problems (some of them with copied solutions sadly...) I started to see that all the remaining problems were too theoretical and too hard for me to solve... So I searched for other websites and discovered Codechef!!!! :D But, all problems here apart from TEST were very hard... I got demotivated ans lost interest in programming again... And, as the following year I would enter university (I started in the Civil Engineering Course only then I switched to CS) I had more on my mind than coding...

In Civil Engineering, during the 3 years I stayed on that course I only had 2 programming related subjects...

I had a subject called Introduction to Computation and Programming, where I basically learnt the C++ syntax and nothing else... I learnt how to use temporary variables to swap 2 variables maybe :p you know, advanced stuff a Civil Engineer would need to know... :p Nontheless, afterwards I was armed with a powerful knowledge, I knew C++ syntax :) Maybe I could use it to some more Project Euler problems (I did one or two additional problems in C++)...

Then, on the second year I had a subject on Numerical Analysis, where I leanrt the Bissection Method to find roots of equations eheh :) It was an interesting subject which took me back to project Euler, and where I managed to solve my first Dynamic Programming problem (Problem 81). I then came to Codechef and OMG I was such a pro... I solved so many problems from the PEER section... Like 15 or so... I got excited again... But I was lacking the time due to my univ course... and I stopped for a while...

Then my life gave a twist... A big twist actually... One day, when I entered Facebook... I saw an announcement for JULY12 long contest... User kuchumova_mary had commented on that status something like: "Can't wait for contest!!"... I was in awe!!! How could a girl so much younger than me know about a programming contest??? Bruno thinks: "WTF is a long contest?? They have like live programming contests?"

So I added her on FB... We chatted for a while... and she introduced me to Codeforces and to the world of competitive programming (note, that by now I was aware of google code jam and other contests, but saw them only for... geniuses, not for me) and I introduced her to how Codechef worked and etc... So, we became "coder friends" (we still are today :D with some broken hearts in the middle... :'(, but, I felt like if I wanted to learn more, Codechef was the place, and she was the person who would guide me), and discussed problems on Codeforces and on that contest via FB... I had TONS of fun... Even though I only solved one problem... I felt like programming and algorithms were much more appealing that what I had realized when I was 8 years old... But, as you can all see now, my experience in competitive programming is basically 0... I just have the curiosity and the will to learn a lot more than what I know today, which is very little.

Today, as time passed by and as I attended several contests here and on Codeforces over the last months and as I switched to Informatics Engineering I consider myself to be a better programmer than the one I was before, but, I also know I still have a lot to learn and that I will never, ever be able to pay back to this community for what they all did to me and helped me in terms of my interest in programming... :)

I hope my story isn't too boring, or too long... But, this was in general terms, the path I walked to become who I am today as a coder and as a person as well!!

It is with pleasure and hope that I see the rest of this path may be done by walking alongside every friend and every person I have met here... And it is a wonderful feeling!!

Best regards,

Bruno Oliveira

link

answered 22 Jun '13, 05:54

kuruma's gravatar image

3★kuruma
17.7k72143209
accept rate: 8%

edited 22 Jun '13, 15:15

11

three things really amazed me about your story.... 1. you first coded at an age of 8/9 year.... I just saw some Visual Basic Programs at that age but never tried to write one.... I actually started coding at an age of 14 in Java.... I never studied C++ (though my college heavily focus on it).... 2. it was Python which brought u back in programming world... which is my favorite... its actually because of Game Programming, I first learned Python....... 3. last but not at all least, A "girl" introduced you to competitive programming... 1 in 100 cases that would ever happen

(22 Jun '13, 06:26) devanshug4★
4

@devanshug, and about 1/10000 she would love me back... Nontheless, she means a lot to me and she knows it, and, as I said, it's amazing what codechef can do... Also... Hope is the last thing to die :D

(22 Jun '13, 06:55) kuruma3★
3

I also owe a lot to codechef, codechef gave me a purpose and motivated me to go even further... I can't express how much I love coding, I put a lot of heart into everything I write, no matter how small or insignificant it is... Being able to share that with other people is something that I will be always thankful for...

(22 Jun '13, 15:29) junior944★

thank you guys some wonderful replies.. @Devanshug and @kuruma

(24 Jun '13, 19:55) msehgal2★

I'm glad you found it helpful @msehgal :)

(24 Jun '13, 22:58) kuruma3★

some amzaing answers here.. hope to see more from the community.

(27 Jun '13, 05:51) msehgal2★

@kuruma, Where is she now? What happened to your love story?

(08 Feb '14, 23:17) haccks2★

@haccks sometimes it is best not to learn that both Romeo and Julietta committed suicide for their love. just keep in mind that they would commit suicide if it is necessary ;)

(09 Feb '14, 02:43) garakchy1★
3

@haccks, sadly, she sort of... "disappeared" from Codechef and stopped replying to my texts... Maybe she's just busy with uni, but, it still saddens me a lot when I think about it..

(10 Feb '14, 15:24) kuruma3★

@kuruma, Great story, you are an inspiration to all those who want to contribute to this codechef community!

(10 Feb '14, 23:31) v_akshay4★
2

@ v_akshay, Thanks for enjoying reading it!! Sadly, I think that my performances in contests aren't still very good when compared to how much I love this community and programming... but, as I said, having to learn everything "alone" and being busy with univ really doesn't leaves me much free time to dedicate to competitive programming.. But, I'll keep learning as much as I can

(11 Feb '14, 02:34) kuruma3★
1

@kuruma, But you said that she is your FB friend ? Didn't you tried to contact her ? I can see last she participated in long NOV13 on Code Chef.

(19 Apr '14, 16:57) haccks2★

hey i am still struggling in coding I do not know why .. do u guide me..........

(10 May '14, 12:20) crispbay0★
showing 5 of 13 show all

@msehgal @rockster Give Long contest, Try ,never give up and trust me those green ticks are amazing. after the contest try upsolving, search the algorithms related to the question and try to implement by yourself. read topp programmer's solutions . that's how will you improve .Thankyou. P.S : upvote my answer :)

link

answered 05 Jan '16, 15:34

archit910's gravatar image

2★archit910
820212
accept rate: 3%

edited 05 Jan '16, 15:35

richard buckland(amazing lecturer) answers: http://www.youtube.com/watch?v=s9ADu4ErYzM

link

answered 26 Dec '13, 05:41

garakchy's gravatar image

1★garakchy
1.1k163048
accept rate: 1%

what if i dont have any other options and i have to do programming

link

answered 08 Mar '15, 09:11

king_code07's gravatar image

0★king_code07
1
accept rate: 0%

My case was same as you @msehgal. I studied in a CBSE school where I got introduced to C++ in higher secondary class and I accept it I was not good at it. I didn't even understood the applications of OOP (Object Oriented Programming) in real life situations because I am a person who understands things from visuals. I was not even sure I will pursue this line further. I started looking online, talked to my seniors, wrote the problems I was facing in on private blogs and institutional websites, I practiced a lot too and the results motivated me.

From loops to pointers this was my journey, I started getting solutions to the problems, and after a time I looked at the programs I was hardly able to create and what the did this time was I wrote all the programs again and not only was I able to complete it in less time but the amount of codelines had also reduced. So basically, as it is said that you learn new things from life everyday and grow as a Human Being you learn from the programs you come across and grow as a programmer. Programming had become a passion for me. Software Development is a very huge field, no matter where you go you will always find people having more knowledge than you. Don't get discouraged of the knowledge you have, just look how much far you have come and keep pushing forward. Keeping pursuing your passion and never let that hunger for knowledge die. Stay Motivated!

link

answered 04 Jan '16, 19:16

rockster's gravatar image

0★rockster
3
accept rate: 0%

check my answer @rockster

(05 Jan '16, 15:40) archit9102★

Learning a computer programming language is very easy compared to writing good programs and using the language effectively. For a beginner, it might take 4-5 months to learn a new Programming language where as perfecting the programming skills including the design, debugging and maintenance might take more than 3 to 4 years. To become an excellent programmer Go here : http://java.meritcampus.com/core-java-topics/How-Can-I-Be-A-Good-Excellent-Programmer

link

answered 11 Feb '16, 11:37

meritcampus's gravatar image

0★meritcampus
1
accept rate: 0%

hllo kuruma i am a girl n i too like programming. i wanna know tht wht is this competitive programming ??are the y the program which professionals make or ...?? n i wanna knw ur approach to ur programs i mean how you solve it?? n are u interested in other things except programming like everyday science,machines,computer n all?? if yes then plzz give me some tips to make me motivated towards these things too. i too wanna be like u:-interested in evrything. plzz...

link

answered 06 May '16, 13:27

ghostnaughty's gravatar image

0★ghostnaughty
2
accept rate: 0%

Want to be a good programmer? 1. Don't copy others code. 2. Be lazy and find the easiest way to everything. 3. Look for trouble and find your own solution to them. The syntax,indentation etc. comes later. The main thing lies in how you confront and solve a problem. Good luck.

link

answered 16 Oct '16, 20:10

gray_code's gravatar image

0★gray_code
1
accept rate: 0%

YOU WILL BE A GOOD PROGRAMMER WHEN YOU HAVE A GOOD IMAGINATION POWER TO IMAGINE PROBLEMS AND CONNECT WITH YOUR REAL WORLD PROBLEMS.A GOOD PROGRAMMER HAVE GOOD KNOWLEDGE OF ALGORITHM TO MAKE YOUR PROGRAM IS MOST EFFICIENT IN CASE OF TIME AND SPACE COMPLEXITY.

link

answered 21 Apr '17, 21:51

yadavahir's gravatar image

0★yadavahir
1
accept rate: 0%

yes after learning this coding i will be a good coder

link

answered 17 Sep '17, 21:55

samuelanokye70's gravatar image

0★samuelanokye70
1
accept rate: 0%

I have some observation and i maybe completely wrong here. I have seen people (who had started from zero knowledge in algorithms) getting orange rating in an average of 1.5 year, and most everyone has solved approximately 600+ questions. So, consider solving 50 medium level questions of a every topic eg Dp. After this you will able to find the paradigm of the solutions quickly at least and be able to calculate the complexity using meta gaming.

1) get your basics right. basic DSA, complexity finding and maths like number theory, combinations.

2) solve medium level questions and read other solutions as well.

3) try advanced topic and try implementing them. And learn all Advanced DATA STRUCTURES.

4) of you find some cool trick try to remember them and moke notes. apply them whem you find them again.

write more on paper and write less code on editor.

link

answered 17 Sep '17, 22:15

skyhavoc's gravatar image

4★skyhavoc
1616
accept rate: 0%

edited 17 Sep '17, 22:17

xml version="1.0" encoding="utf-8"?> <rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: Approach to become Good Programmer.</title><link>https://discuss.codechef.com/questions/14613/approach-to-become-good-programmer</link><description><p>I really want to know that whats the ideal approach for becoming a good programmer? Whats the secret to solve the Codechef questions? Any External links, online tutorials, e-books are welcome. ANY help will be appreciated. I also want to know whats the X-factor that your resume must have in order to be shortlisted for Software Developers post. What is actually required? Is it theory, is it just practice or something else?</p></description><atom:link href="https://discuss.

link

answered 15 Oct '18, 10:40

predeep123's gravatar image

0★predeep123
1
accept rate: 0%

xml version="1.0" encoding="utf-8"?> <rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Answers to: Approach to become Good Programmer.</title><link>https://discuss.codechef.com/questions/14613/approach-to-become-good-programmer</link><description><p>I really want to know that whats the ideal approach for becoming a good programmer? Whats the secret to solve the Codechef questions? Any External links, online tutorials, e-books are welcome. ANY help will be appreciated. I also want to know whats the X-factor that your resume must have in order to be shortlisted for Software Developers post. What is actually required? Is it theory, is it just practice or something else?</p></description><atom:link href="https://discuss.

link

answered 15 Oct '18, 10:44

predeep123's gravatar image

0★predeep123
1
accept rate: 0%

<a href="http://en.wikipedia.org/wiki/Tree_(data_structure)">Trees</a> and other <a href="http://en.wikipedia.org/wiki/List_of_data_structures">Data Structures</a>... and some of the tuff ones like, <a href="http://en.wikipedia.org/wiki/Rope_(computer_science)">Ropes</a>, Segmentation Trees, etc. which you will eventually learn after much of your efforts..... apart from this you need to build your mathematical basics to the best, to utilize your capabilities, including series(Fibonacci, Catalan, AP, GP, HP etc.), formulas, Probability, Permutation, Combination etc.... Sometimes there is a requirement some other subjects(like Physics) but most of relevant information is provided

link

answered 15 Oct '18, 10:44

predeep123's gravatar image

0★predeep123
1
accept rate: 0%

include<studio.h>

include<condo.h>

link

answered 13 Feb, 18:16

akash2510's gravatar image

0★akash2510
1
accept rate: 0%

include<studio.h>

include<condo.h>

link

answered 13 Feb, 18:16

akash2510's gravatar image

0★akash2510
1
accept rate: 0%

toggle preview
Preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported
  • mathemetical formulas in Latex between $ symbol

Question tags:

×858
×712
×74

question asked: 21 Jun '13, 12:19

question was seen: 131,225 times

last updated: 13 Feb, 18:16