• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Worlds Best Programmer

 
Greenhorn
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Good day Jeanne & Scott from South Africa. I am currently busy with your first book in the Java 8 series, I hope this is the right place for me to post a question to maybe win a copy of the relic you have recently published, I sure hope you guys a tremendous load of success, after such hard work you deserve it.

Here's my question: In all your years of experience with Java and other programming languages, I know you might have been asked a similar question before, but, how do I become the best programmer above everyone else, is this even possible, I would suppose a measure of being an excellent programmer would be the speed at which one delivers code as well as the quality of the code, thus having few or no bugs. I really want to be a world renowned programmer - What would you say is an excercise program that is a sure winner for me in this regard?
 
Enthuware Software Support
Posts: 4803
52
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Best is always relative to a set of constraints. If the constraint is on memory usage, being the best programmer requires one skill set and if the constraint is on time to market, that requires some other skill set. I don't know if Mark Zuckerberg coded initial facebook back/front end, but if he did it, then may be he is the best programmer if money earned per line of code is the criteria Or may be Bill Gates If respect is the criteria, may be Linus Torvalds is your man.

So it really depends on you which arena you want to compete in.
 
Saloon Keeper
Posts: 15490
363
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think there's such a thing. There are so many areas in software development, that nobody can become a master at it all. I like to think I'm a pretty strong Java and C# enterprise application developer, but ask me to create a professional web application front-end and I'll probably need some more time to get my bearings. I think to become world-renowned, you need to have a novel idea and be able to "get it out there". I think what Zuckerberg, Gates and Torvalds have in common is that they had brilliant original ideas. I also recall (but correct me if I'm wrong) that Bill Gates was always more of a business man than a programmer (even if I'm sure his skills are not insubstantial).

To tell you the honest truth, being good at "programming" is not very interesting. Knowing any language and its traps well is admirable and can be a lot of fun, but the real respect comes to people who can design a great piece of software without writing a line of code. However, I don't think you can become such a great designer without having written lots of code.

Another thing: High quality code is meaningless if nobody is interested in it. I have written some things that I'm still proud of to this day, but they disappeared in the fridge because they were over-engineered and simply not useful in day-to-day scenarios.
 
author & internet detective
Posts: 41860
908
Eclipse IDE VI Editor Java
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think there is a such thing as being the "best" programmer. I do think there is a such thing as being a "really good" programmer. Some tips:

  • Practice a lot. Code even when you don't need to. Search for programming katas to get ideas of things you could practice
  • Learn multiple languages. Helps you choose the right tool for the job. Plus ideas from different languages help you in others.
  • If you work with one language a lot (in our case Java), learn it deeply. Know when different parts of the language are the right choice. For example, when should you use a regular expression or parser
  • .
  • Learn programming idioms in languages you use a lot. This creates chuns of knowledge so you solve problems faster.
  • Ask lots of questions
  • Make sure you are solving the right problem. Being a great coder doesn't help if you aren't doing what is needed
  • Follow good software practices. I can't tell you how much time unit tests have saved me!
  • Learn from your teammates and others (like on the internet.)


  • What else is there? I feel like I'm just scratching the surface of this...
     
    author
    Posts: 4335
    39
    jQuery Eclipse IDE Java
    • Likes 1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I agree with Jeanne, there is no world's best programmer... but as a freelance contractor, the best programmers I would hire would be... those that say they are going to finish a task by a given date, actually finish it, delivers code that is easy to read, and does not contain any bugs.

    Granted, that's a perfect world and ignores the fact that requirements often change halfway through a project. With that in mind, the single most important attribute a programmer needs to have is responsibility. For example, if the project can't be done by a specific date, the developer should speak up as early as possible and not wait until a week after the project is due to say it will be another 3 weeks.

    Oftentimes, what separates a skilled developer from a less skilled one is the ability to read a list of requested features and accurately judge how long it will take to finish. Of course, you could go with Scotty from Star Trek and pad all estimates, but in practice most projects actually take even longer than initially estimated.
     
    Sizo Nsibande
    Greenhorn
    Posts: 4
    • Likes 1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Wow, thank you guys for responding, that is a wealth of information that I will take to heart, I am due to write my OCA 8 1z0-808 exam in a few weeks, I'll most certainly be using this advice. I especially will be looking into getting myself a lot of programming katas, I didn't even know what programming katas were until a few moments ago just now. Thank you thank you thank you. Now I'm just crossing my fingers that I win a copy of your new book ;)

    You guys are like rock stars to me, to have you give me personal advice, that's just big!! I still can't believe I just had an interaction with Jeanne Boyarsky & Scott Selikoff, wow!! Thank you again for taking some time out for me you guys, I am deeply honoured.
     
    Don't get me started about those stupid light bulbs.
    reply
      Bookmark Topic Watch Topic
    • New Topic