Archived

This topic is now archived and is closed to further replies.

What's the difference between...

This topic is 5240 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

.. a good c++ programmmer and a great c++ programmer? I''ve finished my first year at the game programming course here in sweden and i''m just about to start the second year involving direct3d. Don''t get me wrong here, this isn''t a game programming question. The first year of our course, we had only a couple of weeks of basic c++ training, and i find that really annoying; i don''t wanna be a pure game programmer; i wanna be a great c++ programmer that''s programming games. The first c++ book i ever picked up was the 3''rd edition of Stephen Prata''s "C++ Programming" (word-by-word translation of the swedish ook title) and i''ve just picked up Bjarne Stroustrup''s "The C++ Programming Language - Special Ed.". I find the TCPL book very interesting and deep-digging in c++ and i''m really amazed over the effectiveness in STL (we had no STL training at all in our course) so i really wanna focus on good c++ programming techniques, not "Game C++". Holy mother of all rabbits, this post went long, sorry ''bout that, guess i lost the point somewhere in the swamp of bullsh*t Soo.. What is the actual difference between an average (or good) C++ programmer and the great C++ programmer, and how can I become a Great programmer? Thank you for the time you wasted reading my post

Share this post


Link to post
Share on other sites
See where you rank and help yourself to improve at www.topcoder.com. They have weekly programming tournaments. You are given a set of three problems (easy/medium/hard) and have 75 minutes to solve them all. Your score on the problems is based on your time. The faster you solve them, the higher your score.

After this you enter a challenge phase where you can look at other coders' solutions in your room ( a room is generally 10-20 coders ). If you see a coder submitted a solution that would fail with a given input you can challenge his code with that input. If you succede you gain 50 points and he loses all his points for that problem, if you fail you lose 50 points.

Finally after the challenge phase is the system test phase. Here all problems are intensively tested against test cases meant to make your program fail if it has even one mistake. If you fail a problem you lose all points.

Very basic premises but its amazingly fun and addictive. On top of that you can get a chance to meet a large number of people who love programming which is always fun. The next TopCoder tournament is tonight at 9pm eastern actually! Hope to see you there. Its free of course.

EDIT: As far as my personal opinion ( and reality ) goes. No book is going to make you a better programmer. Programming is a skill that is improved from practice, practice and practice. Just like a basketball player doesn't become a better player by sitting around reading about good basketball style, you're not going to become a better programmer sitting around reading about good programming style.

[edited by - haro on August 6, 2003 6:55:36 AM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
the difference is:

a good programmer thinks they''re great
a great programmer knows they have a lot to learn

Share this post


Link to post
Share on other sites
The same difference between the average anything and the great anything. Average anything just doit. Great anything also love to do it, and to do it perfectly. And he does it 25 hours a day, 8 days a week, 366 days a year.

Share this post


Link to post
Share on other sites
A good C++ programmer gets the task done... a great C++ programmer gets it done efficiently.

Let me elaborate:
A good programmer will be able to get things to run properly, yet a great programmer will not only get it to run properly, but they will have used the tools available to them to get it done. They know the difference of when and when not to use the tools available, while the average programmer isn''t worried about that, he''s worried about getting it working. I''m an optimization freak, and I really dislike using other peoples code for stuff, so I re-write most of the stuff that I need that will be time critical instead of relying on someone elses implementation, but at the same time, I''m not going to write my own sound library, since a pretty efficient one has been written for me . I *have* written my own sound engines before (good old sound blaster compatible DOS .wav player that interfaced the hardware directly), but that was before we had nice libraries that do everything but make the game for us.

Share this post


Link to post
Share on other sites
As another note. You've got a country's reputation at stake if you sign up for TopCoder. Sweden has by far the highest overall rating average for a country. One of the best coders at TopCoder comes from Sweden, Yarin. He has actually been #1 before.

[edited by - haro on August 6, 2003 7:01:09 AM]

Share this post


Link to post
Share on other sites
If there was something you could do to bridge the gap just like that, then there would be no gap.

To answer your question: humility, clarity, and experience. Initiative is a big plus too.

quote:
And he does it 25 hours a day, 8 days a week, 366 days a year.

That is utter nonsense. The notion that you must do something ''all the time'' is a surefire recipe for burnout in later years. Additionally, you''ll hit physical limitations pretty quick, such as eye strain, tension in your arms/wrists. You have far more to gain by living a balanced life rather than trying to be the best programmer that ever lived.

Share this post


Link to post
Share on other sites
quote:
Original post by antareus
If there was something you could do to bridge the gap just like that, then there would be no gap.

To answer your question: humility, clarity, and experience. Initiative is a big plus too.

quote:
And he does it 25 hours a day, 8 days a week, 366 days a year.

That is utter nonsense. The notion that you must do something ''all the time'' is a surefire recipe for burnout in later years. Additionally, you''ll hit physical limitations pretty quick, such as eye strain, tension in your arms/wrists. You have far more to gain by living a balanced life rather than trying to be the best programmer that ever lived.


It was a metaphor, sherlock. You must expend a lot of time to master into something. No matter if it is violin, boxing or programming.

Share this post


Link to post
Share on other sites
Nice to hear that other programmers defend the blue and yellow colors at TopCoder. Leaves me focus on... uhm, zipping beer.

Studentlitteratur-boken C++ direkt (tror jag den heter) är en ganska trevlig bok om du vill slippa alla exempel som inte ens ska fungera i Stroustrup's bok (som funkar bra som referens). Vad man skulle vilja ha är en bra generell bok om objekt-orienterad programmering som inte är kopplad till C++. Det är faktiskt ganska bra om man förstår skillnaderna mellan olika OO-språk. Har man väl lärt sig hur OO-programmering fungerar så är själva syntaxen inte så klurig. Men den tar en del tid att lära sig. Däremot om man inte förstått hur det hela hänger ihop på ett teoretiskt plan så blir man kapabel att implementera buggar som man i princip inte kan hitta själv. Man kan göra ganska enkla program som en "nybörjare" inte ens kan följa och förstå med en debugger.

Mitt tips är väl, lär dig programmera! Exakt hur man skriver den där skumma template-grejen kan du alltid slå upp. Det viktiga är att förstå vad man pysslar med. Om du vill bli riktigt duktig så krävs det erfarenhet inom just det området du ska programmera. Jag kan lova dig att det inte finns några universial-programmerare. De flesta blir väldigt bra på just det de håller på med. Om du t.ex. ska programmera spel så dyker det upp en massa ful-tricks för att allt ska vara så snabbt så möjligt. Ska du däremot göra en ordbehandlare så är det nog viktigare att strukturen är bra så att du kan återanvända koden till nästa version osv.

Ett tips till kan ju vara att verkligen förstå alla strukturer som dyker upp. Som t.ex. stack, länkade-listor, träd, hashmaps osv. Kan man använda de i sina program sparar man massor av programmeringstid och cputid (om man gör det rätt).

Eftersom det brukar vara ganska mycket ståhej om optimering här så. Det viktiga är att på algoritm- och designnivå ha en bra kod. Dagens kompilatorer kan ge sig in på grymma optimeringar. Jag har själv underskattat min kompilator och jag kör VC++ 6.0. De senaste kompilatorerna är säkert ännu grymmare. Det är viss skillnad på samma versionsnummer beroende på licensen dock.

/lycka till med att ta upp kampen på topcoder.

Oh sorry for the swedish, you probably heard it on TV!

[edited by - Fredrik Dahlberg on August 6, 2003 7:30:01 PM]

Share this post


Link to post
Share on other sites
It depends. If you actually work hard on coding, develop a coding style, and help others, you are a great programmer. If you write messy or poor code, can''t learn on your own, and can''t work with others, you a merely good. Experience is a factor too.

Scott Simontis
Big Joke: C#

Share this post


Link to post
Share on other sites
quote:
Original post by Village Specialton
It depends. If you actually work hard on coding, develop a coding style, and help others, you are a great programmer. If you write messy or poor code, can''t learn on your own, and can''t work with others, you a merely good. Experience is a factor too.


What is good about a programmer that writes messy or poor code, can''t learn, and can''t work with others?

I would rate your "great" programmer as only "good", and your "good" programmer as "poor".

Share this post


Link to post
Share on other sites